@pie-element/math-inline 5.6.4-next.678 → 5.6.4-next.723

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.
@@ -37,9 +37,9 @@ var _generalConfigBlock = _interopRequireDefault(require("./general-config-block
37
37
 
38
38
  var _utils = require("./utils");
39
39
 
40
- 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; }
40
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
41
41
 
42
- 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; }
42
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
43
43
 
44
44
  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); }; }
45
45
 
@@ -134,7 +134,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
134
134
  _ref$ignoreOrder = _ref.ignoreOrder,
135
135
  ignoreOrder = _ref$ignoreOrder === void 0 ? {} : _ref$ignoreOrder,
136
136
  _ref$allowTrailingZer = _ref.allowTrailingZeros,
137
- allowTrailingZeros = _ref$allowTrailingZer === void 0 ? {} : _ref$allowTrailingZer;
137
+ allowTrailingZeros = _ref$allowTrailingZer === void 0 ? {} : _ref$allowTrailingZer,
138
+ _ref$spellCheck = _ref.spellCheck,
139
+ spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck;
138
140
 
139
141
  log('[render] model', model);
140
142
 
@@ -142,7 +144,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
142
144
  rationaleEnabled = _ref2.rationaleEnabled,
143
145
  promptEnabled = _ref2.promptEnabled,
144
146
  teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
145
- feedbackEnabled = _ref2.feedbackEnabled;
147
+ feedbackEnabled = _ref2.feedbackEnabled,
148
+ spellCheckEnabled = _ref2.spellCheckEnabled;
146
149
 
147
150
  var toolbarOpts = {};
148
151
 
@@ -176,6 +179,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
176
179
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
177
180
  studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
178
181
  rationaleEnabled: rationale.settings && toggle(rationale.label),
182
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
179
183
  scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
180
184
  'ignoreOrder.enabled': ignoreOrder.settings && toggle(ignoreOrder.label),
181
185
  'allowTrailingZeros.enabled': allowTrailingZeros.settings && toggle(allowTrailingZeros.label)
@@ -193,7 +197,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
193
197
  onChange: this.changeTeacherInstructions,
194
198
  imageSupport: imageSupport,
195
199
  nonEmpty: false,
196
- toolbarOpts: toolbarOpts
200
+ toolbarOpts: toolbarOpts,
201
+ spellCheck: spellCheckEnabled
197
202
  })), /*#__PURE__*/_react["default"].createElement(_generalConfigBlock["default"], {
198
203
  imageSupport: imageSupport,
199
204
  model: model,
@@ -201,7 +206,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
201
206
  onChange: this.onChange,
202
207
  rationaleEnabled: rationaleEnabled,
203
208
  promptEnabled: promptEnabled,
204
- toolbarOpts: toolbarOpts
209
+ toolbarOpts: toolbarOpts,
210
+ spellCheck: spellCheckEnabled
205
211
  }), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
206
212
  feedback: model.feedback,
207
213
  onChange: this.onFeedbackChange,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingTop","prompt","Configure","model","props","onModelChanged","teacherInstructions","feedback","classes","imageSupport","configuration","onConfigurationChanged","responseType","studentInstructions","rationale","scoringType","ignoreOrder","allowTrailingZeros","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","feedbackEnabled","toolbarOpts","toolbarEditorPosition","position","config","label","ResponseTypes","simple","advanced","studentInstructionsEnabled","changeTeacherInstructions","onChange","onFeedbackChange","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport {\n FeedbackConfig,\n settings,\n layout,\n InputContainer,\n} from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html';\nimport GeneralConfigBlock from './general-config-block';\nimport { ResponseTypes } from './utils';\n\nconst log = debug('@pie-element:math-inline:configure');\nconst { Panel, toggle, radio } = settings;\n\nconst styles = theme => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n },\n content: {\n marginTop: theme.spacing.unit * 2\n },\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object\n };\n\n onChange = model => {\n this.props.onModelChanged(model);\n };\n\n changeTeacherInstructions = teacherInstructions => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions\n });\n };\n\n onFeedbackChange = feedback => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n onModelChanged(model);\n };\n\n render() {\n const { classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged } = this.props;\n const {\n feedback = {},\n responseType = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n prompt = {},\n scoringType = {},\n ignoreOrder = {},\n allowTrailingZeros={}\n } = configuration || {};\n log('[render] model', model);\n const { rationaleEnabled, promptEnabled, teacherInstructionsEnabled, feedbackEnabled } = model || {};\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n return (\n <div>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => onModelChanged(model)}\n onChangeConfiguration={config => onConfigurationChanged(config)}\n groups={{\n 'Settings': {\n responseType: responseType.settings &&\n radio(responseType.label, [ResponseTypes.simple, ResponseTypes.advanced]),\n feedbackEnabled: feedback.settings &&\n toggle(feedback.label),\n 'promptEnabled': prompt.settings &&\n toggle(prompt.label)\n },\n 'Properties': {\n teacherInstructionsEnabled: teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n scoringType: scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric']),\n 'ignoreOrder.enabled':\n ignoreOrder.settings && toggle(ignoreOrder.label),\n 'allowTrailingZeros.enabled':\n allowTrailingZeros.settings && toggle(allowTrailingZeros.label),\n },\n }}\n />\n }\n >\n <div>\n <div className={classes.content}>\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n <GeneralConfigBlock\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n onChange={this.onChange}\n rationaleEnabled={rationaleEnabled}\n promptEnabled={promptEnabled}\n toolbarOpts={toolbarOpts}\n />\n {\n feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.onFeedbackChange}\n toolbarOpts={toolbarOpts}\n />\n )\n }\n </div>\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
1
+ {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingTop","prompt","Configure","model","props","onModelChanged","teacherInstructions","feedback","classes","imageSupport","configuration","onConfigurationChanged","responseType","studentInstructions","rationale","scoringType","ignoreOrder","allowTrailingZeros","spellCheck","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","feedbackEnabled","spellCheckEnabled","toolbarOpts","toolbarEditorPosition","position","config","label","ResponseTypes","simple","advanced","studentInstructionsEnabled","changeTeacherInstructions","onChange","onFeedbackChange","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport {\n FeedbackConfig,\n settings,\n layout,\n InputContainer,\n} from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html';\nimport GeneralConfigBlock from './general-config-block';\nimport { ResponseTypes } from './utils';\n\nconst log = debug('@pie-element:math-inline:configure');\nconst { Panel, toggle, radio } = settings;\n\nconst styles = theme => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n },\n content: {\n marginTop: theme.spacing.unit * 2\n },\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object\n };\n\n onChange = model => {\n this.props.onModelChanged(model);\n };\n\n changeTeacherInstructions = teacherInstructions => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions\n });\n };\n\n onFeedbackChange = feedback => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n onModelChanged(model);\n };\n\n render() {\n const { classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged } = this.props;\n const {\n feedback = {},\n responseType = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n prompt = {},\n scoringType = {},\n ignoreOrder = {},\n allowTrailingZeros={},\n spellCheck = {}\n } = configuration || {};\n log('[render] model', model);\n const { rationaleEnabled, promptEnabled, teacherInstructionsEnabled, feedbackEnabled, spellCheckEnabled } = model || {};\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n return (\n <div>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => onModelChanged(model)}\n onChangeConfiguration={config => onConfigurationChanged(config)}\n groups={{\n 'Settings': {\n responseType: responseType.settings &&\n radio(responseType.label, [ResponseTypes.simple, ResponseTypes.advanced]),\n feedbackEnabled: feedback.settings &&\n toggle(feedback.label),\n 'promptEnabled': prompt.settings &&\n toggle(prompt.label)\n },\n 'Properties': {\n teacherInstructionsEnabled: teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric']),\n 'ignoreOrder.enabled':\n ignoreOrder.settings && toggle(ignoreOrder.label),\n 'allowTrailingZeros.enabled':\n allowTrailingZeros.settings && toggle(allowTrailingZeros.label),\n },\n }}\n />\n }\n >\n <div>\n <div className={classes.content}>\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n <GeneralConfigBlock\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n onChange={this.onChange}\n rationaleEnabled={rationaleEnabled}\n promptEnabled={promptEnabled}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n {\n feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.onFeedbackChange}\n toolbarOpts={toolbarOpts}\n />\n )\n }\n </div>\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
@@ -65,6 +65,11 @@ var _default = {
65
65
  settings: true,
66
66
  label: 'Rationale'
67
67
  },
