@pie-element/math-inline 5.6.4-next.248 → 5.6.4-next.256
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configure/lib/configure.js +2 -2
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/general-config-block.js +8 -4
- package/configure/lib/general-config-block.js.map +1 -1
- package/configure/lib/index.js +2 -2
- package/configure/lib/response.js +8 -4
- package/configure/lib/response.js.map +1 -1
- package/controller/lib/index.js +10 -4
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/lib/index.js +1 -1
- package/lib/main.js +2 -2
- package/lib/main.js.map +1 -1
- package/lib/simple-question-block.js +1 -1
- package/lib/simple-question-block.js.map +1 -1
- package/package.json +2 -2
|
@@ -37,13 +37,13 @@ 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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
41
41
|
|
|
42
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; }
|
|
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
|
|
|
46
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
46
|
+
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; } }
|
|
47
47
|
|
|
48
48
|
var log = (0, _debug["default"])('@pie-element:math-inline:configure');
|
|
49
49
|
var Panel = _configUi.settings.Panel,
|
|
@@ -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","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,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
@@ -53,13 +53,17 @@ var _utils = require("./utils");
|
|
|
53
53
|
|
|
54
54
|
var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
|
|
55
55
|
|
|
56
|
-
function
|
|
56
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
57
|
+
|
|
58
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _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
|
+
|
|
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; }
|
|
57
61
|
|
|
58
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; }
|
|
59
63
|
|
|
60
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); }; }
|
|
61
65
|
|
|
62
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
66
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
63
67
|
|
|
64
68
|
var registered = false;
|
|
65
69
|
|
|
@@ -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: '900px',\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 showKeypad: false,\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 = 'miscellaneous',\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={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={'miscellaneous'}>Miscellaneous</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={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={'miscellaneous'}>Miscellaneous</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","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: '900px',\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 showKeypad: false,\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 = 'miscellaneous',\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={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={'miscellaneous'}>Miscellaneous</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={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={'miscellaneous'}>Miscellaneous</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"}
|
package/configure/lib/index.js
CHANGED
|
@@ -35,13 +35,13 @@ 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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
39
39
|
|
|
40
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; }
|
|
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
|
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
44
|
+
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; } }
|
|
45
45
|
|
|
46
46
|
var log = (0, _debug["default"])('pie-elements:math-inline:configure');
|
|
47
47
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
@@ -51,13 +51,17 @@ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
|
51
51
|
|
|
52
52
|
var _styles = require("@material-ui/core/styles");
|
|
53
53
|
|
|
54
|
-
function
|
|
54
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
55
|
+
|
|
56
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
57
|
+
|
|
58
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
55
59
|
|
|
56
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; }
|
|
57
61
|
|
|
58
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); }; }
|
|
59
63
|
|
|
60
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
64
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
61
65
|
|
|
62
66
|
// TODO once we support individual response correctness, we need to remove this constant
|
|
63
67
|
var INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/response.jsx"],"names":["INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED","styles","theme","responseContainer","marginTop","spacing","unit","width","border","display","flexDirection","justifyContent","cardContent","paddingBottom","title","fontWeight","fontSize","flex","selectContainer","inputContainer","titleBar","alignItems","responseEditor","minWidth","maxWidth","height","minHeight","mathToolbar","configPanel","alternateButton","removeAlternateButton","marginLeft","color","checkboxContainer","configLabel","marginRight","Response","props","name","evt","response","onResponseChange","index","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","main","alternatesLength","Object","keys","length","classes","mode","defaultResponse","cAllowTrailingZeros","cIgnoreOrder","validation","ignoreOrder","allowTrailingZeros","hasAlternates","classNames","editor","select","onChange","flexContainer","enabled","label","onLiteralOptionsChange","onAnswerChange","onFocus","onDone","map","altIdx","alternateBar","onRemoveAlternate","onAlternateAnswerChange","onAlternateFocus","onAlternateDone","onAddAlternate","React","Component","PropTypes","object","isRequired","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Typography from '@material-ui/core/Typography';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\n\n// TODO once we support individual response correctness, we need to remove this constant\nconst INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;\n\nconst styles = (theme) => ({\n responseContainer: {\n marginTop: theme.spacing.unit * 2,\n width: '100%',\n border: '1px solid darkgray',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n cardContent: {\n paddingBottom: `${theme.spacing.unit}px !important`,\n },\n title: {\n fontWeight: 700,\n fontSize: '1.2rem',\n flex: 3,\n },\n selectContainer: {\n flex: 2,\n },\n inputContainer: {\n marginTop: theme.spacing.unit,\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n responseEditor: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: '900px',\n height: 'auto',\n minHeight: '40px',\n },\n mathToolbar: {\n width: '100%',\n },\n configPanel: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n alternateButton: {\n border: '1px solid lightgrey',\n },\n removeAlternateButton: {\n marginLeft: theme.spacing.unit * 2,\n border: '1px solid lightgrey',\n color: 'gray',\n fontSize: '0.8rem',\n },\n checkboxContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n configLabel: {\n marginRight: 'auto',\n },\n});\n\nclass Response extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n defaultResponse: PropTypes.bool,\n mode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n index: PropTypes.number,\n onResponseChange: PropTypes.func.isRequired,\n response: PropTypes.object.isRequired,\n cIgnoreOrder: PropTypes.object.isRequired,\n cAllowTrailingZeros: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n defaultResponse: false,\n mode: 'miscellaneous',\n };\n\n constructor(props) {\n super(props);\n\n const { response: { alternates } = {} } = props || {};\n const alternatesLength = Object.keys(alternates || {}).length;\n\n this.state = {\n alternateIdCounter: alternatesLength + 1,\n showKeypad: {\n openCount: 0,\n main: false,\n },\n };\n }\n\n onChange = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.value;\n\n onResponseChange(newResponse, index);\n };\n\n onConfigChanged = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.checked;\n\n onResponseChange(newResponse, index);\n };\n\n onLiteralOptionsChange = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = !response[name];\n\n onResponseChange(newResponse, index);\n };\n\n onAnswerChange = (answer) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.answer = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAlternateAnswerChange = (alternateId) => (answer) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.alternates[alternateId] = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAddAlternate = () => {\n const { response, onResponseChange, index } = this.props;\n const { alternateIdCounter } = this.state;\n const newResponse = { ...response };\n\n if (!newResponse.alternates) {\n newResponse.alternates = {};\n }\n\n newResponse.alternates[alternateIdCounter] = '';\n\n onResponseChange(newResponse, index);\n\n this.setState({\n alternateIdCounter: alternateIdCounter + 1,\n });\n };\n\n onRemoveAlternate = (alternateId) => () => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n delete newResponse.alternates[alternateId];\n\n onResponseChange(newResponse, index);\n\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId]\n ? state.showKeypad.openCount\n : state.showKeypad.openCount - 1,\n },\n }));\n };\n\n onDone = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n main: false,\n },\n }));\n };\n\n onFocus = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad.main\n ? state.showKeypad.openCount + 1\n : state.showKeypad.openCount,\n main: true,\n },\n }));\n };\n\n onAlternateFocus = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId]\n ? state.showKeypad.openCount + 1\n : state.showKeypad.openCount,\n [alternateId]: true,\n },\n }));\n };\n\n onAlternateDone = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n [alternateId]: false,\n },\n }));\n };\n\n render() {\n const {\n classes,\n mode,\n defaultResponse,\n index,\n response,\n cAllowTrailingZeros,\n cIgnoreOrder,\n } = this.props;\n\n const { showKeypad } = this.state;\n const {\n validation,\n answer,\n alternates,\n ignoreOrder,\n allowTrailingZeros,\n } = response;\n const hasAlternates = Object.keys(alternates || {}).length > 0;\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n const styles = {\n minHeight: `${showKeypad.openCount > 0 ? 430 : 230}px`,\n };\n\n return (\n <Card className={classes.responseContainer} style={styles}>\n <CardContent className={classes.cardContent}>\n <div className={classes.titleBar}>\n <Typography className={classes.title} component=\"h2\">\n Response{' '}\n {INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED\n ? defaultResponse\n ? ''\n : index + 1\n : ''}\n </Typography>\n <InputContainer\n label=\"Validation\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('validation')}\n value={validation || 'literal'}\n >\n <MenuItem value=\"literal\">Literal Validation</MenuItem>\n <MenuItem value=\"symbolic\">Symbolic Validation</MenuItem>\n </Select>\n </InputContainer>\n </div>\n {validation === 'literal' && (\n <div className={classes.flexContainer}>\n {cAllowTrailingZeros.enabled && (\n <FormControlLabel\n label={cAllowTrailingZeros.label}\n control={\n <Checkbox\n checked={allowTrailingZeros}\n onChange={this.onLiteralOptionsChange(\n 'allowTrailingZeros'\n )}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={\n <Checkbox\n checked={ignoreOrder}\n onChange={this.onLiteralOptionsChange('ignoreOrder')}\n />\n }\n />\n )}\n </div>\n )}\n <div className={classes.inputContainer}>\n <InputLabel>Correct Answer</InputLabel>\n <MathToolbar\n keypadMode={mode}\n classNames={classNames}\n controlledKeypad\n showKeypad={showKeypad.main}\n latex={answer || ''}\n onChange={this.onAnswerChange}\n onFocus={this.onFocus}\n onDone={this.onDone}\n />\n </div>\n {hasAlternates &&\n Object.keys(alternates).map((alternateId, altIdx) => (\n <div className={classes.inputContainer} key={alternateId}>\n <div className={classes.alternateBar}>\n <InputLabel>\n Alternate\n {Object.keys(alternates).length > 1 ? ` ${altIdx + 1}` : ''}\n </InputLabel>\n <Button\n className={classes.removeAlternateButton}\n type=\"secondary\"\n onClick={this.onRemoveAlternate(alternateId)}\n >\n Remove\n </Button>\n </div>\n <MathToolbar\n classNames={classNames}\n controlledKeypad\n keypadMode={mode}\n showKeypad={showKeypad[alternateId] || false}\n latex={alternates[alternateId] || ''}\n onChange={this.onAlternateAnswerChange(alternateId)}\n onFocus={this.onAlternateFocus(alternateId)}\n onDone={this.onAlternateDone(alternateId)}\n />\n </div>\n ))}\n {validation === 'literal' && (\n <div className={classes.configPanel}>\n <Button\n className={classes.alternateButton}\n type=\"primary\"\n onClick={this.onAddAlternate}\n >\n ADD ALTERNATE\n </Button>\n <div className={classes.checkboxContainer}></div>\n </div>\n )}\n </CardContent>\n </Card>\n );\n }\n}\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
|
|
1
|
+
{"version":3,"sources":["../src/response.jsx"],"names":["INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED","styles","theme","responseContainer","marginTop","spacing","unit","width","border","display","flexDirection","justifyContent","cardContent","paddingBottom","title","fontWeight","fontSize","flex","selectContainer","inputContainer","titleBar","alignItems","responseEditor","minWidth","maxWidth","height","minHeight","mathToolbar","configPanel","alternateButton","removeAlternateButton","marginLeft","color","checkboxContainer","configLabel","marginRight","Response","props","name","evt","response","onResponseChange","index","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","main","alternatesLength","Object","keys","length","classes","mode","defaultResponse","cAllowTrailingZeros","cIgnoreOrder","validation","ignoreOrder","allowTrailingZeros","hasAlternates","classNames","editor","select","onChange","flexContainer","enabled","label","onLiteralOptionsChange","onAnswerChange","onFocus","onDone","map","altIdx","alternateBar","onRemoveAlternate","onAlternateAnswerChange","onAlternateFocus","onAlternateDone","onAddAlternate","React","Component","PropTypes","object","isRequired","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Typography from '@material-ui/core/Typography';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\n\n// TODO once we support individual response correctness, we need to remove this constant\nconst INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;\n\nconst styles = (theme) => ({\n responseContainer: {\n marginTop: theme.spacing.unit * 2,\n width: '100%',\n border: '1px solid darkgray',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n cardContent: {\n paddingBottom: `${theme.spacing.unit}px !important`,\n },\n title: {\n fontWeight: 700,\n fontSize: '1.2rem',\n flex: 3,\n },\n selectContainer: {\n flex: 2,\n },\n inputContainer: {\n marginTop: theme.spacing.unit,\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n responseEditor: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: '900px',\n height: 'auto',\n minHeight: '40px',\n },\n mathToolbar: {\n width: '100%',\n },\n configPanel: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n alternateButton: {\n border: '1px solid lightgrey',\n },\n removeAlternateButton: {\n marginLeft: theme.spacing.unit * 2,\n border: '1px solid lightgrey',\n color: 'gray',\n fontSize: '0.8rem',\n },\n checkboxContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n configLabel: {\n marginRight: 'auto',\n },\n});\n\nclass Response extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n defaultResponse: PropTypes.bool,\n mode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n index: PropTypes.number,\n onResponseChange: PropTypes.func.isRequired,\n response: PropTypes.object.isRequired,\n cIgnoreOrder: PropTypes.object.isRequired,\n cAllowTrailingZeros: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n defaultResponse: false,\n mode: 'miscellaneous',\n };\n\n constructor(props) {\n super(props);\n\n const { response: { alternates } = {} } = props || {};\n const alternatesLength = Object.keys(alternates || {}).length;\n\n this.state = {\n alternateIdCounter: alternatesLength + 1,\n showKeypad: {\n openCount: 0,\n main: false,\n },\n };\n }\n\n onChange = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.value;\n\n onResponseChange(newResponse, index);\n };\n\n onConfigChanged = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.checked;\n\n onResponseChange(newResponse, index);\n };\n\n onLiteralOptionsChange = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = !response[name];\n\n onResponseChange(newResponse, index);\n };\n\n onAnswerChange = (answer) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.answer = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAlternateAnswerChange = (alternateId) => (answer) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.alternates[alternateId] = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAddAlternate = () => {\n const { response, onResponseChange, index } = this.props;\n const { alternateIdCounter } = this.state;\n const newResponse = { ...response };\n\n if (!newResponse.alternates) {\n newResponse.alternates = {};\n }\n\n newResponse.alternates[alternateIdCounter] = '';\n\n onResponseChange(newResponse, index);\n\n this.setState({\n alternateIdCounter: alternateIdCounter + 1,\n });\n };\n\n onRemoveAlternate = (alternateId) => () => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n delete newResponse.alternates[alternateId];\n\n onResponseChange(newResponse, index);\n\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId]\n ? state.showKeypad.openCount\n : state.showKeypad.openCount - 1,\n },\n }));\n };\n\n onDone = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n main: false,\n },\n }));\n };\n\n onFocus = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad.main\n ? state.showKeypad.openCount + 1\n : state.showKeypad.openCount,\n main: true,\n },\n }));\n };\n\n onAlternateFocus = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId]\n ? state.showKeypad.openCount + 1\n : state.showKeypad.openCount,\n [alternateId]: true,\n },\n }));\n };\n\n onAlternateDone = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n [alternateId]: false,\n },\n }));\n };\n\n render() {\n const {\n classes,\n mode,\n defaultResponse,\n index,\n response,\n cAllowTrailingZeros,\n cIgnoreOrder,\n } = this.props;\n\n const { showKeypad } = this.state;\n const {\n validation,\n answer,\n alternates,\n ignoreOrder,\n allowTrailingZeros,\n } = response;\n const hasAlternates = Object.keys(alternates || {}).length > 0;\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n const styles = {\n minHeight: `${showKeypad.openCount > 0 ? 430 : 230}px`,\n };\n\n return (\n <Card className={classes.responseContainer} style={styles}>\n <CardContent className={classes.cardContent}>\n <div className={classes.titleBar}>\n <Typography className={classes.title} component=\"h2\">\n Response{' '}\n {INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED\n ? defaultResponse\n ? ''\n : index + 1\n : ''}\n </Typography>\n <InputContainer\n label=\"Validation\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('validation')}\n value={validation || 'literal'}\n >\n <MenuItem value=\"literal\">Literal Validation</MenuItem>\n <MenuItem value=\"symbolic\">Symbolic Validation</MenuItem>\n </Select>\n </InputContainer>\n </div>\n {validation === 'literal' && (\n <div className={classes.flexContainer}>\n {cAllowTrailingZeros.enabled && (\n <FormControlLabel\n label={cAllowTrailingZeros.label}\n control={\n <Checkbox\n checked={allowTrailingZeros}\n onChange={this.onLiteralOptionsChange(\n 'allowTrailingZeros'\n )}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={\n <Checkbox\n checked={ignoreOrder}\n onChange={this.onLiteralOptionsChange('ignoreOrder')}\n />\n }\n />\n )}\n </div>\n )}\n <div className={classes.inputContainer}>\n <InputLabel>Correct Answer</InputLabel>\n <MathToolbar\n keypadMode={mode}\n classNames={classNames}\n controlledKeypad\n showKeypad={showKeypad.main}\n latex={answer || ''}\n onChange={this.onAnswerChange}\n onFocus={this.onFocus}\n onDone={this.onDone}\n />\n </div>\n {hasAlternates &&\n Object.keys(alternates).map((alternateId, altIdx) => (\n <div className={classes.inputContainer} key={alternateId}>\n <div className={classes.alternateBar}>\n <InputLabel>\n Alternate\n {Object.keys(alternates).length > 1 ? ` ${altIdx + 1}` : ''}\n </InputLabel>\n <Button\n className={classes.removeAlternateButton}\n type=\"secondary\"\n onClick={this.onRemoveAlternate(alternateId)}\n >\n Remove\n </Button>\n </div>\n <MathToolbar\n classNames={classNames}\n controlledKeypad\n keypadMode={mode}\n showKeypad={showKeypad[alternateId] || false}\n latex={alternates[alternateId] || ''}\n onChange={this.onAlternateAnswerChange(alternateId)}\n onFocus={this.onAlternateFocus(alternateId)}\n onDone={this.onAlternateDone(alternateId)}\n />\n </div>\n ))}\n {validation === 'literal' && (\n <div className={classes.configPanel}>\n <Button\n className={classes.alternateButton}\n type=\"primary\"\n onClick={this.onAddAlternate}\n >\n ADD ALTERNATE\n </Button>\n <div className={classes.checkboxContainer}></div>\n </div>\n )}\n </CardContent>\n </Card>\n );\n }\n}\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
|
package/controller/lib/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
@@ -27,7 +27,13 @@ var _defaults = _interopRequireDefault(require("./defaults"));
|
|
|
27
27
|
|
|
28
28
|
var mv = _interopRequireWildcard(require("@pie-framework/math-validation"));
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
var _excluded = ["responses"];
|
|
31
|
+
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
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
|
+
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; }
|
|
31
37
|
|
|
32
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; }
|
|
33
39
|
|
|
@@ -166,7 +172,7 @@ function model(question, session, env) {
|
|
|
166
172
|
var correctness = getCorrectness(normalizedQuestion, env, session);
|
|
167
173
|
var correctResponse = {};
|
|
168
174
|
var responses = normalizedQuestion.responses,
|
|
169
|
-
config = (0, _objectWithoutProperties2["default"])(normalizedQuestion,
|
|
175
|
+
config = (0, _objectWithoutProperties2["default"])(normalizedQuestion, _excluded);
|
|
170
176
|
|
|
171
177
|
if (config.responseType === _utils.ResponseTypes.simple) {
|
|
172
178
|
config.responses = responses.slice(0, 1);
|
|
@@ -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","assign","role","rationale","teacherInstructions","prompt","escape","string","replace","simpleSessionResponse","id","advancedSessionResponse","reject","expression","RESPONSE_TOKEN","o","split","to","t","tt","join","m","match","RegExp","count","answers","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 correctResponse = {};\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 let out;\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\n out = Object.assign(base, {\n correctResponse,\n });\n\n out.config.showNote = showNote;\n } else {\n out = base;\n\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 out.config.showNote = showNote;\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 } = question;\n const { answer } = responses ? responses[0] : {};\n resolve({\n id: question.id,\n response: answer,\n completeAnswer: answer,\n });\n });\n\nconst advancedSessionResponse = (question) =>\n new Promise((resolve, reject) => {\n const { responses } = question;\n const { answer } = responses ? responses[0] : {};\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 answers: {},\n completeAnswer: answer,\n id: question.id,\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 answers,\n completeAnswer: answer,\n id: question.id,\n });\n } catch (e) {\n resolve({\n answers: {},\n completeAnswer: answer,\n id: question.id,\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","assign","role","rationale","teacherInstructions","prompt","escape","string","replace","simpleSessionResponse","id","advancedSessionResponse","reject","expression","RESPONSE_TOKEN","o","split","to","t","tt","join","m","match","RegExp","count","answers","console","shift","value","trim","error","toString","createCorrectResponseSession","toLowerCase"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;;;;;;;;;;;AAGA,IAAMA,GAAG,GAAG,uBAAM,qCAAN,CAAZ;;AAGA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,KAAD,EAAQC,UAAR,EAAoBC,SAApB,EAAkC;AAC/D,MAAMC,gBAAgB,GAAGH,KAAK,CAACI,SAA/B;AACA,MAAMC,UAAU,GAAGL,KAAK,CAACM,YAAN,KAAuBC,qBAAcC,QAAxD;;AAEA,MAAI,CAACP,UAAL,EAAiB;AACf,WAAO;AACLQ,MAAAA,WAAW,EAAE,YADR;AAELC,MAAAA,KAAK,EAAER,SAAS,GAAG,CAAH,GAAO,IAFlB;AAGLS,MAAAA,OAAO,EAAE;AAHJ,KAAP;AAKD;;AAED,MAAMC,eAAe,GAAGC,kBAAkB,CACxCR,UAAU,GAAGF,gBAAH,GAAsBA,gBAAgB,CAACW,KAAjB,CAAuB,CAAvB,EAA0B,CAA1B,CADQ,EAExCb,UAFwC,CAA1C;AAKA,MAAMc,iBAAiB,GAAG;AACxBN,IAAAA,WAAW,EAAE,WADW;AAExBC,IAAAA,KAAK,EAAER,SAAS,GAAG,CAAH,GAAO,IAFC;AAGxBS,IAAAA,OAAO,EAAE;AAHe,GAA1B;;AAMA,MAAIC,eAAJ,EAAqB;AACnBG,IAAAA,iBAAiB,CAACN,WAAlB,GAAgC,SAAhC;AACAM,IAAAA,iBAAiB,CAACL,KAAlB,GAA0BR,SAAS,GAAG,CAAH,GAAO,MAA1C;AACAa,IAAAA,iBAAiB,CAACJ,OAAlB,GAA4B,IAA5B;AACD;;AAED,SAAOI,iBAAP;AACD,CA9BD;;AAiCA,SAASF,kBAAT,CAA4BG,mBAA5B,EAAiDf,UAAjD,EAA6D;AAC3D,MAAIgB,aAAa,GAAG,KAApB;AAEA,GAACD,mBAAmB,IAAI,EAAxB,EAA4BE,OAA5B,CAAoC,UAAAC,eAAe,EAAI;AAErD,QAAIC,IAAI,GAAG;AACTC,MAAAA,IAAI,EAAEF,eAAe,CAACG,UAAhB,IAA8BC,qBAASC;AADpC,KAAX;;AAIA,QAAIJ,IAAI,CAACC,IAAL,IAAa,SAAjB,EAA4B;AAC1BD,MAAAA,IAAI,CAACK,OAAL,GAAe;AACbC,QAAAA,kBAAkB,EAAEP,eAAe,CAACO,kBAAhB,IAAsC,KAD7C;AAEbC,QAAAA,WAAW,EAAER,eAAe,CAACQ,WAAhB,IAA+B;AAF/B,OAAf;AAID;;AAED,QAAI,CAACV,aAAL,EAAoB;AAClB,UAAMW,cAAc,GAAG,CAACT,eAAe,CAACU,MAAjB,EAAyBC,MAAzB,CACrBC,MAAM,CAACC,IAAP,CAAYb,eAAe,CAACc,UAAhB,IAA8B,EAA1C,EAA8CC,GAA9C,CACE,UAAAC,WAAW;AAAA,eAAIhB,eAAe,CAACc,UAAhB,CAA2BE,WAA3B,CAAJ;AAAA,OADb,CADqB,KAIlB,EAJL;;AAMA,UAAI;AACF,aAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGR,cAAc,CAACS,MAAnC,EAA2CD,CAAC,EAA5C,EAAgD;AAC9CnB,UAAAA,aAAa,GAAGqB,EAAE,CAACC,UAAH,CAActC,UAAd,EAA0B2B,cAAc,CAACQ,CAAD,CAAxC,EAA6ChB,IAA7C,CAAhB;;AAEA,cAAIH,aAAJ,EAAmB;AACjB;AACD;AACF;AACF,OARD,CAQE,OAAOuB,CAAP,EAAU;AACV1C,QAAAA,GAAG,CACD,oCADC,EAED0C,CAFC,EAGDrB,eAHC,EAIDlB,UAJC,CAAH;AAOAgB,QAAAA,aAAa,GAAG,KAAhB;AACD;AACF;AACF,GAvCD;AAyCA,SAAOA,aAAP;AACD;;AAED,IAAMwB,cAAc,GAAG,SAAjBA,cAAiB,CAACC,QAAD,EAAWC,GAAX,EAAgBC,OAAhB,EAAyB1C,SAAzB,EAAuC;AAC5D,MAAIyC,GAAG,CAACtB,IAAJ,KAAa,UAAjB,EAA6B;AAC3B,WAAOtB,sBAAsB,CAC3B2C,QAD2B,EAE3BA,QAAQ,CAACpC,YAAT,KAA0BC,qBAAcC,QAAxC,GACKoC,OAAO,IAAIA,OAAO,CAACC,cAApB,IAAuC,EAD3C,GAEID,OAAO,IAAIA,OAAO,CAACE,QAJI,EAK3B5C,SAL2B,CAA7B;AAOD;AACF,CAVD;;AAYO,SAAS6C,kBAAT,GAAwC;AAAA,MAAZ/C,KAAY,uEAAJ,EAAI;AAC7C,SAAO,IAAIgD,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9BA,IAAAA,OAAO,CAAC;AACNC,MAAAA,MAAM,kCACD3B,oBADC,GAEDvB,KAFC;AADA,KAAD,CAAP;AAMD,GAPM,CAAP;AAQD;;AAEM,IAAMmD,OAAO,GAAG,SAAVA,OAAU,CAACT,QAAD,EAAWE,OAAX,EAAoBD,GAApB,EAA4B;AACjD,SAAO,IAAIK,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAIN,GAAG,CAACtB,IAAJ,KAAa,UAAjB,EAA6B;AAC3B4B,MAAAA,OAAO,CAAC;AAAEvC,QAAAA,KAAK,EAAE0C,SAAT;AAAoBC,QAAAA,SAAS,EAAED;AAA/B,OAAD,CAAP;AACD,KAFD,MAEO;AACL,UAAI,CAACR,OAAD,IAAY,yBAAQA,OAAR,CAAhB,EAAkC;AAChCK,QAAAA,OAAO,CAAC;AAAEvC,UAAAA,KAAK,EAAE,CAAT;AAAY4C,UAAAA,KAAK,EAAE;AAAnB,SAAD,CAAP;AACD,OAFD,MAEO;AACL,YAAM7C,WAAW,GAAGgC,cAAc,CAACC,QAAD,EAAWC,GAAX,EAAgBC,OAAhB,EAAyB,IAAzB,CAAlC;AAEAK,QAAAA,OAAO,CAAC;AAAEvC,UAAAA,KAAK,EAAED,WAAW,CAACC;AAArB,SAAD,CAAP;AACD;AACF;AACF,GAZM,CAAP;AAaD,CAdM;;;;AAgBA,IAAM6C,SAAS,GAAG,SAAZA,SAAY,CAACb,QAAD,EAAc;AAErC;AACA,MAAI,CAAC,yBAAQA,QAAQ,CAACtC,SAAjB,CAAL,EAAkC;AAChCsC,IAAAA,QAAQ,CAACtC,SAAT,GAAqBsC,QAAQ,CAACtC,SAAT,CAAmB8B,GAAnB,CAAuB,UAAAf,eAAe;AAAA,6CACtDA,eADsD;AACrCG,QAAAA,UAAU,EAAEH,eAAe,CAACG,UAAhB,IAA8BoB,QAAQ,CAAClB,iBADd;AAEzDE,QAAAA,kBAAkB,EAAEP,eAAe,CAACO,kBAAhB,IAAsCgB,QAAQ,CAACc,yBAFV;AAGzD7B,QAAAA,WAAW,EAAER,eAAe,CAACQ,WAAhB,IAA+Be,QAAQ,CAACe;AAHI;AAAA,KAAtC,CAArB;AAKD;;AAED,yCACKlC,oBADL;AAEEmC,IAAAA,eAAe,EAAE,IAFnB;AAGEC,IAAAA,aAAa,EAAE,IAHjB;AAIEC,IAAAA,gBAAgB,EAAE,IAJpB;AAKEC,IAAAA,0BAA0B,EAAE,IAL9B;AAMEC,IAAAA,0BAA0B,EAAE;AAN9B,KAOKpB,QAPL;AASD,CApBM;;;;AAsBA,SAAS1C,KAAT,CAAe0C,QAAf,EAAyBE,OAAzB,EAAkCD,GAAlC,EAAuC;AAC5C,SAAO,IAAIK,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAMc,kBAAkB,GAAGR,SAAS,CAACb,QAAD,CAApC;AACA,QAAMjC,WAAW,GAAGgC,cAAc,CAACsB,kBAAD,EAAqBpB,GAArB,EAA0BC,OAA1B,CAAlC;AACA,QAAMzB,eAAe,GAAG,EAAxB;AACA,QAAQf,SAAR,GAAiC2D,kBAAjC,CAAQ3D,SAAR;AAAA,QAAsB8C,MAAtB,6CAAiCa,kBAAjC;;AAEA,QAAIb,MAAM,CAAC5C,YAAP,KAAwBC,qBAAcyD,MAA1C,EAAkD;AAChDd,MAAAA,MAAM,CAAC9C,SAAP,GAAmBA,SAAS,CAACU,KAAV,CAAgB,CAAhB,EAAmB,CAAnB,CAAnB;AACD,KAFD,MAEO;AACLoC,MAAAA,MAAM,CAAC9C,SAAP,GAAmBA,SAAnB;AACD;;AAED,QAAM6D,EAAE,GACNtB,GAAG,CAACtB,IAAJ,KAAa,UAAb,IAA2B0C,kBAAkB,CAACL,eAA9C,GACI,yCAA0BjD,WAA1B,EAAuCsD,kBAAkB,CAACG,QAA1D,CADJ,GAEIlB,OAAO,CAACC,OAAR,CAAgBG,SAAhB,CAHN;AAKAa,IAAAA,EAAE,CAACE,IAAH,CAAQ,UAACD,QAAD,EAAc;AACpB,UAAME,IAAI,GAAG;AACXlB,QAAAA,MAAM,EAANA,MADW;AAEXzC,QAAAA,WAAW,EAAXA,WAFW;AAGXyD,QAAAA,QAAQ,EAARA,QAHW;AAIXG,QAAAA,QAAQ,EAAE1B,GAAG,CAACtB,IAAJ,KAAa,QAJZ;AAKXiD,QAAAA,IAAI,EAAE3B,GAAG,CAACtB,IAAJ,KAAa;AALR,OAAb;AAQA,UAAIkD,GAAJ;AACA,UAAIC,QAAQ,GAAG,KAAf;AAEA,OAAEtB,MAAM,IAAIA,MAAM,CAAC9C,SAAlB,IAAgC,EAAjC,EAAqCc,OAArC,CAA6C,UAAC4B,QAAD,EAAc;AACzD,YACEA,QAAQ,CAACxB,UAAT,KAAwB,UAAxB,IACAS,MAAM,CAACC,IAAP,CAAYc,QAAQ,CAACb,UAAT,IAAuB,EAAnC,EAAuCI,MAAvC,GAAgD,CAFlD,EAGE;AACAmC,UAAAA,QAAQ,GAAG,IAAX;AACA;AACD;AACF,OARD;;AAUA,UAAI7B,GAAG,CAACtB,IAAJ,KAAa,UAAjB,EAA6B;AAE3BkD,QAAAA,GAAG,GAAGxC,MAAM,CAAC0C,MAAP,CAAcL,IAAd,EAAoB;AACxBjD,UAAAA,eAAe,EAAfA;AADwB,SAApB,CAAN;AAIAoD,QAAAA,GAAG,CAACrB,MAAJ,CAAWsB,QAAX,GAAsBA,QAAtB;AACD,OAPD,MAOO;AACLD,QAAAA,GAAG,GAAGH,IAAN;AAEAG,QAAAA,GAAG,CAACrB,MAAJ,CAAW9C,SAAX,GAAuB,EAAvB;AACAmE,QAAAA,GAAG,CAACrB,MAAJ,CAAWsB,QAAX,GAAsB,KAAtB;AACD;;AAED,UACE7B,GAAG,CAAC+B,IAAJ,KAAa,YAAb,KACC/B,GAAG,CAACtB,IAAJ,KAAa,MAAb,IAAuBsB,GAAG,CAACtB,IAAJ,KAAa,UADrC,CADF,EAGE;AACAkD,QAAAA,GAAG,CAACI,SAAJ,GAAgBZ,kBAAkB,CAACH,gBAAnB,GACZG,kBAAkB,CAACY,SADP,GAEZ,IAFJ;AAGAJ,QAAAA,GAAG,CAACK,mBAAJ,GAA0Bb,kBAAkB,CAACF,0BAAnB,GACtBE,kBAAkB,CAACa,mBADG,GAEtB,IAFJ;AAGAL,QAAAA,GAAG,CAACrB,MAAJ,CAAWsB,QAAX,GAAsBA,QAAtB;AACD,OAXD,MAWO;AACLD,QAAAA,GAAG,CAACI,SAAJ,GAAgB,IAAhB;AACAJ,QAAAA,GAAG,CAACK,mBAAJ,GAA0B,IAA1B;AACAL,QAAAA,GAAG,CAACrB,MAAJ,CAAWyB,SAAX,GAAuB,IAAvB;AACAJ,QAAAA,GAAG,CAACrB,MAAJ,CAAW0B,mBAAX,GAAiC,IAAjC;AACD;;AAEDL,MAAAA,GAAG,CAACrB,MAAJ,CAAWP,GAAX,GAAiBA,GAAjB;AACA4B,MAAAA,GAAG,CAACrB,MAAJ,CAAW2B,MAAX,GAAoBd,kBAAkB,CAACJ,aAAnB,GAChBI,kBAAkB,CAACc,MADH,GAEhB,IAFJ;AAIA/E,MAAAA,GAAG,CAAC,OAAD,EAAUyE,GAAV,CAAH;AACAtB,MAAAA,OAAO,CAACsB,GAAD,CAAP;AACD,KA7DD;AA8DD,GA/EM,CAAP;AAgFD;;AAED,IAAMO,MAAM,GAAG,SAATA,MAAS,CAACC,MAAD;AAAA,SAAYA,MAAM,CAACC,OAAP,CAAe,qBAAf,EAAsC,MAAtC,CAAZ;AAAA,CAAf,C,CAA0E;;;AAE1E,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACvC,QAAD;AAAA,SAC5B,IAAIM,OAAJ,CAAY,UAACC,OAAD,EAAa;AACvB,QAAQ7C,SAAR,GAAsBsC,QAAtB,CAAQtC,SAAR;;AACA,eAAmBA,SAAS,GAAGA,SAAS,CAAC,CAAD,CAAZ,GAAkB,EAA9C;AAAA,QAAQyB,MAAR,QAAQA,MAAR;;AACAoB,IAAAA,OAAO,CAAC;AACNiC,MAAAA,EAAE,EAAExC,QAAQ,CAACwC,EADP;AAENpC,MAAAA,QAAQ,EAAEjB,MAFJ;AAGNgB,MAAAA,cAAc,EAAEhB;AAHV,KAAD,CAAP;AAKD,GARD,CAD4B;AAAA,CAA9B;;AAWA,IAAMsD,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACzC,QAAD;AAAA,SAC9B,IAAIM,OAAJ,CAAY,UAACC,OAAD,EAAUmC,MAAV,EAAqB;AAC/B,QAAQhF,SAAR,GAAsBsC,QAAtB,CAAQtC,SAAR;;AACA,gBAAmBA,SAAS,GAAGA,SAAS,CAAC,CAAD,CAAZ,GAAkB,EAA9C;AAAA,QAAQyB,MAAR,SAAQA,MAAR;;AAEA,QAAI;AACF,UAAMW,CAAC,GAAGE,QAAQ,CAAC2C,UAAnB;AACA,UAAMC,cAAc,GAAG,6BAAvB;AAEA,UAAMC,CAAC,GAAGT,MAAM,CAACtC,CAAD,CAAN,CAAUgD,KAAV,CAAgBF,cAAhB,CAAV;AACA,UAAMG,EAAE,GAAGF,CAAC,CAACrD,GAAF,CAAM,UAACwD,CAAD;AAAA,eAAQA,CAAC,KAAK,EAAN,GAAWA,CAAX,GAAeA,CAAC,CAACV,OAAF,CAAU,MAAV,EAAkB;AAAA,iBAAM,MAAN;AAAA,SAAlB,CAAvB;AAAA,OAAN,CAAX;AACA,UAAMW,EAAE,GAAGF,EAAE,CAACG,IAAH,CAAQ,MAAR,CAAX;AAEA,UAAMC,CAAC,GAAGhE,MAAM,CAACiE,KAAP,CAAa,IAAIC,MAAJ,CAAWJ,EAAX,CAAb,CAAV;AAEA,UAAMK,KAAK,GAAGT,CAAC,CAAClD,MAAF,GAAW,CAAzB;;AAEA,UAAI,CAACwD,CAAL,EAAQ;AACN5C,QAAAA,OAAO,CAAC;AACNgD,UAAAA,OAAO,EAAE,EADH;AAENpD,UAAAA,cAAc,EAAEhB,MAFV;AAGNqD,UAAAA,EAAE,EAAExC,QAAQ,CAACwC;AAHP,SAAD,CAAP;AAMAgB,QAAAA,OAAO,CAACpG,GAAR,+BAAmCyF,CAAnC,iBAA2C1D,MAA3C;AAEA;AACD;;AAEDgE,MAAAA,CAAC,CAACM,KAAF;AAEA,UAAMF,OAAO,GAAG,EAAhB;;AAEA,WAAK,IAAI7D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4D,KAApB,EAA2B5D,CAAC,EAA5B,EAAgC;AAC9B6D,QAAAA,OAAO,YAAK7D,CAAC,GAAG,CAAT,EAAP,GAAuB;AAAEgE,UAAAA,KAAK,EAAEP,CAAC,CAACzD,CAAD,CAAD,CAAKiE,IAAL;AAAT,SAAvB;AACD;;AAEDpD,MAAAA,OAAO,CAAC;AACNgD,QAAAA,OAAO,EAAPA,OADM;AAENpD,QAAAA,cAAc,EAAEhB,MAFV;AAGNqD,QAAAA,EAAE,EAAExC,QAAQ,CAACwC;AAHP,OAAD,CAAP;AAKD,KArCD,CAqCE,OAAO1C,CAAP,EAAU;AACVS,MAAAA,OAAO,CAAC;AACNgD,QAAAA,OAAO,EAAE,EADH;AAENpD,QAAAA,cAAc,EAAEhB,MAFV;AAGNqD,QAAAA,EAAE,EAAExC,QAAQ,CAACwC;AAHP,OAAD,CAAP;AAMAgB,MAAAA,OAAO,CAACI,KAAR,CAAc9D,CAAC,CAAC+D,QAAF,EAAd;AACD;AACF,GAlDD,CAD8B;AAAA,CAAhC;;AAqDO,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CAAC9D,QAAD,EAAWC,GAAX,EAAmB;AAC7D,MAAIA,GAAG,CAACtB,IAAJ,KAAa,UAAb,IAA2BsB,GAAG,CAAC+B,IAAJ,KAAa,YAA5C,EAA0D;AACxD;AACAwB,IAAAA,OAAO,CAACI,KAAR,CACE,uFADF;AAIA,WAAOtD,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACD;;AAED,MAAI,CAACP,QAAQ,CAACpC,YAAT,IAAyB,EAA1B,EAA8BmG,WAA9B,OAAgD,QAApD,EAA8D;AAC5D,WAAOxB,qBAAqB,CAACvC,QAAD,EAAWC,GAAX,CAA5B;AACD,GAFD,MAEO;AACL,WAAOwC,uBAAuB,CAACzC,QAAD,EAAWC,GAAX,CAA9B;AACD;AACF,CAfM","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 correctResponse = {};\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 let out;\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\n out = Object.assign(base, {\n correctResponse,\n });\n\n out.config.showNote = showNote;\n } else {\n out = base;\n\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 out.config.showNote = showNote;\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 } = question;\n const { answer } = responses ? responses[0] : {};\n resolve({\n id: question.id,\n response: answer,\n completeAnswer: answer,\n });\n });\n\nconst advancedSessionResponse = (question) =>\n new Promise((resolve, reject) => {\n const { responses } = question;\n const { answer } = responses ? responses[0] : {};\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 answers: {},\n completeAnswer: answer,\n id: question.id,\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 answers,\n completeAnswer: answer,\n id: question.id,\n });\n } catch (e) {\n resolve({\n answers: {},\n completeAnswer: answer,\n id: question.id,\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"}
|
package/controller/package.json
CHANGED
package/lib/index.js
CHANGED
|
@@ -41,7 +41,7 @@ var _defaults = _interopRequireDefault(require("../configure/lib/defaults"));
|
|
|
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
|
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
44
|
+
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; } }
|
|
45
45
|
|
|
46
46
|
var log = (0, _debug["default"])('pie-ui:math-inline');
|
|
47
47
|
|
package/lib/main.js
CHANGED
|
@@ -47,13 +47,13 @@ var _simpleQuestionBlock = _interopRequireDefault(require("./simple-question-blo
|
|
|
47
47
|
|
|
48
48
|
var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
|
|
49
49
|
|
|
50
|
-
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; }
|
|
50
|
+
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; }
|
|
51
51
|
|
|
52
52
|
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; }
|
|
53
53
|
|
|
54
54
|
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); }; }
|
|
55
55
|
|
|
56
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
56
|
+
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; } }
|
|
57
57
|
|
|
58
58
|
var registered = false;
|
|
59
59
|
var NEWLINE_LATEX = /\\newline/g;
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["registered","NEWLINE_LATEX","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","prepareForStatic","model","state","config","disabled","expression","responses","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","response","setState","callOnSessionChange","id","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","offsetParent","children","attributes","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","nextProps","nextConfig","newAnswers","nextState","sameModel","sameState","setTimeout","ref","div","document","firstChild","setAttribute","showNote","note","prompt","env","mode","role","displayNote","customKeys","correctness","staticLatex","tooltipModeEnabled","responseType","ResponseTypes","simple","midContent","main","content","__html","inputAndKeypadContainer","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","teacherInstructions","rationale","feedback","tooltipPopper","toggle","toggleShowCorrect","hidden","visible","collapsible","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","display","background","color","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","position","backgroundColor","title","marginBottom","zIndex","minWidth","maxWidth","margin","top","left","right","borderTop","letterSpacing","borderColor","flex","alignItems","justifyContent","borderRight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/math-input';\nimport { Feedback, Collapsible, Readable, hasText } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { ResponseTypes } from './utils';\nimport isEqual from 'lodash/isEqual';\nimport cx from 'classnames';\nimport SimpleQuestionBlock from './simple-question-block';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/render-ui';\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return (\n Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500)\n );\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '').replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n }).replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n\n if (props.model.config && props.model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (props.model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (props.session &&\n props.session.answers &&\n props.session.answers[`r${answerBlocks}`] &&\n props.session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n\n this.state = {\n session: {\n ...props.session,\n answers,\n },\n activeAnswerBlock: '',\n showCorrect: false,\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n return {\n htmlString: `<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 text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? classes.correct : classes.incorrect\n // );\n } else {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n if (\n (config &&\n config.responses &&\n config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value:\n (answers &&\n answers[`r${answerBlocks}`] &&\n answers[`r${answerBlocks}`].value) ||\n '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState(\n (state) => ({ session: { ...state.session, response } }),\n this.callOnSessionChange\n );\n };\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\n };\n\n toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n };\n\n setInput = (input) => {\n this.input = input;\n };\n\n onClick = (data) => {\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach(vv => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n };\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n this.callOnSessionChange\n );\n }\n };\n\n getFieldName = (changeField, fields) => {\n const { answers } = this.state.session;\n\n if (Object.keys(answers || {}).length) {\n const keys = Object.keys(answers);\n\n return keys.find((k) => {\n const tf = fields[k];\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n if (\n !relatedTarget ||\n !currentTarget ||\n (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])) {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector('[role=\\'tooltip\\']');\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model, classes } = this.props;\n const state = this.state;\n const { activeAnswerBlock, showCorrect, session } = state;\n const { config: { showNote, note, prompt, env: { mode, role } = {}} = {}} = model;\n const displayNote = (showCorrect || mode === 'view' && role === 'instructor') && showNote && note;\n\n if (!model.config) {\n return null;\n }\n\n const additionalKeys = generateAdditionalKeys(model.config.customKeys);\n const correct = model.correctness && model.correctness.correct;\n const staticLatex = prepareForStatic(model, state) || '';\n\n const tooltipModeEnabled = model.disabled && model.correctness && model.config && model.config.responseType !== ResponseTypes.simple;\n\n const midContent = (\n <div className={classes.main}>\n {prompt && (\n <div className={classes.content}>\n <div dangerouslySetInnerHTML={{ __html: prompt }} />\n </div>\n )}\n <Readable false>\n <div className={classes.inputAndKeypadContainer}>\n {model.config.responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n model={model}\n session={session}\n />\n )}\n {model.config.responseType === ResponseTypes.advanced && (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !correct && !showCorrect,\n [classes.correct]: correct || showCorrect,\n [classes.showCorrectness]:\n model.disabled && model.correctness && !model.view,\n [classes.correctAnswerShown]: showCorrect,\n })}\n >\n <Tooltip\n ref={ref => this.setTooltipRef(ref)}\n interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock &&\n !(showCorrect || model.disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(\n additionalKeys,\n model.config.equationEditor\n ),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={\n model.config.equationEditor ||\n DEFAULT_KEYPAD_VARIANT\n }\n onClick={this.onClick}\n />\n </div>\n )) ||\n null\n )}\n >\n <mq.Static\n ref={(mqStatic) =>\n (this.mqStatic = mqStatic || this.mqStatic)\n }\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }}\n />\n )}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n ((model.correctness && model.correctness.correctness !== 'correct') ||\n model.teacherInstructions ||\n model.rationale ||\n model.feedback)\n ) {\n return (\n <Tooltip\n interactive\n classes={{\n tooltip: classes.tooltip,\n popper: classes.tooltipPopper,\n }}\n title={\n <div>\n <div className={classes.main}>\n {model.correctness &&\n model.correctness.correctness !== 'correct' && (\n <CorrectAnswerToggle\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n {model.teacherInstructions && hasText(model.teacherInstructions) && [\n <Collapsible\n key=\"collapsible\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <div\n dangerouslySetInnerHTML={{\n __html: model.teacherInstructions,\n }}\n />\n </Collapsible>,\n <br key=\"br\" />,\n ]}\n {model.rationale && hasText(model.rationale) && [\n <Collapsible\n key=\"collapsible\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <div dangerouslySetInnerHTML={{ __html: model.rationale }} />\n </Collapsible>,\n <br key=\"br\" />,\n ]}\n {model.feedback && (\n <Feedback\n correctness={model.correctness.correctness}\n feedback={model.feedback}\n />\n )}\n </div>\n }\n >\n <div\n className={classes.mainContainer}\n ref={(r) => (this.root = r || this.root)}\n >\n {midContent}\n </div>\n </Tooltip>\n );\n }\n return (\n <div\n className={classes.mainContainer}\n ref={(r) => (this.root = r || this.root)}\n >\n {midContent}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n main: {\n width: '100%',\n position: 'relative',\n padding: theme.spacing.unit / 2,\n backgroundColor: color.background(),\n color: color.text(),\n },\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 note: {\n paddingTop: '15px',\n },\n collapsible: {\n marginTop: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n // position: 'absolute',\n // right: 0,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n margin: (theme.spacing.unit * 2) / 3,\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important'\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important'\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '&:before': {\n top: '-0.4em',\n left: '-1px'\n },\n '&:after': {\n top: '-2.36em',\n right: '-1px'\n },\n '&.mq-empty:after': {\n top: '-0.45em'\n }\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px'\n }\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important'\n }\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: theme.spacing.unit,\n display: 'inline-flex',\n border: '2px solid grey',\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 ${color.disabled()}`,\n },\n toggle: {\n color: color.text(),\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\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\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["registered","NEWLINE_LATEX","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","prepareForStatic","model","state","config","disabled","expression","responses","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","response","setState","callOnSessionChange","id","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","offsetParent","children","attributes","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","nextProps","nextConfig","newAnswers","nextState","sameModel","sameState","setTimeout","ref","div","document","firstChild","setAttribute","showNote","note","prompt","env","mode","role","displayNote","customKeys","correctness","staticLatex","tooltipModeEnabled","responseType","ResponseTypes","simple","midContent","main","content","__html","inputAndKeypadContainer","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","teacherInstructions","rationale","feedback","tooltipPopper","toggle","toggleShowCorrect","hidden","visible","collapsible","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","display","background","color","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","position","backgroundColor","title","marginBottom","zIndex","minWidth","maxWidth","margin","top","left","right","borderTop","letterSpacing","borderColor","flex","alignItems","justifyContent","borderRight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/math-input';\nimport { Feedback, Collapsible, Readable, hasText } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { ResponseTypes } from './utils';\nimport isEqual from 'lodash/isEqual';\nimport cx from 'classnames';\nimport SimpleQuestionBlock from './simple-question-block';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/render-ui';\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return (\n Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500)\n );\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '').replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n }).replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n\n if (props.model.config && props.model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (props.model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (props.session &&\n props.session.answers &&\n props.session.answers[`r${answerBlocks}`] &&\n props.session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n\n this.state = {\n session: {\n ...props.session,\n answers,\n },\n activeAnswerBlock: '',\n showCorrect: false,\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n return {\n htmlString: `<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 text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? classes.correct : classes.incorrect\n // );\n } else {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n if (\n (config &&\n config.responses &&\n config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value:\n (answers &&\n answers[`r${answerBlocks}`] &&\n answers[`r${answerBlocks}`].value) ||\n '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState(\n (state) => ({ session: { ...state.session, response } }),\n this.callOnSessionChange\n );\n };\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\n };\n\n toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n };\n\n setInput = (input) => {\n this.input = input;\n };\n\n onClick = (data) => {\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach(vv => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n };\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n this.callOnSessionChange\n );\n }\n };\n\n getFieldName = (changeField, fields) => {\n const { answers } = this.state.session;\n\n if (Object.keys(answers || {}).length) {\n const keys = Object.keys(answers);\n\n return keys.find((k) => {\n const tf = fields[k];\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n if (\n !relatedTarget ||\n !currentTarget ||\n (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])) {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector('[role=\\'tooltip\\']');\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model, classes } = this.props;\n const state = this.state;\n const { activeAnswerBlock, showCorrect, session } = state;\n const { config: { showNote, note, prompt, env: { mode, role } = {}} = {}} = model;\n const displayNote = (showCorrect || mode === 'view' && role === 'instructor') && showNote && note;\n\n if (!model.config) {\n return null;\n }\n\n const additionalKeys = generateAdditionalKeys(model.config.customKeys);\n const correct = model.correctness && model.correctness.correct;\n const staticLatex = prepareForStatic(model, state) || '';\n\n const tooltipModeEnabled = model.disabled && model.correctness && model.config && model.config.responseType !== ResponseTypes.simple;\n\n const midContent = (\n <div className={classes.main}>\n {prompt && (\n <div className={classes.content}>\n <div dangerouslySetInnerHTML={{ __html: prompt }} />\n </div>\n )}\n <Readable false>\n <div className={classes.inputAndKeypadContainer}>\n {model.config.responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n model={model}\n session={session}\n />\n )}\n {model.config.responseType === ResponseTypes.advanced && (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !correct && !showCorrect,\n [classes.correct]: correct || showCorrect,\n [classes.showCorrectness]:\n model.disabled && model.correctness && !model.view,\n [classes.correctAnswerShown]: showCorrect,\n })}\n >\n <Tooltip\n ref={ref => this.setTooltipRef(ref)}\n interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock &&\n !(showCorrect || model.disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(\n additionalKeys,\n model.config.equationEditor\n ),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={\n model.config.equationEditor ||\n DEFAULT_KEYPAD_VARIANT\n }\n onClick={this.onClick}\n />\n </div>\n )) ||\n null\n )}\n >\n <mq.Static\n ref={(mqStatic) =>\n (this.mqStatic = mqStatic || this.mqStatic)\n }\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }}\n />\n )}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n ((model.correctness && model.correctness.correctness !== 'correct') ||\n model.teacherInstructions ||\n model.rationale ||\n model.feedback)\n ) {\n return (\n <Tooltip\n interactive\n classes={{\n tooltip: classes.tooltip,\n popper: classes.tooltipPopper,\n }}\n title={\n <div>\n <div className={classes.main}>\n {model.correctness &&\n model.correctness.correctness !== 'correct' && (\n <CorrectAnswerToggle\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n {model.teacherInstructions && hasText(model.teacherInstructions) && [\n <Collapsible\n key=\"collapsible\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <div\n dangerouslySetInnerHTML={{\n __html: model.teacherInstructions,\n }}\n />\n </Collapsible>,\n <br key=\"br\" />,\n ]}\n {model.rationale && hasText(model.rationale) && [\n <Collapsible\n key=\"collapsible\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <div dangerouslySetInnerHTML={{ __html: model.rationale }} />\n </Collapsible>,\n <br key=\"br\" />,\n ]}\n {model.feedback && (\n <Feedback\n correctness={model.correctness.correctness}\n feedback={model.feedback}\n />\n )}\n </div>\n }\n >\n <div\n className={classes.mainContainer}\n ref={(r) => (this.root = r || this.root)}\n >\n {midContent}\n </div>\n </Tooltip>\n );\n }\n return (\n <div\n className={classes.mainContainer}\n ref={(r) => (this.root = r || this.root)}\n >\n {midContent}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n main: {\n width: '100%',\n position: 'relative',\n padding: theme.spacing.unit / 2,\n backgroundColor: color.background(),\n color: color.text(),\n },\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 note: {\n paddingTop: '15px',\n },\n collapsible: {\n marginTop: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n // position: 'absolute',\n // right: 0,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n margin: (theme.spacing.unit * 2) / 3,\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important'\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important'\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '&:before': {\n top: '-0.4em',\n left: '-1px'\n },\n '&:after': {\n top: '-2.36em',\n right: '-1px'\n },\n '&.mq-empty:after': {\n top: '-0.45em'\n }\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px'\n }\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important'\n }\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: theme.spacing.unit,\n display: 'inline-flex',\n border: '2px solid grey',\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 ${color.disabled()}`,\n },\n toggle: {\n color: color.text(),\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\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\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
@@ -37,7 +37,7 @@ var _renderUi = require("@pie-lib/render-ui");
|
|
|
37
37
|
|
|
38
38
|
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); }; }
|
|
39
39
|
|
|
40
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
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
42
|
var SimpleQuestionBlockRaw = /*#__PURE__*/function (_React$Component) {
|
|
43
43
|
(0, _inherits2["default"])(SimpleQuestionBlockRaw, _React$Component);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/simple-question-block.jsx"],"names":["SimpleQuestionBlockRaw","showKeypad","setState","e","relatedTarget","currentTarget","offsetParent","props","classes","model","showCorrect","session","onSimpleResponseChange","correct","correctness","showAsCorrect","showAsIncorrect","view","config","responses","equationEditor","expression","disabled","incorrect","length","answer","response","editor","responseEditor","onFocus","onBlur","state","React","Component","PropTypes","object","func","isRequired","bool","SimpleQuestionBlock","theme","display","justifyContent","width","minWidth","maxWidth","height","textAlign","padding","spacing","unit","border","color","primaryLight","marginTop","marginBottom","text","background","fontSize"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,sB;;;;;;;;;;;;;;;8FASH;AACNC,MAAAA,UAAU,EAAE;AADN,K;gGAIE;AAAA,aAAM,MAAKC,QAAL,CAAc;AAAED,QAAAA,UAAU,EAAE;AAAd,OAAd,CAAN;AAAA,K;+FAED,UAACE,CAAD,EAAO;
|
|
1
|
+
{"version":3,"sources":["../src/simple-question-block.jsx"],"names":["SimpleQuestionBlockRaw","showKeypad","setState","e","relatedTarget","currentTarget","offsetParent","props","classes","model","showCorrect","session","onSimpleResponseChange","correct","correctness","showAsCorrect","showAsIncorrect","view","config","responses","equationEditor","expression","disabled","incorrect","length","answer","response","editor","responseEditor","onFocus","onBlur","state","React","Component","PropTypes","object","func","isRequired","bool","SimpleQuestionBlock","theme","display","justifyContent","width","minWidth","maxWidth","height","textAlign","padding","spacing","unit","border","color","primaryLight","marginTop","marginBottom","text","background","fontSize"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport { mq } from '@pie-lib/math-input';\nimport cx from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\n\nexport class SimpleQuestionBlockRaw extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n onSimpleResponseChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n showCorrect: PropTypes.bool\n };\n\n state = {\n showKeypad: true\n };\n\n onFocus = () => this.setState({ showKeypad: true });\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n if (!relatedTarget || !currentTarget || (relatedTarget.offsetParent !== currentTarget.offsetParent)) {\n this.setState({ showKeypad: false });\n }\n };\n\n render() {\n const {\n classes,\n model,\n showCorrect,\n session,\n onSimpleResponseChange\n } = this.props;\n const correct =\n model.correctness &&\n model.correctness.correct;\n const showAsCorrect = showCorrect || correct;\n const showAsIncorrect = !correct && !showCorrect && !model.view;\n const { config } = model || {};\n\n if (!config) {\n return;\n }\n\n const { responses, equationEditor } = config;\n\n return (\n <div className={classes.expression}>\n {showCorrect || model.disabled ? (\n <div\n className={cx(classes.static, {\n [classes.correct]: showAsCorrect,\n [classes.incorrect]: showAsIncorrect\n })}\n >\n <mq.Static\n latex={\n showCorrect ? (responses && responses.length && responses[0].answer) : (session.response || '')\n }\n />\n </div>\n ) : (\n <MathToolbar\n classNames={{ editor: classes.responseEditor }}\n latex={session.response || ''}\n keypadMode={equationEditor}\n onChange={onSimpleResponseChange}\n onDone={() => {}}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n controlledKeypad={true}\n showKeypad={this.state.showKeypad}\n hideDoneButton={true}\n />\n )}\n </div>\n );\n }\n}\nconst SimpleQuestionBlock = withStyles(theme => ({\n responseEditor: {\n display: 'flex',\n justifyContent: 'center',\n width: 'auto',\n minWidth: '500px',\n maxWidth: '900px',\n height: 'auto',\n textAlign: 'left',\n padding: theme.spacing.unit,\n '&.mq-math-mode': {\n border: `1px solid ${color.primaryLight()}`\n }\n },\n expression: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n padding: theme.spacing.unit\n },\n static: {\n color: color.text(),\n background: color.background(),\n border: `1px solid ${color.primaryLight()}`,\n width: '100%',\n fontSize: '1rem',\n padding: theme.spacing.unit / 2,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none'\n }\n }\n }\n },\n correct: {\n color: color.correct(),\n border: `1px solid ${color.correct()} !important`,\n },\n incorrect: {\n color: color.incorrect(),\n border: `1px solid ${color.incorrect()} !important`,\n }\n}))(SimpleQuestionBlockRaw);\n\nexport default SimpleQuestionBlock;\n"],"file":"simple-question-block.js"}
|
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.
|
|
7
|
+
"version": "5.6.4-next.256+deefd76ec",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"description": "",
|
|
10
10
|
"scripts": {
|
|
@@ -28,6 +28,6 @@
|
|
|
28
28
|
},
|
|
29
29
|
"author": "",
|
|
30
30
|
"license": "ISC",
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "deefd76ec031f81546641dc03f5acc11134404f8",
|
|
32
32
|
"module": "src/index.js"
|
|
33
33
|
}
|