@pie-element/math-templated 2.14.1-next.4 → 2.14.1-next.7

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.
@@ -344,7 +344,7 @@ var Response = /*#__PURE__*/function (_React$Component) {
344
344
  className: classes.alternateButton,
345
345
  type: "primary",
346
346
  onClick: this.onAddAlternate
347
- }, "ADD")));
347
+ }, "ADD ALTERNATE")));
348
348
  }
349
349
  }]);
350
350
  return Response;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/response.jsx"],"names":["Response","props","name","evt","response","onResponseChange","responseKey","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","main","alternatesLength","Object","keys","length","classes","mode","cAllowTrailingZeros","cIgnoreOrder","error","validation","ignoreOrder","allowTrailingZeros","hasAlternates","classNames","editor","responseEditor","mathToolbar","styles","minHeight","responseContainer","cardContent","titleBar","title","responseBox","selectContainer","select","onChange","flexContainer","enabled","label","onLiteralOptionsChange","inputContainer","onAnswerChange","onFocus","onDone","errorText","map","altIdx","alternateBar","onAlternateAnswerChange","onAlternateFocus","onAlternateDone","removeAlternateButton","onRemoveAlternate","alternateButton","onAddAlternate","React","Component","PropTypes","object","isRequired","defaultResponse","bool","oneOfType","string","number","func","theme","marginBottom","spacing","unit","width","minWidth","border","palette","grey","display","flexDirection","justifyContent","paddingBottom","fontWeight","fontSize","flex","alignItems","maxWidth","height","marginLeft","typography","color","paddingTop","background","padding"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport { MathToolbar } from '@pie-lib/pie-toolbox/math-toolbar';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Typography from '@material-ui/core/Typography';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\nimport IconButton from '@material-ui/core/IconButton';\nimport Delete from '@material-ui/icons/Delete';\n\nclass Response extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n defaultResponse: PropTypes.bool,\n error: PropTypes.object,\n mode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onResponseChange: PropTypes.func.isRequired,\n response: PropTypes.object.isRequired,\n cIgnoreOrder: PropTypes.object.isRequired,\n cAllowTrailingZeros: PropTypes.object.isRequired,\n responseKey: PropTypes.string.isRequired,\n };\n\n static defaultProps = {\n defaultResponse: false,\n mode: '8',\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, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.value;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onConfigChanged = (name) => (evt) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.checked;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onLiteralOptionsChange = (name) => () => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = !response[name];\n\n onResponseChange(newResponse, responseKey);\n };\n\n onAnswerChange = (answer) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse.answer = answer;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onAlternateAnswerChange = (alternateId) => (answer) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse.alternates[alternateId] = answer;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onAddAlternate = () => {\n const { response, onResponseChange, responseKey } = 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, responseKey);\n\n this.setState({\n alternateIdCounter: alternateIdCounter + 1,\n });\n };\n\n onRemoveAlternate = (alternateId) => () => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n delete newResponse.alternates[alternateId];\n\n onResponseChange(newResponse, responseKey);\n\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount : state.showKeypad.openCount - 1,\n },\n }));\n };\n\n onDone = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n main: false,\n },\n }));\n };\n\n onFocus = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad.main ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,\n main: true,\n },\n }));\n };\n\n onAlternateFocus = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,\n [alternateId]: true,\n },\n }));\n };\n\n onAlternateDone = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n [alternateId]: false,\n },\n }));\n };\n\n render() {\n const { classes, mode, responseKey, response, cAllowTrailingZeros, cIgnoreOrder, error } = this.props;\n\n const { showKeypad } = this.state;\n const { validation, answer, alternates, ignoreOrder, allowTrailingZeros } = response;\n const hasAlternates = Object.keys(alternates || {}).length > 0;\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n const styles = {\n minHeight: `${showKeypad.openCount > 0 ? 430 : 230}px`,\n };\n\n return (\n <Card className={classes.responseContainer} style={styles}>\n <CardContent className={classes.cardContent}>\n <div className={classes.titleBar}>\n <Typography className={classes.title} component=\"div\">\n Response for <div className={classes.responseBox}>R {responseKey}</div>\n </Typography>\n\n <InputContainer label=\"Validation\" className={classes.selectContainer}>\n <Select className={classes.select} onChange={this.onChange('validation')} value={validation || 'literal'}>\n <MenuItem value=\"literal\">Literal Validation</MenuItem>\n <MenuItem value=\"symbolic\">Symbolic Validation</MenuItem>\n </Select>\n </InputContainer>\n </div>\n\n {validation === 'literal' && (\n <div className={classes.flexContainer}>\n {cAllowTrailingZeros.enabled && (\n <FormControlLabel\n label={cAllowTrailingZeros.label}\n control={\n <Checkbox\n checked={allowTrailingZeros}\n onChange={this.onLiteralOptionsChange('allowTrailingZeros')}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={<Checkbox checked={ignoreOrder} onChange={this.onLiteralOptionsChange('ignoreOrder')}/>}\n />\n )}\n </div>\n )}\n\n <div className={classes.inputContainer}>\n <InputLabel>Correct Answer</InputLabel>\n <MathToolbar\n keypadMode={mode}\n classNames={classNames}\n controlledKeypad\n showKeypad={showKeypad.main}\n latex={answer || ''}\n onChange={this.onAnswerChange}\n onFocus={this.onFocus}\n onDone={this.onDone}\n error={error && error.answer}\n />\n {error && error.answer ? <div className={classes.errorText}>{error.answer}</div> : null}\n </div>\n\n {hasAlternates &&\n Object.keys(alternates).map((alternateId, altIdx) => (\n <div className={classes.inputContainer} key={alternateId}>\n <InputLabel>\n Alternate\n {Object.keys(alternates).length > 1 ? ` ${altIdx + 1}` : ''}\n </InputLabel>\n <div className={classes.alternateBar}>\n <MathToolbar\n classNames={classNames}\n controlledKeypad\n keypadMode={mode}\n showKeypad={showKeypad[alternateId] || false}\n latex={alternates[alternateId] || ''}\n onChange={this.onAlternateAnswerChange(alternateId)}\n onFocus={this.onAlternateFocus(alternateId)}\n onDone={this.onAlternateDone(alternateId)}\n error={error && error[alternateId]}\n />\n <IconButton\n className={classes.removeAlternateButton}\n onClick={this.onRemoveAlternate(alternateId)}\n >\n <Delete/>\n </IconButton>\n </div>\n {error && error[alternateId] ? <div className={classes.errorText}>{error[alternateId]}</div> : null}\n </div>\n ))}\n\n <Button className={classes.alternateButton} type=\"primary\" onClick={this.onAddAlternate}>\n ADD\n </Button>\n </CardContent>\n </Card>\n )\n }\n}\n\nconst styles = (theme) => ({\n responseContainer: {\n marginBottom: theme.spacing.unit * 2.5,\n width: '100%',\n minWidth: '548px',\n border: `1px solid ${theme.palette.grey[700]}`,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n cardContent: {\n paddingBottom: `${theme.spacing.unit * 2}px !important`,\n },\n title: {\n fontWeight: 700,\n fontSize: '1.2rem',\n flex: 3,\n },\n selectContainer: {\n flex: 2,\n },\n inputContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n responseEditor: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: '900px',\n height: 'auto',\n minHeight: '40px',\n },\n mathToolbar: {\n width: '100%',\n },\n alternateButton: {\n border: `1px solid ${theme.palette.grey['A100']}`,\n },\n removeAlternateButton: {\n marginLeft: theme.spacing.unit,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n responseBox: {\n background: theme.palette.grey['A100'],\n color: theme.palette.grey['A700'],\n display: 'inline',\n minWidth: '50px',\n padding: '8px',\n border: '1px solid #C0C3CF',\n },\n alternateBar: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }\n});\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