68
+ spellCheck: {
69
+ label: "Spellcheck",
70
+ settings: true,
71
+ enabled: true
72
+ },
68
73
  scoringType: {
69
74
  settings: false,
70
75
  label: 'Scoring Type'
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","partialScoring","responseType","ResponseTypes","advanced","element","feedback","correct","type","incorrect","partial","equationEditor","expression","rationale","note","prompt","responses","customKeys","scoringType","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","validationDefault","ignoreOrderDefault","allowTrailingZerosDefault","configuration","settings","label","studentInstructions","teacherInstructions","ignoreOrder","enabled","allowTrailingZeros"],"mappings":";;;;;;;AAAA;;AAEA;AACA;AACA;AACA;eAEe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,cAAc,EAAE,IADX;AAELC,IAAAA,YAAY,EAAEC,qBAAcC,QAFvB;AAGLC,IAAAA,OAAO,EAAE,aAHJ;AAILC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,OAAO,EAAE;AACP,mBAAS,SADF;AAEPC,QAAAA,IAAI,EAAE;AAFC,OADD;AAKRC,MAAAA,SAAS,EAAE;AACT,mBAAS,WADA;AAETD,QAAAA,IAAI,EAAE;AAFG,OALH;AASRE,MAAAA,OAAO,EAAE;AACP,mBAAS,QADF;AAEPF,QAAAA,IAAI,EAAE;AAFC;AATD,KAJL;AAkBLG,IAAAA,cAAc,EAAE,GAlBX;AAmBLC,IAAAA,UAAU,EAAE,EAnBP;AAoBLC,IAAAA,SAAS,EAAE,sBApBN;AAqBLC,IAAAA,IAAI,EACF,kJAtBG;AAuBLC,IAAAA,MAAM,EAAE,EAvBH;AAwBLC,IAAAA,SAAS,EAAE,EAxBN;AAyBLC,IAAAA,UAAU,EAAE,EAzBP;AA0BLC,IAAAA,WAAW,EAAE,MA1BR;AA2BLC,IAAAA,eAAe,EAAE,IA3BZ;AA4BLC,IAAAA,aAAa,EAAE,IA5BV;AA6BLC,IAAAA,gBAAgB,EAAE,IA7Bb;AA8BLC,IAAAA,0BAA0B,EAAE,IA9BvB;AA+BLC,IAAAA,0BAA0B,EAAE,IA/BvB;AAgCLC,IAAAA,qBAAqB,EAAE,QAhClB;AAiCLC,IAAAA,iBAAiB,EAAE,SAjCd;AAkCLC,IAAAA,kBAAkB,EAAE,KAlCf;AAmCLC,IAAAA,yBAAyB,EAAE;AAnCtB,GADM;AAsCbC,EAAAA,aAAa,EAAE;AACbb,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KADK;AAKbxB,IAAAA,QAAQ,EAAE;AACRuB,MAAAA,QAAQ,EAAE,IADF;AAERC,MAAAA,KAAK,EAAE;AAFC,KALG;AASb5B,IAAAA,YAAY,EAAE;AACZ2B,MAAAA,QAAQ,EAAE,IADE;AAEZC,MAAAA,KAAK,EAAE;AAFK,KATD;AAabjB,IAAAA,SAAS,EAAE;AACTgB,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAbE;AAiBbZ,IAAAA,WAAW,EAAE;AACXW,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KAjBA;AAqBbC,IAAAA,mBAAmB,EAAE;AACnBF,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KArBR;AAyBbE,IAAAA,mBAAmB,EAAE;AACnBH,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAzBR;AA6Bb7B,IAAAA,cAAc,EAAE;AACd4B,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KA7BH;AAiCbG,IAAAA,WAAW,EAAE;AACXJ,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE,cAFI;AAGXI,MAAAA,OAAO,EAAE;AAHE,KAjCA;AAsCbC,IAAAA,kBAAkB,EAAE;AAClBN,MAAAA,QAAQ,EAAE,KADQ;AAElBC,MAAAA,KAAK,EAAE,sBAFW;AAGlBI,MAAAA,OAAO,EAAE;AAHS;AAtCP;AAtCF,C","sourcesContent":["import { ResponseTypes } from './utils';\n\n/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configure\n */\n\nexport default {\n model: {\n partialScoring: true,\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 rationale: 'Rationale goes here.',\n note:\n '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 prompt: '',\n responses: [],\n customKeys: [],\n scoringType: 'auto',\n feedbackEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n validationDefault: 'literal',\n ignoreOrderDefault: false,\n allowTrailingZerosDefault: false,\n },\n configuration: {\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n },\n responseType: {\n settings: true,\n label: 'Response type',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n ignoreOrder: {\n settings: false,\n label: 'Ignore Order',\n enabled: true,\n },\n allowTrailingZeros: {\n settings: false,\n label: 'Allow Trailing Zeros',\n enabled: true\n },\n },\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","partialScoring","responseType","ResponseTypes","advanced","element","feedback","correct","type","incorrect","partial","equationEditor","expression","rationale","note","prompt","responses","customKeys","scoringType","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","validationDefault","ignoreOrderDefault","allowTrailingZerosDefault","configuration","settings","label","spellCheck","enabled","studentInstructions","teacherInstructions","ignoreOrder","allowTrailingZeros"],"mappings":";;;;;;;AAAA;;AAEA;AACA;AACA;AACA;eAEe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,cAAc,EAAE,IADX;AAELC,IAAAA,YAAY,EAAEC,qBAAcC,QAFvB;AAGLC,IAAAA,OAAO,EAAE,aAHJ;AAILC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,OAAO,EAAE;AACP,mBAAS,SADF;AAEPC,QAAAA,IAAI,EAAE;AAFC,OADD;AAKRC,MAAAA,SAAS,EAAE;AACT,mBAAS,WADA;AAETD,QAAAA,IAAI,EAAE;AAFG,OALH;AASRE,MAAAA,OAAO,EAAE;AACP,mBAAS,QADF;AAEPF,QAAAA,IAAI,EAAE;AAFC;AATD,KAJL;AAkBLG,IAAAA,cAAc,EAAE,GAlBX;AAmBLC,IAAAA,UAAU,EAAE,EAnBP;AAoBLC,IAAAA,SAAS,EAAE,sBApBN;AAqBLC,IAAAA,IAAI,EACF,kJAtBG;AAuBLC,IAAAA,MAAM,EAAE,EAvBH;AAwBLC,IAAAA,SAAS,EAAE,EAxBN;AAyBLC,IAAAA,UAAU,EAAE,EAzBP;AA0BLC,IAAAA,WAAW,EAAE,MA1BR;AA2BLC,IAAAA,eAAe,EAAE,IA3BZ;AA4BLC,IAAAA,aAAa,EAAE,IA5BV;AA6BLC,IAAAA,gBAAgB,EAAE,IA7Bb;AA8BLC,IAAAA,0BAA0B,EAAE,IA9BvB;AA+BLC,IAAAA,0BAA0B,EAAE,IA/BvB;AAgCLC,IAAAA,qBAAqB,EAAE,QAhClB;AAiCLC,IAAAA,iBAAiB,EAAE,SAjCd;AAkCLC,IAAAA,kBAAkB,EAAE,KAlCf;AAmCLC,IAAAA,yBAAyB,EAAE;AAnCtB,GADM;AAsCbC,EAAAA,aAAa,EAAE;AACbb,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KADK;AAKbxB,IAAAA,QAAQ,EAAE;AACRuB,MAAAA,QAAQ,EAAE,IADF;AAERC,MAAAA,KAAK,EAAE;AAFC,KALG;AASb5B,IAAAA,YAAY,EAAE;AACZ2B,MAAAA,QAAQ,EAAE,IADE;AAEZC,MAAAA,KAAK,EAAE;AAFK,KATD;AAabjB,IAAAA,SAAS,EAAE;AACTgB,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAbE;AAiBbC,IAAAA,UAAU,EAAE;AACVD,MAAAA,KAAK,EAAE,YADG;AAEVD,MAAAA,QAAQ,EAAC,IAFC;AAGVG,MAAAA,OAAO,EAAC;AAHE,KAjBC;AAsBbd,IAAAA,WAAW,EAAE;AACXW,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KAtBA;AA0BbG,IAAAA,mBAAmB,EAAE;AACnBJ,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KA1BR;AA8BbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KA9BR;AAkCb7B,IAAAA,cAAc,EAAE;AACd4B,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KAlCH;AAsCbK,IAAAA,WAAW,EAAE;AACXN,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE,cAFI;AAGXE,MAAAA,OAAO,EAAE;AAHE,KAtCA;AA2CbI,IAAAA,kBAAkB,EAAE;AAClBP,MAAAA,QAAQ,EAAE,KADQ;AAElBC,MAAAA,KAAK,EAAE,sBAFW;AAGlBE,MAAAA,OAAO,EAAE;AAHS;AA3CP;AAtCF,C","sourcesContent":["import { ResponseTypes } from './utils';\n\n/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configure\n */\n\nexport default {\n model: {\n partialScoring: true,\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 rationale: 'Rationale goes here.',\n note:\n '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 prompt: '',\n responses: [],\n customKeys: [],\n scoringType: 'auto',\n feedbackEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n validationDefault: 'literal',\n ignoreOrderDefault: false,\n allowTrailingZerosDefault: false,\n },\n configuration: {\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n },\n responseType: {\n settings: true,\n label: 'Response type',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n spellCheck: {\n label: \"Spellcheck\",\n settings:true,\n enabled:true\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n ignoreOrder: {\n settings: false,\n label: 'Ignore Order',\n enabled: true,\n },\n allowTrailingZeros: {\n settings: false,\n label: 'Allow Trailing Zeros',\n enabled: true\n },\n },\n};\n"],"file":"defaults.js"}
@@ -57,9 +57,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
57
57
 
58
58
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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
59
 
60
- 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; }
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
61
 
62
- 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; }
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
63
 
64
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
65
 
@@ -398,7 +398,8 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
398
398
  promptEquationEditor = _model$promptEquation === void 0 ? '8' : _model$promptEquation,
399
399
  responses = model.responses,
400
400
  responseType = model.responseType,
401
- rationale = model.rationale;
401
+ rationale = model.rationale,
402
+ spellCheckEnabled = model.spellCheckEnabled;
402
403
 
403
404
  var _ref = configuration || {},
404
405
  _ref$rationale = _ref.rationale,
@@ -430,7 +431,8 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
430
431
  onChange: this.onChange('prompt'),
431
432
  imageSupport: imageSupport,
432
433
  nonEmpty: false,
