@pie-element/math-inline 7.18.3-next.2 → 7.18.3-next.6

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/lib/main.js CHANGED
@@ -182,18 +182,39 @@ var Main = /*#__PURE__*/function (_React$Component) {
182
182
  (0, _mathRenderingAccessible.renderMath)(_this.root);
183
183
  });
184
184
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateAria", function () {
185
+ var classes = _this.props.classes;
186
+
185
187
  if (_this.root) {
186
188
  // Update aria-hidden for .mq-selectable elements
187
189
  var selectableElements = _this.root.querySelectorAll('.mq-selectable');
188
190
 
189
191
  selectableElements.forEach(function (elem) {
190
192
  return elem.setAttribute('aria-hidden', 'true');
191
- }); // Update aria-label for textarea elements
193
+ }); // Update aria-label for textarea elements and add aria-describedby
192
194
 
193
195
  var textareaElements = _this.root.querySelectorAll('textarea');
194
196
 
195
- textareaElements.forEach(function (elem) {
196
- elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');
197
+ textareaElements.forEach(function (elem, index) {
198
+ elem.setAttribute('aria-label', 'Enter answer.'); // Create a unique id for each instructions element
199
+
200
+ var instructionsId = "instructions-".concat(index); // Find the parent element that contains the textarea
201
+
202
+ var parent = elem.closest('.mq-textarea');
203
+
204
+ if (parent) {
205
+ // Create or find the instructions element within the parent
206
+ var instructionsElement = parent.querySelector("#".concat(instructionsId));
207
+
208
+ if (!instructionsElement) {
209
+ instructionsElement = document.createElement('span');
210
+ instructionsElement.id = instructionsId;
211
+ instructionsElement.className = classes.srOnly;
212
+ instructionsElement.textContent = 'This field automatically displays a math keypad. Both keypad and keyboard input are accepted, and keyboard entry accepts LaTeX markup.';
213
+ parent.insertBefore(instructionsElement, elem);
214
+ }
215
+
216
+ elem.setAttribute('aria-describedby', instructionsId);
217
+ }
197
218
  });
198
219
  }
199
220
  });
@@ -605,7 +626,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
605
626
  })), studentPrintMode ? printView : /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
606
627
  "false": true
