@pie-element/math-inline 7.6.1-next.7 → 7.7.1-next.12

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/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [7.7.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@7.6.0...@pie-element/math-inline@7.7.0) (2024-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
12
+
13
+
14
+ ### Features
15
+
16
+ * **math-inline:** add aria-label for textarea PD-2457 ([43471af](https://github.com/pie-framework/pie-elements/commit/43471af3c6f157b3ee6e36acd60d82cdfd357242))
17
+ * **math-inline:** refactor aria hidden and aria label PD-2448 & PD-2457 ([20b0621](https://github.com/pie-framework/pie-elements/commit/20b0621009b528f6141a1305b0c150e0b255945d))
18
+
19
+
20
+
21
+
22
+
6
23
  # [7.6.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@7.5.0...@pie-element/math-inline@7.6.0) (2024-03-07)
7
24
 
8
25
 
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [7.5.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@7.5.0...@pie-element/math-inline-configure@7.5.1) (2024-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
12
+
13
+
14
+
15
+
16
+
6
17
  # [7.5.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@7.4.0...@pie-element/math-inline-configure@7.5.0) (2024-03-07)
7
18
 
8
19
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/math-inline-configure",
3
3
  "private": true,
4
- "version": "7.5.0",
4
+ "version": "7.5.1",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -11,7 +11,7 @@
11
11
  "@material-ui/icons": "^3.0.1",
12
12
  "@pie-framework/mathquill": "^1.1.3",
13
13
  "@pie-framework/pie-configure-events": "^1.3.0",
14
- "@pie-lib/pie-toolbox": "1.8.1",
14
+ "@pie-lib/pie-toolbox": "1.8.4",
15
15
  "classnames": "^2.2.5",
16
16
  "debug": "^3.1.0",
17
17
  "prop-types": "^15.6.2",
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [6.3.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@6.3.0...@pie-element/math-inline-controller@6.3.1) (2024-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
12
+
13
+
14
+
15
+
16
+
6
17
  # [6.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@6.2.2...@pie-element/math-inline-controller@6.3.0) (2024-03-04)
7
18
 
8
19
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/math-inline-controller",
3
3
  "private": true,
4
- "version": "6.3.0",
4
+ "version": "6.3.1",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@pie-framework/math-validation": "^1.2.2",
13
- "@pie-lib/pie-toolbox": "1.8.1",
13
+ "@pie-lib/pie-toolbox": "1.8.4",
14
14
  "debug": "^3.1.0",
15
15
  "lodash": "^4.17.15"
16
16
  },
package/lib/main.js CHANGED
@@ -175,12 +175,19 @@ var Main = /*#__PURE__*/function (_React$Component) {
175
175
 
176
176
  (0, _mathRendering.renderMath)(_this.root);
177
177
  });
178
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateAriaHidden", function () {
178
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateAria", function () {
179
179
  if (_this.root) {
180
+ // Update aria-hidden for .mq-selectable elements
180
181
  var selectableElements = _this.root.querySelectorAll('.mq-selectable');
181
182
 
182
- (selectableElements || []).forEach(function (elem) {
183
+ selectableElements.forEach(function (elem) {
183
184
  return elem.setAttribute('aria-hidden', 'true');
185
+ }); // Update aria-label for textarea elements
186
+
187
+ var textareaElements = _this.root.querySelectorAll('textarea');
188
+
189
+ textareaElements.forEach(function (elem) {
190
+ elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');
184
191
  });
185
192
  }
186
193
  });
@@ -348,6 +355,13 @@ var Main = /*#__PURE__*/function (_React$Component) {
348
355
  }
349
356
  }
350
357
  }
358
+ }, {
359
+ key: "countResponseOccurrences",
360
+ value: function countResponseOccurrences(expression) {
361
+ var pattern = /\{\{response\}\}/g;
362
+ var matches = expression.match(pattern);
363
+ return matches ? matches.length : 0;
364
+ }
351
365
  }, {
352
366
  key: "UNSAFE_componentWillReceiveProps",
353
367
  value: function UNSAFE_componentWillReceiveProps(nextProps) {
@@ -382,6 +396,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
382
396
  });
383
397
  }
384
398
 
399
+ if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {
400
+ setTimeout(function () {
401
+ return _this2.updateAria();
402
+ }, 100);
403
+ }
404
+
385
405
  if (config && config.responses && config.responses.length !== nextConfig.responses.length || !config && nextConfig && nextConfig.responses || config && nextConfig && config.expression !== nextConfig.expression) {
386
406
  var newAnswers = {};
387
407
  var answers = this.state.session.answers;
@@ -417,7 +437,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
417
437
  var _this3 = this;
418
438
 
419
439
  this.handleAnswerBlockDomUpdate();
420
- this.updateAriaHidden();
440
+ this.updateAria();
421
441
  setTimeout(function () {
422
442
  return (0, _mathRendering.renderMath)(_this3.root);
423
443
  }, 100);
@@ -426,7 +446,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
426
446
  key: "componentDidUpdate",
427
447
  value: function componentDidUpdate() {
428
448
  this.handleAnswerBlockDomUpdate();
429
- this.updateAriaHidden();
430
449
  }
431
450
  }, {
432
451
  key: "setTooltipRef",
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["translator","Translator","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","printMode","alwaysShowCorrect","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","blankSpace","repeat","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","selectableElements","querySelectorAll","elem","setAttribute","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","note","language","t","lng","env","mode","newAnswers","nextState","sameModel","sameState","updateAriaHidden","setTimeout","ref","div","document","firstChild","correctness","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","responseType","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","midContent","main","srOnly","collapsible","hidden","visible","__html","content","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","position","title","marginBottom","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","flex","palette","grey","alignItems","justifyContent","borderRight","pointerEvents","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport { Feedback, Collapsible, Readable, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/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/pie-toolbox/render-ui';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nconst { translator } = Translator;\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 Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = 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 || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\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: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.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 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 UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n config.note &&\n config.language &&\n config.language !== nextConfig.language &&\n config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })\n ) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if (\n (config && config.responses && 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: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\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 this.updateAriaHidden();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n this.updateAriaHidden();\n }\n\n updateAriaHidden = () => {\n if (this.root) {\n const selectableElements = this.root.querySelectorAll('.mq-selectable');\n (selectableElements || []).forEach((elem) => elem.setAttribute('aria-hidden', 'true'));\n }\n };\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\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\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 ) {\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\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 { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n config,\n correctness,\n disabled,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language,\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n const printView = (\n <div className={classes.printContainer}>\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\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 </div>\n );\n\n const midContent = (\n <div className={classes.main}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n {viewMode &&\n teacherInstructions &&\n hasText(teacherInstructions) &&\n (!animationsDisabled ? (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n ))}\n\n {prompt && (\n <div className={classes.content}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !correct && !showCorrect,\n [classes.correct]: !emptyResponse && (correct || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n [classes.printCorrect]: printMode && alwaysShowCorrect,\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 && !(showCorrect || 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(additionalKeys, equationEditor),\n }}\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 <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\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 )}\n\n {viewMode && displayNote && (\n <div className={classes.note} dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }} />\n )}\n\n {viewMode &&\n rationale &&\n hasText(rationale) &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n ))}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n (showCorrectAnswerToggle ||\n (teacherInstructions && hasText(teacherInstructions)) ||\n (rationale && hasText(rationale)) ||\n 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 {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 {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n {displayNote && hasText(note) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </Collapsible>\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-rationale\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n </Tooltip>\n );\n }\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\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 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 note: {\n paddingBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: 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 static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\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 '& *': {\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 printCorrect: {\n border: `2px solid ${color.correct()} !important`,\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});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["translator","Translator","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","printMode","alwaysShowCorrect","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","blankSpace","repeat","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","selectableElements","querySelectorAll","elem","setAttribute","textareaElements","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","pattern","matches","match","nextProps","nextConfig","note","language","t","lng","env","mode","countResponseOccurrences","setTimeout","updateAria","newAnswers","nextState","sameModel","sameState","ref","div","document","firstChild","correctness","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","responseType","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","midContent","main","srOnly","collapsible","hidden","visible","__html","content","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","position","title","marginBottom","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","flex","palette","grey","alignItems","justifyContent","borderRight","pointerEvents","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport { Feedback, Collapsible, Readable, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/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/pie-toolbox/render-ui';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nconst { translator } = Translator;\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 Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = 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 || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\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: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.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 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 countResponseOccurrences(expression) {\n const pattern = /\\{\\{response\\}\\}/g;\n const matches = expression.match(pattern);\n\n return matches ? matches.length : 0;\n }\n\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n config.note &&\n config.language &&\n config.language !== nextConfig.language &&\n config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })\n ) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if(this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {\n setTimeout(() => this.updateAria(), 100);\n }\n\n if (\n (config && config.responses && 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: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\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 this.updateAria();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n updateAria = () => {\n if (this.root) {\n // Update aria-hidden for .mq-selectable elements\n const selectableElements = this.root.querySelectorAll('.mq-selectable');\n selectableElements.forEach(elem => elem.setAttribute('aria-hidden', 'true'));\n \n // Update aria-label for textarea elements\n const textareaElements = this.root.querySelectorAll('textarea');\n textareaElements.forEach(elem => {\n elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');\n });\n }\n };\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\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\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 ) {\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\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 { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n config,\n correctness,\n disabled,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language,\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n const printView = (\n <div className={classes.printContainer}>\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\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 </div>\n );\n\n const midContent = (\n <div className={classes.main}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n {viewMode &&\n teacherInstructions &&\n hasText(teacherInstructions) &&\n (!animationsDisabled ? (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n ))}\n\n {prompt && (\n <div className={classes.content}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !correct && !showCorrect,\n [classes.correct]: !emptyResponse && (correct || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n [classes.printCorrect]: printMode && alwaysShowCorrect,\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 && !(showCorrect || 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(additionalKeys, equationEditor),\n }}\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 <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\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 )}\n\n {viewMode && displayNote && (\n <div className={classes.note} dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }} />\n )}\n\n {viewMode &&\n rationale &&\n hasText(rationale) &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n ))}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n (showCorrectAnswerToggle ||\n (teacherInstructions && hasText(teacherInstructions)) ||\n (rationale && hasText(rationale)) ||\n 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 {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 {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n {displayNote && hasText(note) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </Collapsible>\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-rationale\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n </Tooltip>\n );\n }\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\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 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 note: {\n paddingBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: 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 static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\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 '& *': {\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 printCorrect: {\n border: `2px solid ${color.correct()} !important`,\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});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.1/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.3/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_config_ui, _dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_editable_html} from "../../../@pie-lib/pie-toolbox-module@4.0.0/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
package/module/element.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.1/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.3/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@4.0.0/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
@@ -11677,6 +11677,11 @@ class Main extends React$1.Component {
11677
11677
  renderMath(this.root);
11678
11678
  };
11679
11679
  }
11680
+ countResponseOccurrences(expression) {
11681
+ const pattern = /\{\{response\}\}/g;
11682
+ const matches = expression.match(pattern);
11683
+ return matches ? matches.length : 0;
11684
+ }
11680
11685
  UNSAFE_componentWillReceiveProps(nextProps) {
11681
11686
  const {config} = this.props.model;
11682
11687
  const {config: nextConfig = {}} = nextProps.model || ({});
@@ -11698,6 +11703,9 @@ class Main extends React$1.Component {
11698
11703
  showCorrect: true
11699
11704
  });
11700
11705
  }