1
+ {"version":3,"sources":["../src/response.jsx"],"names":["Response","props","name","evt","response","onResponseChange","responseKey","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","main","alternatesLength","Object","keys","length","classes","mode","cAllowTrailingZeros","cIgnoreOrder","error","validation","ignoreOrder","allowTrailingZeros","hasAlternates","classNames","editor","responseEditor","mathToolbar","styles","minHeight","responseContainer","cardContent","titleBar","title","responseBox","selectContainer","select","onChange","flexContainer","enabled","label","onLiteralOptionsChange","inputContainer","onAnswerChange","onFocus","onDone","errorText","map","altIdx","alternateBar","onAlternateAnswerChange","onAlternateFocus","onAlternateDone","removeAlternateButton","onRemoveAlternate","alternateButton","onAddAlternate","React","Component","PropTypes","object","isRequired","defaultResponse","bool","oneOfType","string","number","func","theme","marginBottom","spacing","unit","width","minWidth","border","palette","grey","display","flexDirection","justifyContent","paddingBottom","fontWeight","fontSize","flex","alignItems","maxWidth","height","marginLeft","typography","color","paddingTop","background","padding"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport { MathToolbar } from '@pie-lib/pie-toolbox/math-toolbar';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Typography from '@material-ui/core/Typography';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\nimport IconButton from '@material-ui/core/IconButton';\nimport Delete from '@material-ui/icons/Delete';\n\nclass Response extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n defaultResponse: PropTypes.bool,\n error: PropTypes.object,\n mode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onResponseChange: PropTypes.func.isRequired,\n response: PropTypes.object.isRequired,\n cIgnoreOrder: PropTypes.object.isRequired,\n cAllowTrailingZeros: PropTypes.object.isRequired,\n responseKey: PropTypes.string.isRequired,\n };\n\n static defaultProps = {\n defaultResponse: false,\n mode: '8',\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, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.value;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onConfigChanged = (name) => (evt) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.checked;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onLiteralOptionsChange = (name) => () => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = !response[name];\n\n onResponseChange(newResponse, responseKey);\n };\n\n onAnswerChange = (answer) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse.answer = answer;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onAlternateAnswerChange = (alternateId) => (answer) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse.alternates[alternateId] = answer;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onAddAlternate = () => {\n const { response, onResponseChange, responseKey } = 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, responseKey);\n\n this.setState({\n alternateIdCounter: alternateIdCounter + 1,\n });\n };\n\n onRemoveAlternate = (alternateId) => () => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n delete newResponse.alternates[alternateId];\n\n onResponseChange(newResponse, responseKey);\n\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount : state.showKeypad.openCount - 1,\n },\n }));\n };\n\n onDone = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n main: false,\n },\n }));\n };\n\n onFocus = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad.main ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,\n main: true,\n },\n }));\n };\n\n onAlternateFocus = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,\n [alternateId]: true,\n },\n }));\n };\n\n onAlternateDone = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n [alternateId]: false,\n },\n }));\n };\n\n render() {\n const { classes, mode, responseKey, response, cAllowTrailingZeros, cIgnoreOrder, error } = this.props;\n\n const { showKeypad } = this.state;\n const { validation, answer, alternates, ignoreOrder, allowTrailingZeros } = response;\n const hasAlternates = Object.keys(alternates || {}).length > 0;\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n const styles = {\n minHeight: `${showKeypad.openCount > 0 ? 430 : 230}px`,\n };\n\n return (\n <Card className={classes.responseContainer} style={styles}>\n <CardContent className={classes.cardContent}>\n <div className={classes.titleBar}>\n <Typography className={classes.title} component=\"div\">\n Response for <div className={classes.responseBox}>R {responseKey}</div>\n </Typography>\n\n <InputContainer label=\"Validation\" className={classes.selectContainer}>\n <Select className={classes.select} onChange={this.onChange('validation')} value={validation || 'literal'}>\n <MenuItem value=\"literal\">Literal Validation</MenuItem>\n <MenuItem value=\"symbolic\">Symbolic Validation</MenuItem>\n </Select>\n </InputContainer>\n </div>\n\n {validation === 'literal' && (\n <div className={classes.flexContainer}>\n {cAllowTrailingZeros.enabled && (\n <FormControlLabel\n label={cAllowTrailingZeros.label}\n control={\n <Checkbox\n checked={allowTrailingZeros}\n onChange={this.onLiteralOptionsChange('allowTrailingZeros')}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={<Checkbox checked={ignoreOrder} onChange={this.onLiteralOptionsChange('ignoreOrder')}/>}\n />\n )}\n </div>\n )}\n\n <div className={classes.inputContainer}>\n <InputLabel>Correct Answer</InputLabel>\n <MathToolbar\n keypadMode={mode}\n classNames={classNames}\n controlledKeypad\n showKeypad={showKeypad.main}\n latex={answer || ''}\n onChange={this.onAnswerChange}\n onFocus={this.onFocus}\n onDone={this.onDone}\n error={error && error.answer}\n />\n {error && error.answer ? <div className={classes.errorText}>{error.answer}</div> : null}\n </div>\n\n {hasAlternates &&\n Object.keys(alternates).map((alternateId, altIdx) => (\n <div className={classes.inputContainer} key={alternateId}>\n <InputLabel>\n Alternate\n {Object.keys(alternates).length > 1 ? ` ${altIdx + 1}` : ''}\n </InputLabel>\n <div className={classes.alternateBar}>\n <MathToolbar\n classNames={classNames}\n controlledKeypad\n keypadMode={mode}\n showKeypad={showKeypad[alternateId] || false}\n latex={alternates[alternateId] || ''}\n onChange={this.onAlternateAnswerChange(alternateId)}\n onFocus={this.onAlternateFocus(alternateId)}\n onDone={this.onAlternateDone(alternateId)}\n error={error && error[alternateId]}\n />\n <IconButton\n className={classes.removeAlternateButton}\n onClick={this.onRemoveAlternate(alternateId)}\n >\n <Delete/>\n </IconButton>\n </div>\n {error && error[alternateId] ? <div className={classes.errorText}>{error[alternateId]}</div> : null}\n </div>\n ))}\n\n <Button className={classes.alternateButton} type=\"primary\" onClick={this.onAddAlternate}>\n ADD ALTERNATE\n </Button>\n </CardContent>\n </Card>\n )\n }\n}\n\nconst styles = (theme) => ({\n responseContainer: {\n marginBottom: theme.spacing.unit * 2.5,\n width: '100%',\n minWidth: '548px',\n border: `1px solid ${theme.palette.grey[700]}`,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n cardContent: {\n paddingBottom: `${theme.spacing.unit * 2}px !important`,\n },\n title: {\n fontWeight: 700,\n fontSize: '1.2rem',\n flex: 3,\n },\n selectContainer: {\n flex: 2,\n },\n inputContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n responseEditor: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: '900px',\n height: 'auto',\n minHeight: '40px',\n },\n mathToolbar: {\n width: '100%',\n },\n alternateButton: {\n border: `1px solid ${theme.palette.grey['A100']}`,\n },\n removeAlternateButton: {\n marginLeft: theme.spacing.unit,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n responseBox: {\n background: theme.palette.grey['A100'],\n color: theme.palette.grey['A700'],\n display: 'inline',\n minWidth: '50px',\n padding: '8px',\n border: '1px solid #C0C3CF',\n },\n alternateBar: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }\n});\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
@@ -8,7 +8,7 @@
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
10
  "@pie-framework/pie-configure-events": "^1.3.0",
11
- "@pie-lib/pie-toolbox": "1.21.1",
11
+ "@pie-lib/pie-toolbox": "1.21.2",
12
12
  "debug": "^3.1.0",
13
13
  "lodash": "^4.17.15",
14
14
  "prop-types": "^15.6.2",
@@ -7,7 +7,7 @@
7
7
  "module": "src/index.js",
8
8
  "dependencies": {
9
9
  "@pie-framework/math-validation": "^1.2.2",
10
- "@pie-lib/pie-toolbox": "1.21.1",
10
+ "@pie-lib/pie-toolbox": "1.21.2",
11
11
  "debug": "^3.1.0",
12
12
  "lodash": "^4.17.15"
13
13
  },
package/lib/main.js CHANGED
@@ -503,10 +503,42 @@ var Main = /*#__PURE__*/function (_React$Component) {
503
503
  value: function UNSAFE_componentWillReceiveProps(nextProps) {
504
504
  var _this2 = this;
505
505
 
506
- var markup = this.props.model.markup;
506
+ var model = this.props.model;
507
507
 
508
- var _ref10 = nextProps.model || {},
509
- nextMarkup = _ref10.markup;
508
+ var _ref10 = nextProps || {},
509
+ _ref10$model = _ref10.model,
510
+ nextModel = _ref10$model === void 0 ? {} : _ref10$model;
511
+
512
+ var _ref11 = model || {},
513
+ _ref11$markup = _ref11.markup,
514
+ markup = _ref11$markup === void 0 ? '' : _ref11$markup,
515
+ _ref11$env = _ref11.env,
516
+ env = _ref11$env === void 0 ? {} : _ref11$env;
517
+
518
+ var _nextModel$markup = nextModel.markup,
519
+ nextMarkup = _nextModel$markup === void 0 ? '' : _nextModel$markup,
520
+ _nextModel$env = nextModel.env,
521
+ nextEnv = _nextModel$env === void 0 ? {} : _nextModel$env,
522
+ _nextModel$alwaysShow = nextModel.alwaysShowCorrect,
523
+ nextAlwaysShowCorrect = _nextModel$alwaysShow === void 0 ? false : _nextModel$alwaysShow;
524
+
525
+ var isEvaluateMode = function isEvaluateMode(env) {
526
+ return env && env.mode === 'evaluate';
527
+ };
528
+
529
+ if (!isEvaluateMode(env) || !isEvaluateMode(nextEnv)) {
530
+ this.setState(function (prevState) {
531
+ return _objectSpread(_objectSpread({}, prevState.session), {}, {
532
+ showCorrect: false
533
+ });
534
+ });
535
+ }
536
+
537
+ if (nextAlwaysShowCorrect) {
538
+ this.setState({
539
+ showCorrect: true
540
+ });
541
+ }
510
542
 
511
543
  var matches = markup.match(REGEX);
512
544
  var nextMatches = nextMarkup.match(REGEX); // If markup changed, and we no longer have the same response area, the session needs to be updated
@@ -583,18 +615,18 @@ var Main = /*#__PURE__*/function (_React$Component) {
583
615
  classes = _this$props5.classes;
584
616
  var showCorrect = this.state.showCorrect;
585
617
 
586
- var _ref11 = model || {},
587
- prompt = _ref11.prompt,
588
- _ref11$env = _ref11.env;
589
-
590
- _ref11$env = _ref11$env === void 0 ? {} : _ref11$env;
591
- var mode = _ref11$env.mode,
592
- role = _ref11$env.role,
593
- correctness = _ref11.correctness,
594
- responses = _ref11.responses,
595
- language = _ref11.language,
596
- showNote = _ref11.showNote,
597
- note = _ref11.note;
618
+ var _ref12 = model || {},
619
+ prompt = _ref12.prompt,
620
+ _ref12$env = _ref12.env;
621
+
622
+ _ref12$env = _ref12$env === void 0 ? {} : _ref12$env;
623
+ var mode = _ref12$env.mode,
624
+ role = _ref12$env.role,
625
+ correctness = _ref12.correctness,
626
+ responses = _ref12.responses,
627
+ language = _ref12.language,
628
+ showNote = _ref12.showNote,
629
+ note = _ref12.note;
598
630
  var emptyResponse = (0, _isEmpty["default"])(responses);
599
631
  var showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';
600
632
  var displayNote = (showCorrect || mode === 'view' && role === 'instructor') && showNote && note;
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["registered","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","splitByParts","text","parts","split","filter","part","prepareForStatic","model","state","responses","disabled","markup","printMode","alwaysShowCorrect","showCorrect","Object","keys","reduce","acc","responseKey","answer","splitted","match","Main","getResponseKey","session","answers","blankSpace","repeat","value","props","classes","root","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","id","setState","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","callOnSessionChange","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","teacherInstructions","animationsDisabled","teacherInstructionsDiv","collapsible","hidden","visible","rationale","rationaleDiv","correctness","customKeys","feedback","env","mode","emptyResponse","statics","studentPrintMode","inputAndKeypadContainer","responseIsCorrect","MQStatic","mqStatic","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","expression","showCorrectness","correctAnswerShown","ref","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","printContainer","sessionAnswers","replace","response","sessionAnswerForResponse","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","nextProps","nextMarkup","matches","nextMatches","newAnswers","nextMatch","nextState","sameModel","sameState","setTimeout","div","document","firstChild","setAttribute","prompt","role","language","showNote","note","showCorrectAnswerToggle","displayNote","mainContainer","r","main","srOnly","toggle","toggleShowCorrect","renderTeacherInstructions","promptContainer","renderPlayerContent","__html","renderRationale","React","Component","replaceAll","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","tooltipPopper","opacity","marginTop","paddingTop","marginBottom","position","title","zIndex","minWidth","maxWidth","margin","top","borderColor","alignItems","flexWrap","lineHeight","left","right","borderTop","letterSpacing","flex","palette","grey","justifyContent","borderRight","pointerEvents","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport { Collapsible, Readable, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport { Customizable } from '@pie-lib/pie-toolbox/mask-markup';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\n\nlet registered = false;\n\n// Define a regex pattern to match {{number}}\nconst REGEX = /(\\{\\{\\d+\\}\\})/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\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 Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction splitByParts(text) {\n // Use the regex pattern to split the text\n const parts = text.split(REGEX);\n // Filter out empty strings that might result from splitting\n return parts.filter(part => part);\n}\n\nfunction prepareForStatic(model, state) {\n const { responses, disabled, markup, printMode, alwaysShowCorrect } = model || {};\n\n if (markup) {\n if (state.showCorrect) {\n return Object.keys(responses || {}).reduce((acc, responseKey) => {\n acc[responseKey] = responses?.[responseKey]?.answer;\n\n return acc;\n }, {});\n }\n\n const splitted = splitByParts(markup);\n\n\n return splitted.reduce((acc, split) => {\n if (split.match(REGEX)) {\n const responseKey = Main.getResponseKey(split);\n const answer = state.session.answers[`r${responseKey}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\embed{newLine}[] ';\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${blankSpace.repeat(3)}}`\n };\n }\n\n if (disabled) {\n return {\n ...acc,\n [responseKey]: `\\\\embed{answerBlock}[r${responseKey}]`\n };\n }\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${(answer && answer.value) || ''}}`\n };\n\n }\n\n return acc;\n }, {});\n }\n}\n\nexport class Main extends React.Component {\n // removes {{ and }} and returns only key response. Eg: {{0}} => 0\n static getResponseKey = response => (response || '').replaceAll('{{', '').replaceAll('}}', '');\n\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 const { model, session } = props || {};\n const { markup, alwaysShowCorrect } = model || {};\n const { answers: sessionAnswers } = session || {};\n\n if (markup) {\n // build out local state model using responses declared in markup\n (markup || '').replace(REGEX, (response) => {\n const responseKey = Main.getResponseKey(response);\n const sessionAnswerForResponse = sessionAnswers && sessionAnswers[`r${responseKey}`];\n\n answers[`r${responseKey}`] = { value: (sessionAnswerForResponse?.value) || '' };\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: alwaysShowCorrect || 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 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 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\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 el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { markup } = this.props.model;\n const { markup: nextMarkup } = nextProps.model || {};\n\n const matches = markup.match(REGEX);\n const nextMatches = nextMarkup.match(REGEX);\n\n // If markup changed, and we no longer have the same response area, the session needs to be updated\n if (!isEqual(matches, nextMatches)) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n (nextMatches || []).forEach(nextMatch => {\n const responseKey = Main.getResponseKey(nextMatch);\n const sessionAnswerForResponse = answers && answers[`r${responseKey}`];\n\n // build out local state model using responses declared in markup\n newAnswers[`r${responseKey}`] = { value: (sessionAnswerForResponse?.value) || '' };\n\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: newAnswers,\n },\n }),\n () => {\n this.props.onSessionChange(this.state.session);\n this.handleAnswerBlockDomUpdate();\n },\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 componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\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') return data;\n\n if (type === 'answer') return { type: 'answer', ...data };\n\n if (value === 'clear') return { type: 'clear' };\n\n return { type: 'write', value };\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 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\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n // function for tooltip\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\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n renderTeacherInstructions = () => {\n const { model, classes } = this.props;\n const { teacherInstructions, animationsDisabled } = model || {};\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions}/>\n );\n\n return teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n );\n };\n\n renderRationale = () => {\n const { model, classes } = this.props;\n const { rationale, animationsDisabled } = model || {};\n const rationaleDiv = <PreviewPrompt prompt={rationale}/>;\n\n return rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n );\n }\n\n renderPlayerContent = () => {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n correctness,\n disabled,\n view,\n responses,\n equationEditor,\n customKeys,\n feedback,\n env: { mode } = {},\n printMode,\n alwaysShowCorrect,\n } = model || {};\n\n const emptyResponse = isEmpty(responses);\n const additionalKeys = generateAdditionalKeys(customKeys);\n const statics = prepareForStatic(model, this.state) || '';\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n return (<div className={classes.inputAndKeypadContainer}>\n <Customizable\n disabled={disabled}\n markup={model.markup}\n // TODO remove the need of value?\n value={{}}\n customMarkMarkupComponent={(id) => {\n const responseIsCorrect = mode === 'evaluate' && feedback[id];\n\n const MQStatic = <mq.Static\n className={classes.static}\n ref={(mqStatic) => {\n this.mqStatic = mqStatic || this.mqStatic;\n }}\n latex={statics[id]}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />;\n\n return (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !responseIsCorrect && !showCorrect,\n [classes.correct]: !emptyResponse && (responseIsCorrect || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={activeAnswerBlock === `r${id}`}\n classes={{ tooltip: classes.keypadTooltip, popper: classes.keypadTooltipPopper }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{ width: getKeyPadWidth(additionalKeys, equationEditor) }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n {studentPrintMode\n ? (<div className={classes.printContainer}>\n {MQStatic}\n </div>)\n : MQStatic}\n </Tooltip>\n </div>\n )\n }}\n />\n </div>);\n }\n\n render() {\n const { model, classes } = this.props;\n const { showCorrect } = this.state;\n const {\n prompt,\n env: { mode, role } = {},\n correctness,\n responses,\n language,\n showNote,\n note,\n } = model || {};\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n <div className={classes.main}>\n {/* what is srOnly ? */}\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {this.renderTeacherInstructions()}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt}/>\n </div>\n )}\n\n <Readable false>\n {this.renderPlayerContent()}\n </Readable>\n\n {displayNote && (\n <div\n className={cx(classes.note, 'note')}\n dangerouslySetInnerHTML={{ __html: note }}\n />\n )}\n\n {this.renderRationale()}\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\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 '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\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 promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\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 collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\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 static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& > div > div': {\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap'\n },\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 '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\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 '& .mq-parallelogram': {\n lineHeight: 0.85,\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}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\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 printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["registered","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","splitByParts","text","parts","split","filter","part","prepareForStatic","model","state","responses","disabled","markup","printMode","alwaysShowCorrect","showCorrect","Object","keys","reduce","acc","responseKey","answer","splitted","match","Main","getResponseKey","session","answers","blankSpace","repeat","value","props","classes","root","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","id","setState","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","callOnSessionChange","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","teacherInstructions","animationsDisabled","teacherInstructionsDiv","collapsible","hidden","visible","rationale","rationaleDiv","correctness","customKeys","feedback","env","mode","emptyResponse","statics","studentPrintMode","inputAndKeypadContainer","responseIsCorrect","MQStatic","mqStatic","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","expression","showCorrectness","correctAnswerShown","ref","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","printContainer","sessionAnswers","replace","response","sessionAnswerForResponse","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","nextProps","nextModel","nextMarkup","nextEnv","nextAlwaysShowCorrect","isEvaluateMode","prevState","matches","nextMatches","newAnswers","nextMatch","nextState","sameModel","sameState","setTimeout","div","document","firstChild","setAttribute","prompt","role","language","showNote","note","showCorrectAnswerToggle","displayNote","mainContainer","r","main","srOnly","toggle","toggleShowCorrect","renderTeacherInstructions","promptContainer","renderPlayerContent","__html","renderRationale","React","Component","replaceAll","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","tooltipPopper","opacity","marginTop","paddingTop","marginBottom","position","title","zIndex","minWidth","maxWidth","margin","top","borderColor","alignItems","flexWrap","lineHeight","left","right","borderTop","letterSpacing","flex","palette","grey","justifyContent","borderRight","pointerEvents","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport { Collapsible, Readable, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport { Customizable } from '@pie-lib/pie-toolbox/mask-markup';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\n\nlet registered = false;\n\n// Define a regex pattern to match {{number}}\nconst REGEX = /(\\{\\{\\d+\\}\\})/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\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 Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction splitByParts(text) {\n // Use the regex pattern to split the text\n const parts = text.split(REGEX);\n // Filter out empty strings that might result from splitting\n return parts.filter(part => part);\n}\n\nfunction prepareForStatic(model, state) {\n const { responses, disabled, markup, printMode, alwaysShowCorrect } = model || {};\n\n if (markup) {\n if (state.showCorrect) {\n return Object.keys(responses || {}).reduce((acc, responseKey) => {\n acc[responseKey] = responses?.[responseKey]?.answer;\n\n return acc;\n }, {});\n }\n\n const splitted = splitByParts(markup);\n\n\n return splitted.reduce((acc, split) => {\n if (split.match(REGEX)) {\n const responseKey = Main.getResponseKey(split);\n const answer = state.session.answers[`r${responseKey}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\embed{newLine}[] ';\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${blankSpace.repeat(3)}}`\n };\n }\n\n if (disabled) {\n return {\n ...acc,\n [responseKey]: `\\\\embed{answerBlock}[r${responseKey}]`\n };\n }\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${(answer && answer.value) || ''}}`\n };\n\n }\n\n return acc;\n }, {});\n }\n}\n\nexport class Main extends React.Component {\n // removes {{ and }} and returns only key response. Eg: {{0}} => 0\n static getResponseKey = response => (response || '').replaceAll('{{', '').replaceAll('}}', '');\n\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 const { model, session } = props || {};\n const { markup, alwaysShowCorrect } = model || {};\n const { answers: sessionAnswers } = session || {};\n\n if (markup) {\n // build out local state model using responses declared in markup\n (markup || '').replace(REGEX, (response) => {\n const responseKey = Main.getResponseKey(response);\n const sessionAnswerForResponse = sessionAnswers && sessionAnswers[`r${responseKey}`];\n\n answers[`r${responseKey}`] = { value: (sessionAnswerForResponse?.value) || '' };\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: alwaysShowCorrect || 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 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 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\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 el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel = {} } = nextProps || {};\n const { markup = '', env = {} } = model || {};\n const { markup: nextMarkup = '', env: nextEnv = {}, alwaysShowCorrect: nextAlwaysShowCorrect = false } = nextModel;\n\n const isEvaluateMode = (env) => env && env.mode === 'evaluate';\n\n if (!isEvaluateMode(env) || !isEvaluateMode(nextEnv)) {\n this.setState((prevState) => ({ ...prevState.session, showCorrect: false }));\n }\n\n if (nextAlwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n const matches = markup.match(REGEX);\n const nextMatches = nextMarkup.match(REGEX);\n\n // If markup changed, and we no longer have the same response area, the session needs to be updated\n if (!isEqual(matches, nextMatches)) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n (nextMatches || []).forEach(nextMatch => {\n const responseKey = Main.getResponseKey(nextMatch);\n const sessionAnswerForResponse = answers && answers[`r${responseKey}`];\n\n // build out local state model using responses declared in markup\n newAnswers[`r${responseKey}`] = { value: (sessionAnswerForResponse?.value) || '' };\n\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: newAnswers,\n },\n }),\n () => {\n this.props.onSessionChange(this.state.session);\n this.handleAnswerBlockDomUpdate();\n },\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 componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\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') return data;\n\n if (type === 'answer') return { type: 'answer', ...data };\n\n if (value === 'clear') return { type: 'clear' };\n\n return { type: 'write', value };\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 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\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n // function for tooltip\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\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n renderTeacherInstructions = () => {\n const { model, classes } = this.props;\n const { teacherInstructions, animationsDisabled } = model || {};\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions}/>\n );\n\n return teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n );\n };\n\n renderRationale = () => {\n const { model, classes } = this.props;\n const { rationale, animationsDisabled } = model || {};\n const rationaleDiv = <PreviewPrompt prompt={rationale}/>;\n\n return rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n );\n }\n\n renderPlayerContent = () => {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n correctness,\n disabled,\n view,\n responses,\n equationEditor,\n customKeys,\n feedback,\n env: { mode } = {},\n printMode,\n alwaysShowCorrect,\n } = model || {};\n\n const emptyResponse = isEmpty(responses);\n const additionalKeys = generateAdditionalKeys(customKeys);\n const statics = prepareForStatic(model, this.state) || '';\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n return (<div className={classes.inputAndKeypadContainer}>\n <Customizable\n disabled={disabled}\n markup={model.markup}\n // TODO remove the need of value?\n value={{}}\n customMarkMarkupComponent={(id) => {\n const responseIsCorrect = mode === 'evaluate' && feedback[id];\n\n const MQStatic = <mq.Static\n className={classes.static}\n ref={(mqStatic) => {\n this.mqStatic = mqStatic || this.mqStatic;\n }}\n latex={statics[id]}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />;\n\n return (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !responseIsCorrect && !showCorrect,\n [classes.correct]: !emptyResponse && (responseIsCorrect || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={activeAnswerBlock === `r${id}`}\n classes={{ tooltip: classes.keypadTooltip, popper: classes.keypadTooltipPopper }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{ width: getKeyPadWidth(additionalKeys, equationEditor) }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n {studentPrintMode\n ? (<div className={classes.printContainer}>\n {MQStatic}\n </div>)\n : MQStatic}\n </Tooltip>\n </div>\n )\n }}\n />\n </div>);\n }\n\n render() {\n const { model, classes } = this.props;\n const { showCorrect } = this.state;\n const {\n prompt,\n env: { mode, role } = {},\n correctness,\n responses,\n language,\n showNote,\n note,\n } = model || {};\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n <div className={classes.main}>\n {/* what is srOnly ? */}\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {this.renderTeacherInstructions()}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt}/>\n </div>\n )}\n\n <Readable false>\n {this.renderPlayerContent()}\n </Readable>\n\n {displayNote && (\n <div\n className={cx(classes.note, 'note')}\n dangerouslySetInnerHTML={{ __html: note }}\n />\n )}\n\n {this.renderRationale()}\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\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 '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\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 promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\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 collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\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 static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& > div > div': {\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap'\n },\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 '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\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 '& .mq-parallelogram': {\n lineHeight: 0.85,\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}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\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 printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
@@ -107261,7 +107261,7 @@ class Response extends React$2.Component {
107261
107261
  fileName: _jsxFileName$1,
107262
107262
  lineNumber: 269
107263
107263
  }
107264
- }, "ADD")));
107264
+ }, "ADD ALTERNATE")));
107265
107265
  }