433
- toolbarOpts: toolbarOpts
434
+ toolbarOpts: toolbarOpts,
435
+ spellCheck: spellCheckEnabled
434
436
  })), rationaleEnabled && /*#__PURE__*/React.createElement(_configUi.InputContainer, {
435
437
  label: cRationale.label,
436
438
  className: classes.promptHolder
@@ -445,7 +447,8 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
445
447
  onChange: this.onChange('rationale'),
446
448
  imageSupport: imageSupport,
447
449
  nonEmpty: false,
448
- toolbarOpts: toolbarOpts
450
+ toolbarOpts: toolbarOpts,
451
+ spellCheck: spellCheckEnabled
449
452
  })), responseType === _utils.ResponseTypes.advanced && [/*#__PURE__*/React.createElement(_configUi.InputContainer, {
450
453
  key: "templateEditorType",
451
454
  label: "Response Template Equation Editor",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/general-config-block.jsx"],"names":["registered","styles","theme","container","marginTop","spacing","unit","marginBottom","display","flexDirection","templateTitle","fontSize","addResponseButton","border","width","flexContainer","alignItems","justifyContent","selectContainer","flex","inputContainer","responseEditor","minWidth","maxWidth","height","minHeight","textAlign","padding","promptHolder","paddingBottom","prompt","paddingTop","blockContainer","margin","blockContainerGeneric","blockResponse","color","background","borderRight","blockResponseGeneric","blockMath","REGEX","TEMPORARY_RESPONSE_FIELD","ANSWER_BLOCK_REGEX","NEWLINE_BLOCK","NEWLINE_LATEX","prepareForStatic","expression","answerBlocks","replace","prepareForModel","GeneralConfigBlock","props","name","evtOrValue","model","onChange","newModel","target","value","setState","showKeypad","responseAreas","state","root","Object","keys","length","forEach","responseId","idx","el","querySelector","indexEl","MQ","MathQuill","getInterface","StaticMath","textContent","responseIdCounter","newCounter","responses","find","response","id","validation","answer","alternates","concat","index","classes","window","registerEmbed","data","genericAnswerBlock","htmlString","text","latex","handleAnswerBlockDomUpdate","imageSupport","configuration","promptEnabled","rationaleEnabled","toolbarOpts","equationEditor","promptEquationEditor","responseType","rationale","cRationale","cPrompt","ignoreOrder","cIgnoreOrder","allowTrailingZeros","cAllowTrailingZeros","classNames","editor","mathToolbar","responsesToUse","ResponseTypes","advanced","slice","r","label","onPromptFocus","math","controlledKeypadMode","select","onFocus","onDone","map","simple","onResponseChange","React","Component","PropTypes","object","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Response from './response';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport isEqual from 'lodash/isEqual';\nimport { ResponseTypes } from './utils';\nimport MathQuill from '@pie-framework/mathquill';\n\nlet registered = false;\n\nconst styles = (theme) => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n },\n templateTitle: {\n fontSize: '0.85rem',\n },\n addResponseButton: {\n border: '1px solid lightgrey',\n float: 'right',\n width: '150px',\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n selectContainer: {\n flex: 'initial',\n width: '40%',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n marginBottom: theme.spacing.unit * 4,\n display: 'flex',\n flexDirection: 'column',\n width: '90%',\n },\n responseEditor: {\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: 'inherit',\n height: 'auto',\n minHeight: '130px',\n textAlign: 'left',\n padding: theme.spacing.unit,\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px',\n },\n blockContainer: {\n margin: theme.spacing.unit,\n display: 'inline-flex',\n border: '2px solid grey',\n },\n blockContainerGeneric: {\n margin: theme.spacing.unit / 2,\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: 'lightgrey',\n fontSize: '0.8rem',\n padding: theme.spacing.unit / 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: '2px solid grey',\n },\n blockResponseGeneric: {\n borderRight: 0,\n },\n blockMath: {\n color: '#bdbdbd',\n padding: theme.spacing.unit / 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 8,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n});\n\nconst REGEX = /{{response}}/gm;\nconst TEMPORARY_RESPONSE_FIELD = /\\\\%response\\\\%/gm;\nconst ANSWER_BLOCK_REGEX = /\\\\embed\\{answerBlock\\}\\[r\\d*\\]/g;\nconst NEWLINE_BLOCK = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = /\\\\newline/g;\n\nfunction prepareForStatic(expression) {\n if (expression) {\n let answerBlocks = 1; // assume one at least\n\n return expression.replace(\n REGEX,\n () => `\\\\embed{answerBlock}[r${answerBlocks++}]`\n ).replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction prepareForModel(expression) {\n if (expression) {\n return expression\n .replace(ANSWER_BLOCK_REGEX, () => '{{response}}')\n .replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}')\n .replace(NEWLINE_BLOCK, () => '\\\\newline');\n }\n}\n\nclass GeneralConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n configuration: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n promptEnabled: PropTypes.bool,\n rationaleEnabled: PropTypes.bool,\n toolbarOpts: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n const responseAreas = {};\n\n if (props.model && props.model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n props.model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n this.state = {\n showKeypad: false,\n responseAreas,\n responseIdCounter: Object.keys(responseAreas).length,\n };\n }\n\n onChange = (name) => (evtOrValue) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (typeof evtOrValue === 'object') {\n newModel[name] = evtOrValue.target.value;\n } else {\n newModel[name] = evtOrValue;\n }\n\n if (name === 'expression') {\n newModel[name] = prepareForModel(evtOrValue);\n }\n\n onChange(newModel);\n };\n\n onDone = () => {\n this.setState({ showKeypad: false });\n };\n\n onFocus = () => {\n this.setState({ showKeypad: true });\n };\n\n onPromptFocus = () => {\n this.setState({ showKeypad: false });\n };\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n // not used until we implement individual answer tracking\n // const individualAnswerBlock = `<div class=\"${classes.blockContainer}\">\n // <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n // <div class=\"${classes.blockMath}\">\n // <span id=\"${data}\"></span>\n // </div>\n // </div>`;\n\n const genericAnswerBlock = `<div class=\"${cx(\n classes.blockContainer,\n classes.blockContainerGeneric\n )}\">\n <div class=\"${cx(\n classes.blockResponse,\n classes.blockResponseGeneric\n )}\" id=\"${data}Index\">Response</div>\n </div>`;\n\n return {\n htmlString: genericAnswerBlock,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = this.props;\n\n const responseAreas = {};\n\n if (model && model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n if (!isEqual(responseAreas, this.state.responseAreas)) {\n this.setState(\n {\n responseAreas,\n },\n () => {\n if (this.root && Object.keys(responseAreas).length) {\n Object.keys(responseAreas).forEach((responseId, idx) => {\n const el = this.root.querySelector(`#${responseId}`);\n const indexEl = this.root.querySelector(`#${responseId}Index`);\n\n if (el) {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n // We no longer have individual answers, so we cannot set text content of blocks\n // el.textContent = response.answer;\n MQ.StaticMath(el);\n indexEl.textContent = `R${idx + 1}`;\n }\n });\n }\n }\n );\n }\n };\n\n onAddResponse = () => {\n const { model, onChange } = this.props;\n const { responseIdCounter } = this.state;\n const newModel = { ...model };\n\n let newCounter = responseIdCounter;\n\n while (model.responses.find((response) => response.id === newCounter)) {\n newCounter++;\n }\n\n const response = {\n id: newCounter,\n validation: 'literal',\n answer: '',\n alternates: {},\n };\n\n newModel.responses = newModel.responses.concat(response);\n onChange(newModel);\n\n this.setState({\n responseIdCounter: response.id,\n });\n };\n\n onResponseChange = (response, index) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n newModel.responses[index] = response;\n onChange(newModel);\n };\n\n render() {\n const {\n classes,\n model,\n imageSupport,\n configuration,\n promptEnabled,\n rationaleEnabled,\n toolbarOpts\n } = this.props;\n const { showKeypad } = this.state;\n const {\n prompt,\n expression,\n equationEditor,\n promptEquationEditor = '8',\n responses,\n responseType,\n rationale,\n } = model;\n const { rationale: cRationale = {}, prompt: cPrompt = {}, ignoreOrder: cIgnoreOrder = {}, allowTrailingZeros: cAllowTrailingZeros = {} } = configuration || {};\n\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n\n const responsesToUse =\n responseType === ResponseTypes.advanced\n ? responses\n : responses.slice(0, 1);\n\n return (\n <div\n ref={(r) => (this.root = r || this.root)}\n className={classes.container}\n >\n {promptEnabled && (\n <InputContainer label={cPrompt.label} className={classes.promptHolder}>\n <EditableHtml\n onFocus={this.onPromptFocus}\n className={classes.prompt}\n markup={prompt || ''}\n onChange={this.onChange('prompt')}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n {rationaleEnabled && (\n <InputContainer\n label={cRationale.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={rationale || ''}\n pluginProps={{\n math: {\n controlledKeypadMode: false\n }\n }}\n onChange={this.onChange('rationale')}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n {responseType === ResponseTypes.advanced && ([\n <InputContainer\n key=\"templateEditorType\"\n label=\"Response Template Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('promptEquationEditor')}\n value={promptEquationEditor}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>,\n <div className={classes.inputContainer} key=\"templateHolder\">\n <InputLabel className={classes.templateTitle}>\n RESPONSE TEMPLATE\n </InputLabel>\n <MathToolbar\n classNames={classNames}\n allowAnswerBlock\n keypadMode={promptEquationEditor}\n controlledKeypad\n showKeypad={showKeypad}\n latex={prepareForStatic(expression) || ''}\n onChange={this.onChange('expression')}\n onFocus={this.onFocus}\n onDone={this.onDone}\n />\n </div>\n ])}\n <h3>Define Correct Response</h3>\n <div className={classes.flexContainer}>\n <InputContainer\n label=\"Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('equationEditor')}\n value={equationEditor}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>\n </div>\n {responsesToUse.map((response, idx) => (\n <Response\n key={response.id}\n mode={equationEditor}\n response={response}\n defaultResponse={responseType === ResponseTypes.simple}\n onResponseChange={this.onResponseChange}\n index={idx}\n cIgnoreOrder={cIgnoreOrder}\n cAllowTrailingZeros={cAllowTrailingZeros}\n />\n ))}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GeneralConfigBlock);\n"],"file":"general-config-block.js"}
1
+ {"version":3,"sources":["../src/general-config-block.jsx"],"names":["registered","styles","theme","container","marginTop","spacing","unit","marginBottom","display","flexDirection","templateTitle","fontSize","addResponseButton","border","width","flexContainer","alignItems","justifyContent","selectContainer","flex","inputContainer","responseEditor","minWidth","maxWidth","height","minHeight","textAlign","padding","promptHolder","paddingBottom","prompt","paddingTop","blockContainer","margin","blockContainerGeneric","blockResponse","color","background","borderRight","blockResponseGeneric","blockMath","REGEX","TEMPORARY_RESPONSE_FIELD","ANSWER_BLOCK_REGEX","NEWLINE_BLOCK","NEWLINE_LATEX","prepareForStatic","expression","answerBlocks","replace","prepareForModel","GeneralConfigBlock","props","name","evtOrValue","model","onChange","newModel","target","value","setState","showKeypad","responseAreas","state","root","Object","keys","length","forEach","responseId","idx","el","querySelector","indexEl","MQ","MathQuill","getInterface","StaticMath","textContent","responseIdCounter","newCounter","responses","find","response","id","validation","answer","alternates","concat","index","classes","window","registerEmbed","data","genericAnswerBlock","htmlString","text","latex","handleAnswerBlockDomUpdate","imageSupport","configuration","promptEnabled","rationaleEnabled","toolbarOpts","equationEditor","promptEquationEditor","responseType","rationale","spellCheckEnabled","cRationale","cPrompt","ignoreOrder","cIgnoreOrder","allowTrailingZeros","cAllowTrailingZeros","classNames","editor","mathToolbar","responsesToUse","ResponseTypes","advanced","slice","r","label","onPromptFocus","math","controlledKeypadMode","select","onFocus","onDone","map","simple","onResponseChange","React","Component","PropTypes","object","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Response from './response';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport isEqual from 'lodash/isEqual';\nimport { ResponseTypes } from './utils';\nimport MathQuill from '@pie-framework/mathquill';\n\nlet registered = false;\n\nconst styles = (theme) => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n },\n templateTitle: {\n fontSize: '0.85rem',\n },\n addResponseButton: {\n border: '1px solid lightgrey',\n float: 'right',\n width: '150px',\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n selectContainer: {\n flex: 'initial',\n width: '40%',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n marginBottom: theme.spacing.unit * 4,\n display: 'flex',\n flexDirection: 'column',\n width: '90%',\n },\n responseEditor: {\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: 'inherit',\n height: 'auto',\n minHeight: '130px',\n textAlign: 'left',\n padding: theme.spacing.unit,\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px',\n },\n blockContainer: {\n margin: theme.spacing.unit,\n display: 'inline-flex',\n border: '2px solid grey',\n },\n blockContainerGeneric: {\n margin: theme.spacing.unit / 2,\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: 'lightgrey',\n fontSize: '0.8rem',\n padding: theme.spacing.unit / 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: '2px solid grey',\n },\n blockResponseGeneric: {\n borderRight: 0,\n },\n blockMath: {\n color: '#bdbdbd',\n padding: theme.spacing.unit / 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 8,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n});\n\nconst REGEX = /{{response}}/gm;\nconst TEMPORARY_RESPONSE_FIELD = /\\\\%response\\\\%/gm;\nconst ANSWER_BLOCK_REGEX = /\\\\embed\\{answerBlock\\}\\[r\\d*\\]/g;\nconst NEWLINE_BLOCK = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = /\\\\newline/g;\n\nfunction prepareForStatic(expression) {\n if (expression) {\n let answerBlocks = 1; // assume one at least\n\n return expression.replace(\n REGEX,\n () => `\\\\embed{answerBlock}[r${answerBlocks++}]`\n ).replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction prepareForModel(expression) {\n if (expression) {\n return expression\n .replace(ANSWER_BLOCK_REGEX, () => '{{response}}')\n .replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}')\n .replace(NEWLINE_BLOCK, () => '\\\\newline');\n }\n}\n\nclass GeneralConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n configuration: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n promptEnabled: PropTypes.bool,\n rationaleEnabled: PropTypes.bool,\n toolbarOpts: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n const responseAreas = {};\n\n if (props.model && props.model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n props.model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n this.state = {\n showKeypad: false,\n responseAreas,\n responseIdCounter: Object.keys(responseAreas).length,\n };\n }\n\n onChange = (name) => (evtOrValue) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (typeof evtOrValue === 'object') {\n newModel[name] = evtOrValue.target.value;\n } else {\n newModel[name] = evtOrValue;\n }\n\n if (name === 'expression') {\n newModel[name] = prepareForModel(evtOrValue);\n }\n\n onChange(newModel);\n };\n\n onDone = () => {\n this.setState({ showKeypad: false });\n };\n\n onFocus = () => {\n this.setState({ showKeypad: true });\n };\n\n onPromptFocus = () => {\n this.setState({ showKeypad: false });\n };\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n // not used until we implement individual answer tracking\n // const individualAnswerBlock = `<div class=\"${classes.blockContainer}\">\n // <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n // <div class=\"${classes.blockMath}\">\n // <span id=\"${data}\"></span>\n // </div>\n // </div>`;\n\n const genericAnswerBlock = `<div class=\"${cx(\n classes.blockContainer,\n classes.blockContainerGeneric\n )}\">\n <div class=\"${cx(\n classes.blockResponse,\n classes.blockResponseGeneric\n )}\" id=\"${data}Index\">Response</div>\n </div>`;\n\n return {\n htmlString: genericAnswerBlock,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = this.props;\n\n const responseAreas = {};\n\n if (model && model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n if (!isEqual(responseAreas, this.state.responseAreas)) {\n this.setState(\n {\n responseAreas,\n },\n () => {\n if (this.root && Object.keys(responseAreas).length) {\n Object.keys(responseAreas).forEach((responseId, idx) => {\n const el = this.root.querySelector(`#${responseId}`);\n const indexEl = this.root.querySelector(`#${responseId}Index`);\n\n if (el) {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n // We no longer have individual answers, so we cannot set text content of blocks\n // el.textContent = response.answer;\n MQ.StaticMath(el);\n indexEl.textContent = `R${idx + 1}`;\n }\n });\n }\n }\n );\n }\n };\n\n onAddResponse = () => {\n const { model, onChange } = this.props;\n const { responseIdCounter } = this.state;\n const newModel = { ...model };\n\n let newCounter = responseIdCounter;\n\n while (model.responses.find((response) => response.id === newCounter)) {\n newCounter++;\n }\n\n const response = {\n id: newCounter,\n validation: 'literal',\n answer: '',\n alternates: {},\n };\n\n newModel.responses = newModel.responses.concat(response);\n onChange(newModel);\n\n this.setState({\n responseIdCounter: response.id,\n });\n };\n\n onResponseChange = (response, index) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n newModel.responses[index] = response;\n onChange(newModel);\n };\n\n render() {\n const {\n classes,\n model,\n imageSupport,\n configuration,\n promptEnabled,\n rationaleEnabled,\n toolbarOpts\n } = this.props;\n const { showKeypad } = this.state;\n const {\n prompt,\n expression,\n equationEditor,\n promptEquationEditor = '8',\n responses,\n responseType,\n rationale,\n spellCheckEnabled\n } = model;\n const { rationale: cRationale = {}, prompt: cPrompt = {}, ignoreOrder: cIgnoreOrder = {}, allowTrailingZeros: cAllowTrailingZeros = {} } = configuration || {};\n\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n\n const responsesToUse =\n responseType === ResponseTypes.advanced\n ? responses\n : responses.slice(0, 1);\n\n return (\n <div\n ref={(r) => (this.root = r || this.root)}\n className={classes.container}\n >\n {promptEnabled && (\n <InputContainer label={cPrompt.label} className={classes.promptHolder}>\n <EditableHtml\n onFocus={this.onPromptFocus}\n className={classes.prompt}\n markup={prompt || ''}\n onChange={this.onChange('prompt')}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n {rationaleEnabled && (\n <InputContainer\n label={cRationale.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={rationale || ''}\n pluginProps={{\n math: {\n controlledKeypadMode: false\n }\n }}\n onChange={this.onChange('rationale')}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n {responseType === ResponseTypes.advanced && ([\n <InputContainer\n key=\"templateEditorType\"\n label=\"Response Template Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('promptEquationEditor')}\n value={promptEquationEditor}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>,\n <div className={classes.inputContainer} key=\"templateHolder\">\n <InputLabel className={classes.templateTitle}>\n RESPONSE TEMPLATE\n </InputLabel>\n <MathToolbar\n classNames={classNames}\n allowAnswerBlock\n keypadMode={promptEquationEditor}\n controlledKeypad\n showKeypad={showKeypad}\n latex={prepareForStatic(expression) || ''}\n onChange={this.onChange('expression')}\n onFocus={this.onFocus}\n onDone={this.onDone}\n />\n </div>\n ])}\n <h3>Define Correct Response</h3>\n <div className={classes.flexContainer}>\n <InputContainer\n label=\"Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('equationEditor')}\n value={equationEditor}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>\n </div>\n {responsesToUse.map((response, idx) => (\n <Response\n key={response.id}\n mode={equationEditor}\n response={response}\n defaultResponse={responseType === ResponseTypes.simple}\n onResponseChange={this.onResponseChange}\n index={idx}\n cIgnoreOrder={cIgnoreOrder}\n cAllowTrailingZeros={cAllowTrailingZeros}\n />\n ))}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GeneralConfigBlock);\n"],"file":"general-config-block.js"}
@@ -35,9 +35,9 @@ var _debug = _interopRequireDefault(require("debug"));
35
35
 
36
36
  var _defaults = _interopRequireDefault(require("./defaults"));
37
37
 
38
- 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; }
38
+ 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; }
39
39
 
40
- 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; }
40
+ 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; }
41
41
 
