@pie-element/math-inline 8.4.8 → 8.4.9-next.3

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
@@ -270,6 +270,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
270
270
 
271
271
  var isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, _this.root);
272
272
  var isAnswerInputFocused = _this.mqStatic && ((_this$mqStatic$inputR = _this.mqStatic.inputRef) === null || _this$mqStatic$inputR === void 0 ? void 0 : _this$mqStatic$inputR.current.contains(document.activeElement));
273
+ console.log(_this.mqStatic, "this.mqStatic.inputRef - merge this for testng purpose");
273
274
  var key = event.key,
274
275
  type = event.type;
275
276
  var isClickOrTouchEvent = type === 'click' || type === 'touchstart';
@@ -713,7 +714,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
713
714
  }, /*#__PURE__*/_react["default"].createElement(_mathInput.mq.Static, {
714
715
  className: classes["static"],
715
716
  ref: function ref(mqStatic) {
716
- return _this4.mqStatic = mqStatic || _this4.mqStatic;
717
+ if (mqStatic) _this4.mqStatic = mqStatic;
717
718
  },
718
719
  latex: staticLatex,
719
720
  onSubFieldChange: this.subFieldChanged,
@@ -803,7 +804,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
803
804
  }, /*#__PURE__*/_react["default"].createElement(_mathInput.mq.Static, {
804
805
  className: classes["static"],
805
806
  ref: function ref(mqStatic) {
806
- return _this4.mqStatic = mqStatic || _this4.mqStatic;
807
+ if (mqStatic) _this4.mqStatic = mqStatic;
807
808
  },
808
809
  latex: staticLatex,
809
810
  onSubFieldChange: this.subFieldChanged,
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","isChildOfCurrentPieElement","child","parent","node","parentNode","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","parseAnswers","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","closest","instructionsElement","document","createElement","id","className","srOnly","insertBefore","setTimeout","keypadElement","firstButton","focus","event","isTrigerredFromActualPieElement","target","isAnswerInputFocused","mqStatic","inputRef","current","contains","activeElement","type","isClickOrTouchEvent","activeAnswerBlock","cleanupKeyDownListener","setState","onSubFieldFocus","focusFirstKeypadElement","handleEvent","handleKeyDown","addEventListener","removeEventListener","response","callOnSessionChange","data","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","isKeypadOpen","getParentWithRoleTooltip","element","depth","offsetParent","getAttribute","getDeepChildDataKeypad","children","attributes","parentWithTooltipRole","childWithDataKeypad","tooltipContainerRef","React","createRef","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","pattern","matches","match","nextProps","nextConfig","nextSession","note","language","t","lng","env","mode","countResponseOccurrences","updateAria","newAnswers","nextState","sameModel","sameState","prevProps","prevState","prevResponseType","responseType","currentResponseType","ref","div","firstChild","correctness","extraCSSRules","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onBlur","midContent","main","collapsible","hidden","visible","__html","promptContainer","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","container","undefined","placement","modifiers","preventOverflow","enabled","boundariesElement","flip","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","domNode","ReactDOM","findDOMNode","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","paddingRight","paddingLeft","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","margin","palette","grey","alignItems","justifyContent","borderRight","flexShrink","flexGrow","flexBasis","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, UiLayout } 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';\nimport ReactDOM from 'react-dom';\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 isChildOfCurrentPieElement(child, parent) {\n let node = child;\n while (node !== null) {\n if (parent && node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\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\nfunction parseAnswers(session, model){\n const answers = {};\n\n if (model.config && model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (session &&\n session.answers &&\n session.answers[`r${answerBlocks}`] &&\n session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n return answers;\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 const {model, session} = props;\n const answers = parseAnswers(session, model);\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n tooltipContainerRef: React.createRef(),\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 UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n const { session } = this.props;\n const { session: nextSession = {} } = nextProps || {};\n\n // in case session props changed in parent, we need to catch this and update local state\n // example: when env is changing in pieoneer\n if (session && nextSession && !isEqual(session.answers, nextSession.answers)) {\n this.setState({\n session: {...nextSession, answers: parseAnswers(nextSession, this.props.model)},\n });\n }\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 (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(prevProps, prevState) {\n this.handleAnswerBlockDomUpdate();\n\n const prevResponseType = prevProps.model?.config?.responseType;\n const currentResponseType = this.props.model?.config?.responseType;\n\n if (prevResponseType !== currentResponseType) {\n this.updateAria();\n }\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 =\n 'This field supports both keypad and keyboard input. Use the keyboard to access and interact with the on-screen math keypad, which accepts LaTeX markup. Use the down arrow key to open the keypad and navigate its buttons. Use the escape key to close the keypad and return to the input field.';\n parent.insertBefore(instructionsElement, elem);\n }\n\n elem.setAttribute('aria-describedby', instructionsId);\n }\n });\n }\n };\n\n focusFirstKeypadElement = () => {\n setTimeout(() => {\n const keypadElement = document.querySelector('[data-keypad]');\n\n if (keypadElement) {\n const firstButton = keypadElement.querySelector(\"button, [role='button']\");\n\n if (firstButton) {\n firstButton.focus();\n }\n }\n }, 0);\n };\n\n handleKeyDown = (event, id) => {\n const isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, this.root);\n const isAnswerInputFocused = this.mqStatic && this.mqStatic.inputRef?.current.contains(document.activeElement);\n const { key, type } = event;\n const isClickOrTouchEvent = type === 'click' || type === 'touchstart';\n\n if (isAnswerInputFocused && (key === 'ArrowDown' || isClickOrTouchEvent)) {\n if (this.state.activeAnswerBlock !== id && isTrigerredFromActualPieElement) {\n this.cleanupKeyDownListener();\n this.setState({ activeAnswerBlock: id }, () => {\n this.onSubFieldFocus(id);\n if (key === 'ArrowDown') {\n this.focusFirstKeypadElement();\n }\n });\n }\n } else if (event.key === 'Escape') {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n onSubFieldFocus = (id) => {\n const handleEvent = (event) => {\n this.handleKeyDown(event, id);\n };\n\n this.handleEvent = handleEvent;\n\n document.addEventListener('keydown', handleEvent);\n document.addEventListener('click', handleEvent);\n document.addEventListener('touchstart', handleEvent);\n };\n\n cleanupKeyDownListener = () => {\n if (this.handleEvent) {\n document.removeEventListener('keydown', this.handleEvent);\n document.removeEventListener('click', this.handleEvent);\n document.removeEventListener('touchstart', this.handleEvent);\n this.handleEvent = null;\n }\n };\n\n componentWillUnmount() {\n if (this.cleanupKeyDownListener) {\n this.cleanupKeyDownListener();\n }\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\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 // our keypad is in tooltip\n // in this way we see if event was triggered from the keypad\n const isKeypadOpen = currentTarget && currentTarget.closest('[role=tooltip]');\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 // if event was trigered from the keypad, avoid closing the keypad\n if (!isKeypadOpen) {\n this.setState({ activeAnswerBlock: '' });\n }\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, tooltipContainerRef } = this.state;\n const {\n config,\n correctness,\n disabled,\n extraCSSRules,\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 id,\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 onSubFieldFocus={this.onSubFieldFocus}\n showKeypad={!!activeAnswerBlock}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n ref={tooltipContainerRef}\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 PopperProps={{\n container: tooltipContainerRef?.current || undefined,\n placement: 'bottom-start',\n modifiers: {\n preventOverflow: {\n enabled: true,\n boundariesElement: 'body',\n },\n flip: {\n enabled: false,\n },\n },\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 <UiLayout extraCSSRules={extraCSSRules}>\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 </UiLayout>\n );\n }\n\n return (\n <UiLayout\n id={id}\n extraCSSRules={extraCSSRules}\n className={classes.mainContainer}\n ref={(r) => {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(r);\n\n this.root = domNode || this.root;\n }}\n >\n {midContent}\n </UiLayout>\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 padding: theme.spacing.unit / 4,\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n // PD-4803 unset padding as events are not correctly propagated in the proximity of math input\n paddingRight: '0 !important',\n paddingLeft: '0 !important',\n '& > .mq-editable-field': {\n minWidth: '10px',\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 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 flexShrink: 0,\n flexGrow: 0,\n flexBasis: 'auto', // take only the space needed for content + padding\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 flexGrow: 1, // take all the remaining space\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","isChildOfCurrentPieElement","child","parent","node","parentNode","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","parseAnswers","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","closest","instructionsElement","document","createElement","id","className","srOnly","insertBefore","setTimeout","keypadElement","firstButton","focus","event","isTrigerredFromActualPieElement","target","isAnswerInputFocused","mqStatic","inputRef","current","contains","activeElement","console","log","type","isClickOrTouchEvent","activeAnswerBlock","cleanupKeyDownListener","setState","onSubFieldFocus","focusFirstKeypadElement","handleEvent","handleKeyDown","addEventListener","removeEventListener","response","callOnSessionChange","data","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","isKeypadOpen","getParentWithRoleTooltip","element","depth","offsetParent","getAttribute","getDeepChildDataKeypad","children","attributes","parentWithTooltipRole","childWithDataKeypad","tooltipContainerRef","React","createRef","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","pattern","matches","match","nextProps","nextConfig","nextSession","note","language","t","lng","env","mode","countResponseOccurrences","updateAria","newAnswers","nextState","sameModel","sameState","prevProps","prevState","prevResponseType","responseType","currentResponseType","ref","div","firstChild","correctness","extraCSSRules","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onBlur","midContent","main","collapsible","hidden","visible","__html","promptContainer","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","container","undefined","placement","modifiers","preventOverflow","enabled","boundariesElement","flip","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","domNode","ReactDOM","findDOMNode","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","paddingRight","paddingLeft","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","margin","palette","grey","alignItems","justifyContent","borderRight","flexShrink","flexGrow","flexBasis","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, UiLayout } 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';\nimport ReactDOM from 'react-dom';\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 isChildOfCurrentPieElement(child, parent) {\n let node = child;\n while (node !== null) {\n if (parent && node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\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\nfunction parseAnswers(session, model){\n const answers = {};\n\n if (model.config && model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (session &&\n session.answers &&\n session.answers[`r${answerBlocks}`] &&\n session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n return answers;\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 const {model, session} = props;\n const answers = parseAnswers(session, model);\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n tooltipContainerRef: React.createRef(),\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 UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n const { session } = this.props;\n const { session: nextSession = {} } = nextProps || {};\n\n // in case session props changed in parent, we need to catch this and update local state\n // example: when env is changing in pieoneer\n if (session && nextSession && !isEqual(session.answers, nextSession.answers)) {\n this.setState({\n session: {...nextSession, answers: parseAnswers(nextSession, this.props.model)},\n });\n }\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 (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(prevProps, prevState) {\n this.handleAnswerBlockDomUpdate();\n\n const prevResponseType = prevProps.model?.config?.responseType;\n const currentResponseType = this.props.model?.config?.responseType;\n\n if (prevResponseType !== currentResponseType) {\n this.updateAria();\n }\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 =\n 'This field supports both keypad and keyboard input. Use the keyboard to access and interact with the on-screen math keypad, which accepts LaTeX markup. Use the down arrow key to open the keypad and navigate its buttons. Use the escape key to close the keypad and return to the input field.';\n parent.insertBefore(instructionsElement, elem);\n }\n\n elem.setAttribute('aria-describedby', instructionsId);\n }\n });\n }\n };\n\n focusFirstKeypadElement = () => {\n setTimeout(() => {\n const keypadElement = document.querySelector('[data-keypad]');\n\n if (keypadElement) {\n const firstButton = keypadElement.querySelector(\"button, [role='button']\");\n\n if (firstButton) {\n firstButton.focus();\n }\n }\n }, 0);\n };\n\n handleKeyDown = (event, id) => {\n const isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, this.root);\n const isAnswerInputFocused = this.mqStatic && this.mqStatic.inputRef?.current.contains(document.activeElement);\n\n console.log(this.mqStatic, \"this.mqStatic.inputRef - merge this for testng purpose\");\n\n const { key, type } = event;\n const isClickOrTouchEvent = type === 'click' || type === 'touchstart';\n\n if (isAnswerInputFocused && (key === 'ArrowDown' || isClickOrTouchEvent)) {\n if (this.state.activeAnswerBlock !== id && isTrigerredFromActualPieElement) {\n this.cleanupKeyDownListener();\n this.setState({ activeAnswerBlock: id }, () => {\n this.onSubFieldFocus(id);\n if (key === 'ArrowDown') {\n this.focusFirstKeypadElement();\n }\n });\n }\n } else if (event.key === 'Escape') {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n onSubFieldFocus = (id) => {\n const handleEvent = (event) => {\n this.handleKeyDown(event, id);\n };\n\n this.handleEvent = handleEvent;\n\n document.addEventListener('keydown', handleEvent);\n document.addEventListener('click', handleEvent);\n document.addEventListener('touchstart', handleEvent);\n };\n\n cleanupKeyDownListener = () => {\n if (this.handleEvent) {\n document.removeEventListener('keydown', this.handleEvent);\n document.removeEventListener('click', this.handleEvent);\n document.removeEventListener('touchstart', this.handleEvent);\n this.handleEvent = null;\n }\n };\n\n componentWillUnmount() {\n if (this.cleanupKeyDownListener) {\n this.cleanupKeyDownListener();\n }\n }\n\n onDone = () => {};\n\n onSimpleResponseChange = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\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 // our keypad is in tooltip\n // in this way we see if event was triggered from the keypad\n const isKeypadOpen = currentTarget && currentTarget.closest('[role=tooltip]');\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 // if event was trigered from the keypad, avoid closing the keypad\n if (!isKeypadOpen) {\n this.setState({ activeAnswerBlock: '' });\n }\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, tooltipContainerRef } = this.state;\n const {\n config,\n correctness,\n disabled,\n extraCSSRules,\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 id,\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) => {\n if (mqStatic) this.mqStatic = mqStatic;\n }}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </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 onSubFieldFocus={this.onSubFieldFocus}\n showKeypad={!!activeAnswerBlock}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n ref={tooltipContainerRef}\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 PopperProps={{\n container: tooltipContainerRef?.current || undefined,\n placement: 'bottom-start',\n modifiers: {\n preventOverflow: {\n enabled: true,\n boundariesElement: 'body',\n },\n flip: {\n enabled: false,\n },\n },\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) => {\n if (mqStatic) this.mqStatic = mqStatic;\n }}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n )}\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 <UiLayout extraCSSRules={extraCSSRules}>\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 </UiLayout>\n );\n }\n\n return (\n <UiLayout\n id={id}\n extraCSSRules={extraCSSRules}\n className={classes.mainContainer}\n ref={(r) => {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(r);\n\n this.root = domNode || this.root;\n }}\n >\n {midContent}\n </UiLayout>\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 padding: theme.spacing.unit / 4,\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n // PD-4803 unset padding as events are not correctly propagated in the proximity of math input\n paddingRight: '0 !important',\n paddingLeft: '0 !important',\n '& > .mq-editable-field': {\n minWidth: '10px',\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 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 flexShrink: 0,\n flexGrow: 0,\n flexBasis: 'auto', // take only the space needed for content + padding\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 flexGrow: 1, // take all the remaining space\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
@@ -12091,6 +12091,7 @@ class Main extends React$1.Component {
12091
12091
  this.handleKeyDown = (event, id) => {
12092
12092
  const isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, this.root);
12093
12093
  const isAnswerInputFocused = this.mqStatic && _optionalChain([this, 'access', _19 => _19.mqStatic, 'access', _20 => _20.inputRef, 'optionalAccess', _21 => _21.current, 'access', _22 => _22.contains, 'call', _23 => _23(document.activeElement)]);
12094
+ console.log(this.mqStatic, "this.mqStatic.inputRef - merge this for testng purpose");
12094
12095
  const {key, type} = event;
12095
12096
  const isClickOrTouchEvent = type === 'click' || type === 'touchstart';
12096
12097
  if (isAnswerInputFocused && (key === 'ArrowDown' || isClickOrTouchEvent)) {
@@ -12314,11 +12315,13 @@ class Main extends React$1.Component {
12314
12315
  __self: this,
12315
12316
  __source: {
12316
12317
  fileName: _jsxFileName,
12317
- lineNumber: 616
12318
+ lineNumber: 619
12318
12319
  }
12319
12320
  }, React$1.createElement(mq.Static, {
12320
12321
  className: classes.static,
12321
- ref: mqStatic => this.mqStatic = mqStatic || this.mqStatic,
12322
+ ref: mqStatic => {
12323
+ if (mqStatic) this.mqStatic = mqStatic;
12324
+ },
12322
12325
  latex: staticLatex,
12323
12326
  onSubFieldChange: this.subFieldChanged,
12324
12327
  getFieldName: this.getFieldName,
@@ -12328,7 +12331,7 @@ class Main extends React$1.Component {
12328
12331
  __self: this,
12329
12332
  __source: {
12330
12333
  fileName: _jsxFileName,
12331
- lineNumber: 617
12334
+ lineNumber: 620
12332
12335
  }
12333
12336
  }));
12334
12337
  const midContent = React$1.createElement('div', {
@@ -12336,14 +12339,14 @@ class Main extends React$1.Component {
12336
12339
  __self: this,
12337
12340
  __source: {
12338
12341
  fileName: _jsxFileName,
12339
- lineNumber: 631
12342
+ lineNumber: 636
12340
12343
  }
12341
12344
  }, mode === 'gather' && React$1.createElement('h2', {
12342
12345
  className: classes.srOnly,
12343
12346
  __self: this,
12344
12347
  __source: {
12345
12348
  fileName: _jsxFileName,
12346
- lineNumber: 632
12349
+ lineNumber: 637
12347
12350
  }
12348
12351
  }, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12349
12352
  className: classes.collapsible,
@@ -12354,7 +12357,7 @@ class Main extends React$1.Component {
12354
12357
  __self: this,
12355
12358
  __source: {
12356
12359
  fileName: _jsxFileName,
12357
- lineNumber: 638
12360
+ lineNumber: 643
12358
12361
  }
12359
12362
  }, React$1.createElement('div', {
12360
12363
  dangerouslySetInnerHTML: {
@@ -12363,7 +12366,7 @@ class Main extends React$1.Component {
12363
12366
  __self: this,
12364
12367
  __source: {
12365
12368
  fileName: _jsxFileName,
12366
- lineNumber: 642
12369
+ lineNumber: 647
12367
12370
  }
12368
12371
  })) : React$1.createElement('div', {
12369
12372
  dangerouslySetInnerHTML: {
@@ -12372,28 +12375,28 @@ class Main extends React$1.Component {
12372
12375
  __self: this,
12373
12376
  __source: {
12374
12377
  fileName: _jsxFileName,
12375
- lineNumber: 645
12378
+ lineNumber: 650
12376
12379
  }
12377
12380
  })), prompt && React$1.createElement('div', {
12378
12381
  className: classes.promptContainer,
12379
12382
  __self: this,
12380
12383
  __source: {
12381
12384
  fileName: _jsxFileName,
12382
- lineNumber: 649
12385
+ lineNumber: 654
12383
12386
  }
12384
12387
  }, React$1.createElement(PreviewPrompt, {
12385
12388
  prompt: prompt,
12386
12389
  __self: this,
12387
12390
  __source: {
12388
12391
  fileName: _jsxFileName,
12389
- lineNumber: 650
12392
+ lineNumber: 655
12390
12393
  }
12391
12394
  })), studentPrintMode ? printView : React$1.createElement(Readable, {
12392
12395
  false: true,
12393
12396
  __self: this,
12394
12397
  __source: {
12395
12398
  fileName: _jsxFileName,
12396
- lineNumber: 657
12399
+ lineNumber: 662
12397
12400
  }
12398
12401
  }, React$1.createElement('div', {
12399
12402
  className: classes.inputAndKeypadContainer,
@@ -12401,7 +12404,7 @@ class Main extends React$1.Component {
12401
12404
  __self: this,
12402
12405
  __source: {
12403
12406
  fileName: _jsxFileName,
12404
- lineNumber: 658
12407
+ lineNumber: 663
12405
12408
  }
12406
12409
  }, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
12407
12410
  onSimpleResponseChange: this.onSimpleResponseChange,
@@ -12414,7 +12417,7 @@ class Main extends React$1.Component {
12414
12417
  __self: this,
12415
12418
  __source: {
12416
12419
  fileName: _jsxFileName,
12417
- lineNumber: 660
12420
+ lineNumber: 665
12418
12421
  }
12419
12422
  }), responseType === ResponseTypes.advanced && React$1.createElement('div', {
12420
12423
  ref: tooltipContainerRef,
@@ -12428,7 +12431,7 @@ class Main extends React$1.Component {
12428
12431
  __self: this,
12429
12432
  __source: {
12430
12433
  fileName: _jsxFileName,
12431
- lineNumber: 672
12434
+ lineNumber: 677
12432
12435
  }
12433
12436
  }, React$1.createElement(Tooltip, {
12434
12437
  ref: ref => this.setTooltipRef(ref),
@@ -12462,7 +12465,7 @@ class Main extends React$1.Component {
12462
12465
  __self: this,
12463
12466
  __source: {
12464
12467
  fileName: _jsxFileName,
12465
- lineNumber: 707
12468
+ lineNumber: 712
12466
12469
  }
12467
12470
  }, React$1.createElement(HorizontalKeypad, {
12468
12471
  additionalKeys: additionalKeys,
@@ -12471,17 +12474,19 @@ class Main extends React$1.Component {
12471
12474
  __self: this,
12472
12475
  __source: {
12473
12476
  fileName: _jsxFileName,
12474
- lineNumber: 716
12477
+ lineNumber: 721
12475
12478
  }
12476
12479
  })) || null),
12477
12480
  __self: this,
12478
12481
  __source: {
12479
12482
  fileName: _jsxFileName,
12480
- lineNumber: 682
12483
+ lineNumber: 687
12481
12484
  }
12482
12485
  }, React$1.createElement(mq.Static, {
12483
12486
  className: classes.static,
12484
- ref: mqStatic => this.mqStatic = mqStatic || this.mqStatic,
12487
+ ref: mqStatic => {
12488
+ if (mqStatic) this.mqStatic = mqStatic;
12489
+ },
12485
12490
  latex: staticLatex,
12486
12491
  onSubFieldChange: this.subFieldChanged,
12487
12492
  getFieldName: this.getFieldName,
@@ -12491,7 +12496,7 @@ class Main extends React$1.Component {
12491
12496
  __self: this,
12492
12497
  __source: {
12493
12498
  fileName: _jsxFileName,
12494
- lineNumber: 726
12499
+ lineNumber: 731
12495
12500
  }
12496
12501
  }))))), viewMode && displayNote && React$1.createElement('div', {
12497
12502
  className: classes.note,
@@ -12501,7 +12506,7 @@ class Main extends React$1.Component {
12501
12506
  __self: this,
12502
12507
  __source: {
12503
12508
  fileName: _jsxFileName,
12504
- lineNumber: 744
12509
+ lineNumber: 751
12505
12510
  }
12506
12511
  }), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12507
12512
  labels: {
@@ -12511,7 +12516,7 @@ class Main extends React$1.Component {
12511
12516
  __self: this,
12512
12517
  __source: {
12513
12518
  fileName: _jsxFileName,
12514
- lineNumber: 751
12519
+ lineNumber: 758
12515
12520
  }
12516
12521
  }, React$1.createElement('div', {
12517
12522
  dangerouslySetInnerHTML: {
@@ -12520,7 +12525,7 @@ class Main extends React$1.Component {
12520
12525
  __self: this,
12521
12526
  __source: {
12522
12527
  fileName: _jsxFileName,
12523
- lineNumber: 752
12528
+ lineNumber: 759
12524
12529
  }
12525
12530
  })) : React$1.createElement('div', {
12526
12531
  dangerouslySetInnerHTML: {
@@ -12529,7 +12534,7 @@ class Main extends React$1.Component {
12529
12534
  __self: this,
12530
12535
  __source: {
12531
12536
  fileName: _jsxFileName,
12532
- lineNumber: 755
12537
+ lineNumber: 762
12533
12538
  }
12534
12539
  })));
12535
12540
  if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
@@ -12538,7 +12543,7 @@ class Main extends React$1.Component {
12538
12543
  __self: this,
12539
12544
  __source: {
12540
12545
  fileName: _jsxFileName,
12541
- lineNumber: 768
12546
+ lineNumber: 775
12542
12547
  }
12543
12548
  }, React$1.createElement(Tooltip, {
12544
12549
  interactive: true,
@@ -12551,14 +12556,14 @@ class Main extends React$1.Component {
12551
12556
  __self: this,
12552
12557
  __source: {
12553
12558
  fileName: _jsxFileName,
12554
- lineNumber: 777
12559
+ lineNumber: 784
12555
12560
  }
12556
12561
  }, React$1.createElement('div', {
12557
12562
  className: classes.main,
12558
12563
  __self: this,
12559
12564
  __source: {
12560
12565
  fileName: _jsxFileName,
12561
- lineNumber: 778
12566
+ lineNumber: 785
12562
12567
  }
12563
12568
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
12564
12569
  language: language,
@@ -12569,7 +12574,7 @@ class Main extends React$1.Component {
12569
12574
  __self: this,
12570
12575
  __source: {
12571
12576
  fileName: _jsxFileName,
12572
- lineNumber: 780
12577
+ lineNumber: 787
12573
12578
  }
12574
12579
  })), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
12575
12580
  className: classes.collapsible,
@@ -12581,14 +12586,14 @@ class Main extends React$1.Component {
12581
12586
  __self: this,
12582
12587
  __source: {
12583
12588
  fileName: _jsxFileName,
12584
- lineNumber: 791
12589
+ lineNumber: 798
12585
12590
  }
12586
12591
  }, React$1.createElement(PreviewPrompt, {
12587
12592
  prompt: teacherInstructions,
12588
12593
  __self: this,
12589
12594
  __source: {
12590
12595
  fileName: _jsxFileName,
12591
- lineNumber: 799
12596
+ lineNumber: 806
12592
12597
  }
12593
12598
  })), displayNote && hasText(note) && React$1.createElement(Collapsible, {
12594
12599
  className: classes.collapsible,
@@ -12604,14 +12609,14 @@ class Main extends React$1.Component {
12604
12609
  __self: this,
12605
12610
  __source: {
12606
12611
  fileName: _jsxFileName,
12607
- lineNumber: 803
12612
+ lineNumber: 810
12608
12613
  }
12609
12614
  }, React$1.createElement(PreviewPrompt, {
12610
12615
  prompt: note,
12611
12616
  __self: this,
12612
12617
  __source: {
12613
12618
  fileName: _jsxFileName,
12614
- lineNumber: 811
12619
+ lineNumber: 818
12615
12620
  }
12616
12621
  })), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
12617
12622
  className: classes.collapsible,
@@ -12623,14 +12628,14 @@ class Main extends React$1.Component {
12623
12628
  __self: this,
12624
12629
  __source: {
12625
12630
  fileName: _jsxFileName,
12626
- lineNumber: 816
12631
+ lineNumber: 823
12627
12632
  }
12628
12633
  }, React$1.createElement(PreviewPrompt, {
12629
12634
  prompt: rationale,
12630
12635
  __self: this,
12631
12636
  __source: {
12632
12637
  fileName: _jsxFileName,
12633
- lineNumber: 824
12638
+ lineNumber: 831
12634
12639
  }
12635
12640
  })), feedback && React$1.createElement(Feedback, {
12636
12641
  correctness: correctness.correctness,
@@ -12638,13 +12643,13 @@ class Main extends React$1.Component {
12638
12643
  __self: this,
12639
12644
  __source: {
12640
12645
  fileName: _jsxFileName,
12641
- lineNumber: 828
12646
+ lineNumber: 835
12642
12647
  }
12643
12648
  })),
12644
12649
  __self: this,
12645
12650
  __source: {
12646
12651
  fileName: _jsxFileName,
12647
- lineNumber: 769
12652
+ lineNumber: 776
12648
12653
  }
12649
12654
  }, React$1.createElement('div', {
12650
12655
  className: classes.mainContainer,
@@ -12652,7 +12657,7 @@ class Main extends React$1.Component {
12652
12657
  __self: this,
12653
12658
  __source: {
12654
12659
  fileName: _jsxFileName,
12655
- lineNumber: 832
12660
+ lineNumber: 839
12656
12661
  }
12657
12662
  }, midContent)));
12658
12663
  }
@@ -12667,7 +12672,7 @@ class Main extends React$1.Component {
12667
12672
  __self: this,
12668
12673
  __source: {
12669
12674
  fileName: _jsxFileName,
12670
- lineNumber: 841
12675
+ lineNumber: 848
12671
12676
  }
12672
12677
  }, midContent);
12673
12678
  }
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@8.4.7</title>
5
+ <title>@pie-element/math-inline@8.4.8</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,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/math-inline",
3
- "version": "8.4.7",
3
+ "version": "8.4.8",
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/pie-toolbox-math-rendering-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@8.4.7</title>
5
+ <title>@pie-element/math-inline@8.4.8</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
@@ -11828,6 +11828,7 @@ class Main extends React$1.Component {
11828
11828
  this.handleKeyDown = (event, id) => {
11829
11829
  const isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, this.root);
11830
11830
  const isAnswerInputFocused = this.mqStatic && _optionalChain([this, 'access', _19 => _19.mqStatic, 'access', _20 => _20.inputRef, 'optionalAccess', _21 => _21.current, 'access', _22 => _22.contains, 'call', _23 => _23(document.activeElement)]);
11831
+ console.log(this.mqStatic, "this.mqStatic.inputRef - merge this for testng purpose");
11831
11832
  const {key, type} = event;
11832
11833
  const isClickOrTouchEvent = type === 'click' || type === 'touchstart';
11833
11834
  if (isAnswerInputFocused && (key === 'ArrowDown' || isClickOrTouchEvent)) {
@@ -12051,11 +12052,13 @@ class Main extends React$1.Component {
12051
12052
  __self: this,
12052
12053
  __source: {
12053
12054
  fileName: _jsxFileName,
12054
- lineNumber: 616
12055
+ lineNumber: 619
12055
12056
  }
12056
12057
  }, React$1.createElement(mq.Static, {
12057
12058
  className: classes.static,
12058
- ref: mqStatic => this.mqStatic = mqStatic || this.mqStatic,
12059
+ ref: mqStatic => {
12060
+ if (mqStatic) this.mqStatic = mqStatic;
12061
+ },
12059
12062
  latex: staticLatex,
12060
12063
  onSubFieldChange: this.subFieldChanged,
12061
12064
  getFieldName: this.getFieldName,
@@ -12065,7 +12068,7 @@ class Main extends React$1.Component {
12065
12068
  __self: this,
12066
12069
  __source: {
12067
12070
  fileName: _jsxFileName,
12068
- lineNumber: 617
12071
+ lineNumber: 620
12069
12072
  }
12070
12073
  }));
12071
12074
  const midContent = React$1.createElement('div', {
@@ -12073,14 +12076,14 @@ class Main extends React$1.Component {
12073
12076
  __self: this,
12074
12077
  __source: {
12075
12078
  fileName: _jsxFileName,
12076
- lineNumber: 631
12079
+ lineNumber: 636
12077
12080
  }
12078
12081
  }, mode === 'gather' && React$1.createElement('h2', {
12079
12082
  className: classes.srOnly,
12080
12083
  __self: this,
12081
12084
  __source: {
12082
12085
  fileName: _jsxFileName,
12083
- lineNumber: 632
12086
+ lineNumber: 637
12084
12087
  }
12085
12088
  }, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12086
12089
  className: classes.collapsible,
@@ -12091,7 +12094,7 @@ class Main extends React$1.Component {
12091
12094
  __self: this,
12092
12095
  __source: {
12093
12096
  fileName: _jsxFileName,
12094
- lineNumber: 638
12097
+ lineNumber: 643
12095
12098
  }
12096
12099
  }, React$1.createElement('div', {
12097
12100
  dangerouslySetInnerHTML: {
@@ -12100,7 +12103,7 @@ class Main extends React$1.Component {
12100
12103
  __self: this,
12101
12104
  __source: {
12102
12105
  fileName: _jsxFileName,
12103
- lineNumber: 642
12106
+ lineNumber: 647
12104
12107
  }
12105
12108
  })) : React$1.createElement('div', {
12106
12109
  dangerouslySetInnerHTML: {
@@ -12109,28 +12112,28 @@ class Main extends React$1.Component {
12109
12112
  __self: this,
12110
12113
  __source: {
12111
12114
  fileName: _jsxFileName,
12112
- lineNumber: 645
12115
+ lineNumber: 650
12113
12116
  }
12114
12117
  })), prompt && React$1.createElement('div', {
12115
12118
  className: classes.promptContainer,
12116
12119
  __self: this,
12117
12120
  __source: {
12118
12121
  fileName: _jsxFileName,
12119
- lineNumber: 649
12122
+ lineNumber: 654
12120
12123
  }
12121
12124
  }, React$1.createElement(PreviewPrompt, {
12122
12125
  prompt: prompt,
12123
12126
  __self: this,
12124
12127
  __source: {
12125
12128
  fileName: _jsxFileName,
12126
- lineNumber: 650
12129
+ lineNumber: 655
12127
12130
  }
12128
12131
  })), studentPrintMode ? printView : React$1.createElement(Readable, {
12129
12132
  false: true,
12130
12133
  __self: this,
12131
12134
  __source: {
12132
12135
  fileName: _jsxFileName,
12133
- lineNumber: 657
12136
+ lineNumber: 662
12134
12137
  }
12135
12138
  }, React$1.createElement('div', {
12136
12139
  className: classes.inputAndKeypadContainer,
@@ -12138,7 +12141,7 @@ class Main extends React$1.Component {
12138
12141
  __self: this,
12139
12142
  __source: {
12140
12143
  fileName: _jsxFileName,
12141
- lineNumber: 658
12144
+ lineNumber: 663
12142
12145
  }
12143
12146
  }, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
12144
12147
  onSimpleResponseChange: this.onSimpleResponseChange,
@@ -12151,7 +12154,7 @@ class Main extends React$1.Component {
12151
12154
  __self: this,
12152
12155
  __source: {
12153
12156
  fileName: _jsxFileName,
12154
- lineNumber: 660
12157
+ lineNumber: 665
12155
12158
  }
12156
12159
  }), responseType === ResponseTypes.advanced && React$1.createElement('div', {
12157
12160
  ref: tooltipContainerRef,
@@ -12165,7 +12168,7 @@ class Main extends React$1.Component {
12165
12168
  __self: this,
12166
12169
  __source: {
12167
12170
  fileName: _jsxFileName,
12168
- lineNumber: 672
12171
+ lineNumber: 677
12169
12172
  }
12170
12173
  }, React$1.createElement(Tooltip, {
12171
12174
  ref: ref => this.setTooltipRef(ref),
@@ -12199,7 +12202,7 @@ class Main extends React$1.Component {
12199
12202
  __self: this,
12200
12203
  __source: {
12201
12204
  fileName: _jsxFileName,
12202
- lineNumber: 707
12205
+ lineNumber: 712
12203
12206
  }
12204
12207
  }, React$1.createElement(HorizontalKeypad, {
12205
12208
  additionalKeys: additionalKeys,
@@ -12208,17 +12211,19 @@ class Main extends React$1.Component {
12208
12211
  __self: this,
12209
12212
  __source: {
12210
12213
  fileName: _jsxFileName,
12211
- lineNumber: 716
12214
+ lineNumber: 721
12212
12215
  }
12213
12216
  })) || null),
12214
12217
  __self: this,
12215
12218
  __source: {
12216
12219
  fileName: _jsxFileName,
12217
- lineNumber: 682
12220
+ lineNumber: 687
12218
12221
  }
12219
12222
  }, React$1.createElement(mq.Static, {
12220
12223
  className: classes.static,
12221
- ref: mqStatic => this.mqStatic = mqStatic || this.mqStatic,
12224
+ ref: mqStatic => {
12225
+ if (mqStatic) this.mqStatic = mqStatic;
12226
+ },
12222
12227
  latex: staticLatex,
12223
12228
  onSubFieldChange: this.subFieldChanged,
12224
12229
  getFieldName: this.getFieldName,
@@ -12228,7 +12233,7 @@ class Main extends React$1.Component {
12228
12233
  __self: this,
12229
12234
  __source: {
12230
12235
  fileName: _jsxFileName,
12231
- lineNumber: 726
12236
+ lineNumber: 731
12232
12237
  }
12233
12238
  }))))), viewMode && displayNote && React$1.createElement('div', {
12234
12239
  className: classes.note,
@@ -12238,7 +12243,7 @@ class Main extends React$1.Component {
12238
12243
  __self: this,
12239
12244
  __source: {
12240
12245
  fileName: _jsxFileName,
12241
- lineNumber: 744
12246
+ lineNumber: 751
12242
12247
  }
12243
12248
  }), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
12244
12249
  labels: {
@@ -12248,7 +12253,7 @@ class Main extends React$1.Component {
12248
12253
  __self: this,
12249
12254
  __source: {
12250
12255
  fileName: _jsxFileName,
12251
- lineNumber: 751
12256
+ lineNumber: 758
12252
12257
  }
12253
12258
  }, React$1.createElement('div', {
12254
12259
  dangerouslySetInnerHTML: {
@@ -12257,7 +12262,7 @@ class Main extends React$1.Component {
12257
12262
  __self: this,
12258
12263
  __source: {
12259
12264
  fileName: _jsxFileName,
12260
- lineNumber: 752
12265
+ lineNumber: 759
12261
12266
  }
12262
12267
  })) : React$1.createElement('div', {
12263
12268
  dangerouslySetInnerHTML: {
@@ -12266,7 +12271,7 @@ class Main extends React$1.Component {
12266
12271
  __self: this,
12267
12272
  __source: {
12268
12273
  fileName: _jsxFileName,
12269
- lineNumber: 755
12274
+ lineNumber: 762
12270
12275
  }
12271
12276
  })));
12272
12277
  if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
@@ -12275,7 +12280,7 @@ class Main extends React$1.Component {
12275
12280
  __self: this,
12276
12281
  __source: {
12277
12282
  fileName: _jsxFileName,
12278
- lineNumber: 768
12283
+ lineNumber: 775
12279
12284
  }
12280
12285
  }, React$1.createElement(Tooltip, {
12281
12286
  interactive: true,
@@ -12288,14 +12293,14 @@ class Main extends React$1.Component {
12288
12293
  __self: this,
12289
12294
  __source: {
12290
12295
  fileName: _jsxFileName,
12291
- lineNumber: 777
12296
+ lineNumber: 784
12292
12297
  }
12293
12298
  }, React$1.createElement('div', {
12294
12299
  className: classes.main,
12295
12300
  __self: this,
12296
12301
  __source: {
12297
12302
  fileName: _jsxFileName,
12298
- lineNumber: 778
12303
+ lineNumber: 785
12299
12304
  }
12300
12305
  }, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
12301
12306
  language: language,
@@ -12306,7 +12311,7 @@ class Main extends React$1.Component {
12306
12311
  __self: this,
12307
12312
  __source: {
12308
12313
  fileName: _jsxFileName,
12309
- lineNumber: 780
12314
+ lineNumber: 787
12310
12315
  }
12311
12316
  })), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
12312
12317
  className: classes.collapsible,
@@ -12318,14 +12323,14 @@ class Main extends React$1.Component {
12318
12323
  __self: this,
12319
12324
  __source: {
12320
12325
  fileName: _jsxFileName,
12321
- lineNumber: 791
12326
+ lineNumber: 798
12322
12327
  }
12323
12328
  }, React$1.createElement(PreviewPrompt, {
12324
12329
  prompt: teacherInstructions,
12325
12330
  __self: this,
12326
12331
  __source: {
12327
12332
  fileName: _jsxFileName,
12328
- lineNumber: 799
12333
+ lineNumber: 806
12329
12334
  }
12330
12335
  })), displayNote && hasText(note) && React$1.createElement(Collapsible, {
12331
12336
  className: classes.collapsible,
@@ -12341,14 +12346,14 @@ class Main extends React$1.Component {
12341
12346
  __self: this,
12342
12347
  __source: {
12343
12348
  fileName: _jsxFileName,
12344
- lineNumber: 803
12349
+ lineNumber: 810
12345
12350
  }
12346
12351
  }, React$1.createElement(PreviewPrompt, {
12347
12352
  prompt: note,
12348
12353
  __self: this,
12349
12354
  __source: {
12350
12355
  fileName: _jsxFileName,
12351
- lineNumber: 811
12356
+ lineNumber: 818
12352
12357
  }
12353
12358
  })), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
12354
12359
  className: classes.collapsible,
@@ -12360,14 +12365,14 @@ class Main extends React$1.Component {
12360
12365
  __self: this,
12361
12366
  __source: {
12362
12367
  fileName: _jsxFileName,
12363
- lineNumber: 816
12368
+ lineNumber: 823
12364
12369
  }
12365
12370
  }, React$1.createElement(PreviewPrompt, {
12366
12371
  prompt: rationale,
12367
12372
  __self: this,
12368
12373
  __source: {
12369
12374
  fileName: _jsxFileName,
12370
- lineNumber: 824
12375
+ lineNumber: 831
12371
12376
  }
12372
12377
  })), feedback && React$1.createElement(Feedback, {
12373
12378
  correctness: correctness.correctness,
@@ -12375,13 +12380,13 @@ class Main extends React$1.Component {
12375
12380
  __self: this,
12376
12381
  __source: {
12377
12382
  fileName: _jsxFileName,
12378
- lineNumber: 828
12383
+ lineNumber: 835
12379
12384
  }
12380
12385
  })),
12381
12386
  __self: this,
12382
12387
  __source: {
12383
12388
  fileName: _jsxFileName,
12384
- lineNumber: 769
12389
+ lineNumber: 776
12385
12390
  }
12386
12391
  }, React$1.createElement('div', {
12387
12392
  className: classes.mainContainer,
@@ -12389,7 +12394,7 @@ class Main extends React$1.Component {
12389
12394
  __self: this,
12390
12395
  __source: {
12391
12396
  fileName: _jsxFileName,
12392
- lineNumber: 832
12397
+ lineNumber: 839
12393
12398
  }
12394
12399
  }, midContent)));
12395
12400
  }
@@ -12404,7 +12409,7 @@ class Main extends React$1.Component {
12404
12409
  __self: this,
12405
12410
  __source: {
12406
12411
  fileName: _jsxFileName,
12407
- lineNumber: 841
12412
+ lineNumber: 848
12408
12413
  }
12409
12414
  }, midContent);
12410
12415
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "8.4.8",
7
+ "version": "8.4.9-next.3+3f4d69183",
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": "36db7e21d20f294d941a656fc15c9824167a1aa4",
27
+ "gitHead": "3f4d6918336419574a17ed5ce05a4bd6cb24438c",
28
28
  "module": "src/index.js",
29
29
  "exports": {
30
30
  ".": "./src/index.js",