107266
107266
  }
107267
107267
  Response.__initStatic();
package/module/element.js CHANGED
@@ -126862,8 +126862,22 @@ class Main extends React$1.Component {
126862
126862
  };
126863
126863
  }
126864
126864
  UNSAFE_componentWillReceiveProps(nextProps) {
126865
- const {markup} = this.props.model;
126866
- const {markup: nextMarkup} = nextProps.model || ({});
126865
+ const {model} = this.props;
126866
+ const {model: nextModel = {}} = nextProps || ({});
126867
+ const {markup = '', env = {}} = model || ({});
126868
+ const {markup: nextMarkup = '', env: nextEnv = {}, alwaysShowCorrect: nextAlwaysShowCorrect = false} = nextModel;
126869
+ const isEvaluateMode = env => env && env.mode === 'evaluate';
126870
+ if (!isEvaluateMode(env) || !isEvaluateMode(nextEnv)) {
126871
+ this.setState(prevState => ({
126872
+ ...prevState.session,
126873
+ showCorrect: false
126874
+ }));
126875
+ }
126876
+ if (nextAlwaysShowCorrect) {
126877
+ this.setState({
126878
+ showCorrect: true
126879
+ });
126880
+ }
126867
126881
  const matches = markup.match(REGEX);
126868
126882
  const nextMatches = nextMarkup.match(REGEX);
126869
126883
  if (!isEqual(matches, nextMatches)) {
@@ -127048,7 +127062,7 @@ class Main extends React$1.Component {
127048
127062
  __self: this,
127049
127063
  __source: {
127050
127064
  fileName: _jsxFileName,
127051
- lineNumber: 503
127065
+ lineNumber: 515
127052
127066
  }
127053
127067
  });
127054
127068
  return teacherInstructions && hasText(teacherInstructions) && React$1.createElement('div', {
@@ -127056,7 +127070,7 @@ class Main extends React$1.Component {
127056
127070
  __self: this,
127057
127071
  __source: {
127058
127072
  fileName: _jsxFileName,
127059
- lineNumber: 503
127073
+ lineNumber: 515
127060
127074
  }
127061
127075
  }, !animationsDisabled ? React$1.createElement(Collapsible, {
127062
127076
  labels: {
@@ -127066,7 +127080,7 @@ class Main extends React$1.Component {
127066
127080
  __self: this,
127067
127081
  __source: {
127068
127082
  fileName: _jsxFileName,
127069
- lineNumber: 503
127083
+ lineNumber: 515
127070
127084
  }
127071
127085
  }, teacherInstructionsDiv) : teacherInstructionsDiv);
127072
127086
  };
@@ -127080,7 +127094,7 @@ class Main extends React$1.Component {
127080
127094
  __self: this,
127081
127095
  __source: {
127082
127096
  fileName: _jsxFileName,
127083
- lineNumber: 503
127097
+ lineNumber: 515
127084
127098
  }
127085
127099
  });
127086
127100
  return rationale && hasText(rationale) && React$1.createElement('div', {
@@ -127088,7 +127102,7 @@ class Main extends React$1.Component {
127088
127102
  __self: this,
127089
127103
  __source: {
127090
127104
  fileName: _jsxFileName,
127091
- lineNumber: 503
127105
+ lineNumber: 515
127092
127106
  }
127093
127107
  }, !animationsDisabled ? React$1.createElement(Collapsible, {
127094
127108
  labels: {
@@ -127098,7 +127112,7 @@ class Main extends React$1.Component {
127098
127112
  __self: this,
127099
127113
  __source: {
127100
127114
  fileName: _jsxFileName,
127101
- lineNumber: 503
127115
+ lineNumber: 515
127102
127116
  }
127103
127117
  }, rationaleDiv) : rationaleDiv);
127104
127118
  };
@@ -127117,7 +127131,7 @@ class Main extends React$1.Component {
127117
127131
  __self: this,
127118
127132
  __source: {
127119
127133
  fileName: _jsxFileName,
127120
- lineNumber: 503
127134
+ lineNumber: 515
127121
127135
  }
127122
127136
  }, React$1.createElement(maskMarkup$1.Customizable, {
127123
127137
  disabled: disabled,
@@ -127139,7 +127153,7 @@ class Main extends React$1.Component {
127139
127153
  __self: this,
127140
127154
  __source: {
127141
127155
  fileName: _jsxFileName,
127142
- lineNumber: 503
127156
+ lineNumber: 515
127143
127157
  }
127144
127158
  });
127145
127159
  return React$1.createElement('div', {
@@ -127152,7 +127166,7 @@ class Main extends React$1.Component {
127152
127166
  __self: this,
127153
127167
  __source: {
127154
127168
  fileName: _jsxFileName,
127155
- lineNumber: 503
127169
+ lineNumber: 515
127156
127170
  }
127157
127171
  }, React$1.createElement(Tooltip, {
127158
127172
  ref: ref => this.setTooltipRef(ref),
@@ -127173,7 +127187,7 @@ class Main extends React$1.Component {
127173
127187
  __self: this,
127174
127188
  __source: {
127175
127189
  fileName: _jsxFileName,
127176
- lineNumber: 503
127190
+ lineNumber: 515
127177
127191
  }
127178
127192
  }, React$1.createElement(HorizontalKeypad, {
127179
127193
  additionalKeys: additionalKeys,
@@ -127182,27 +127196,27 @@ class Main extends React$1.Component {
127182
127196
  __self: this,
127183
127197
  __source: {
127184
127198
  fileName: _jsxFileName,
127185
- lineNumber: 503
127199
+ lineNumber: 515
127186
127200
  }
127187
127201
  })) || null),
127188
127202
  __self: this,
127189
127203
  __source: {
127190
127204
  fileName: _jsxFileName,
127191
- lineNumber: 503
127205
+ lineNumber: 515
127192
127206
  }
127193
127207
  }, studentPrintMode ? React$1.createElement('div', {
127194
127208
  className: classes.printContainer,
127195
127209
  __self: this,
127196
127210
  __source: {
127197
127211
  fileName: _jsxFileName,
127198
- lineNumber: 503
127212
+ lineNumber: 515
127199
127213
  }
127200
127214
  }, MQStatic) : MQStatic));
127201
127215
  },
127202
127216
  __self: this,
127203
127217
  __source: {
127204
127218
  fileName: _jsxFileName,
127205
- lineNumber: 503
127219
+ lineNumber: 515
127206
127220
  }
127207
127221
  }));
127208
127222
  };