11706
+ if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {
11707
+ setTimeout(() => this.updateAria(), 100);
11708
+ }
11701
11709
  if (config && config.responses && config.responses.length !== nextConfig.responses.length || !config && nextConfig && nextConfig.responses || config && nextConfig && config.expression !== nextConfig.expression) {
11702
11710
  const newAnswers = {};
11703
11711
  const answers = this.state.session.answers;
@@ -11724,18 +11732,21 @@ class Main extends React$1.Component {
11724
11732
  }
11725
11733
  componentDidMount() {
11726
11734
  this.handleAnswerBlockDomUpdate();
11727
- this.updateAriaHidden();
11735
+ this.updateAria();
11728
11736
  setTimeout(() => renderMath(this.root), 100);
11729
11737
  }
11730
11738
  componentDidUpdate() {
11731
11739
  this.handleAnswerBlockDomUpdate();
11732
- this.updateAriaHidden();
11733
11740
  }
11734
11741
  __init2() {
11735
- this.updateAriaHidden = () => {
11742
+ this.updateAria = () => {
11736
11743
  if (this.root) {
11737
11744
  const selectableElements = this.root.querySelectorAll('.mq-selectable');
11738
- (selectableElements || []).forEach(elem => elem.setAttribute('aria-hidden', 'true'));
11745
+ selectableElements.forEach(elem => elem.setAttribute('aria-hidden', 'true'));
11746
+ const textareaElements = this.root.querySelectorAll('textarea');
11747
+ textareaElements.forEach(elem => {
11748
+ elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');
11749
+ });
11739
11750
  }
11740
11751
  };
11741
11752
  }
@@ -11899,7 +11910,7 @@ class Main extends React$1.Component {
11899
11910
  __self: this,
11900
11911
  __source: {
11901
11912
  fileName: _jsxFileName,
11902
- lineNumber: 426
11913
+ lineNumber: 443
11903
11914
  }
11904
11915
  }, React$1.createElement(mq.Static, {
11905
11916
  className: classes.static,
@@ -11913,7 +11924,7 @@ class Main extends React$1.Component {
11913
11924
  __self: this,
11914
11925
  __source: {
11915
11926
  fileName: _jsxFileName,
11916
- lineNumber: 427
11927
+ lineNumber: 444
11917
11928
  }
11918
11929
  }));
11919
11930
  const midContent = React$1.createElement('div', {
@@ -11921,14 +11932,14 @@ class Main extends React$1.Component {
11921
11932
  __self: this,
11922
11933
  __source: {
11923
11934
  fileName: _jsxFileName,
11924
- lineNumber: 441
11935
+ lineNumber: 458
11925
11936
  }
11926
11937
  }, mode === 'gather' && React$1.createElement('h2', {
11927
11938
  className: classes.srOnly,
11928
11939
  __self: this,
11929
11940
  __source: {
11930
11941
  fileName: _jsxFileName,
11931
- lineNumber: 442
11942
+ lineNumber: 459
11932
11943
  }
11933
11944
  }, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
11934
11945
  className: classes.collapsible,
@@ -11939,7 +11950,7 @@ class Main extends React$1.Component {
11939
11950
  __self: this,
11940
11951
  __source: {
11941
11952
  fileName: _jsxFileName,
11942
- lineNumber: 448
11953
+ lineNumber: 465
11943
11954
  }
11944
11955
  }, React$1.createElement('div', {
11945
11956
  dangerouslySetInnerHTML: {
@@ -11948,7 +11959,7 @@ class Main extends React$1.Component {
11948
11959
  __self: this,
11949
11960
  __source: {
11950
11961
  fileName: _jsxFileName,
11951
- lineNumber: 452
11962
+ lineNumber: 469
11952
11963
  }
11953
11964
  })) : React$1.createElement('div', {
11954
11965
  dangerouslySetInnerHTML: {
@@ -11957,35 +11968,35 @@ class Main extends React$1.Component {
11957
11968
  __self: this,
11958
11969
  __source: {
11959
11970
  fileName: _jsxFileName,
11960
- lineNumber: 455
11971
+ lineNumber: 472
11961
11972
  }
11962
11973
  })), prompt && React$1.createElement('div', {
11963
11974
  className: classes.content,
11964
11975
  __self: this,
11965
11976
  __source: {
11966
11977
  fileName: _jsxFileName,
11967
- lineNumber: 459
11978
+ lineNumber: 476
11968
11979
  }
11969
11980
  }, React$1.createElement(PreviewPrompt, {
11970
11981
  prompt: prompt,
11971
11982
  __self: this,
11972
11983
  __source: {
11973
11984
  fileName: _jsxFileName,
11974
- lineNumber: 460
11985
+ lineNumber: 477
11975
11986
  }
11976
11987
  })), studentPrintMode ? printView : React$1.createElement(Readable, {
11977
11988
  false: true,
11978
11989
  __self: this,
11979
11990
  __source: {
11980
11991
  fileName: _jsxFileName,
11981
- lineNumber: 467
11992
+ lineNumber: 484
11982
11993
  }
11983
11994
  }, React$1.createElement('div', {
11984
11995
  className: classes.inputAndKeypadContainer,
11985
11996
  __self: this,
11986
11997
  __source: {
11987
11998
  fileName: _jsxFileName,
11988
- lineNumber: 468
11999
+ lineNumber: 485
11989
12000
  }
11990
12001
  }, responseType === ResponseTypes$1.simple && React$1.createElement(SimpleQuestionBlock, {
11991
12002
  onSimpleResponseChange: this.onSimpleResponseChange,
@@ -11996,7 +12007,7 @@ class Main extends React$1.Component {
11996
12007
  __self: this,
11997
12008
  __source: {
11998
12009
  fileName: _jsxFileName,
11999
- lineNumber: 470
12010
+ lineNumber: 487
12000
12011
  }
12001
12012
  }), responseType === ResponseTypes$1.advanced && React$1.createElement('div', {
12002
12013
  className: cx(classes.expression, {
@@ -12009,7 +12020,7 @@ class Main extends React$1.Component {
12009
12020
  __self: this,
12010
12021
  __source: {
12011
12022
  fileName: _jsxFileName,
12012
- lineNumber: 480
12023
+ lineNumber: 497
12013
12024
  }
12014
12025
  }, React$1.createElement(Tooltip, {
12015
12026
  ref: ref => this.setTooltipRef(ref),
@@ -12029,7 +12040,7 @@ class Main extends React$1.Component {
12029
12040
  __self: this,
12030
12041
  __source: {
12031
12042
  fileName: _jsxFileName,
12032
- lineNumber: 500
12043
+ lineNumber: 517
12033
12044
  }
12034
12045
  }, React$1.createElement(HorizontalKeypad, {
12035
12046
  additionalKeys: additionalKeys,
@@ -12038,13 +12049,13 @@ class Main extends React$1.Component {
12038
12049
  __self: this,
12039
12050
  __source: {
12040
12051
  fileName: _jsxFileName,
12041
- lineNumber: 509
12052
+ lineNumber: 526
12042
12053
  }
12043
12054
  })) || null),
12044
12055
  __self: this,
12045
12056
  __source: {
12046
12057
  fileName: _jsxFileName,
12047
- lineNumber: 489
12058
+ lineNumber: 506
12048
12059
  }
12049
12060
  }, React$1.createElement(mq.Static, {
12050
12061
  className: classes.static,
@@ -12058,7 +12069,7 @@ class Main extends React$1.Component {
12058
12069
  __self: this,
12059
12070
  __source: {
12060
12071
  fileName: _jsxFileName,
12061
- lineNumber: 519
12072
+ lineNumber: 536
12062
12073
  }
12063
12074
  }))))), viewMode && displayNote && React$1.createElement('div', {
12064
12075
  className: classes.note,
@@ -12068,7 +12079,7 @@ class Main extends React$1.Component {
12068
12079
  __self: this,
12069
12080
  __source: {
12070
12081
  fileName: _jsxFileName,
12071
- lineNumber: 537
12082
+ lineNumber: 554
12072
12083
  }
12073
12084
  }), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12074
12085
  labels: {
@@ -12078,7 +12089,7 @@ class Main extends React$1.Component {
12078
12089
  __self: this,
12079
12090
  __source: {
12080
12091
  fileName: _jsxFileName,
12081
- lineNumber: 544
12092
+ lineNumber: 561
12082
12093
  }
12083
12094
  }, React$1.createElement('div', {
12084
12095
  dangerouslySetInnerHTML: {
@@ -12087,7 +12098,7 @@ class Main extends React$1.Component {
12087
12098
  __self: this,
12088
12099
  __source: {
12089
12100
  fileName: _jsxFileName,
12090
- lineNumber: 545
12101
+ lineNumber: 562
12091
12102
  }
12092
12103
  })) : React$1.createElement('div', {
12093
12104
  dangerouslySetInnerHTML: {
@@ -12096,7 +12107,7 @@ class Main extends React$1.Component {
12096
12107
  __self: this,
12097
12108
  __source: {
12098
12109
  fileName: _jsxFileName,
12099
- lineNumber: 548
12110
+ lineNumber: 565
12100
12111
  }
12101
12112
  })));
12102
12113
  if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
@@ -12110,14 +12121,14 @@ class Main extends React$1.Component {
12110
12121
  __self: this,
12111
12122
  __source: {
12112
12123
  fileName: _jsxFileName,
12113
- lineNumber: 568
12124
+ lineNumber: 585
12114
12125
  }
12115
12126
  }, React$1.createElement('div', {
12116
12127
  className: classes.main,
12117
12128
  __self: this,
12118
12129
  __source: {
12119
12130
  fileName: _jsxFileName,
12120
- lineNumber: 569
12131
+ lineNumber: 586
12121
12132
  }
12122
12133
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
12123
12134
  language: language,
@@ -12128,7 +12139,7 @@ class Main extends React$1.Component {
12128
12139
  __self: this,
12129
12140
  __source: {
12130
12141
  fileName: _jsxFileName,
12131
- lineNumber: 571
12142
+ lineNumber: 588
12132
12143
  }
12133
12144
  })), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
12134
12145
  className: classes.collapsible,
@@ -12140,14 +12151,14 @@ class Main extends React$1.Component {
12140
12151
  __self: this,
12141
12152
  __source: {
12142
12153
  fileName: _jsxFileName,
12143
- lineNumber: 582
12154
+ lineNumber: 599
12144
12155
  }
12145
12156
  }, React$1.createElement(PreviewPrompt, {
12146
12157
  prompt: teacherInstructions,
12147
12158
  __self: this,
12148
12159
  __source: {
12149
12160
  fileName: _jsxFileName,
12150
- lineNumber: 590
12161
+ lineNumber: 607
12151
12162
  }
12152
12163
  })), displayNote && hasText(note) && React$1.createElement(Collapsible, {
12153
12164
  className: classes.collapsible,
@@ -12163,14 +12174,14 @@ class Main extends React$1.Component {
12163
12174
  __self: this,
12164
12175
  __source: {
12165
12176
  fileName: _jsxFileName,
12166
- lineNumber: 594
12177
+ lineNumber: 611
12167
12178
  }
12168
12179
  }, React$1.createElement(PreviewPrompt, {
12169
12180
  prompt: note,
12170
12181
  __self: this,
12171
12182
  __source: {
12172
12183
  fileName: _jsxFileName,
12173
- lineNumber: 602
12184
+ lineNumber: 619
12174
12185
  }
12175
12186
  })), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
12176
12187
  className: classes.collapsible,
@@ -12182,14 +12193,14 @@ class Main extends React$1.Component {
12182
12193
  __self: this,
12183
12194
  __source: {
12184
12195
  fileName: _jsxFileName,
12185
- lineNumber: 607
12196
+ lineNumber: 624
12186
12197
  }
12187
12198
  }, React$1.createElement(PreviewPrompt, {
12188
12199
  prompt: rationale,
12189
12200
  __self: this,
12190
12201
  __source: {
12191
12202
  fileName: _jsxFileName,
12192
- lineNumber: 615
12203
+ lineNumber: 632
12193
12204
  }
12194
12205
  })), feedback && React$1.createElement(Feedback, {
12195
12206
  correctness: correctness.correctness,
@@ -12197,13 +12208,13 @@ class Main extends React$1.Component {
12197
12208
  __self: this,
12198
12209
  __source: {
12199
12210
  fileName: _jsxFileName,
12200
- lineNumber: 619
12211
+ lineNumber: 636
12201
12212
  }
12202
12213
  })),
12203
12214
  __self: this,
12204
12215
  __source: {
12205
12216
  fileName: _jsxFileName,
12206
- lineNumber: 561
12217
+ lineNumber: 578
12207
12218
  }
12208
12219
  }, React$1.createElement('div', {
12209
12220
  className: classes.mainContainer,
@@ -12211,7 +12222,7 @@ class Main extends React$1.Component {
12211
12222
  __self: this,
12212
12223
  __source: {
12213
12224
  fileName: _jsxFileName,
12214
- lineNumber: 623
12225
+ lineNumber: 640
12215
12226
  }
12216
12227
  }, midContent));
12217
12228
  }
@@ -12221,7 +12232,7 @@ class Main extends React$1.Component {
12221
12232
  __self: this,
12222
12233
  __source: {
12223
12234
  fileName: _jsxFileName,
12224
- lineNumber: 631
12235
+ lineNumber: 648
12225
12236
  }
12226
12237
  }, midContent);
12227
12238
  }
package/module/index.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
- <title>@pie-element/math-inline@7.6.0</title>
5
+ <title>@pie-element/math-inline@7.7.0</title>
6
6
  <script
7
7
  type="module"
8
8
  src="https://cdn.jsdelivr.net/npm/@pslb/demo-el@^1.0.0/dist/demo-el/demo-el.esm.js"></script>
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@pie-element/math-inline",
3
- "version": "7.6.0",
3
+ "version": "7.7.0",
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/pie-toolbox-math-rendering-module",
7
- "version": "1.1.1"
7
+ "version": "1.1.3"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/pie-toolbox-module",
package/module/print.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
- <title>@pie-element/math-inline@7.6.0</title>
5
+ <title>@pie-element/math-inline@7.7.0</title>
6
6
  <link
7
7
  href="https://fonts.googleapis.com/css?family=Roboto&display=swap"
8
8
  rel="stylesheet"
package/module/print.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.1/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.3/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@4.0.0/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
@@ -11677,6 +11677,11 @@ class Main extends React$1.Component {
11677
11677
  renderMath$1(this.root);
11678
11678
  };
11679
11679
  }
11680
+ countResponseOccurrences(expression) {
11681
+ const pattern = /\{\{response\}\}/g;
11682
+ const matches = expression.match(pattern);
11683
+ return matches ? matches.length : 0;
11684
+ }
11680
11685
  UNSAFE_componentWillReceiveProps(nextProps) {
11681
11686
  const {config} = this.props.model;
11682
11687
  const {config: nextConfig = {}} = nextProps.model || ({});
@@ -11698,6 +11703,9 @@ class Main extends React$1.Component {
11698
11703
  showCorrect: true
11699
11704
  });
11700
11705
  }
11706
+ if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {
11707
+ setTimeout(() => this.updateAria(), 100);
11708
+ }
11701
11709
  if (config && config.responses && config.responses.length !== nextConfig.responses.length || !config && nextConfig && nextConfig.responses || config && nextConfig && config.expression !== nextConfig.expression) {
11702
11710
  const newAnswers = {};
11703
11711
  const answers = this.state.session.answers;
@@ -11724,18 +11732,21 @@ class Main extends React$1.Component {
11724
11732
  }
11725
11733
  componentDidMount() {
11726
11734
  this.handleAnswerBlockDomUpdate();
11727
- this.updateAriaHidden();
11735
+ this.updateAria();
11728
11736
  setTimeout(() => renderMath$1(this.root), 100);
11729
11737
  }
11730
11738
  componentDidUpdate() {
11731
11739
  this.handleAnswerBlockDomUpdate();
11732
- this.updateAriaHidden();
11733
11740
  }
11734
11741
  __init2() {
11735
- this.updateAriaHidden = () => {
11742
+ this.updateAria = () => {
11736
11743
  if (this.root) {
11737
11744
  const selectableElements = this.root.querySelectorAll('.mq-selectable');
11738
- (selectableElements || []).forEach(elem => elem.setAttribute('aria-hidden', 'true'));
11745
+ selectableElements.forEach(elem => elem.setAttribute('aria-hidden', 'true'));
11746
+ const textareaElements = this.root.querySelectorAll('textarea');
11747
+ textareaElements.forEach(elem => {
11748
+ elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');
11749
+ });
11739
11750
  }
11740
11751
  };
11741
11752
  }
@@ -11899,7 +11910,7 @@ class Main extends React$1.Component {
11899
11910
  __self: this,
11900
11911
  __source: {
11901
11912
  fileName: _jsxFileName,
11902
- lineNumber: 426
11913
+ lineNumber: 443
11903
11914
  }
11904
11915
  }, React$1.createElement(mq.Static, {
11905
11916
  className: classes.static,
@@ -11913,7 +11924,7 @@ class Main extends React$1.Component {
11913
11924
  __self: this,
11914
11925
  __source: {
11915
11926
  fileName: _jsxFileName,
11916
- lineNumber: 427
11927
+ lineNumber: 444
11917
11928
  }
11918
11929
  }));
11919
11930
  const midContent = React$1.createElement('div', {
@@ -11921,14 +11932,14 @@ class Main extends React$1.Component {
11921
11932
  __self: this,
11922
11933
  __source: {
11923
11934
  fileName: _jsxFileName,
11924
- lineNumber: 441
11935
+ lineNumber: 458
11925
11936
  }
11926
11937
  }, mode === 'gather' && React$1.createElement('h2', {
11927
11938
  className: classes.srOnly,
11928
11939
  __self: this,
11929
11940
  __source: {
11930
11941
  fileName: _jsxFileName,
11931
- lineNumber: 442
11942
+ lineNumber: 459
11932
11943
  }
11933
11944
  }, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
11934
11945
  className: classes.collapsible,
@@ -11939,7 +11950,7 @@ class Main extends React$1.Component {
11939
11950
  __self: this,
11940
11951
  __source: {
11941
11952
  fileName: _jsxFileName,
11942
- lineNumber: 448
11953
+ lineNumber: 465
11943
11954
  }
11944
11955
  }, React$1.createElement('div', {
11945
11956
  dangerouslySetInnerHTML: {
@@ -11948,7 +11959,7 @@ class Main extends React$1.Component {
11948
11959
  __self: this,
11949
11960
  __source: {
11950
11961
  fileName: _jsxFileName,
11951
- lineNumber: 452
11962
+ lineNumber: 469
11952
11963
  }
11953
11964
  })) : React$1.createElement('div', {
11954
11965
  dangerouslySetInnerHTML: {
@@ -11957,35 +11968,35 @@ class Main extends React$1.Component {
11957
11968
  __self: this,
11958
11969
  __source: {
11959
11970
  fileName: _jsxFileName,
11960
- lineNumber: 455
11971
+ lineNumber: 472
11961
11972
  }
11962
11973
  })), prompt && React$1.createElement('div', {
11963
11974
  className: classes.content,
11964
11975
  __self: this,
11965
11976
  __source: {
11966
11977
  fileName: _jsxFileName,
11967
- lineNumber: 459
11978
+ lineNumber: 476
11968
11979
  }
11969
11980
  }, React$1.createElement(PreviewPrompt, {
11970
11981
  prompt: prompt,
11971
11982
  __self: this,
11972
11983
  __source: {
11973
11984
  fileName: _jsxFileName,
11974
- lineNumber: 460
11985
+ lineNumber: 477
11975
11986
  }
11976
11987
  })), studentPrintMode ? printView : React$1.createElement(Readable, {
11977
11988
  false: true,
11978
11989
  __self: this,
11979
11990
  __source: {
11980
11991
  fileName: _jsxFileName,
11981
- lineNumber: 467
11992
+ lineNumber: 484
11982
11993
  }
11983
11994
  }, React$1.createElement('div', {
11984
11995
  className: classes.inputAndKeypadContainer,
11985
11996
  __self: this,
11986
11997
  __source: {
11987
11998
  fileName: _jsxFileName,
11988
- lineNumber: 468
11999
+ lineNumber: 485
11989
12000
  }
11990
12001
  }, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
11991
12002
  onSimpleResponseChange: this.onSimpleResponseChange,
@@ -11996,7 +12007,7 @@ class Main extends React$1.Component {
11996
12007
  __self: this,
11997
12008
  __source: {
11998
12009
  fileName: _jsxFileName,
11999
- lineNumber: 470
12010
+ lineNumber: 487
12000
12011
  }
12001
12012
  }), responseType === ResponseTypes.advanced && React$1.createElement('div', {
12002
12013
  className: cx(classes.expression, {
@@ -12009,7 +12020,7 @@ class Main extends React$1.Component {
12009
12020
  __self: this,
12010
12021
  __source: {
12011
12022
  fileName: _jsxFileName,
12012
- lineNumber: 480
12023
+ lineNumber: 497
12013
12024
  }
12014
12025
  }, React$1.createElement(Tooltip, {
12015
12026
  ref: ref => this.setTooltipRef(ref),
@@ -12029,7 +12040,7 @@ class Main extends React$1.Component {
12029
12040
  __self: this,
12030
12041
  __source: {
12031
12042
  fileName: _jsxFileName,
12032
- lineNumber: 500
12043
+ lineNumber: 517
12033
12044
  }
12034
12045
  }, React$1.createElement(HorizontalKeypad, {
12035
12046
  additionalKeys: additionalKeys,
@@ -12038,13 +12049,13 @@ class Main extends React$1.Component {
12038
12049
  __self: this,
12039
12050
  __source: {
12040
12051
  fileName: _jsxFileName,
12041
- lineNumber: 509
12052
+ lineNumber: 526
12042
12053
  }
12043
12054
  })) || null),
12044
12055
  __self: this,
12045
12056
  __source: {
12046
12057
  fileName: _jsxFileName,
12047
- lineNumber: 489
12058
+ lineNumber: 506
12048
12059
  }
12049
12060
  }, React$1.createElement(mq.Static, {
12050
12061
  className: classes.static,
@@ -12058,7 +12069,7 @@ class Main extends React$1.Component {
12058
12069
  __self: this,
12059
12070
  __source: {
12060
12071
  fileName: _jsxFileName,
12061
- lineNumber: 519
12072
+ lineNumber: 536
12062
12073
  }
12063
12074
  }))))), viewMode && displayNote && React$1.createElement('div', {
12064
12075
  className: classes.note,
@@ -12068,7 +12079,7 @@ class Main extends React$1.Component {
12068
12079
  __self: this,
12069
12080
  __source: {
12070
12081
  fileName: _jsxFileName,
12071
- lineNumber: 537
12082
+ lineNumber: 554
12072
12083
  }
12073
12084
  }), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12074
12085
  labels: {
@@ -12078,7 +12089,7 @@ class Main extends React$1.Component {
12078
12089
  __self: this,
12079
12090
  __source: {
12080
12091
  fileName: _jsxFileName,
12081
- lineNumber: 544
12092
+ lineNumber: 561
12082
12093
  }
12083
12094
  }, React$1.createElement('div', {
12084
12095
  dangerouslySetInnerHTML: {
@@ -12087,7 +12098,7 @@ class Main extends React$1.Component {
12087
12098
  __self: this,
12088
12099
  __source: {
12089
12100
  fileName: _jsxFileName,
12090
- lineNumber: 545
12101
+ lineNumber: 562
12091
12102
  }
12092
12103
  })) : React$1.createElement('div', {
12093
12104
  dangerouslySetInnerHTML: {
@@ -12096,7 +12107,7 @@ class Main extends React$1.Component {
12096
12107
  __self: this,
12097
12108
  __source: {
12098
12109
  fileName: _jsxFileName,
12099
- lineNumber: 548
12110
+ lineNumber: 565
12100
12111
  }
12101
12112
  })));
12102
12113
  if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
@@ -12110,14 +12121,14 @@ class Main extends React$1.Component {
12110
12121
  __self: this,
12111
12122
  __source: {
12112
12123
  fileName: _jsxFileName,
12113
- lineNumber: 568
12124
+ lineNumber: 585
12114
12125
  }
12115
12126
  }, React$1.createElement('div', {
12116
12127
  className: classes.main,
12117
12128
  __self: this,
12118
12129
  __source: {
12119
12130
  fileName: _jsxFileName,
12120
- lineNumber: 569
12131
+ lineNumber: 586
12121
12132
  }
12122
12133
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
12123
12134
  language: language,
@@ -12128,7 +12139,7 @@ class Main extends React$1.Component {
12128
12139
  __self: this,
12129
12140
  __source: {
12130
12141
  fileName: _jsxFileName,
12131
- lineNumber: 571
12142
+ lineNumber: 588
12132
12143
  }
12133
12144
  })), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
12134
12145
  className: classes.collapsible,
@@ -12140,14 +12151,14 @@ class Main extends React$1.Component {
12140
12151
  __self: this,
12141
12152
  __source: {
12142
12153
  fileName: _jsxFileName,
12143
- lineNumber: 582
12154
+ lineNumber: 599
12144
12155
  }
12145
12156
  }, React$1.createElement(PreviewPrompt, {
12146
12157
  prompt: teacherInstructions,
12147
12158
  __self: this,
12148
12159
  __source: {
12149
12160
  fileName: _jsxFileName,
12150
- lineNumber: 590
12161
+ lineNumber: 607
12151
12162
  }
12152
12163
  })), displayNote && hasText(note) && React$1.createElement(Collapsible, {
12153
12164
  className: classes.collapsible,
@@ -12163,14 +12174,14 @@ class Main extends React$1.Component {
12163
12174
  __self: this,
12164
12175
  __source: {
12165
12176
  fileName: _jsxFileName,
12166
- lineNumber: 594
12177
+ lineNumber: 611
12167
12178
  }
12168
12179
  }, React$1.createElement(PreviewPrompt, {
12169
12180
  prompt: note,
12170
12181
  __self: this,
12171
12182
  __source: {
12172
12183
  fileName: _jsxFileName,
12173
- lineNumber: 602
12184
+ lineNumber: 619
12174
12185
  }
12175
12186
  })), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
12176
12187
  className: classes.collapsible,
@@ -12182,14 +12193,14 @@ class Main extends React$1.Component {
12182
12193
  __self: this,
12183
12194
  __source: {
12184
12195
  fileName: _jsxFileName,
12185
- lineNumber: 607
12196
+ lineNumber: 624
12186
12197
  }
12187
12198
  }, React$1.createElement(PreviewPrompt, {
12188
12199
  prompt: rationale,
12189
12200
  __self: this,
12190
12201
  __source: {
12191
12202
  fileName: _jsxFileName,
12192
- lineNumber: 615
12203
+ lineNumber: 632
12193
12204
  }
12194
12205
  })), feedback && React$1.createElement(Feedback, {
12195
12206
  correctness: correctness.correctness,
@@ -12197,13 +12208,13 @@ class Main extends React$1.Component {
12197
12208
  __self: this,
12198
12209
  __source: {
12199
12210
  fileName: _jsxFileName,
12200
- lineNumber: 619
12211
+ lineNumber: 636
12201
12212
  }
12202
12213
  })),
12203
12214
  __self: this,
12204
12215
  __source: {
12205
12216
  fileName: _jsxFileName,
12206
- lineNumber: 561
12217
+ lineNumber: 578
12207
12218
  }
12208
12219
  }, React$1.createElement('div', {
12209
12220
  className: classes.mainContainer,
@@ -12211,7 +12222,7 @@ class Main extends React$1.Component {
12211
12222
  __self: this,
12212
12223
  __source: {
12213
12224
  fileName: _jsxFileName,
12214
- lineNumber: 623
12225
+ lineNumber: 640
12215
12226
  }
12216
12227
  }, midContent));
12217
12228
  }
@@ -12221,7 +12232,7 @@ class Main extends React$1.Component {
12221
12232
  __self: this,
12222
12233
  __source: {
12223
12234
  fileName: _jsxFileName,
12224
- lineNumber: 631
12235
+ lineNumber: 648
12225
12236
  }
12226
12237
  }, midContent);
12227
12238
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "7.6.1-next.7+bb8de4bea",
7
+ "version": "7.7.1-next.12+9df520faa",
8
8
  "main": "lib/index.js",
9
9
  "description": "",
10
10
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "@material-ui/core": "^3.9.2",
15
15
  "@pie-framework/mathquill": "^1.1.3",
16
16
  "@pie-framework/pie-player-events": "^0.1.0",
17
- "@pie-lib/pie-toolbox": "1.8.1",
17
+ "@pie-lib/pie-toolbox": "1.8.4",
18
18
  "classnames": "^2.2.5",
19
19
  "debug": "^4.1.1",
20
20
  "lodash": "^4.17.10",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "author": "",
26
26
  "license": "ISC",
27
- "gitHead": "bb8de4bea663c381a6d00dfe10b31562dfbf5db7",
27
+ "gitHead": "9df520faa7b811c0f662aabd9622f1a8ca45e468",
28
28
  "module": "src/index.js",
29
29
  "exports": {
30
30
  ".": "./src/index.js",