607
628
  }, /*#__PURE__*/_react["default"].createElement("div", {
608
- className: classes.inputAndKeypadContainer
629
+ className: classes.inputAndKeypadContainer,
630
+ tabIndex: 0
609
631
  }, responseType === _utils.ResponseTypes.simple && /*#__PURE__*/_react["default"].createElement(_simpleQuestionBlock["default"], {
610
632
  onSimpleResponseChange: this.onSimpleResponseChange,
611
633
  showCorrect: showCorrect,
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","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","getParentWithRoleTooltip","element","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","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","promptContainer","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","marginBottom","position","title","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-accessible';\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\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 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 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 // else {\n // // Just for debugging purpose:\n // console.log('\\n\\nNew childWithDataKeypad', childWithDataKeypad);\n //\n // if (IS_SAFARI) {\n // // (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]?.children[0]);\n // } else {\n // // (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]);\n // }\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.promptContainer}>\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 enterTouchDelay={0}\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 enterTouchDelay={0}\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 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 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 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","index","instructionsId","parent","closest","instructionsElement","document","createElement","id","className","srOnly","insertBefore","response","setState","callOnSessionChange","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","getParentWithRoleTooltip","element","depth","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","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","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","collapsible","hidden","visible","__html","promptContainer","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","marginBottom","position","title","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-accessible';\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\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 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 const {classes} = this.props;\n \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 and add aria-describedby\n const textareaElements = this.root.querySelectorAll('textarea');\n textareaElements.forEach((elem, index) => {\n elem.setAttribute('aria-label', 'Enter answer.');\n \n // Create a unique id for each instructions element\n const instructionsId = `instructions-${index}`;\n \n // Find the parent element that contains the textarea\n const parent = elem.closest('.mq-textarea');\n \n if (parent) {\n // Create or find the instructions element within the parent\n let instructionsElement = parent.querySelector(`#${instructionsId}`);\n \n if (!instructionsElement) {\n instructionsElement = document.createElement('span');\n instructionsElement.id = instructionsId;\n instructionsElement.className = classes.srOnly;\n instructionsElement.textContent = 'This field automatically displays a math keypad. Both keypad and keyboard input are accepted, and keyboard entry accepts LaTeX markup.';\n parent.insertBefore(instructionsElement, elem);\n }\n \n elem.setAttribute('aria-describedby', instructionsId);\n }\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 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 // else {\n // // Just for debugging purpose:\n // console.log('\\n\\nNew childWithDataKeypad', childWithDataKeypad);\n //\n // if (IS_SAFARI) {\n // // (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]?.children[0]);\n // } else {\n // // (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]);\n // }\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.promptContainer}>\n <PreviewPrompt prompt={prompt}/>\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer} tabIndex={0}>\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 enterTouchDelay={0}\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 enterTouchDelay={0}\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 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 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 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"}
package/module/element.js CHANGED
@@ -11740,12 +11740,26 @@ class Main extends React$1.Component {
11740
11740
  }
11741
11741
  __init2() {
11742
11742
  this.updateAria = () => {
11743
+ const {classes} = this.props;
11743
11744
  if (this.root) {
11744
11745
  const selectableElements = this.root.querySelectorAll('.mq-selectable');
11745
11746
  selectableElements.forEach(elem => elem.setAttribute('aria-hidden', 'true'));
11746
11747
  const textareaElements = this.root.querySelectorAll('textarea');
11747
- textareaElements.forEach(elem => {
11748
- elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');
11748
+ textareaElements.forEach((elem, index) => {
11749
+ elem.setAttribute('aria-label', 'Enter answer.');
11750
+ const instructionsId = `instructions-${index}`;
11751
+ const parent = elem.closest('.mq-textarea');
11752
+ if (parent) {
11753
+ let instructionsElement = parent.querySelector(`#${instructionsId}`);
11754
+ if (!instructionsElement) {
11755
+ instructionsElement = document.createElement('span');
11756
+ instructionsElement.id = instructionsId;
11757
+ instructionsElement.className = classes.srOnly;
11758
+ instructionsElement.textContent = 'This field automatically displays a math keypad. Both keypad and keyboard input are accepted, and keyboard entry accepts LaTeX markup.';
11759
+ parent.insertBefore(instructionsElement, elem);
11760
+ }
11761
+ elem.setAttribute('aria-describedby', instructionsId);
11762
+ }
11749
11763
  });
11750
11764
  }
11751
11765
  };
@@ -11930,7 +11944,7 @@ class Main extends React$1.Component {
11930
11944
  __self: this,
11931
11945
  __source: {
11932
11946
  fileName: _jsxFileName,
11933
- lineNumber: 489
11947
+ lineNumber: 512
11934
11948
  }
11935
11949
  }, React$1.createElement(mq.Static, {
11936
11950
  className: classes.static,
@@ -11944,7 +11958,7 @@ class Main extends React$1.Component {
11944
11958
  __self: this,
11945
11959
  __source: {
11946
11960
  fileName: _jsxFileName,
11947
- lineNumber: 490
11961
+ lineNumber: 513
11948
11962
  }
11949
11963
  }));
11950
11964
  const midContent = React$1.createElement('div', {
@@ -11952,14 +11966,14 @@ class Main extends React$1.Component {
11952
11966
  __self: this,
11953
11967
  __source: {
11954
11968
  fileName: _jsxFileName,
11955
- lineNumber: 504
11969
+ lineNumber: 527
11956
11970
  }
11957
11971
  }, mode === 'gather' && React$1.createElement('h2', {
11958
11972
  className: classes.srOnly,
11959
11973
  __self: this,
11960
11974
  __source: {
11961
11975
  fileName: _jsxFileName,
11962
- lineNumber: 505
11976
+ lineNumber: 528
11963
11977
  }
11964
11978
  }, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
11965
11979
  className: classes.collapsible,
@@ -11970,7 +11984,7 @@ class Main extends React$1.Component {
11970
11984
  __self: this,
11971
11985
  __source: {
11972
11986
  fileName: _jsxFileName,
11973
- lineNumber: 511
11987
+ lineNumber: 534
11974
11988
  }
11975
11989
  }, React$1.createElement('div', {
11976
11990
  dangerouslySetInnerHTML: {
@@ -11979,7 +11993,7 @@ class Main extends React$1.Component {
11979
11993
  __self: this,
11980
11994
  __source: {
11981
11995
  fileName: _jsxFileName,
11982
- lineNumber: 515
11996
+ lineNumber: 538
11983
11997
  }
11984
11998
  })) : React$1.createElement('div', {
11985
11999
  dangerouslySetInnerHTML: {
@@ -11988,35 +12002,36 @@ class Main extends React$1.Component {
11988
12002
  __self: this,
11989
12003
  __source: {
11990
12004
  fileName: _jsxFileName,
11991
- lineNumber: 518
12005
+ lineNumber: 541
11992
12006
  }
11993
12007
  })), prompt && React$1.createElement('div', {
11994
12008
  className: classes.promptContainer,
11995
12009
  __self: this,
11996
12010
  __source: {
11997
12011
  fileName: _jsxFileName,
11998
- lineNumber: 522
12012
+ lineNumber: 545
11999
12013
  }
12000
12014
  }, React$1.createElement(PreviewPrompt, {
12001
12015
  prompt: prompt,
12002
12016
  __self: this,
12003
12017
  __source: {
12004
12018
  fileName: _jsxFileName,
12005
- lineNumber: 523
12019
+ lineNumber: 546
12006
12020
  }
12007
12021
  })), studentPrintMode ? printView : React$1.createElement(Readable, {
12008
12022
  false: true,
12009
12023
  __self: this,
12010
12024
  __source: {
12011
12025
  fileName: _jsxFileName,
12012
- lineNumber: 530
12026
+ lineNumber: 553
12013
12027
  }
12014
12028
  }, React$1.createElement('div', {
12015
12029
  className: classes.inputAndKeypadContainer,
12030
+ tabIndex: 0,
12016
12031
  __self: this,
12017
12032
  __source: {
12018
12033
  fileName: _jsxFileName,
12019
- lineNumber: 531
12034
+ lineNumber: 554
12020
12035
  }
12021
12036
  }, responseType === ResponseTypes$1.simple && React$1.createElement(SimpleQuestionBlock, {
12022
12037
  onSimpleResponseChange: this.onSimpleResponseChange,
@@ -12027,7 +12042,7 @@ class Main extends React$1.Component {
12027
12042
  __self: this,
12028
12043
  __source: {
12029
12044
  fileName: _jsxFileName,
12030
- lineNumber: 533
12045
+ lineNumber: 556
12031
12046
  }
12032
12047
  }), responseType === ResponseTypes$1.advanced && React$1.createElement('div', {
12033
12048
  className: cx(classes.expression, {
@@ -12040,7 +12055,7 @@ class Main extends React$1.Component {
12040
12055
  __self: this,
12041
12056
  __source: {
12042
12057
  fileName: _jsxFileName,
12043
- lineNumber: 543
12058
+ lineNumber: 566
12044
12059
  }
12045
12060
  }, React$1.createElement(Tooltip, {
12046
12061
  ref: ref => this.setTooltipRef(ref),
@@ -12061,7 +12076,7 @@ class Main extends React$1.Component {
12061
12076
  __self: this,
12062
12077
  __source: {
12063
12078
  fileName: _jsxFileName,
12064
- lineNumber: 564
12079
+ lineNumber: 587
12065
12080
  }
12066
12081
  }, React$1.createElement(HorizontalKeypad, {
12067
12082
  additionalKeys: additionalKeys,
@@ -12070,13 +12085,13 @@ class Main extends React$1.Component {
12070
12085
  __self: this,
12071
12086
  __source: {
12072
12087
  fileName: _jsxFileName,
12073
- lineNumber: 573
12088
+ lineNumber: 596
12074
12089
  }
12075
12090
  })) || null),
12076
12091
  __self: this,
12077
12092
  __source: {
12078
12093
  fileName: _jsxFileName,
12079
- lineNumber: 552
12094
+ lineNumber: 575
12080
12095
  }
12081
12096
  }, React$1.createElement(mq.Static, {
12082
12097
  className: classes.static,
@@ -12090,7 +12105,7 @@ class Main extends React$1.Component {
12090
12105
  __self: this,
12091
12106
  __source: {
12092
12107
  fileName: _jsxFileName,
12093
- lineNumber: 583
12108
+ lineNumber: 606
12094
12109
  }
12095
12110
  }))))), viewMode && displayNote && React$1.createElement('div', {
12096
12111
  className: classes.note,
@@ -12100,7 +12115,7 @@ class Main extends React$1.Component {
12100
12115
  __self: this,
12101
12116
  __source: {
12102
12117
  fileName: _jsxFileName,
12103
- lineNumber: 601
12118
+ lineNumber: 624
12104
12119
  }
12105
12120
  }), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12106
12121
  labels: {
@@ -12110,7 +12125,7 @@ class Main extends React$1.Component {
12110
12125
  __self: this,
12111
12126
  __source: {
12112
12127
  fileName: _jsxFileName,
12113
- lineNumber: 608
12128
+ lineNumber: 631
12114
12129
  }
12115
12130
  }, React$1.createElement('div', {
12116
12131
  dangerouslySetInnerHTML: {
@@ -12119,7 +12134,7 @@ class Main extends React$1.Component {
12119
12134
  __self: this,
12120
12135
  __source: {
12121
12136
  fileName: _jsxFileName,
12122
- lineNumber: 609
12137
+ lineNumber: 632
12123
12138
  }
12124
12139
  })) : React$1.createElement('div', {
12125
12140
  dangerouslySetInnerHTML: {
@@ -12128,7 +12143,7 @@ class Main extends React$1.Component {
12128
12143
  __self: this,
12129
12144
  __source: {
12130
12145
  fileName: _jsxFileName,
12131
- lineNumber: 612
12146
+ lineNumber: 635
12132
12147
  }
12133
12148
  })));
12134
12149
  if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
@@ -12143,14 +12158,14 @@ class Main extends React$1.Component {
12143
12158
  __self: this,
12144
12159
  __source: {
12145
12160
  fileName: _jsxFileName,
12146
- lineNumber: 633
12161
+ lineNumber: 656
12147
12162
  }
12148
12163
  }, React$1.createElement('div', {
12149
12164
  className: classes.main,
12150
12165
  __self: this,
12151
12166
  __source: {
12152
12167
  fileName: _jsxFileName,
12153
- lineNumber: 634
12168
+ lineNumber: 657
12154
12169
  }
12155
12170
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
12156
12171
  language: language,
@@ -12161,7 +12176,7 @@ class Main extends React$1.Component {
12161
12176
  __self: this,
12162
12177
  __source: {
12163
12178
  fileName: _jsxFileName,
12164
- lineNumber: 636
12179
+ lineNumber: 659
12165
12180
  }
12166
12181
  })), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
12167
12182
  className: classes.collapsible,
@@ -12173,14 +12188,14 @@ class Main extends React$1.Component {
12173
12188
  __self: this,
12174
12189
  __source: {
12175
12190
  fileName: _jsxFileName,
12176
- lineNumber: 647
12191
+ lineNumber: 670
12177
12192
  }
12178
12193
  }, React$1.createElement(PreviewPrompt, {
12179
12194
  prompt: teacherInstructions,
12180
12195
  __self: this,
12181
12196
  __source: {
12182
12197
  fileName: _jsxFileName,
12183
- lineNumber: 655
12198
+ lineNumber: 678
12184
12199
  }
12185
12200
  })), displayNote && hasText(note) && React$1.createElement(Collapsible, {
12186
12201
  className: classes.collapsible,
@@ -12196,14 +12211,14 @@ class Main extends React$1.Component {
12196
12211
  __self: this,
12197
12212
  __source: {
12198
12213
  fileName: _jsxFileName,
12199
- lineNumber: 659
12214
+ lineNumber: 682
12200
12215
  }
12201
12216
  }, React$1.createElement(PreviewPrompt, {
12202
12217
  prompt: note,
12203
12218
  __self: this,
12204
12219
  __source: {
12205
12220
  fileName: _jsxFileName,
12206
- lineNumber: 667
12221
+ lineNumber: 690
12207
12222
  }
12208
12223
  })), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
12209
12224
  className: classes.collapsible,
@@ -12215,14 +12230,14 @@ class Main extends React$1.Component {
12215
12230
  __self: this,
12216
12231
  __source: {
12217
12232
  fileName: _jsxFileName,
12218
- lineNumber: 672
12233
+ lineNumber: 695
12219
12234
  }
12220
12235
  }, React$1.createElement(PreviewPrompt, {
12221
12236
  prompt: rationale,
12222
12237
  __self: this,
12223
12238
  __source: {
12224
12239
  fileName: _jsxFileName,
12225
- lineNumber: 680
12240
+ lineNumber: 703
12226
12241
  }
12227
12242
  })), feedback && React$1.createElement(Feedback, {
12228
12243
  correctness: correctness.correctness,
@@ -12230,13 +12245,13 @@ class Main extends React$1.Component {
12230
12245
  __self: this,
12231
12246
  __source: {
12232
12247
  fileName: _jsxFileName,
12233
- lineNumber: 684
12248
+ lineNumber: 707
12234
12249
  }
12235
12250
  })),
12236
12251
  __self: this,
12237
12252
  __source: {
12238
12253
  fileName: _jsxFileName,
12239
- lineNumber: 625
12254
+ lineNumber: 648
12240
12255
  }
12241
12256
  }, React$1.createElement('div', {
12242
12257
  className: classes.mainContainer,
@@ -12244,7 +12259,7 @@ class Main extends React$1.Component {
12244
12259
  __self: this,
12245
12260
  __source: {
12246
12261
  fileName: _jsxFileName,
12247
- lineNumber: 688
12262
+ lineNumber: 711
12248
12263
  }
12249
12264
  }, midContent));
12250
12265
  }
@@ -12254,7 +12269,7 @@ class Main extends React$1.Component {
12254
12269
  __self: this,
12255
12270
  __source: {
12256
12271
  fileName: _jsxFileName,
12257
- lineNumber: 696
12272
+ lineNumber: 719
12258
12273
  }
12259
12274
  }, midContent);
12260
12275
  }
package/module/print.js CHANGED
@@ -11740,12 +11740,26 @@ class Main extends React$1.Component {
11740
11740
  }
11741
11741
  __init2() {
11742
11742
  this.updateAria = () => {
11743
+ const {classes} = this.props;
11743
11744
  if (this.root) {
11744
11745
  const selectableElements = this.root.querySelectorAll('.mq-selectable');
11745
11746
  selectableElements.forEach(elem => elem.setAttribute('aria-hidden', 'true'));
11746
11747
  const textareaElements = this.root.querySelectorAll('textarea');
11747
- textareaElements.forEach(elem => {
11748
- elem.setAttribute('aria-label', 'Enter answer using math editor buttons or keyboard.');
11748
+ textareaElements.forEach((elem, index) => {
11749
+ elem.setAttribute('aria-label', 'Enter answer.');
11750
+ const instructionsId = `instructions-${index}`;
11751
+ const parent = elem.closest('.mq-textarea');
11752
+ if (parent) {
11753
+ let instructionsElement = parent.querySelector(`#${instructionsId}`);
11754
+ if (!instructionsElement) {
11755
+ instructionsElement = document.createElement('span');
11756
+ instructionsElement.id = instructionsId;
11757
+ instructionsElement.className = classes.srOnly;
11758
+ instructionsElement.textContent = 'This field automatically displays a math keypad. Both keypad and keyboard input are accepted, and keyboard entry accepts LaTeX markup.';
11759
+ parent.insertBefore(instructionsElement, elem);
11760
+ }
11761
+ elem.setAttribute('aria-describedby', instructionsId);
11762
+ }
11749
11763
  });
11750
11764
  }
11751
11765
  };
@@ -11930,7 +11944,7 @@ class Main extends React$1.Component {
11930
11944
  __self: this,
11931
11945
  __source: {
11932
11946
  fileName: _jsxFileName,
11933
- lineNumber: 489
11947
+ lineNumber: 512
11934
11948
  }
11935
11949
  }, React$1.createElement(mq.Static, {
11936
11950
  className: classes.static,
@@ -11944,7 +11958,7 @@ class Main extends React$1.Component {
11944
11958
  __self: this,
11945
11959
  __source: {
11946
11960
  fileName: _jsxFileName,
11947
- lineNumber: 490
11961
+ lineNumber: 513
11948
11962
  }
11949
11963
  }));
11950
11964
  const midContent = React$1.createElement('div', {
@@ -11952,14 +11966,14 @@ class Main extends React$1.Component {
11952
11966
  __self: this,
11953
11967
  __source: {
11954
11968
  fileName: _jsxFileName,
11955
- lineNumber: 504
11969
+ lineNumber: 527
11956
11970
  }
11957
11971
  }, mode === 'gather' && React$1.createElement('h2', {
11958
11972
  className: classes.srOnly,
11959
11973
  __self: this,
11960
11974
  __source: {
11961
11975
  fileName: _jsxFileName,
11962
- lineNumber: 505
11976
+ lineNumber: 528
11963
11977
  }
11964
11978
  }, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
11965
11979
  className: classes.collapsible,
@@ -11970,7 +11984,7 @@ class Main extends React$1.Component {
11970
11984
  __self: this,
11971
11985
  __source: {
11972
11986
  fileName: _jsxFileName,
11973
- lineNumber: 511
11987
+ lineNumber: 534
11974
11988
  }
11975
11989
  }, React$1.createElement('div', {
11976
11990
  dangerouslySetInnerHTML: {
@@ -11979,7 +11993,7 @@ class Main extends React$1.Component {
11979
11993
  __self: this,
11980
11994
  __source: {
11981
11995
  fileName: _jsxFileName,
11982
- lineNumber: 515
11996
+ lineNumber: 538
11983
11997
  }
11984
11998
  })) : React$1.createElement('div', {
11985
11999
  dangerouslySetInnerHTML: {
@@ -11988,35 +12002,36 @@ class Main extends React$1.Component {
11988
12002
  __self: this,
11989
12003
  __source: {
11990
12004
  fileName: _jsxFileName,
11991
- lineNumber: 518
12005
+ lineNumber: 541
11992
12006
  }
11993
12007
  })), prompt && React$1.createElement('div', {
11994
12008
  className: classes.promptContainer,
11995
12009
  __self: this,
11996
12010
  __source: {
11997
12011
  fileName: _jsxFileName,
11998
- lineNumber: 522
12012
+ lineNumber: 545
11999
12013
  }
12000
12014
  }, React$1.createElement(PreviewPrompt, {
12001
12015
  prompt: prompt,
12002
12016
  __self: this,
12003
12017
  __source: {
12004
12018
  fileName: _jsxFileName,
12005
- lineNumber: 523
12019
+ lineNumber: 546
12006
12020
  }
12007
12021
  })), studentPrintMode ? printView : React$1.createElement(Readable, {
12008
12022
  false: true,
12009
12023
  __self: this,
12010
12024
  __source: {
12011
12025
  fileName: _jsxFileName,
12012
- lineNumber: 530
12026
+ lineNumber: 553
12013
12027
  }
12014
12028
  }, React$1.createElement('div', {
12015
12029
  className: classes.inputAndKeypadContainer,
12030
+ tabIndex: 0,
12016
12031
  __self: this,
12017
12032
  __source: {
12018
12033
  fileName: _jsxFileName,
12019
- lineNumber: 531
12034
+ lineNumber: 554
12020
12035
  }
12021
12036
  }, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
12022
12037
  onSimpleResponseChange: this.onSimpleResponseChange,
@@ -12027,7 +12042,7 @@ class Main extends React$1.Component {
12027
12042
  __self: this,
12028
12043
  __source: {
12029
12044
  fileName: _jsxFileName,
12030
- lineNumber: 533
12045
+ lineNumber: 556
12031
12046
  }
12032
12047
  }), responseType === ResponseTypes.advanced && React$1.createElement('div', {
12033
12048
  className: cx(classes.expression, {
@@ -12040,7 +12055,7 @@ class Main extends React$1.Component {
12040
12055
  __self: this,
12041
12056
  __source: {
12042
12057
  fileName: _jsxFileName,
12043
- lineNumber: 543
12058
+ lineNumber: 566
12044
12059
  }
12045
12060
  }, React$1.createElement(Tooltip, {
12046
12061
  ref: ref => this.setTooltipRef(ref),
@@ -12061,7 +12076,7 @@ class Main extends React$1.Component {
12061
12076
  __self: this,
12062
12077
  __source: {
12063
12078
  fileName: _jsxFileName,
12064
- lineNumber: 564
12079
+ lineNumber: 587
12065
12080
  }
12066
12081
  }, React$1.createElement(HorizontalKeypad, {
12067
12082
  additionalKeys: additionalKeys,
@@ -12070,13 +12085,13 @@ class Main extends React$1.Component {
12070
12085
  __self: this,
12071
12086
  __source: {
12072
12087
  fileName: _jsxFileName,
12073
- lineNumber: 573
12088
+ lineNumber: 596
12074
12089
  }
12075
12090
  })) || null),
12076
12091
  __self: this,
12077
12092
  __source: {
12078
12093
  fileName: _jsxFileName,
12079
- lineNumber: 552
12094
+ lineNumber: 575
12080
12095
  }
12081
12096
  }, React$1.createElement(mq.Static, {
12082
12097
  className: classes.static,
@@ -12090,7 +12105,7 @@ class Main extends React$1.Component {
12090
12105
  __self: this,
12091
12106
  __source: {
12092
12107
  fileName: _jsxFileName,
12093
- lineNumber: 583
12108
+ lineNumber: 606
12094
12109
  }
12095
12110
  }))))), viewMode && displayNote && React$1.createElement('div', {
12096
12111
  className: classes.note,
@@ -12100,7 +12115,7 @@ class Main extends React$1.Component {
12100
12115
  __self: this,
12101
12116
  __source: {
12102
12117
  fileName: _jsxFileName,
12103
- lineNumber: 601
12118
+ lineNumber: 624
12104
12119
  }
12105
12120
  }), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12106
12121
  labels: {
@@ -12110,7 +12125,7 @@ class Main extends React$1.Component {
12110
12125
  __self: this,
12111
12126
  __source: {
12112
12127
  fileName: _jsxFileName,
12113
- lineNumber: 608
12128
+ lineNumber: 631
12114
12129
  }
12115
12130
  }, React$1.createElement('div', {
12116
12131
  dangerouslySetInnerHTML: {
@@ -12119,7 +12134,7 @@ class Main extends React$1.Component {
12119
12134
  __self: this,
12120
12135
  __source: {
12121
12136
  fileName: _jsxFileName,
12122
- lineNumber: 609
12137
+ lineNumber: 632
12123
12138
  }
12124
12139
  })) : React$1.createElement('div', {
12125
12140
  dangerouslySetInnerHTML: {
@@ -12128,7 +12143,7 @@ class Main extends React$1.Component {
12128
12143
  __self: this,
12129
12144
  __source: {
12130
12145
  fileName: _jsxFileName,
12131
- lineNumber: 612
12146
+ lineNumber: 635
12132
12147
  }
12133
12148
  })));
12134
12149
  if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
@@ -12143,14 +12158,14 @@ class Main extends React$1.Component {
12143
12158
  __self: this,
12144
12159
  __source: {
12145
12160
  fileName: _jsxFileName,
12146
- lineNumber: 633
12161
+ lineNumber: 656
12147
12162
  }
12148
12163
  }, React$1.createElement('div', {
12149
12164
  className: classes.main,
12150
12165
  __self: this,
12151
12166
  __source: {
12152
12167
  fileName: _jsxFileName,
12153
- lineNumber: 634
12168
+ lineNumber: 657
12154
12169
  }
12155
12170
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
12156
12171
  language: language,
@@ -12161,7 +12176,7 @@ class Main extends React$1.Component {
12161
12176
  __self: this,
12162
12177
  __source: {
12163
12178
  fileName: _jsxFileName,
12164
- lineNumber: 636
12179
+ lineNumber: 659
12165
12180
  }
12166
12181
  })), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
12167
12182
  className: classes.collapsible,
@@ -12173,14 +12188,14 @@ class Main extends React$1.Component {
12173
12188
  __self: this,
12174
12189
  __source: {
12175
12190
  fileName: _jsxFileName,
12176
- lineNumber: 647
12191
+ lineNumber: 670
12177
12192
  }
12178
12193
  }, React$1.createElement(PreviewPrompt, {
12179
12194
  prompt: teacherInstructions,
12180
12195
  __self: this,
12181
12196
  __source: {
12182
12197
  fileName: _jsxFileName,
12183
- lineNumber: 655
12198
+ lineNumber: 678
12184
12199
  }
12185
12200
  })), displayNote && hasText(note) && React$1.createElement(Collapsible, {
12186
12201
  className: classes.collapsible,
@@ -12196,14 +12211,14 @@ class Main extends React$1.Component {
12196
12211
  __self: this,
12197
12212
  __source: {
12198
12213
  fileName: _jsxFileName,
12199
- lineNumber: 659
12214
+ lineNumber: 682
12200
12215
  }
12201
12216
  }, React$1.createElement(PreviewPrompt, {
12202
12217
  prompt: note,
12203
12218
  __self: this,
12204
12219
  __source: {
12205
12220
  fileName: _jsxFileName,
12206
- lineNumber: 667
12221
+ lineNumber: 690
12207
12222
  }
12208
12223
  })), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
12209
12224
  className: classes.collapsible,
@@ -12215,14 +12230,14 @@ class Main extends React$1.Component {
12215
12230
  __self: this,
12216
12231
  __source: {
12217
12232
  fileName: _jsxFileName,
12218
- lineNumber: 672
12233
+ lineNumber: 695
12219
12234
  }
12220
12235
  }, React$1.createElement(PreviewPrompt, {
12221
12236
  prompt: rationale,
12222
12237
  __self: this,
12223
12238
  __source: {
12224
12239
  fileName: _jsxFileName,
12225
- lineNumber: 680
12240
+ lineNumber: 703
12226
12241
  }
12227
12242
  })), feedback && React$1.createElement(Feedback, {
12228
12243
  correctness: correctness.correctness,
@@ -12230,13 +12245,13 @@ class Main extends React$1.Component {
12230
12245
  __self: this,
12231
12246
  __source: {
12232
12247
  fileName: _jsxFileName,
12233
- lineNumber: 684
12248
+ lineNumber: 707
12234
12249
  }
12235
12250
  })),
12236
12251
  __self: this,
12237
12252
  __source: {
12238
12253
  fileName: _jsxFileName,
12239
- lineNumber: 625
12254
+ lineNumber: 648
12240
12255
  }
12241
12256
  }, React$1.createElement('div', {
12242
12257
  className: classes.mainContainer,
@@ -12244,7 +12259,7 @@ class Main extends React$1.Component {
12244
12259
  __self: this,
12245
12260
  __source: {
12246
12261
  fileName: _jsxFileName,
12247
- lineNumber: 688
12262
+ lineNumber: 711
12248
12263
  }
12249
12264
  }, midContent));
12250
12265
  }
@@ -12254,7 +12269,7 @@ class Main extends React$1.Component {
12254
12269
  __self: this,
12255
12270
  __source: {
12256
12271
  fileName: _jsxFileName,
12257
- lineNumber: 696
12272
+ lineNumber: 719
12258
12273
  }
12259
12274
  }, midContent);
12260
12275
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "7.18.3-next.2+e11044b5b",
7
+ "version": "7.18.3-next.6+2c06079fa",
8
8
  "main": "lib/index.js",
9
9
  "description": "",
10
10
  "scripts": {
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "author": "",
26
26
  "license": "ISC",
27
- "gitHead": "e11044b5b4f6471a77fbd53746240054d8c2ce5d",
27
+ "gitHead": "2c06079fab556eebc14689ba850d112dde5e437d",
28
28
  "module": "src/index.js",
29
29
  "exports": {
30
30
  ".": "./src/index.js",