42
42
  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); }; }
43
43
 
@@ -55,9 +55,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
55
55
 
56
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
57
 
58
- 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; }
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
59
 
60
- 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 _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
61
 
62
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
63
 
@@ -11,8 +11,8 @@
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.10.22",
15
- "@pie-lib/editable-html": "^7.19.1",
14
+ "@pie-lib/config-ui": "^10.10.24",
15
+ "@pie-lib/editable-html": "^7.19.3",
16
16
  "@pie-lib/math-input": "^6.6.8",
17
17
  "@pie-lib/math-toolbar": "^1.8.8",
18
18
  "classnames": "^2.2.5",
@@ -7,9 +7,10 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
+ exports.createCorrectResponseSession = void 0;
10
11
  exports.createDefaultModel = createDefaultModel;
11
12
  exports.model = model;
12
- exports.createCorrectResponseSession = exports.normalize = exports.outcome = void 0;
13
+ exports.outcome = exports.normalize = void 0;
13
14
 
14
15
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
16
 
@@ -33,9 +34,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
33
34
 
34
35
  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; }
35
36
 
36
- 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; }
37
+ 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; }
37
38
 
38
- 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; }
39
+ 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; }
39
40
 
40
41
  var log = (0, _debug["default"])('@pie-element:math-inline:controller');