@@ -127220,28 +127234,28 @@ class Main extends React$1.Component {
127220
127234
  __self: this,
127221
127235
  __source: {
127222
127236
  fileName: _jsxFileName,
127223
- lineNumber: 532
127237
+ lineNumber: 544
127224
127238
  }
127225
127239
  }, React$1.createElement('div', {
127226
127240
  className: classes.main,
127227
127241
  __self: this,
127228
127242
  __source: {
127229
127243
  fileName: _jsxFileName,
127230
- lineNumber: 533
127244
+ lineNumber: 545
127231
127245
  }
127232
127246
  }, mode === 'gather' && React$1.createElement('h2', {
127233
127247
  className: classes.srOnly,
127234
127248
  __self: this,
127235
127249
  __source: {
127236
127250
  fileName: _jsxFileName,
127237
- lineNumber: 535
127251
+ lineNumber: 547
127238
127252
  }
127239
127253
  }, "Math Equation Response Question"), React$1.createElement('div', {
127240
127254
  className: classes.main,
127241
127255
  __self: this,
127242
127256
  __source: {
127243
127257
  fileName: _jsxFileName,
127244
- lineNumber: 537
127258
+ lineNumber: 549
127245
127259
  }
127246
127260
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
127247
127261
  language: language,
@@ -127252,28 +127266,28 @@ class Main extends React$1.Component {
127252
127266
  __self: this,
127253
127267
  __source: {
127254
127268
  fileName: _jsxFileName,
127255
- lineNumber: 539
127269
+ lineNumber: 551
127256
127270
  }
127257
127271
  })), this.renderTeacherInstructions(), prompt && React$1.createElement('div', {
127258
127272
  className: classes.promptContainer,
127259
127273
  __self: this,
127260
127274
  __source: {
127261
127275
  fileName: _jsxFileName,
127262
- lineNumber: 552
127276
+ lineNumber: 564
127263
127277
  }
127264
127278
  }, React$1.createElement(PreviewPrompt, {
127265
127279
  prompt: prompt,
127266
127280
  __self: this,
127267
127281
  __source: {
127268
127282
  fileName: _jsxFileName,
127269
- lineNumber: 553
127283
+ lineNumber: 565
127270
127284
  }
127271
127285
  })), React$1.createElement(Readable, {
127272
127286
  false: true,
127273
127287
  __self: this,
127274
127288
  __source: {
127275
127289
  fileName: _jsxFileName,
127276
- lineNumber: 557
127290
+ lineNumber: 569
127277
127291
  }
127278
127292
  }, this.renderPlayerContent()), displayNote && React$1.createElement('div', {
127279
127293
  className: cx(classes.note, 'note'),
@@ -127283,7 +127297,7 @@ class Main extends React$1.Component {
127283
127297
  __self: this,
127284
127298
  __source: {
127285
127299
  fileName: _jsxFileName,
127286
- lineNumber: 562
127300
+ lineNumber: 574
127287
127301
  }
127288
127302
  }), this.renderRationale()));
