@pie-element/math-inline 5.6.3 → 5.6.4-next.1016

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,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
@@ -51,13 +51,19 @@ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
51
51
 
52
52
  var _styles = require("@material-ui/core/styles");
53
53
 
54
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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; }
55
59
 
56
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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; }
57
63
 
58
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); }; }
59
65
 
60
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
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; } }
61
67
 
62
68
  // TODO once we support individual response correctness, we need to remove this constant
63
69
  var INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;
@@ -126,6 +132,11 @@ var styles = function styles(theme) {
126
132
  },
127
133
  configLabel: {
128
134
  marginRight: 'auto'
135
+ },
136
+ errorText: {
137
+ fontSize: '12px',
138
+ color: 'red',
139
+ padding: '5px 0'
129
140
  }
130
141
  };
131
142
  };
@@ -166,11 +177,24 @@ var Response = /*#__PURE__*/function (_React$Component) {
166
177
  onResponseChange(newResponse, index);
167
178
  };
168
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
+ });
169
193
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAnswerChange", function (answer) {
170
- var _this$props3 = _this.props,
171
- response = _this$props3.response,
172
- onResponseChange = _this$props3.onResponseChange,
173
- index = _this$props3.index;
194
+ var _this$props4 = _this.props,
195
+ response = _this$props4.response,
196
+ onResponseChange = _this$props4.onResponseChange,
197
+ index = _this$props4.index;
174
198
 
175
199
  var newResponse = _objectSpread({}, response);
176
200
 
@@ -179,10 +203,10 @@ var Response = /*#__PURE__*/function (_React$Component) {
179
203
  });
180
204
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlternateAnswerChange", function (alternateId) {
181
205
  return function (answer) {
182
- var _this$props4 = _this.props,
183
- response = _this$props4.response,
184
- onResponseChange = _this$props4.onResponseChange,
185
- index = _this$props4.index;
206
+ var _this$props5 = _this.props,
207
+ response = _this$props5.response,
208
+ onResponseChange = _this$props5.onResponseChange,
209
+ index = _this$props5.index;
186
210
 
187
211
  var newResponse = _objectSpread({}, response);
188
212
 
@@ -191,10 +215,10 @@ var Response = /*#__PURE__*/function (_React$Component) {
191
215
  };
192
216
  });
193
217
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAddAlternate", function () {
194
- var _this$props5 = _this.props,
195
- response = _this$props5.response,
196
- onResponseChange = _this$props5.onResponseChange,
197
- index = _this$props5.index;
218
+ var _this$props6 = _this.props,
219
+ response = _this$props6.response,
220
+ onResponseChange = _this$props6.onResponseChange,
221
+ index = _this$props6.index;
198
222
  var alternateIdCounter = _this.state.alternateIdCounter;
199
223
 
200
224
  var newResponse = _objectSpread({}, response);
@@ -212,10 +236,10 @@ var Response = /*#__PURE__*/function (_React$Component) {
212
236
  });