41
42
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","getResponseCorrectness","model","answerItem","isOutcome","correctResponses","responses","isAdvanced","responseType","ResponseTypes","advanced","correctness","score","correct","isAnswerCorrect","getIsAnswerCorrect","slice","correctnessObject","correctResponseItem","answerCorrect","forEach","correctResponse","opts","mode","validation","defaults","validationDefault","literal","allowTrailingZeros","ignoreOrder","acceptedValues","answer","concat","Object","keys","alternates","map","alternateId","i","length","mv","latexEqual","e","getCorrectness","question","env","session","completeAnswer","response","createDefaultModel","Promise","resolve","config","outcome","undefined","completed","empty","normalize","allowTrailingZerosDefault","ignoreOrderDefault","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","normalizedQuestion","simple","fb","feedback","then","base","disabled","view","out","showNote","role","rationale","teacherInstructions","prompt","escape","string","replace","simpleSessionResponse","id","advancedSessionResponse","reject","answers","expression","RESPONSE_TOKEN","o","split","to","t","tt","join","m","match","RegExp","count","console","shift","value","trim","error","toString","createCorrectResponseSession","toLowerCase"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEmpty from 'lodash/isEmpty';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { ResponseTypes } from './utils';\n\nimport defaults from './defaults';\n\nimport * as mv from '@pie-framework/math-validation';\n\n\nconst log = debug('@pie-element:math-inline:controller');\n\n\nconst getResponseCorrectness = (model, answerItem, isOutcome) => {\n const correctResponses = model.responses;\n const isAdvanced = model.responseType === ResponseTypes.advanced;\n\n if (!answerItem) {\n return {\n correctness: 'unanswered',\n score: isOutcome ? 0 : '0%',\n correct: false,\n };\n }\n\n const isAnswerCorrect = getIsAnswerCorrect(\n isAdvanced ? correctResponses : correctResponses.slice(0, 1),\n answerItem\n );\n\n const correctnessObject = {\n correctness: 'incorrect',\n score: isOutcome ? 0 : '0%',\n correct: false,\n };\n\n if (isAnswerCorrect) {\n correctnessObject.correctness = 'correct';\n correctnessObject.score = isOutcome ? 1 : '100%';\n correctnessObject.correct = true;\n }\n\n return correctnessObject;\n};\n\n\nfunction getIsAnswerCorrect(correctResponseItem, answerItem) {\n let answerCorrect = false;\n\n (correctResponseItem || []).forEach(correctResponse => {\n\n let opts = {\n mode: correctResponse.validation || defaults.validationDefault\n }\n\n if (opts.mode == 'literal') {\n opts.literal = {\n allowTrailingZeros: correctResponse.allowTrailingZeros || false,\n ignoreOrder: correctResponse.ignoreOrder || false,\n };\n }\n\n if (!answerCorrect) {\n const acceptedValues = [correctResponse.answer].concat(\n Object.keys(correctResponse.alternates || {}).map(\n alternateId => correctResponse.alternates[alternateId]\n )\n ) || [];\n\n try {\n for (let i = 0; i < acceptedValues.length; i++) {\n answerCorrect = mv.latexEqual(answerItem, acceptedValues[i], opts)\n\n if (answerCorrect) {\n break;\n }\n }\n } catch (e) {\n log(\n 'Parse failure when evaluating math',\n e,\n correctResponse,\n answerItem\n );\n\n answerCorrect = false;\n }\n }\n });\n\n return answerCorrect;\n}\n\nconst getCorrectness = (question, env, session, isOutcome) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(\n question,\n question.responseType === ResponseTypes.advanced\n ? (session && session.completeAnswer) || ''\n : session && session.response,\n isOutcome\n );\n }\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n config: {\n ...defaults,\n ...model,\n },\n });\n });\n}\n\nexport const outcome = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n } else {\n const correctness = getCorrectness(question, env, session, true);\n\n resolve({ score: correctness.score });\n }\n }\n });\n};\n\nexport const normalize = (question) => {\n\n // making sure that defaults are set\n if (!isEmpty(question.responses)) {\n question.responses = question.responses.map(correctResponse => ({\n ...correctResponse, validation: correctResponse.validation || question.validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || question.allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || question.ignoreOrderDefault\n }))\n }\n\n return {\n ...defaults,\n feedbackEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n }\n}\n\nexport function model(question, session, env) {\n return new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n const correctness = getCorrectness(normalizedQuestion, env, session);\n const { responses, ...config } = normalizedQuestion;\n\n if (config.responseType === ResponseTypes.simple) {\n config.responses = responses.slice(0, 1);\n } else {\n config.responses = responses;\n }\n\n const fb =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getFeedbackForCorrectness(correctness, normalizedQuestion.feedback)\n : Promise.resolve(undefined);\n\n fb.then((feedback) => {\n const base = {\n config,\n correctness,\n feedback,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n };\n\n const out = base;\n let showNote = false;\n\n ((config && config.responses) || []).forEach((response) => {\n if (\n response.validation === 'symbolic' ||\n Object.keys(response.alternates || {}).length > 0\n ) {\n showNote = true;\n return;\n }\n });\n\n if (env.mode === 'evaluate') {\n out.correctResponse = {};\n out.config.showNote = showNote;\n } else {\n out.config.responses = [];\n out.config.showNote = false;\n }\n\n if (\n env.role === 'instructor' &&\n (env.mode === 'view' || env.mode === 'evaluate')\n ) {\n out.rationale = normalizedQuestion.rationaleEnabled\n ? normalizedQuestion.rationale\n : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n out.config.rationale = null;\n out.config.teacherInstructions = null;\n }\n\n out.config.env = env;\n out.config.prompt = normalizedQuestion.promptEnabled\n ? normalizedQuestion.prompt\n : null;\n\n log('out: ', out);\n resolve(out);\n });\n });\n}\n\nconst escape = (string) => string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n\nconst simpleSessionResponse = (question) =>\n new Promise((resolve) => {\n const { responses, id } = question;\n const { answer } = responses && responses.length ? responses[0] : {};\n\n resolve({\n id,\n response: answer || '',\n completeAnswer: answer || ''\n });\n });\n\nconst advancedSessionResponse = (question) =>\n new Promise((resolve, reject) => {\n const { responses, id } = question;\n const { answer } = responses && responses.length ? responses[0] : {};\n\n if (!answer) {\n resolve({\n id,\n answers: {},\n completeAnswer: ''\n });\n\n return;\n }\n\n try {\n const e = question.expression;\n const RESPONSE_TOKEN = /\\\\{\\\\{\\s*response\\s*\\\\}\\\\}/g;\n\n const o = escape(e).split(RESPONSE_TOKEN);\n const to = o.map((t) => (t === '' ? t : t.replace(/\\s+/g, () => '\\\\s*')));\n const tt = to.join('(.*)');\n\n const m = answer.match(new RegExp(tt));\n\n const count = o.length - 1;\n\n if (!m) {\n resolve({\n id,\n answers: {},\n completeAnswer: answer\n });\n\n console.log(`can not find match: ${o} in ${answer}`);\n\n return;\n }\n\n m.shift();\n\n const answers = {};\n\n for (var i = 0; i < count; i++) {\n answers[`r${i + 1}`] = { value: m[i].trim() };\n }\n\n resolve({\n id,\n answers,\n completeAnswer: answer\n });\n } catch (e) {\n resolve({\n id,\n answers: {},\n completeAnswer: answer\n });\n\n console.error(e.toString());\n }\n });\n\nexport const createCorrectResponseSession = (question, env) => {\n if (env.mode === 'evaluate' || env.role !== 'instructor') {\n // eslint-disable-next-line no-console\n console.error(\n 'can not create correct response session if mode is evaluate or role is not instructor'\n );\n\n return Promise.resolve(null);\n }\n\n if ((question.responseType || '').toLowerCase() === 'simple') {\n return simpleSessionResponse(question, env);\n } else {\n return advancedSessionResponse(question, env);\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","getResponseCorrectness","model","answerItem","isOutcome","correctResponses","responses","isAdvanced","responseType","ResponseTypes","advanced","correctness","score","correct","isAnswerCorrect","getIsAnswerCorrect","slice","correctnessObject","correctResponseItem","answerCorrect","forEach","correctResponse","opts","mode","validation","defaults","validationDefault","literal","allowTrailingZeros","ignoreOrder","acceptedValues","answer","concat","Object","keys","alternates","map","alternateId","i","length","mv","latexEqual","e","getCorrectness","question","env","session","completeAnswer","response","createDefaultModel","Promise","resolve","config","outcome","undefined","completed","empty","normalize","allowTrailingZerosDefault","ignoreOrderDefault","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","normalizedQuestion","simple","fb","feedback","then","base","disabled","view","out","showNote","role","rationale","teacherInstructions","prompt","escape","string","replace","simpleSessionResponse","id","advancedSessionResponse","reject","answers","expression","RESPONSE_TOKEN","o","split","to","t","tt","join","m","match","RegExp","count","console","shift","value","trim","error","toString","createCorrectResponseSession","toLowerCase"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEmpty from 'lodash/isEmpty';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { ResponseTypes } from './utils';\n\nimport defaults from './defaults';\n\nimport * as mv from '@pie-framework/math-validation';\n\n\nconst log = debug('@pie-element:math-inline:controller');\n\n\nconst getResponseCorrectness = (model, answerItem, isOutcome) => {\n const correctResponses = model.responses;\n const isAdvanced = model.responseType === ResponseTypes.advanced;\n\n if (!answerItem) {\n return {\n correctness: 'unanswered',\n score: isOutcome ? 0 : '0%',\n correct: false,\n };\n }\n\n const isAnswerCorrect = getIsAnswerCorrect(\n isAdvanced ? correctResponses : correctResponses.slice(0, 1),\n answerItem\n );\n\n const correctnessObject = {\n correctness: 'incorrect',\n score: isOutcome ? 0 : '0%',\n correct: false,\n };\n\n if (isAnswerCorrect) {\n correctnessObject.correctness = 'correct';\n correctnessObject.score = isOutcome ? 1 : '100%';\n correctnessObject.correct = true;\n }\n\n return correctnessObject;\n};\n\n\nfunction getIsAnswerCorrect(correctResponseItem, answerItem) {\n let answerCorrect = false;\n\n (correctResponseItem || []).forEach(correctResponse => {\n\n let opts = {\n mode: correctResponse.validation || defaults.validationDefault\n }\n\n if (opts.mode == 'literal') {\n opts.literal = {\n allowTrailingZeros: correctResponse.allowTrailingZeros || false,\n ignoreOrder: correctResponse.ignoreOrder || false,\n };\n }\n\n if (!answerCorrect) {\n const acceptedValues = [correctResponse.answer].concat(\n Object.keys(correctResponse.alternates || {}).map(\n alternateId => correctResponse.alternates[alternateId]\n )\n ) || [];\n\n try {\n for (let i = 0; i < acceptedValues.length; i++) {\n answerCorrect = mv.latexEqual(answerItem, acceptedValues[i], opts)\n\n if (answerCorrect) {\n break;\n }\n }\n } catch (e) {\n log(\n 'Parse failure when evaluating math',\n e,\n correctResponse,\n answerItem\n );\n\n answerCorrect = false;\n }\n }\n });\n\n return answerCorrect;\n}\n\nconst getCorrectness = (question, env, session, isOutcome) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(\n question,\n question.responseType === ResponseTypes.advanced\n ? (session && session.completeAnswer) || ''\n : session && session.response,\n isOutcome\n );\n }\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n config: {\n ...defaults,\n ...model,\n },\n });\n });\n}\n\nexport const outcome = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n } else {\n const correctness = getCorrectness(question, env, session, true);\n\n resolve({ score: correctness.score });\n }\n }\n });\n};\n\nexport const normalize = (question) => {\n\n // making sure that defaults are set\n if (!isEmpty(question.responses)) {\n question.responses = question.responses.map(correctResponse => ({\n ...correctResponse, validation: correctResponse.validation || question.validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || question.allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || question.ignoreOrderDefault\n }))\n }\n\n return {\n ...defaults,\n feedbackEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n }\n}\n\nexport function model(question, session, env) {\n return new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n const correctness = getCorrectness(normalizedQuestion, env, session);\n const { responses, ...config } = normalizedQuestion;\n\n if (config.responseType === ResponseTypes.simple) {\n config.responses = responses.slice(0, 1);\n } else {\n config.responses = responses;\n }\n\n const fb =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getFeedbackForCorrectness(correctness, normalizedQuestion.feedback)\n : Promise.resolve(undefined);\n\n fb.then((feedback) => {\n const base = {\n config,\n correctness,\n feedback,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n };\n\n const out = base;\n let showNote = false;\n\n ((config && config.responses) || []).forEach((response) => {\n if (\n response.validation === 'symbolic' ||\n Object.keys(response.alternates || {}).length > 0\n ) {\n showNote = true;\n return;\n }\n });\n\n if (env.mode === 'evaluate') {\n out.correctResponse = {};\n out.config.showNote = showNote;\n } else {\n out.config.responses = [];\n out.config.showNote = false;\n }\n\n if (\n env.role === 'instructor' &&\n (env.mode === 'view' || env.mode === 'evaluate')\n ) {\n out.rationale = normalizedQuestion.rationaleEnabled\n ? normalizedQuestion.rationale\n : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n out.config.rationale = null;\n out.config.teacherInstructions = null;\n }\n\n out.config.env = env;\n out.config.prompt = normalizedQuestion.promptEnabled\n ? normalizedQuestion.prompt\n : null;\n\n log('out: ', out);\n resolve(out);\n });\n });\n}\n\nconst escape = (string) => string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n\nconst simpleSessionResponse = (question) =>\n new Promise((resolve) => {\n const { responses, id } = question;\n const { answer } = responses && responses.length ? responses[0] : {};\n\n resolve({\n id,\n response: answer || '',\n completeAnswer: answer || ''\n });\n });\n\nconst advancedSessionResponse = (question) =>\n new Promise((resolve, reject) => {\n const { responses, id } = question;\n const { answer } = responses && responses.length ? responses[0] : {};\n\n if (!answer) {\n resolve({\n id,\n answers: {},\n completeAnswer: ''\n });\n\n return;\n }\n\n try {\n const e = question.expression;\n const RESPONSE_TOKEN = /\\\\{\\\\{\\s*response\\s*\\\\}\\\\}/g;\n\n const o = escape(e).split(RESPONSE_TOKEN);\n const to = o.map((t) => (t === '' ? t : t.replace(/\\s+/g, () => '\\\\s*')));\n const tt = to.join('(.*)');\n\n const m = answer.match(new RegExp(tt));\n\n const count = o.length - 1;\n\n if (!m) {\n resolve({\n id,\n answers: {},\n completeAnswer: answer\n });\n\n console.log(`can not find match: ${o} in ${answer}`);\n\n return;\n }\n\n m.shift();\n\n const answers = {};\n\n for (var i = 0; i < count; i++) {\n answers[`r${i + 1}`] = { value: m[i].trim() };\n }\n\n resolve({\n id,\n answers,\n completeAnswer: answer\n });\n } catch (e) {\n resolve({\n id,\n answers: {},\n completeAnswer: answer\n });\n\n console.error(e.toString());\n }\n });\n\nexport const createCorrectResponseSession = (question, env) => {\n if (env.mode === 'evaluate' || env.role !== 'instructor') {\n // eslint-disable-next-line no-console\n console.error(\n 'can not create correct response session if mode is evaluate or role is not instructor'\n );\n\n return Promise.resolve(null);\n }\n\n if ((question.responseType || '').toLowerCase() === 'simple') {\n return simpleSessionResponse(question, env);\n } else {\n return advancedSessionResponse(question, env);\n }\n};\n"],"file":"index.js"}
@@ -67,6 +67,22 @@
67
67
  }