127289
127303
  }
package/module/print.js CHANGED
@@ -126825,8 +126825,22 @@ class Main extends React$1.Component {
126825
126825
  };
126826
126826
  }
126827
126827
  UNSAFE_componentWillReceiveProps(nextProps) {
126828
- const {markup} = this.props.model;
126829
- const {markup: nextMarkup} = nextProps.model || ({});
126828
+ const {model} = this.props;
126829
+ const {model: nextModel = {}} = nextProps || ({});
126830
+ const {markup = '', env = {}} = model || ({});
126831
+ const {markup: nextMarkup = '', env: nextEnv = {}, alwaysShowCorrect: nextAlwaysShowCorrect = false} = nextModel;
126832
+ const isEvaluateMode = env => env && env.mode === 'evaluate';
126833
+ if (!isEvaluateMode(env) || !isEvaluateMode(nextEnv)) {
126834
+ this.setState(prevState => ({
126835
+ ...prevState.session,
126836
+ showCorrect: false
126837
+ }));
126838
+ }
126839
+ if (nextAlwaysShowCorrect) {
126840
+ this.setState({
126841
+ showCorrect: true
126842
+ });
126843
+ }
126830
126844
  const matches = markup.match(REGEX);
126831
126845
  const nextMatches = nextMarkup.match(REGEX);
126832
126846
  if (!isEqual(matches, nextMatches)) {
@@ -127011,7 +127025,7 @@ class Main extends React$1.Component {
127011
127025
  __self: this,
127012
127026
  __source: {
127013
127027
  fileName: _jsxFileName,
127014
- lineNumber: 503
127028
+ lineNumber: 515
127015
127029
  }
127016
127030
  });
127017
127031
  return teacherInstructions && hasText(teacherInstructions) && React$1.createElement('div', {
@@ -127019,7 +127033,7 @@ class Main extends React$1.Component {
127019
127033
  __self: this,
127020
127034
  __source: {
127021
127035
  fileName: _jsxFileName,
127022
- lineNumber: 503
127036
+ lineNumber: 515
127023
127037
  }
127024
127038
  }, !animationsDisabled ? React$1.createElement(Collapsible, {
127025
127039
  labels: {
@@ -127029,7 +127043,7 @@ class Main extends React$1.Component {
127029
127043
  __self: this,
127030
127044
  __source: {
127031
127045
  fileName: _jsxFileName,
127032
- lineNumber: 503
127046
+ lineNumber: 515
127033
127047
  }
127034
127048
  }, teacherInstructionsDiv) : teacherInstructionsDiv);
127035
127049
  };
@@ -127043,7 +127057,7 @@ class Main extends React$1.Component {
127043
127057
  __self: this,
127044
127058
  __source: {
127045
127059
  fileName: _jsxFileName,
127046
- lineNumber: 503
127060
+ lineNumber: 515
127047
127061
  }
127048
127062
  });
127049
127063
  return rationale && hasText(rationale) && React$1.createElement('div', {
@@ -127051,7 +127065,7 @@ class Main extends React$1.Component {
127051
127065
  __self: this,
127052
127066
  __source: {
127053
127067
  fileName: _jsxFileName,
127054
- lineNumber: 503
127068
+ lineNumber: 515
127055
127069
  }
127056
127070
  }, !animationsDisabled ? React$1.createElement(Collapsible, {
127057
127071
  labels: {
@@ -127061,7 +127075,7 @@ class Main extends React$1.Component {
127061
127075
  __self: this,
127062
127076
  __source: {
127063
127077
  fileName: _jsxFileName,
127064
- lineNumber: 503
127078
+ lineNumber: 515
127065
127079
  }
127066
127080
  }, rationaleDiv) : rationaleDiv);
127067
127081
  };
@@ -127080,7 +127094,7 @@ class Main extends React$1.Component {
127080
127094
  __self: this,
127081
127095
  __source: {
127082
127096
  fileName: _jsxFileName,
127083
- lineNumber: 503
127097
+ lineNumber: 515
127084
127098
  }
127085
127099
  }, React$1.createElement(maskMarkup$1.Customizable, {
127086
127100
  disabled: disabled,
@@ -127102,7 +127116,7 @@ class Main extends React$1.Component {
127102
127116
  __self: this,
127103
127117
  __source: {
127104
127118
  fileName: _jsxFileName,
127105
- lineNumber: 503
127119
+ lineNumber: 515
127106
127120
  }
127107
127121
  });
127108
127122
  return React$1.createElement('div', {
@@ -127115,7 +127129,7 @@ class Main extends React$1.Component {
127115
127129
  __self: this,
127116
127130
  __source: {
127117
127131
  fileName: _jsxFileName,
127118
- lineNumber: 503
127132
+ lineNumber: 515
127119
127133
  }
127120
127134
  }, React$1.createElement(Tooltip, {
127121
127135
  ref: ref => this.setTooltipRef(ref),
@@ -127136,7 +127150,7 @@ class Main extends React$1.Component {
127136
127150
  __self: this,
127137
127151
  __source: {
127138
127152
  fileName: _jsxFileName,
127139
- lineNumber: 503
127153
+ lineNumber: 515
127140
127154
  }
127141
127155
  }, React$1.createElement(HorizontalKeypad, {
127142
127156
  additionalKeys: additionalKeys,
@@ -127145,27 +127159,27 @@ class Main extends React$1.Component {
127145
127159
  __self: this,
127146
127160
  __source: {
127147
127161
  fileName: _jsxFileName,
127148
- lineNumber: 503
127162
+ lineNumber: 515
127149
127163
  }
127150
127164
  })) || null),
127151
127165
  __self: this,
127152
127166
  __source: {
127153
127167
  fileName: _jsxFileName,
127154
- lineNumber: 503
127168
+ lineNumber: 515
127155
127169
  }
127156
127170
  }, studentPrintMode ? React$1.createElement('div', {
127157
127171
  className: classes.printContainer,
127158
127172
  __self: this,
127159
127173
  __source: {
127160
127174
  fileName: _jsxFileName,
127161
- lineNumber: 503
127175
+ lineNumber: 515
127162
127176
  }
127163
127177
  }, MQStatic) : MQStatic));
127164
127178
  },
127165
127179
  __self: this,
127166
127180
  __source: {
127167
127181
  fileName: _jsxFileName,
127168
- lineNumber: 503
127182
+ lineNumber: 515
127169
127183
  }
127170
127184
  }));
127171
127185
  };