213
237
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRemoveAlternate", function (alternateId) {
214
238
  return function () {
215
- var _this$props6 = _this.props,
216
- response = _this$props6.response,
217
- onResponseChange = _this$props6.onResponseChange,
218
- index = _this$props6.index;
239
+ var _this$props7 = _this.props,
240
+ response = _this$props7.response,
241
+ onResponseChange = _this$props7.onResponseChange,
242
+ index = _this$props7.index;
219
243
 
220
244
  var newResponse = _objectSpread({}, response);
221
245
 
@@ -295,16 +319,21 @@ var Response = /*#__PURE__*/function (_React$Component) {
295
319
  value: function render() {
296
320
  var _this2 = this;
297
321
 
298
- var _this$props7 = this.props,
299
- classes = _this$props7.classes,
300
- mode = _this$props7.mode,
301
- defaultResponse = _this$props7.defaultResponse,
302
- index = _this$props7.index,
303
- response = _this$props7.response;
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;
304
331
  var showKeypad = this.state.showKeypad;
305
332
  var validation = response.validation,
306
333
  answer = response.answer,
307
- alternates = response.alternates;
334
+ alternates = response.alternates,
335
+ ignoreOrder = response.ignoreOrder,
336
+ allowTrailingZeros = response.allowTrailingZeros;
308
337
  var hasAlternates = Object.keys(alternates || {}).length > 0;
309
338
  var classNames = {
310
339
  editor: classes.responseEditor,
@@ -329,10 +358,26 @@ var Response = /*#__PURE__*/function (_React$Component) {
329
358
  }, /*#__PURE__*/React.createElement(_Select["default"], {
330
359
  className: classes.select,
331
360
  onChange: this.onChange('validation'),
332
- value: validation
361
+ value: validation || 'literal'
333
362
  }, /*#__PURE__*/React.createElement(_MenuItem["default"], {
334
363
  value: "literal"
335
- }, "Literal Validation")))), /*#__PURE__*/React.createElement("div", {
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", {
336
381
  className: classes.inputContainer
337
382
  }, /*#__PURE__*/React.createElement(_InputLabel["default"], null, "Correct Answer"), /*#__PURE__*/React.createElement(_mathToolbar.MathToolbar, {
338
383
  keypadMode: mode,
@@ -342,8 +387,11 @@ var Response = /*#__PURE__*/function (_React$Component) {
342
387
  latex: answer || '',
343
388
  onChange: this.onAnswerChange,
344
389
  onFocus: this.onFocus,
345
- onDone: this.onDone
346
- })), hasAlternates && Object.keys(alternates).map(function (alternateId, altIdx) {
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) {
347
395
  return /*#__PURE__*/React.createElement("div", {
348
396
  className: classes.inputContainer,
349
397
  key: alternateId
@@ -361,9 +409,12 @@ var Response = /*#__PURE__*/function (_React$Component) {
361
409
  latex: alternates[alternateId] || '',
362
410
  onChange: _this2.onAlternateAnswerChange(alternateId),
363
411
  onFocus: _this2.onAlternateFocus(alternateId),
364
- onDone: _this2.onAlternateDone(alternateId)
365
- }));
366
- }), validation === 'literal' && /*#__PURE__*/React.createElement("div", {
412
+ onDone: _this2.onAlternateDone(alternateId),
413
+ error: error && error[altIdx + 1]
414
+ }), error && error[altIdx + 1] ? /*#__PURE__*/React.createElement("div", {
415
+ className: classes.errorText
416
+ }, error[altIdx + 1]) : null);
417
+ }), /*#__PURE__*/React.createElement("div", {
367
418
  className: classes.configPanel
368
419
  }, /*#__PURE__*/React.createElement(_Button["default"], {
369
420
  className: classes.alternateButton,
@@ -383,7 +434,9 @@ var Response = /*#__PURE__*/function (_React$Component) {
383
434
  mode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
384
435
  index: _propTypes["default"].number,
385
436
  onResponseChange: _propTypes["default"].func.isRequired,
386
- response: _propTypes["default"].object.isRequired
437
+ response: _propTypes["default"].object.isRequired,
438
+ cIgnoreOrder: _propTypes["default"].object.isRequired,
439
+ cAllowTrailingZeros: _propTypes["default"].object.isRequired
387
440
  });
388
441
  (0, _defineProperty2["default"])(Response, "defaultProps", {
389
442
  defaultResponse: false,
@@ -1 +1 @@
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","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","validation","hasAlternates","classNames","editor","select","onChange","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';\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});\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 };\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 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]\n ? state.showKeypad.openCount\n : 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\n ? state.showKeypad.openCount + 1\n : 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]\n ? state.showKeypad.openCount + 1\n : 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 } = this.props;\n const { showKeypad } = this.state;\n const {\n validation,\n answer,\n alternates,\n } = 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{' '}\n {INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED\n ? defaultResponse\n ? ''\n : index + 1\n : ''}\n </Typography>\n <InputContainer\n label=\"Validation\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('validation')}\n value={validation}\n >\n <MenuItem value=\"literal\">Literal Validation</MenuItem>\n {/* Remove symbolic validation PD-690 <MenuItem value=\"symbolic\">Symbolic Validation</MenuItem>*/}\n </Select>\n </InputContainer>\n </div>\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 />\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 />\n </div>\n ))}\n {validation === 'literal' && (\n <div className={classes.configPanel}>\n <Button\n className={classes.alternateButton}\n type=\"primary\"\n onClick={this.onAddAlternate}\n >\n ADD ALTERNATE\n </Button>\n <div className={classes.checkboxContainer}>\n </div>\n </div>\n )}\n </CardContent>\n </Card>\n );\n }\n}\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
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]\n ? state.showKeypad.openCount\n : 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\n ? state.showKeypad.openCount + 1\n : 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]\n ? state.showKeypad.openCount + 1\n : 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 {\n classes,\n mode,\n defaultResponse,\n index,\n response,\n cAllowTrailingZeros,\n cIgnoreOrder,\n error\n } = this.props;\n\n const { showKeypad } = this.state;\n const {\n validation,\n answer,\n alternates,\n ignoreOrder,\n allowTrailingZeros,\n } = 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{' '}\n {INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED\n ? defaultResponse\n ? ''\n : index + 1\n : ''}\n </Typography>\n <InputContainer\n label=\"Validation\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('validation')}\n value={validation || 'literal'}\n >\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(\n 'allowTrailingZeros'\n )}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={\n <Checkbox\n checked={ignoreOrder}\n onChange={this.onLiteralOptionsChange('ignoreOrder')}\n />\n }\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[altIdx + 1]}\n />\n {error && error[altIdx + 1] ? <div className={classes.errorText}>{error[altIdx + 1]}</div> : null}\n </div>\n ))}\n <div className={classes.configPanel}>\n <Button\n className={classes.alternateButton}\n type=\"primary\"\n onClick={this.onAddAlternate}\n >\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"}
@@ -3,10 +3,27 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ResponseTypes = void 0;
6
+ exports.generateValidationMessage = exports.ResponseTypes = void 0;
7
7
  var ResponseTypes = {
8
8
  advanced: 'Advanced Multi',
9
9
  simple: 'Simple'
10
10
  };
11
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;
12
29
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.js"],"names":["ResponseTypes","advanced","simple"],"mappings":";;;;;;AAAO,IAAMA,aAAa,GAAG;AAC3BC,EAAAA,QAAQ,EAAE,gBADiB;AAE3BC,EAAAA,MAAM,EAAE;AAFmB,CAAtB","sourcesContent":["export const ResponseTypes = {\n advanced: 'Advanced Multi',\n simple: 'Simple'\n};"],"file":"utils.js"}
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,GAAG,kGAAvB;;AAEA,MAAIF,YAAY,KAAK,gBAArB,EAAuC;AACrCC,IAAAA,oBAAoB,GAAG,mCACpBF,gBAAgB,yBAAkBA,gBAAlB,SAAwC,EADpC,IAErB,eAFqB,IAEFA,gBAAgB,GAAG,GAAH,GAAS,EAFvB,IAE6B,WAFpD;AAGD;;AAED,SAAO,6BAA6BG,cAA7B,GAA8CD,oBAArD;AACD,CAdM","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 = '\\nAll correct answers (the primary and any alternates) should not be empty and should be unique.';\n\n if (responseType === 'Advanced Multi') {\n responseAreasMessage = '\\nThere should be at least 1 ' +\n (maxResponseAreas ? `and at most ${maxResponseAreas} ` : '') +\n 'response area' + (maxResponseAreas ? 's' : '') + ' defined.';\n }\n\n return 'Validation requirements:' + answersMessage + responseAreasMessage;\n};\n"],"file":"utils.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/math-inline-configure",
3
3
  "private": true,