68
68
  }
69
69
  },
70
+ "spellCheck": {
71
+ "title": "ConfigureProp",
72
+ "type": "object",
73
+ "properties": {
74
+ "settings": {
75
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
76
+ "type": "boolean",
77
+ "title": "settings"
78
+ },
79
+ "label": {
80
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
81
+ "type": "string",
82
+ "title": "label"
83
+ }
84
+ }
85
+ },
70
86
  "scoringType": {
71
87
  "title": "ConfigureProp",
72
88
  "type": "object",
@@ -50,6 +50,18 @@ Indicates if the item has to be displayed in the Settings Panel
50
50
 
51
51
  Indicates the label for the item that has to be displayed in the Settings Panel
52
52
 
53
+ # `spellCheck` (object)
54
+
55
+ Properties of the `spellCheck` object:
56
+
57
+ ## `settings` (boolean)
58
+
59
+ Indicates if the item has to be displayed in the Settings Panel
60
+
61
+ ## `label` (string)
62
+
63
+ Indicates the label for the item that has to be displayed in the Settings Panel
64
+
53
65
  # `scoringType` (object)
54
66
 
55
67
  Properties of the `scoringType` object:
@@ -426,6 +426,11 @@
426
426
  "type": "boolean",
427
427
  "title": "rationaleEnabled"
428
428
  },
429
+ "spellCheckEnabled": {
430
+ "description": "Indicates if spellcheck is enabled",
431
+ "type": "boolean",
432
+ "title": "spellCheckEnabled"
433
+ },
429
434
  "studentInstructionsEnabled": {
430
435
  "description": "Indicates if Student Instructions are enabled",
431
436
  "type": "boolean",
@@ -471,6 +476,7 @@
471
476
  "ignoreOrderDefault",
472
477
  "rationaleEnabled",
473
478
  "responses",
479
+ "spellCheckEnabled",
474
480
  "studentInstructionsEnabled",
475
481
  "teacherInstructionsEnabled"
476
482
  ],
@@ -196,6 +196,10 @@ Indicates if Feedback is enabled
196
196
 
197
197
  Indicates if Rationale are enabled
198
198
 
199
+ # `spellCheckEnabled` (boolean, required)
200
+
201
+ Indicates if spellcheck is enabled
202
+
199
203
  # `studentInstructionsEnabled` (boolean, required)
200
204
 
201
205
  Indicates if Student Instructions are enabled
package/lib/main.js CHANGED
@@ -49,9 +49,9 @@ var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
49
49
 
50
50
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
51
51
 
52
- 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; }
52
+ 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; }
53
53
 
54
- 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; }
54
+ 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; }
55
55
 
56
56
  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); }; }
57
57
 
package/lib/print.js CHANGED
@@ -39,9 +39,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
39
39
 
40
40
  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; } }
41
41
 
42
- 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; }
42
+ 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; }
43
43
 
44
- 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; }
44
+ 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; }
45
45
 
46
46
  var log = (0, _debug["default"])('pie-element:math-inline:print');