@@ -127183,28 +127197,28 @@ class Main extends React$1.Component {
127183
127197
  __self: this,
127184
127198
  __source: {
127185
127199
  fileName: _jsxFileName,
127186
- lineNumber: 532
127200
+ lineNumber: 544
127187
127201
  }
127188
127202
  }, React$1.createElement('div', {
127189
127203
  className: classes.main,
127190
127204
  __self: this,
127191
127205
  __source: {
127192
127206
  fileName: _jsxFileName,
127193
- lineNumber: 533
127207
+ lineNumber: 545
127194
127208
  }
127195
127209
  }, mode === 'gather' && React$1.createElement('h2', {
127196
127210
  className: classes.srOnly,
127197
127211
  __self: this,
127198
127212
  __source: {
127199
127213
  fileName: _jsxFileName,
127200
- lineNumber: 535
127214
+ lineNumber: 547
127201
127215
  }
127202
127216
  }, "Math Equation Response Question"), React$1.createElement('div', {
127203
127217
  className: classes.main,
127204
127218
  __self: this,
127205
127219
  __source: {
127206
127220
  fileName: _jsxFileName,
127207
- lineNumber: 537
127221
+ lineNumber: 549
127208
127222
  }
127209
127223
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
127210
127224
  language: language,
@@ -127215,28 +127229,28 @@ class Main extends React$1.Component {
127215
127229
  __self: this,
127216
127230
  __source: {
127217
127231
  fileName: _jsxFileName,
127218
- lineNumber: 539
127232
+ lineNumber: 551
127219
127233
  }
127220
127234
  })), this.renderTeacherInstructions(), prompt && React$1.createElement('div', {
127221
127235
  className: classes.promptContainer,
127222
127236
  __self: this,
127223
127237
  __source: {
127224
127238
  fileName: _jsxFileName,
127225
- lineNumber: 552
127239
+ lineNumber: 564
127226
127240
  }
127227
127241
  }, React$1.createElement(PreviewPrompt, {
127228
127242
  prompt: prompt,
127229
127243
  __self: this,
127230
127244
  __source: {
127231
127245
  fileName: _jsxFileName,
127232
- lineNumber: 553
127246
+ lineNumber: 565
127233
127247
  }
127234
127248
  })), React$1.createElement(Readable, {
127235
127249
  false: true,
127236
127250
  __self: this,
127237
127251
  __source: {
127238
127252
  fileName: _jsxFileName,
127239
- lineNumber: 557
127253
+ lineNumber: 569
127240
127254
  }
127241
127255
  }, this.renderPlayerContent()), displayNote && React$1.createElement('div', {
127242
127256
  className: cx(classes.note, 'note'),
@@ -127246,7 +127260,7 @@ class Main extends React$1.Component {
127246
127260
  __self: this,
127247
127261
  __source: {
127248
127262
  fileName: _jsxFileName,
127249
- lineNumber: 562
127263
+ lineNumber: 574
127250
127264
  }
127251
127265
  }), this.renderRationale()));
127252
127266
  }
package/package.json CHANGED
@@ -4,19 +4,19 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "2.14.1-next.4+b95f5af88",
7
+ "version": "2.14.1-next.7+dcdc0bf9a",
8
8
  "description": "",
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-player-events": "^0.1.0",
12
- "@pie-lib/pie-toolbox": "1.21.1",
12
+ "@pie-lib/pie-toolbox": "1.21.2",
13
13
  "prop-types": "^15.6.1",
14
14
  "react": "^16.8.1",
15
15
  "react-dom": "^16.8.1"
16
16
  },
17
17
  "author": "",
18
18
  "license": "ISC",
19
- "gitHead": "b95f5af88bcf81b68840ae2ace95f21b47c7a647",
19
+ "gitHead": "dcdc0bf9a7cc341d257de831e87915fb9425e4a2",
20
20
  "scripts": {
21
21
  "postpublish": "../../scripts/postpublish"
22
22
  },