@pie-element/math-inline 7.14.2-next.15 → 7.14.2-next.17

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,431 +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/pie-toolbox/config-ui");
31
-
32
- var _mathToolbar = require("@pie-lib/pie-toolbox/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
- 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); }
55
-
56
- 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; }
57
-
58
- 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; }
59
-
60
- 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; }
61
-
62
- 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); }; }
63
-
64
- 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; } }
65
-
66
- // TODO once we support individual response correctness, we need to remove this constant
67
- var INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;
68
-
69
- var styles = function styles(theme) {
70
- return {
71
- responseContainer: {
72
- marginBottom: theme.spacing.unit * 2.5,
73
- width: '100%',
74
- minWidth: '548px',
75
- border: "1px solid ".concat(theme.palette.grey[700]),
76
- display: 'flex',
77
- flexDirection: 'column',
78
- justifyContent: 'space-between'
79
- },
80
- cardContent: {
81
- paddingBottom: "".concat(theme.spacing.unit * 2, "px !important")
82
- },
83
- title: {
84
- fontWeight: 700,
85
- fontSize: '1.2rem',
86
- flex: 3
87
- },
88
- selectContainer: {
89
- flex: 2
90
- },
91
- inputContainer: {
92
- marginBottom: theme.spacing.unit * 2
93
- },
94
- titleBar: {
95
- display: 'flex',
96
- alignItems: 'center',
97
- justifyContent: 'space-between'
98
- },
99
- responseEditor: {
100
- display: 'flex',
101
- alignItems: 'center',
102
- justifyContent: 'center',
103
- width: '100%',
104
- minWidth: '500px',
105
- maxWidth: '900px',
106
- height: 'auto',
107
- minHeight: '40px'
108
- },
109
- mathToolbar: {
110
- width: '100%'
111
- },
112
- alternateButton: {
113
- border: "1px solid ".concat(theme.palette.grey['A100'])
114
- },
115
- removeAlternateButton: {
116
- marginLeft: theme.spacing.unit * 2,
117
- border: "1px solid ".concat(theme.palette.grey['A100']),
118
- color: 'gray',
119
- fontSize: '0.8rem'
120
- },
121
- errorText: {
122
- fontSize: theme.typography.fontSize - 2,
123
- color: theme.palette.error.main,
124
- paddingTop: theme.spacing.unit
125
- }
126
- };
127
- };
128
-
129
- var Response = /*#__PURE__*/function (_React$Component) {
130
- (0, _inherits2["default"])(Response, _React$Component);
131
-
132
- var _super = _createSuper(Response);
133
-
134
- function Response(props) {
135
- var _this;
136
-
137
- (0, _classCallCheck2["default"])(this, Response);
138
- _this = _super.call(this, props);
139
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (name) {
140
- return function (evt) {
141
- var _this$props = _this.props,
142
- response = _this$props.response,
143
- onResponseChange = _this$props.onResponseChange,
144
- index = _this$props.index;
145
-
146
- var newResponse = _objectSpread({}, response);
147
-
148
- newResponse[name] = evt.target.value;
149
- onResponseChange(newResponse, index);
150
- };
151
- });
152
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChanged", function (name) {
153
- return function (evt) {
154
- var _this$props2 = _this.props,
155
- response = _this$props2.response,
156
- onResponseChange = _this$props2.onResponseChange,
157
- index = _this$props2.index;
158
-
159
- var newResponse = _objectSpread({}, response);
160
-
161
- newResponse[name] = evt.target.checked;
162
- onResponseChange(newResponse, index);
163
- };
164
- });
165
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onLiteralOptionsChange", function (name) {
166
- return function () {
167
- var _this$props3 = _this.props,
168
- response = _this$props3.response,
169
- onResponseChange = _this$props3.onResponseChange,
170
- index = _this$props3.index;
171
-
172
- var newResponse = _objectSpread({}, response);
173
-
174
- newResponse[name] = !response[name];
175
- onResponseChange(newResponse, index);
176
- };
177
- });
178
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAnswerChange", function (answer) {
179
- var _this$props4 = _this.props,
180
- response = _this$props4.response,
181
- onResponseChange = _this$props4.onResponseChange,
182
- index = _this$props4.index;
183
-
184
- var newResponse = _objectSpread({}, response);
185
-
186
- newResponse.answer = answer;
187
- onResponseChange(newResponse, index);
188
- });
189
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlternateAnswerChange", function (alternateId) {
190
- return function (answer) {
191
- var _this$props5 = _this.props,
192
- response = _this$props5.response,
193
- onResponseChange = _this$props5.onResponseChange,
194
- index = _this$props5.index;
195
-
196
- var newResponse = _objectSpread({}, response);
197
-
198
- newResponse.alternates[alternateId] = answer;
199
- onResponseChange(newResponse, index);
200
- };
201
- });
202
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAddAlternate", function () {
203
- var _this$props6 = _this.props,
204
- response = _this$props6.response,
205
- onResponseChange = _this$props6.onResponseChange,
206
- index = _this$props6.index;
207
- var alternateIdCounter = _this.state.alternateIdCounter;
208
-
209
- var newResponse = _objectSpread({}, response);
210
-
211
- if (!newResponse.alternates) {
212
- newResponse.alternates = {};
213
- }
214
-
215
- newResponse.alternates[alternateIdCounter] = '';
216
- onResponseChange(newResponse, index);
217
-
218
- _this.setState({
219
- alternateIdCounter: alternateIdCounter + 1
220
- });
221
- });
222
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRemoveAlternate", function (alternateId) {
223
- return function () {
224
- var _this$props7 = _this.props,
225
- response = _this$props7.response,
226
- onResponseChange = _this$props7.onResponseChange,
227
- index = _this$props7.index;
228
-
229
- var newResponse = _objectSpread({}, response);
230
-
231
- delete newResponse.alternates[alternateId];
232
- onResponseChange(newResponse, index);
233
-
234
- _this.setState(function (state) {
235
- return {
236
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, {
237
- openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount : state.showKeypad.openCount - 1
238
- })
239
- };
240
- });
241
- };
242
- });
243
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDone", function () {
244
- _this.setState(function (state) {
245
- return {
246
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, {
247
- openCount: state.showKeypad.openCount - 1,
248
- main: false
249
- })
250
- };
251
- });
252
- });
253
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFocus", function () {
254
- _this.setState(function (state) {
255
- return {
256
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, {
257
- openCount: !state.showKeypad.main ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,
258
- main: true
259
- })
260
- };
261
- });
262
- });
263
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlternateFocus", function (alternateId) {
264
- return function () {
265
- _this.setState(function (state) {
266
- return {
267
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, (0, _defineProperty2["default"])({
268
- openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount + 1 : state.showKeypad.openCount
269
- }, alternateId, true))
270
- };
271
- });
272
- };
273
- });
274
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlternateDone", function (alternateId) {
275
- return function () {
276
- _this.setState(function (state) {
277
- return {
278
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, (0, _defineProperty2["default"])({
279
- openCount: state.showKeypad.openCount - 1
280
- }, alternateId, false))
281
- };
282
- });
283
- };
284
- });
285
-
286
- var _ref = props || {},
287
- _ref$response = _ref.response;
288
-
289
- _ref$response = _ref$response === void 0 ? {} : _ref$response;
290
- var alternates = _ref$response.alternates;
291
- var alternatesLength = Object.keys(alternates || {}).length;
292
- _this.state = {
293
- alternateIdCounter: alternatesLength + 1,
294
- showKeypad: {
295
- openCount: 0,
296
- main: false
297
- }
298
- };
299
- return _this;
300
- }
301
-
302
- (0, _createClass2["default"])(Response, [{
303
- key: "render",
304
- value: function render() {
305
- var _this2 = this;
306
-
307
- var _this$props8 = this.props,
308
- classes = _this$props8.classes,
309
- mode = _this$props8.mode,
310
- defaultResponse = _this$props8.defaultResponse,
311
- index = _this$props8.index,
312
- response = _this$props8.response,
313
- cAllowTrailingZeros = _this$props8.cAllowTrailingZeros,
314
- cIgnoreOrder = _this$props8.cIgnoreOrder,
315
- error = _this$props8.error;
316
- var showKeypad = this.state.showKeypad;
317
- var validation = response.validation,
318
- answer = response.answer,
319
- alternates = response.alternates,
320
- ignoreOrder = response.ignoreOrder,
321
- allowTrailingZeros = response.allowTrailingZeros;
322
- var hasAlternates = Object.keys(alternates || {}).length > 0;
323
- var classNames = {
324
- editor: classes.responseEditor,
325
- mathToolbar: classes.mathToolbar
326
- };
327
- var styles = {
328
- minHeight: "".concat(showKeypad.openCount > 0 ? 430 : 230, "px")
329
- };
330
- return /*#__PURE__*/React.createElement(_Card["default"], {
331
- className: classes.responseContainer,
332
- style: styles
333
- }, /*#__PURE__*/React.createElement(_CardContent["default"], {
334
- className: classes.cardContent
335
- }, /*#__PURE__*/React.createElement("div", {
336
- className: classes.titleBar
337
- }, /*#__PURE__*/React.createElement(_Typography["default"], {
338
- className: classes.title,
339
- component: "div"
340
- }, "Response ", INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED ? defaultResponse ? '' : index + 1 : ''), /*#__PURE__*/React.createElement(_configUi.InputContainer, {
341
- label: "Validation",
342
- className: classes.selectContainer
343
- }, /*#__PURE__*/React.createElement(_Select["default"], {
344
- className: classes.select,
345
- onChange: this.onChange('validation'),
346
- value: validation || 'literal'
347
- }, /*#__PURE__*/React.createElement(_MenuItem["default"], {
348
- value: "literal"
349
- }, "Literal Validation"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
350
- value: "symbolic"
351
- }, "Symbolic Validation")))), validation === 'literal' && /*#__PURE__*/React.createElement("div", {
352
- className: classes.flexContainer
353
- }, cAllowTrailingZeros.enabled && /*#__PURE__*/React.createElement(_FormControlLabel["default"], {
354
- label: cAllowTrailingZeros.label,
355
- control: /*#__PURE__*/React.createElement(_Checkbox["default"], {
356
- checked: allowTrailingZeros,
357
- onChange: this.onLiteralOptionsChange('allowTrailingZeros')
358
- })
359
- }), cIgnoreOrder.enabled && /*#__PURE__*/React.createElement(_FormControlLabel["default"], {
360
- label: cIgnoreOrder.label,
361
- control: /*#__PURE__*/React.createElement(_Checkbox["default"], {
362
- checked: ignoreOrder,
363
- onChange: this.onLiteralOptionsChange('ignoreOrder')
364
- })
365
- })), /*#__PURE__*/React.createElement("div", {
366
- className: classes.inputContainer
367
- }, /*#__PURE__*/React.createElement(_InputLabel["default"], null, "Correct Answer"), /*#__PURE__*/React.createElement(_mathToolbar.MathToolbar, {
368
- keypadMode: mode,
369
- classNames: classNames,
370
- controlledKeypad: true,
371
- showKeypad: showKeypad.main,
372
- latex: answer || '',
373
- onChange: this.onAnswerChange,
374
- onFocus: this.onFocus,
375
- onDone: this.onDone,
376
- error: error && error.answer
377
- }), error && error.answer ? /*#__PURE__*/React.createElement("div", {
378
- className: classes.errorText
379
- }, error.answer) : null), hasAlternates && Object.keys(alternates).map(function (alternateId, altIdx) {
380
- return /*#__PURE__*/React.createElement("div", {
381
- className: classes.inputContainer,
382
- key: alternateId
383
- }, /*#__PURE__*/React.createElement("div", {
384
- className: classes.alternateBar
385
- }, /*#__PURE__*/React.createElement(_InputLabel["default"], null, "Alternate", Object.keys(alternates).length > 1 ? " ".concat(altIdx + 1) : ''), /*#__PURE__*/React.createElement(_Button["default"], {
386
- className: classes.removeAlternateButton,
387
- type: "secondary",
388
- onClick: _this2.onRemoveAlternate(alternateId)
389
- }, "Remove")), /*#__PURE__*/React.createElement(_mathToolbar.MathToolbar, {
390
- classNames: classNames,
391
- controlledKeypad: true,
392
- keypadMode: mode,
393
- showKeypad: showKeypad[alternateId] || false,
394
- latex: alternates[alternateId] || '',
395
- onChange: _this2.onAlternateAnswerChange(alternateId),
396
- onFocus: _this2.onAlternateFocus(alternateId),
397
- onDone: _this2.onAlternateDone(alternateId),
398
- error: error && error[alternateId]
399
- }), error && error[alternateId] ? /*#__PURE__*/React.createElement("div", {
400
- className: classes.errorText
401
- }, error[alternateId]) : null);
402
- }), /*#__PURE__*/React.createElement(_Button["default"], {
403
- className: classes.alternateButton,
404
- type: "primary",
405
- onClick: this.onAddAlternate
406
- }, "ADD ALTERNATE")));
407
- }
408
- }]);
409
- return Response;
410
- }(React.Component);
411
-
412
- (0, _defineProperty2["default"])(Response, "propTypes", {
413
- classes: _propTypes["default"].object.isRequired,
414
- defaultResponse: _propTypes["default"].bool,
415
- error: _propTypes["default"].object,
416
- mode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
417
- index: _propTypes["default"].number,
418
- onResponseChange: _propTypes["default"].func.isRequired,
419
- response: _propTypes["default"].object.isRequired,
420
- cIgnoreOrder: _propTypes["default"].object.isRequired,
421
- cAllowTrailingZeros: _propTypes["default"].object.isRequired
422
- });
423
- (0, _defineProperty2["default"])(Response, "defaultProps", {
424
- defaultResponse: false,
425
- mode: 'miscellaneous'
426
- });
427
-
428
- var _default = (0, _styles.withStyles)(styles)(Response);
429
-
430
- exports["default"] = _default;
431
- //# sourceMappingURL=response.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/response.jsx"],"names":["INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED","styles","theme","responseContainer","marginBottom","spacing","unit","width","minWidth","border","palette","grey","display","flexDirection","justifyContent","cardContent","paddingBottom","title","fontWeight","fontSize","flex","selectContainer","inputContainer","titleBar","alignItems","responseEditor","maxWidth","height","minHeight","mathToolbar","alternateButton","removeAlternateButton","marginLeft","color","errorText","typography","error","main","paddingTop","Response","props","name","evt","response","onResponseChange","index","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","alternatesLength","Object","keys","length","classes","mode","defaultResponse","cAllowTrailingZeros","cIgnoreOrder","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/pie-toolbox/config-ui';\nimport { MathToolbar } from '@pie-lib/pie-toolbox/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';\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 marginBottom: theme.spacing.unit * 2.5,\n width: '100%',\n minWidth: '548px',\n border: `1px solid ${theme.palette.grey[700]}`,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n cardContent: {\n paddingBottom: `${theme.spacing.unit * 2}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 marginBottom: theme.spacing.unit * 2,\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 alternateButton: {\n border: `1px solid ${theme.palette.grey['A100']}`,\n },\n removeAlternateButton: {\n marginLeft: theme.spacing.unit * 2,\n border: `1px solid ${theme.palette.grey['A100']}`,\n color: 'gray',\n fontSize: '0.8rem',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nclass Response extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n defaultResponse: PropTypes.bool,\n error: PropTypes.object,\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) => () => {\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=\"div\">\n Response {INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED ? (defaultResponse ? '' : index + 1) : ''}\n </Typography>\n\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\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\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\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\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\n <Button className={classes.alternateButton} type=\"primary\" onClick={this.onAddAlternate}>\n ADD ALTERNATE\n </Button>\n </CardContent>\n </Card>\n );\n }\n}\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getPluginProps = exports.generateValidationMessage = exports.ResponseTypes = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- 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; }
13
-
14
- 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; }
15
-
16
- var ResponseTypes = {
17
- advanced: 'Advanced Multi',
18
- simple: 'Simple'
19
- };
20
- exports.ResponseTypes = ResponseTypes;
21
-
22
- var generateValidationMessage = function generateValidationMessage() {
23
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
24
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
25
- var maxResponseAreas = config.maxResponseAreas;
26
- var responseType = model.responseType;
27
- var responseAreasMessage = '';
28
- var answersMessage = '\nAll correct answers (the primary and any alternates) should not be empty and should be unique.';
29
-
30
- if (responseType === 'Advanced Multi') {
31
- responseAreasMessage = '\nThere should be at least 1 ' + (maxResponseAreas ? "and at most ".concat(maxResponseAreas, " ") : '') + 'response area' + (maxResponseAreas ? 's' : '') + ' defined.';
32
- }
33
-
34
- return 'Validation requirements:' + answersMessage + responseAreasMessage;
35
- };
36
-
37
- exports.generateValidationMessage = generateValidationMessage;
38
-
39
- var getPluginProps = function getPluginProps() {
40
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
41
- var baseInputConfiguration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
42
- return _objectSpread(_objectSpread({}, baseInputConfiguration), props);
43
- };
44
-
45
- exports.getPluginProps = getPluginProps;
46
- //# 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","getPluginProps","props","baseInputConfiguration"],"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;;;;AAoBA,IAAME,cAAc,GAAG,SAAjBA,cAAiB;AAAA,MAACC,KAAD,uEAAS,EAAT;AAAA,MAAaC,sBAAb,uEAAsC,EAAtC;AAAA,yCACzBA,sBADyB,GAEzBD,KAFyB;AAAA,CAAvB","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\nexport const getPluginProps = (props = {}, baseInputConfiguration = {}) => ({\n ...baseInputConfiguration,\n ...props,\n});\n"],"file":"utils.js"}
@@ -1,34 +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
- equationEditor: '8',
28
- expression: '',
29
- question: '',
30
- responses: [],
31
- customKeys: []
32
- };
33
- exports["default"] = _default;
34
- //# sourceMappingURL=defaults.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["responseType","ResponseTypes","advanced","element","feedback","correct","type","incorrect","partial","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,cAAc,EAAE,GAjBH;AAkBbC,EAAAA,UAAU,EAAE,EAlBC;AAmBbC,EAAAA,QAAQ,EAAE,EAnBG;AAoBbC,EAAAA,SAAS,EAAE,EApBE;AAqBbC,EAAAA,UAAU,EAAE;AArBC,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 equationEditor: '8',\n expression: '',\n question: '',\n responses: [],\n customKeys: [],\n};\n"],"file":"defaults.js"}