47
47
  /**
@@ -1,7 +1,7 @@
1
- import {_dll_react, _dll_prop_types, _dll_material_ui__core, _dll_material_ui__core_styles, _dll_classnames, _dll_lodash, _dll_debug, _dll_react_dom} from "../../../@pie-lib/shared-module@^1.4.4/module/index.js";
2
- import {_dll_pie_lib__config_ui} from "../../../@pie-lib/config-module@^1.0.27/module/index.js";
3
- import {_dll_pie_lib__editable_html} from "../../../@pie-lib/editable-html-module@^1.2.3/module/index.js";
4
- import {_dll_pie_lib__math_toolbar, _dll_pie_framework__mathquill} from "../../../@pie-lib/math-edit-module@^1.1.25/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_material_ui__core, _dll_material_ui__core_styles, _dll_classnames, _dll_lodash, _dll_debug, _dll_react_dom} from "../../../@pie-lib/shared-module@^1.4.5/module/index.js";
2
+ import {_dll_pie_lib__config_ui} from "../../../@pie-lib/config-module@^1.0.28/module/index.js";
3
+ import {_dll_pie_lib__editable_html} from "../../../@pie-lib/editable-html-module@^1.2.4/module/index.js";
4
+ import {_dll_pie_lib__math_toolbar, _dll_pie_framework__mathquill} from "../../../@pie-lib/math-edit-module@^1.1.26/module/index.js";
5
5
  const React$3 = _dll_react;
6
6
  const PropTypes$2 = _dll_prop_types;
7
7
  const {Card: Card} = _dll_material_ui__core;
@@ -756,7 +756,7 @@ class GeneralConfigBlock extends React$2.Component {
756
756
  render() {
757
757
  const {classes, model, imageSupport, configuration, promptEnabled, rationaleEnabled, toolbarOpts} = this.props;
758
758
  const {showKeypad} = this.state;
759
- const {prompt, expression, equationEditor, promptEquationEditor = '8', responses, responseType, rationale} = model;
759
+ const {prompt, expression, equationEditor, promptEquationEditor = '8', responses, responseType, rationale, spellCheckEnabled} = model;
760
760
  const {rationale: cRationale = {}, prompt: cPrompt = {}, ignoreOrder: cIgnoreOrder = {}, allowTrailingZeros: cAllowTrailingZeros = {}} = configuration || ({});
761
761
  const classNames = {
762
762
  editor: classes.responseEditor,
@@ -769,7 +769,7 @@ class GeneralConfigBlock extends React$2.Component {
769
769
  __self: this,
770
770
  __source: {
771
771
  fileName: _jsxFileName$1,
772
- lineNumber: 356
772
+ lineNumber: 357
773
773
  }
774
774
  }, promptEnabled && React$2.createElement(InputContainer$1, {
775
775
  label: cPrompt.label,
@@ -777,7 +777,7 @@ class GeneralConfigBlock extends React$2.Component {
777
777
  __self: this,
778
778
  __source: {
779
779
  fileName: _jsxFileName$1,
780
- lineNumber: 361
780
+ lineNumber: 362
781
781
  }
782
782
  }, React$2.createElement(EditableHtml$1, {
783
783
  onFocus: this.onPromptFocus,
@@ -787,10 +787,11 @@ class GeneralConfigBlock extends React$2.Component {
787
787
  imageSupport: imageSupport,
788
788
  nonEmpty: false,
789
789
  toolbarOpts: toolbarOpts,
790
+ spellCheck: spellCheckEnabled,
790
791
  __self: this,
791
792
  __source: {
792
793
  fileName: _jsxFileName$1,
793
- lineNumber: 362
794
+ lineNumber: 363
794
795
  }
795
796
  })), rationaleEnabled && React$2.createElement(InputContainer$1, {
796
797
  label: cRationale.label,
@@ -798,7 +799,7 @@ class GeneralConfigBlock extends React$2.Component {
798
799
  __self: this,
799
800
  __source: {
800
801
  fileName: _jsxFileName$1,
801
- lineNumber: 374
802
+ lineNumber: 376
802
803
  }
803
804
  }, React$2.createElement(EditableHtml$1, {
804
805
  className: classes.prompt,
@@ -812,10 +813,11 @@ class GeneralConfigBlock extends React$2.Component {
812
813
  imageSupport: imageSupport,
813
814
  nonEmpty: false,
814
815
  toolbarOpts: toolbarOpts,
816
+ spellCheck: spellCheckEnabled,
815
817
  __self: this,
816
818
  __source: {
817
819
  fileName: _jsxFileName$1,
818
- lineNumber: 378
820
+ lineNumber: 380
819
821
  }
820
822
  })), responseType === ResponseTypes.advanced && [React$2.createElement(InputContainer$1, {
821
823
  key: "templateEditorType",
@@ -824,7 +826,7 @@ class GeneralConfigBlock extends React$2.Component {
824
826
  __self: this,
825
827
  __source: {
826
828
  fileName: _jsxFileName$1,
827
- lineNumber: 394
829
+ lineNumber: 397
828
830
  }
829
831
  }, React$2.createElement(Select, {
830
832
  className: classes.select,
@@ -833,91 +835,91 @@ class GeneralConfigBlock extends React$2.Component {
833
835
  __self: this,
834
836
  __source: {
835
837
  fileName: _jsxFileName$1,
836
- lineNumber: 399
838
+ lineNumber: 402
837
839
  }
838
840
  }, React$2.createElement(MenuItem, {
839
841
  value: "non-negative-integers",
840
842
  __self: this,
841
843
  __source: {
842
844
  fileName: _jsxFileName$1,
843
- lineNumber: 404
845
+ lineNumber: 407
844
846
  }
845
847
  }, "Numeric - Non-Negative Integers"), React$2.createElement(MenuItem, {
846
848
  value: "integers",
847
849
  __self: this,
848
850
  __source: {
849
851
  fileName: _jsxFileName$1,
850
- lineNumber: 405
852
+ lineNumber: 408
851
853
  }
852
854
  }, "Numeric - Integers"), React$2.createElement(MenuItem, {
853
855
  value: "decimals",
854
856
  __self: this,
855
857
  __source: {
856
858
  fileName: _jsxFileName$1,
857
- lineNumber: 406
859
+ lineNumber: 409
858
860
  }
859
861
  }, "Numeric - Decimals"), React$2.createElement(MenuItem, {
860
862
  value: "fractions",
861
863
  __self: this,
862
864
  __source: {
863
865
  fileName: _jsxFileName$1,
864
- lineNumber: 407
866
+ lineNumber: 410
865
867
  }
866
868
  }, "Numeric - Fractions"), React$2.createElement(MenuItem, {
867
869
  value: 1,
868
870
  __self: this,
869
871
  __source: {
870
872
  fileName: _jsxFileName$1,
871
- lineNumber: 408
873
+ lineNumber: 411
872
874
  }
873
875
  }, "Grade 1 - 2"), React$2.createElement(MenuItem, {
874
876
  value: 3,
875
877
  __self: this,
876
878
  __source: {
877
879
  fileName: _jsxFileName$1,
878
- lineNumber: 409
880
+ lineNumber: 412
879
881
  }
880
882
  }, "Grade 3 - 5"), React$2.createElement(MenuItem, {
881
883
  value: 6,
882
884
  __self: this,
883
885
  __source: {
884
886
  fileName: _jsxFileName$1,
885
- lineNumber: 410
887
+ lineNumber: 413
886
888
  }
887
889
  }, "Grade 6 - 7"), React$2.createElement(MenuItem, {
888
890
  value: 8,
889
891
  __self: this,
890
892
  __source: {
891
893
  fileName: _jsxFileName$1,
892
- lineNumber: 411
894
+ lineNumber: 414
893
895
  }
894
896
  }, "Grade 8 - HS"), React$2.createElement(MenuItem, {
895
897
  value: 'geometry',
896
898
  __self: this,
897
899
  __source: {
898
900
  fileName: _jsxFileName$1,
899
- lineNumber: 412
901
+ lineNumber: 415
900
902
  }
901
903
  }, "Geometry"), React$2.createElement(MenuItem, {
902
904
  value: 'advanced-algebra',
903
905
  __self: this,
904
906
  __source: {
905
907
  fileName: _jsxFileName$1,
906
- lineNumber: 413
908
+ lineNumber: 416
907
909
  }
908
910
  }, "Advanced Algebra"), React$2.createElement(MenuItem, {
909
911
  value: 'statistics',
910
912
  __self: this,
911
913
  __source: {
912
914
  fileName: _jsxFileName$1,
913
- lineNumber: 414
915
+ lineNumber: 417
914
916
  }
915
917
  }, "Statistics"), React$2.createElement(MenuItem, {
916
918
  value: 'item-authoring',
917
919
  __self: this,
918
920
  __source: {
919
921
  fileName: _jsxFileName$1,
920
- lineNumber: 415
922
+ lineNumber: 418
921
923
  }
922
924
  }, "Item Authoring"))), React$2.createElement('div', {
923
925
  className: classes.inputContainer,
@@ -925,14 +927,14 @@ class GeneralConfigBlock extends React$2.Component {
925
927
  __self: this,
926
928
  __source: {
927
929
  fileName: _jsxFileName$1,
928
- lineNumber: 418
930
+ lineNumber: 421
929
931
  }
930
932
  }, React$2.createElement(InputLabel, {
931
933
  className: classes.templateTitle,
932
934
  __self: this,
933
935
  __source: {
934
936
  fileName: _jsxFileName$1,
935
- lineNumber: 419
937
+ lineNumber: 422
936
938
  }
937
939
  }, "RESPONSE TEMPLATE"), React$2.createElement(MathToolbar, {
938
940
  classNames: classNames,
@@ -947,20 +949,20 @@ class GeneralConfigBlock extends React$2.Component {
947
949
  __self: this,
948
950
  __source: {
949
951
  fileName: _jsxFileName$1,
950
- lineNumber: 422
952
+ lineNumber: 425
951
953
  }
952
954
  }))], React$2.createElement('h3', {
953
955
  __self: this,
954
956
  __source: {
955
957
  fileName: _jsxFileName$1,
956
- lineNumber: 435
958
+ lineNumber: 438
957
959
  }
958
960
  }, "Define Correct Response"), React$2.createElement('div', {
959
961
  className: classes.flexContainer,
960
962
  __self: this,
961
963
  __source: {
962
964
  fileName: _jsxFileName$1,
963
- lineNumber: 436
965
+ lineNumber: 439
964
966
  }
965
967
  }, React$2.createElement(InputContainer$1, {
966
968
  label: "Equation Editor",
@@ -968,7 +970,7 @@ class GeneralConfigBlock extends React$2.Component {
968
970
  __self: this,
969
971
  __source: {
970
972
  fileName: _jsxFileName$1,
971
- lineNumber: 437
973
+ lineNumber: 440
972
974
  }
973
975
  }, React$2.createElement(Select, {
974
976
  className: classes.select,
@@ -977,91 +979,91 @@ class GeneralConfigBlock extends React$2.Component {
977
979
  __self: this,
978
980
  __source: {
979
981
  fileName: _jsxFileName$1,
980
- lineNumber: 441
982
+ lineNumber: 444
981
983
  }
982
984
  }, React$2.createElement(MenuItem, {
983
985
  value: "non-negative-integers",
984
986
  __self: this,
985
987
  __source: {
986
988
  fileName: _jsxFileName$1,
987
- lineNumber: 446
989
+ lineNumber: 449
988
990
  }
989
991
  }, "Numeric - Non-Negative Integers"), React$2.createElement(MenuItem, {
990
992
  value: "integers",
991
993
  __self: this,
992
994
  __source: {
993
995
  fileName: _jsxFileName$1,
994
- lineNumber: 447
996
+ lineNumber: 450
995
997
  }
996
998
  }, "Numeric - Integers"), React$2.createElement(MenuItem, {
997
999
  value: "decimals",
998
1000
  __self: this,
999
1001
  __source: {
1000
1002
  fileName: _jsxFileName$1,
1001
- lineNumber: 448
1003
+ lineNumber: 451
1002
1004
  }
1003
1005
  }, "Numeric - Decimals"), React$2.createElement(MenuItem, {
1004
1006
  value: "fractions",
1005
1007
  __self: this,
1006
1008
  __source: {
1007
1009
  fileName: _jsxFileName$1,
1008
- lineNumber: 449
1010
+ lineNumber: 452
1009
1011
  }
1010
1012
  }, "Numeric - Fractions"), React$2.createElement(MenuItem, {
1011
1013
  value: 1,
1012
1014
  __self: this,
1013
1015
  __source: {
1014
1016
  fileName: _jsxFileName$1,
1015
- lineNumber: 450
1017
+ lineNumber: 453
1016
1018
  }
1017
1019
  }, "Grade 1 - 2"), React$2.createElement(MenuItem, {
1018
1020
  value: 3,
1019
1021
  __self: this,
1020
1022
  __source: {
1021
1023
  fileName: _jsxFileName$1,
1022
- lineNumber: 451
1024
+ lineNumber: 454
1023
1025
  }
1024
1026
  }, "Grade 3 - 5"), React$2.createElement(MenuItem, {
1025
1027
  value: 6,
1026
1028
  __self: this,
1027
1029
  __source: {
1028
1030
  fileName: _jsxFileName$1,
1029
- lineNumber: 452
1031
+ lineNumber: 455
1030
1032
  }
1031
1033
  }, "Grade 6 - 7"), React$2.createElement(MenuItem, {
1032
1034
  value: 8,
1033
1035
  __self: this,
1034
1036
  __source: {
1035
1037
  fileName: _jsxFileName$1,
1036
- lineNumber: 453
1038
+ lineNumber: 456
1037
1039
  }
1038
1040
  }, "Grade 8 - HS"), React$2.createElement(MenuItem, {
1039
1041
  value: 'geometry',
1040
1042
  __self: this,
1041
1043
  __source: {
1042
1044
  fileName: _jsxFileName$1,
1043
- lineNumber: 454
1045
+ lineNumber: 457
1044
1046
  }
1045
1047
  }, "Geometry"), React$2.createElement(MenuItem, {
1046
1048
  value: 'advanced-algebra',
1047
1049
  __self: this,
1048
1050
  __source: {
1049
1051
  fileName: _jsxFileName$1,
1050
- lineNumber: 455
1052
+ lineNumber: 458
1051
1053
  }
1052
1054
  }, "Advanced Algebra"), React$2.createElement(MenuItem, {
1053
1055
  value: 'statistics',
1054
1056
  __self: this,
1055
1057
  __source: {
1056
1058
  fileName: _jsxFileName$1,
1057
- lineNumber: 456
1059
+ lineNumber: 459
1058
1060
  }
1059
1061
  }, "Statistics"), React$2.createElement(MenuItem, {
1060
1062
  value: 'item-authoring',
1061
1063
  __self: this,
1062
1064
  __source: {
1063
1065
  fileName: _jsxFileName$1,
1064
- lineNumber: 457
1066
+ lineNumber: 460
1065
1067
  }
1066
1068
  }, "Item Authoring")))), responsesToUse.map((response, idx) => React$2.createElement(Response$1, {
1067
1069
  key: response.id,
@@ -1075,7 +1077,7 @@ class GeneralConfigBlock extends React$2.Component {
1075
1077
  __self: this,
1076
1078
  __source: {
1077
1079
  fileName: _jsxFileName$1,
1078
- lineNumber: 462
1080
+ lineNumber: 465
1079
1081
  }
1080
1082
  })));
1081
1083
  }
@@ -1152,9 +1154,9 @@ class Configure extends React$1.Component {
1152
1154
  }
1153
1155
  render() {
1154
1156
  const {classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged} = this.props;
1155
- const {feedback = {}, responseType = {}, teacherInstructions = {}, studentInstructions = {}, rationale = {}, prompt = {}, scoringType = {}, ignoreOrder = {}, allowTrailingZeros = {}} = configuration || ({});
1157
+ const {feedback = {}, responseType = {}, teacherInstructions = {}, studentInstructions = {}, rationale = {}, prompt = {}, scoringType = {}, ignoreOrder = {}, allowTrailingZeros = {}, spellCheck = {}} = configuration || ({});
1156
1158
  log$1('[render] model', model);
1157
- const {rationaleEnabled, promptEnabled, teacherInstructionsEnabled, feedbackEnabled} = model || ({});
1159
+ const {rationaleEnabled, promptEnabled, teacherInstructionsEnabled, feedbackEnabled, spellCheckEnabled} = model || ({});
1158
1160
  const toolbarOpts = {};
1159
1161
  switch (model.toolbarEditorPosition) {
1160
1162
  case 'top':
@@ -1168,7 +1170,7 @@ class Configure extends React$1.Component {
1168
1170
  __self: this,
1169
1171
  __source: {
1170
1172
  fileName: _jsxFileName,
1171
- lineNumber: 92
1173
+ lineNumber: 93
1172
1174
  }
1173
1175
  }, React$1.createElement(layout.ConfigLayout, {
1174
1176
  settings: React$1.createElement(Panel, {
@@ -1186,6 +1188,7 @@ class Configure extends React$1.Component {
1186
1188
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
1187
1189
  studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
1188
1190
  rationaleEnabled: rationale.settings && toggle(rationale.label),
1191
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
1189
1192
  scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
1190
1193
  'ignoreOrder.enabled': ignoreOrder.settings && toggle(ignoreOrder.label),
1191
1194
  'allowTrailingZeros.enabled': allowTrailingZeros.settings && toggle(allowTrailingZeros.label)
@@ -1194,26 +1197,26 @@ class Configure extends React$1.Component {
1194
1197
  __self: this,
1195
1198
  __source: {
1196
1199
  fileName: _jsxFileName,
1197
- lineNumber: 95
1200
+ lineNumber: 96
1198
1201
  }
1199
1202
  }),
1200
1203
  __self: this,
1201
1204
  __source: {
1202
1205
  fileName: _jsxFileName,
1203
- lineNumber: 93
1206
+ lineNumber: 94
1204
1207
  }
1205
1208
  }, React$1.createElement('div', {
1206
1209
  __self: this,
1207
1210
  __source: {
1208
1211
  fileName: _jsxFileName,
1209
- lineNumber: 126
1212
+ lineNumber: 129
1210
1213
  }
1211
1214
  }, React$1.createElement('div', {
1212
1215
  className: classes.content,
1213
1216
  __self: this,
1214
1217
  __source: {
1215
1218
  fileName: _jsxFileName,
1216
- lineNumber: 127
1219
+ lineNumber: 130
1217
1220
  }
1218
1221
  }, teacherInstructionsEnabled && React$1.createElement(InputContainer, {
1219
1222
  label: teacherInstructions.label,
@@ -1221,7 +1224,7 @@ class Configure extends React$1.Component {
1221
1224
  __self: this,
1222
1225
  __source: {
1223
1226
  fileName: _jsxFileName,
1224
- lineNumber: 129
1227
+ lineNumber: 132
1225
1228
  }
1226
1229
  }, React$1.createElement(EditableHtml, {
1227
1230
  className: classes.prompt,
@@ -1230,10 +1233,11 @@ class Configure extends React$1.Component {
1230
1233
  imageSupport: imageSupport,
1231
1234
  nonEmpty: false,
1232
1235
  toolbarOpts: toolbarOpts,
1236
+ spellCheck: spellCheckEnabled,
1233
1237
  __self: this,
1234
1238
  __source: {
1235
1239
  fileName: _jsxFileName,
1236
- lineNumber: 130
1240
+ lineNumber: 133
1237
1241
  }
1238
1242
  })), React$1.createElement(GeneralConfigBlock$1, {
1239
1243
  imageSupport: imageSupport,
@@ -1243,10 +1247,11 @@ class Configure extends React$1.Component {
1243
1247
  rationaleEnabled: rationaleEnabled,
1244
1248
  promptEnabled: promptEnabled,
1245
1249
  toolbarOpts: toolbarOpts,
1250
+ spellCheck: spellCheckEnabled,
1246
1251
  __self: this,
1247
1252
  __source: {
1248
1253
  fileName: _jsxFileName,
1249
- lineNumber: 141
1254
+ lineNumber: 145
1250
1255
  }
1251
1256
  }), feedbackEnabled && React$1.createElement(FeedbackConfig, {
1252
1257
  feedback: model.feedback,
@@ -1255,7 +1260,7 @@ class Configure extends React$1.Component {
1255
1260
  __self: this,
1256
1261
  __source: {
1257
1262
  fileName: _jsxFileName,
1258
- lineNumber: 152
1263
+ lineNumber: 157
1259
1264
  }
1260
1265
  })))));
1261
1266
  }
@@ -1361,6 +1366,11 @@ var defaults = {
1361
1366
  settings: true,
1362
1367
  label: 'Rationale'
1363
1368
  },
1369
+ spellCheck: {
1370
+ label: "Spellcheck",
1371
+ settings: true,
1372
+ enabled: true
1373
+ },
1364
1374
  scoringType: {
1365
1375
  settings: false,
1366
1376
  label: 'Scoring Type'
package/module/element.js CHANGED
@@ -1,6 +1,6 @@
1
- import {_dll_react, _dll_classnames, _dll_material_ui__core_styles, _dll_prop_types, _dll_pie_lib__render_ui, _dll_pie_lib__correct_answer_toggle, _dll_material_ui__core, _dll_lodash, _dll_react_dom, _dll_debug} from "../../../@pie-lib/shared-module@^1.4.4/module/index.js";
2
- import {_dll_pie_lib__math_toolbar, _dll_pie_lib__math_input, _dll_pie_framework__mathquill} from "../../../@pie-lib/math-edit-module@^1.1.25/module/index.js";
3
- import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.29/module/index.js";
1
+ import {_dll_react, _dll_classnames, _dll_material_ui__core_styles, _dll_prop_types, _dll_pie_lib__render_ui, _dll_pie_lib__correct_answer_toggle, _dll_material_ui__core, _dll_lodash, _dll_react_dom, _dll_debug} from "../../../@pie-lib/shared-module@^1.4.5/module/index.js";
2
+ import {_dll_pie_lib__math_toolbar, _dll_pie_lib__math_input, _dll_pie_framework__mathquill} from "../../../@pie-lib/math-edit-module@^1.1.26/module/index.js";
3
+ import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.30/module/index.js";
4
4
  const ResponseTypes$1 = {
5
5
  advanced: 'Advanced Multi',
6
6
  simple: 'Simple'
@@ -1154,6 +1154,11 @@ utils.ResponseTypes = ResponseTypes;
1154
1154
  settings: true,
1155
1155
  label: 'Rationale'
1156
1156
  },
1157
+ spellCheck: {
1158
+ label: "Spellcheck",
1159
+ settings: true,
1160
+ enabled: true
1161
+ },
1157
1162
  scoringType: {
1158
1163
  settings: false,
1159
1164
  label: 'Scoring Type'
@@ -4,15 +4,15 @@
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/shared-module",
7
- "version": "^1.4.4"
7
+ "version": "^1.4.5"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/math-rendering-module",
11
- "version": "^1.0.29"
11
+ "version": "^1.0.30"
12
12
  },
13
13
  {
14
14
  "name": "@pie-lib/math-edit-module",
15
- "version": "^1.1.25"
15
+ "version": "^1.1.26"
16
16
  }
17
17
  ]
18
18
  }
package/module/print.js CHANGED
@@ -1,6 +1,6 @@
1
- import {_dll_react, _dll_classnames, _dll_material_ui__core_styles, _dll_prop_types, _dll_pie_lib__render_ui, _dll_pie_lib__correct_answer_toggle, _dll_material_ui__core, _dll_lodash, _dll_react_dom, _dll_debug} from "../../../@pie-lib/shared-module@^1.4.4/module/index.js";
2
- import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.29/module/index.js";
3
- import {_dll_pie_lib__math_toolbar, _dll_pie_lib__math_input, _dll_pie_framework__mathquill} from "../../../@pie-lib/math-edit-module@^1.1.25/module/index.js";
1
+ import {_dll_react, _dll_classnames, _dll_material_ui__core_styles, _dll_prop_types, _dll_pie_lib__render_ui, _dll_pie_lib__correct_answer_toggle, _dll_material_ui__core, _dll_lodash, _dll_react_dom, _dll_debug} from "../../../@pie-lib/shared-module@^1.4.5/module/index.js";
2
+ import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.30/module/index.js";
3
+ import {_dll_pie_lib__math_toolbar, _dll_pie_lib__math_input, _dll_pie_framework__mathquill} from "../../../@pie-lib/math-edit-module@^1.1.26/module/index.js";
4
4
  const ResponseTypes = {
5
5
  advanced: 'Advanced Multi',
6
6
  simple: 'Simple'
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "5.6.4-next.678+8224cd833",
7
+ "version": "5.6.4-next.723+b1af736d4",
8
8
  "main": "lib/index.js",
9
9
  "description": "",
10
10
  "scripts": {
@@ -15,10 +15,10 @@
15
15
  "@material-ui/core": "^3.9.2",
16
16
  "@pie-framework/mathquill": "^1.1.0",
17
17
  "@pie-framework/pie-player-events": "^0.1.0",
18
- "@pie-lib/correct-answer-toggle": "^2.3.34",
18
+ "@pie-lib/correct-answer-toggle": "^2.3.35",
19
19
  "@pie-lib/math-input": "^6.6.8",
20
20
  "@pie-lib/math-toolbar": "^1.8.8",
21
- "@pie-lib/render-ui": "^4.12.4",
21
+ "@pie-lib/render-ui": "^4.12.5",
22
22
  "classnames": "^2.2.5",
23
23
  "debug": "^4.1.1",
24
24
  "lodash": "^4.17.10",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "author": "",
30
30
  "license": "ISC",
31
- "gitHead": "8224cd8333bd0e45785b341173b2c4396218cc3d",
31
+ "gitHead": "b1af736d4594aebd75452c1c6df7f3c72d28b165",
32
32
  "module": "src/index.js",
33
33
  "exports": {
34
34
  ".": "./src/index.js",