4
- "version": "5.4.3",
4
+ "version": "5.6.15",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -11,11 +11,10 @@
11
11
  "@material-ui/icons": "^3.0.1",
12
12
  "@pie-framework/mathquill": "^1.1.0",
13
13
  "@pie-framework/pie-configure-events": "^1.2.0",
14
- "@pie-lib/config-ui": "^10.9.2",
15
- "@pie-lib/editable-html": "^7.16.19",
16
- "@pie-lib/math-evaluator": "^2.1.6",
17
- "@pie-lib/math-input": "^6.5.14",
18
- "@pie-lib/math-toolbar": "^1.7.14",
14
+ "@pie-lib/config-ui": "^10.13.3",
15
+ "@pie-lib/editable-html": "^7.22.6",
16
+ "@pie-lib/math-input": "^6.6.10",
17
+ "@pie-lib/math-toolbar": "^1.9.4",
19
18
  "classnames": "^2.2.5",
20
19
  "debug": "^3.1.0",
21
20
  "prop-types": "^15.6.2",
@@ -3,6 +3,107 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.6.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.7...@pie-element/math-inline-controller@5.6.8) (2022-03-28)
7
+
8
+ **Note:** Version bump only for package @pie-element/math-inline-controller
9
+
10
+
11
+
12
+
13
+
14
+ ## [5.6.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.6...@pie-element/math-inline-controller@5.6.7) (2022-03-22)
15
+
16
+ **Note:** Version bump only for package @pie-element/math-inline-controller
17
+
18
+
19
+
20
+
21
+
22
+ ## [5.6.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.5...@pie-element/math-inline-controller@5.6.6) (2022-03-08)
23
+
24
+ **Note:** Version bump only for package @pie-element/math-inline-controller
25
+
26
+
27
+
28
+
29
+
30
+ ## [5.6.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.1...@pie-element/math-inline-controller@5.6.2) (2021-11-29)
31
+
32
+ **Note:** Version bump only for package @pie-element/math-inline-controller
33
+
34
+
35
+
36
+
37
+
38
+ ## [5.6.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.4...@pie-element/math-inline-controller@5.6.1) (2021-11-11)
39
+
40
+ **Note:** Version bump only for package @pie-element/math-inline-controller
41
+
42
+
43
+
44
+
45
+
46
+ # [5.6.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.4.3...@pie-element/math-inline-controller@5.6.0) (2021-11-11)
47
+
48
+
49
+ ### Bug Fixes
50
+
51
+ * **math-inline:** Evaluate should not highlight answers when no correct response is defined + refactoring PD-994 ([58bfe7c](https://github.com/pie-framework/pie-elements/commit/58bfe7c209da39a31b20d2d905d14b5697aa5375))
52
+ * **math-inline:** Initialized correctResponse in evaluate mode ([27161c1](https://github.com/pie-framework/pie-elements/commit/27161c154c2dcc7bfd2a3cb3d7f8ec158f23beb8))
53
+
54
+
55
+ ### Features
56
+
57
+ * **math-inline:** Displayed a message when the item has additional correct responses PD-198 - BREAKING CHANGE: Added note property to the model ([7fce264](https://github.com/pie-framework/pie-elements/commit/7fce2649a9c8ddae2eb6643e5d5e9d307233a23b))
58
+
59
+
60
+
61
+
62
+
63
+
64
+ ## [5.5.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.3...@pie-element/math-inline-controller@5.5.4) (2021-11-01)
65
+
66
+ **Note:** Version bump only for package @pie-element/math-inline-controller
67
+
68
+
69
+
70
+
71
+
72
+ ## [5.5.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.2...@pie-element/math-inline-controller@5.5.3) (2021-10-18)
73
+
74
+ **Note:** Version bump only for package @pie-element/math-inline-controller
75
+
76
+
77
+
78
+
79
+
80
+ ## [5.5.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.1...@pie-element/math-inline-controller@5.5.2) (2021-10-04)
81
+
82
+ **Note:** Version bump only for package @pie-element/math-inline-controller
83
+
84
+
85
+
86
+
87
+
88
+ ## [5.5.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.0...@pie-element/math-inline-controller@5.5.1) (2021-09-01)
89
+
90
+ **Note:** Version bump only for package @pie-element/math-inline-controller
91
+
92
+
93
+
94
+
95
+
96
+ # [5.5.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.4.3...@pie-element/math-inline-controller@5.5.0) (2021-08-05)
97
+
98
+
99
+ ### Features
100
+
101
+ * **math-inline:** Displayed a message when the item has additional correct responses PD-198 - BREAKING CHANGE: Added note property to the model ([7fce264](https://github.com/pie-framework/pie-elements/commit/7fce2649a9c8ddae2eb6643e5d5e9d307233a23b))
102
+
103
+
104
+
105
+
106
+
6
107
  ## [5.4.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.4.1...@pie-element/math-inline-controller@5.4.3) (2021-08-05)
7
108
 
8
109
 
@@ -24,7 +24,8 @@ var _default = {
24
24
  type: 'none'
25
25
  }
26
26
  },
27
- equationEditor: '3',
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',
28
29
  expression: '',
29
30
  question: '',
30
31
  responses: [],
@@ -1 +1 @@
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: '3',\n expression: '',\n question: '',\n responses: [],\n customKeys: []\n};\n"],"file":"defaults.js"}
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"}