@pie-element/math-inline 7.26.1-next.3 → 7.26.1-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/main.js +8 -2
- package/lib/main.js.map +1 -1
- package/module/element.js +41 -36
- package/module/print.js +41 -36
- package/package.json +2 -2
package/lib/main.js
CHANGED
|
@@ -438,7 +438,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
438
438
|
answers: _answers
|
|
439
439
|
}),
|
|
440
440
|
activeAnswerBlock: '',
|
|
441
|
-
showCorrect: _this.props.model.config.alwaysShowCorrect || false
|
|
441
|
+
showCorrect: _this.props.model.config.alwaysShowCorrect || false,
|
|
442
|
+
tooltipContainerRef: /*#__PURE__*/_react["default"].createRef()
|
|
442
443
|
};
|
|
443
444
|
return _this;
|
|
444
445
|
}
|
|
@@ -601,7 +602,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
601
602
|
var _this$state2 = this.state,
|
|
602
603
|
activeAnswerBlock = _this$state2.activeAnswerBlock,
|
|
603
604
|
showCorrect = _this$state2.showCorrect,
|
|
604
|
-
session = _this$state2.session
|
|
605
|
+
session = _this$state2.session,
|
|
606
|
+
tooltipContainerRef = _this$state2.tooltipContainerRef;
|
|
605
607
|
|
|
606
608
|
var _ref5 = model || {},
|
|
607
609
|
config = _ref5.config,
|
|
@@ -694,6 +696,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
694
696
|
onSubFieldFocus: this.onSubFieldFocus,
|
|
695
697
|
showKeypad: !!activeAnswerBlock
|
|
696
698
|
}), responseType === _utils.ResponseTypes.advanced && /*#__PURE__*/_react["default"].createElement("div", {
|
|
699
|
+
ref: tooltipContainerRef,
|
|
697
700
|
className: (0, _classnames["default"])(classes.expression, (_cx = {}, (0, _defineProperty2["default"])(_cx, classes.incorrect, !emptyResponse && !correct && !showCorrect), (0, _defineProperty2["default"])(_cx, classes.correct, !emptyResponse && (correct || showCorrect)), (0, _defineProperty2["default"])(_cx, classes.showCorrectness, !emptyResponse && disabled && correctness && !view), (0, _defineProperty2["default"])(_cx, classes.correctAnswerShown, showCorrect), (0, _defineProperty2["default"])(_cx, classes.printCorrect, printMode && alwaysShowCorrect), _cx))
|
|
698
701
|
}, /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
|
|
699
702
|
ref: function ref(_ref7) {
|
|
@@ -706,6 +709,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
706
709
|
tooltip: classes.keypadTooltip,
|
|
707
710
|
popper: classes.keypadTooltipPopper
|
|
708
711
|
},
|
|
712
|
+
PopperProps: {
|
|
713
|
+
container: (tooltipContainerRef === null || tooltipContainerRef === void 0 ? void 0 : tooltipContainerRef.current) || undefined
|
|
714
|
+
},
|
|
709
715
|
title: Object.keys(session.answers).map(function (answerId) {
|
|
710
716
|
return answerId === activeAnswerBlock && !(showCorrect || disabled) && /*#__PURE__*/_react["default"].createElement("div", {
|
|
711
717
|
"data-keypad": true,
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["translator","Translator","registered","NEWLINE_LATEX","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","prepareForStatic","model","state","config","disabled","expression","responses","printMode","alwaysShowCorrect","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","blankSpace","repeat","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","selectableElements","querySelectorAll","elem","setAttribute","textareaElements","index","instructionsId","parent","closest","instructionsElement","document","createElement","id","className","srOnly","insertBefore","setTimeout","keypadElement","firstButton","focus","event","isAnswerInputFocused","activeElement","getAttribute","isClickOrTouchEvent","type","setState","activeAnswerBlock","focusFirstKeypadElement","handleEvent","handleKeyDown","addEventListener","removeEventListener","response","callOnSessionChange","data","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","offsetParent","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","pattern","matches","match","nextProps","nextConfig","note","language","t","lng","env","mode","countResponseOccurrences","updateAria","newAnswers","nextState","sameModel","sameState","prevProps","prevState","prevResponseType","responseType","currentResponseType","cleanupKeyDownListener","ref","div","firstChild","correctness","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","midContent","main","collapsible","hidden","visible","__html","promptContainer","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","React","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","marginBottom","position","title","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","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 } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { ResponseTypes } from './utils';\nimport isEqual from 'lodash/isEqual';\nimport cx from 'classnames';\nimport SimpleQuestionBlock from './simple-question-block';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nconst { translator } = Translator;\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n\n if (props.model.config && props.model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (props.model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (props.session &&\n props.session.answers &&\n props.session.answers[`r${answerBlocks}`] &&\n props.session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n return {\n htmlString: `<div class=\"${classes.blockContainer}\">\n <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n <div class=\"${classes.blockMath}\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? classes.correct : classes.incorrect\n // );\n } else {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n countResponseOccurrences(expression) {\n const pattern = /\\{\\{response\\}\\}/g;\n const matches = expression?.match(pattern);\n\n return matches ? matches.length : 0;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n config.note &&\n config.language &&\n config.language !== nextConfig.language &&\n config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })\n ) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {\n setTimeout(() => this.updateAria(), 100);\n }\n\n if (\n (config && config.responses && config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate,\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n this.updateAria();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate(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 isAnswerInputFocused = document.activeElement.getAttribute('aria-label') === 'Enter answer.';\n const isClickOrTouchEvent = event.type === 'click' || event.type === 'touchstart';\n\n if (isAnswerInputFocused && (event.key === 'ArrowDown' || isClickOrTouchEvent)) {\n this.setState({ activeAnswerBlock: id }, () => {\n if (event.key === 'ArrowDown') {\n this.focusFirstKeypadElement();\n }\n });\n }\n\n if ((!isAnswerInputFocused && isClickOrTouchEvent) || 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 document.addEventListener('keydown', handleEvent);\n document.addEventListener('click', handleEvent);\n document.addEventListener('touchstart', handleEvent);\n };\n\n cleanupKeyDownListener = () => {\n document.removeEventListener('keydown', this.handleEvent);\n document.removeEventListener('click', this.handleEvent);\n document.removeEventListener('touchstart', this.handleEvent);\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 function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n this.setState({ activeAnswerBlock: '' });\n }\n // else {\n // // Just for debugging purpose:\n // console.log('\\n\\nNew childWithDataKeypad', childWithDataKeypad);\n //\n // if (IS_SAFARI) {\n // // (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]?.children[0]);\n // } else {\n // // (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]);\n // }\n // }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector(\"[role='tooltip']\");\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n config,\n correctness,\n disabled,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language,\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n const printView = (\n <div className={classes.printContainer}>\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </div>\n );\n\n const midContent = (\n <div className={classes.main}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n {viewMode &&\n teacherInstructions &&\n hasText(teacherInstructions) &&\n (!animationsDisabled ? (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n ))}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer} tabIndex={0}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n onSubFieldFocus={this.onSubFieldFocus}\n showKeypad={!!activeAnswerBlock}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !correct && !showCorrect,\n [classes.correct]: !emptyResponse && (correct || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n [classes.printCorrect]: printMode && alwaysShowCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(additionalKeys, equationEditor),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n )}\n\n {viewMode && displayNote && (\n <div className={classes.note} dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }} />\n )}\n\n {viewMode &&\n rationale &&\n hasText(rationale) &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n ))}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n (showCorrectAnswerToggle ||\n (teacherInstructions && hasText(teacherInstructions)) ||\n (rationale && hasText(rationale)) ||\n feedback)\n ) {\n return (\n <Tooltip\n interactive\n enterTouchDelay={0}\n classes={{\n tooltip: classes.tooltip,\n popper: classes.tooltipPopper,\n }}\n title={\n <div>\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n {displayNote && hasText(note) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </Collapsible>\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-rationale\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n </Tooltip>\n );\n }\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n note: {\n paddingBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n // position: 'absolute',\n // right: 0,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n margin: (theme.spacing.unit * 2) / 3,\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n printCorrect: {\n border: `2px solid ${color.correct()} !important`,\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n 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","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","prepareForStatic","model","state","config","disabled","expression","responses","printMode","alwaysShowCorrect","modelExpression","showCorrect","answer","answerBlocks","replace","session","answers","blankSpace","repeat","value","Main","props","classes","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","selectableElements","querySelectorAll","elem","setAttribute","textareaElements","index","instructionsId","parent","closest","instructionsElement","document","createElement","id","className","srOnly","insertBefore","setTimeout","keypadElement","firstButton","focus","event","isAnswerInputFocused","activeElement","getAttribute","isClickOrTouchEvent","type","setState","activeAnswerBlock","focusFirstKeypadElement","handleEvent","handleKeyDown","addEventListener","removeEventListener","response","callOnSessionChange","data","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","completeAnswer","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","offsetParent","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","tooltipContainerRef","React","createRef","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","text","pattern","matches","match","nextProps","nextConfig","note","language","t","lng","env","mode","countResponseOccurrences","updateAria","newAnswers","nextState","sameModel","sameState","prevProps","prevState","prevResponseType","responseType","currentResponseType","cleanupKeyDownListener","ref","div","firstChild","correctness","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","customKeys","role","displayNote","emptyResponse","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","printView","printContainer","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","midContent","main","collapsible","hidden","visible","__html","promptContainer","inputAndKeypadContainer","ResponseTypes","simple","onSimpleResponseChange","advanced","showCorrectness","correctAnswerShown","printCorrect","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","container","current","undefined","responseContainer","width","onClick","tooltipPopper","toggle","toggleShowCorrect","mainContainer","r","Component","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","opacity","marginTop","paddingTop","marginBottom","position","title","paddingBottom","zIndex","minWidth","maxWidth","margin","top","borderColor","lineHeight","left","right","borderTop","letterSpacing","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 } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { ResponseTypes } from './utils';\nimport isEqual from 'lodash/isEqual';\nimport cx from 'classnames';\nimport SimpleQuestionBlock from './simple-question-block';\nimport MathQuill from '@pie-framework/mathquill';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nconst { translator } = Translator;\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n\n if (props.model.config && props.model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (props.model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (props.session &&\n props.session.answers &&\n props.session.answers[`r${answerBlocks}`] &&\n props.session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n 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 // 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 isAnswerInputFocused = document.activeElement.getAttribute('aria-label') === 'Enter answer.';\n const isClickOrTouchEvent = event.type === 'click' || event.type === 'touchstart';\n\n if (isAnswerInputFocused && (event.key === 'ArrowDown' || isClickOrTouchEvent)) {\n this.setState({ activeAnswerBlock: id }, () => {\n if (event.key === 'ArrowDown') {\n this.focusFirstKeypadElement();\n }\n });\n }\n\n if ((!isAnswerInputFocused && isClickOrTouchEvent) || 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 document.addEventListener('keydown', handleEvent);\n document.addEventListener('click', handleEvent);\n document.addEventListener('touchstart', handleEvent);\n };\n\n cleanupKeyDownListener = () => {\n document.removeEventListener('keydown', this.handleEvent);\n document.removeEventListener('click', this.handleEvent);\n document.removeEventListener('touchstart', this.handleEvent);\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 function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n this.setState({ activeAnswerBlock: '' });\n }\n // else {\n // // Just for debugging purpose:\n // console.log('\\n\\nNew childWithDataKeypad', childWithDataKeypad);\n //\n // if (IS_SAFARI) {\n // // (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]?.children[0]);\n // } else {\n // // (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]);\n // }\n // }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector(\"[role='tooltip']\");\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session, tooltipContainerRef } = this.state;\n const {\n config,\n correctness,\n disabled,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language,\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n const printView = (\n <div className={classes.printContainer}>\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </div>\n );\n\n const midContent = (\n <div className={classes.main}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n {viewMode &&\n teacherInstructions &&\n hasText(teacherInstructions) &&\n (!animationsDisabled ? (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n ))}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer} tabIndex={0}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n 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 }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(additionalKeys, equationEditor),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => (this.mqStatic = mqStatic || this.mqStatic)}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n )}\n\n {viewMode && displayNote && (\n <div className={classes.note} dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }} />\n )}\n\n {viewMode &&\n rationale &&\n hasText(rationale) &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: rationale }} />\n ))}\n </div>\n );\n\n if (\n tooltipModeEnabled &&\n (showCorrectAnswerToggle ||\n (teacherInstructions && hasText(teacherInstructions)) ||\n (rationale && hasText(rationale)) ||\n feedback)\n ) {\n return (\n <Tooltip\n interactive\n enterTouchDelay={0}\n classes={{\n tooltip: classes.tooltip,\n popper: classes.tooltipPopper,\n }}\n title={\n <div>\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n {displayNote && hasText(note) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </Collapsible>\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-rationale\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n </Tooltip>\n );\n }\n\n return (\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n note: {\n paddingBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n // position: 'absolute',\n // right: 0,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n margin: (theme.spacing.unit * 2) / 3,\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n printCorrect: {\n border: `2px solid ${color.correct()} !important`,\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n 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
|
@@ -11888,7 +11888,8 @@ class Main extends React$1.Component {
|
|
|
11888
11888
|
answers
|
|
11889
11889
|
},
|
|
11890
11890
|
activeAnswerBlock: '',
|
|
11891
|
-
showCorrect: this.props.model.config.alwaysShowCorrect || false
|
|
11891
|
+
showCorrect: this.props.model.config.alwaysShowCorrect || false,
|
|
11892
|
+
tooltipContainerRef: React$1.createRef()
|
|
11892
11893
|
};
|
|
11893
11894
|
}
|
|
11894
11895
|
UNSAFE_componentWillMount() {
|
|
@@ -12237,7 +12238,7 @@ class Main extends React$1.Component {
|
|
|
12237
12238
|
}
|
|
12238
12239
|
render() {
|
|
12239
12240
|
const {model, classes} = this.props;
|
|
12240
|
-
const {activeAnswerBlock, showCorrect, session} = this.state;
|
|
12241
|
+
const {activeAnswerBlock, showCorrect, session, tooltipContainerRef} = this.state;
|
|
12241
12242
|
const {config, correctness, disabled, view, teacherInstructions, rationale, feedback, animationsDisabled, printMode, alwaysShowCorrect, language} = model || ({});
|
|
12242
12243
|
if (!config) {
|
|
12243
12244
|
return null;
|
|
@@ -12257,7 +12258,7 @@ class Main extends React$1.Component {
|
|
|
12257
12258
|
__self: this,
|
|
12258
12259
|
__source: {
|
|
12259
12260
|
fileName: _jsxFileName,
|
|
12260
|
-
lineNumber:
|
|
12261
|
+
lineNumber: 569
|
|
12261
12262
|
}
|
|
12262
12263
|
}, React$1.createElement(mq.Static, {
|
|
12263
12264
|
className: classes.static,
|
|
@@ -12271,7 +12272,7 @@ class Main extends React$1.Component {
|
|
|
12271
12272
|
__self: this,
|
|
12272
12273
|
__source: {
|
|
12273
12274
|
fileName: _jsxFileName,
|
|
12274
|
-
lineNumber:
|
|
12275
|
+
lineNumber: 570
|
|
12275
12276
|
}
|
|
12276
12277
|
}));
|
|
12277
12278
|
const midContent = React$1.createElement('div', {
|
|
@@ -12279,14 +12280,14 @@ class Main extends React$1.Component {
|
|
|
12279
12280
|
__self: this,
|
|
12280
12281
|
__source: {
|
|
12281
12282
|
fileName: _jsxFileName,
|
|
12282
|
-
lineNumber:
|
|
12283
|
+
lineNumber: 584
|
|
12283
12284
|
}
|
|
12284
12285
|
}, mode === 'gather' && React$1.createElement('h2', {
|
|
12285
12286
|
className: classes.srOnly,
|
|
12286
12287
|
__self: this,
|
|
12287
12288
|
__source: {
|
|
12288
12289
|
fileName: _jsxFileName,
|
|
12289
|
-
lineNumber:
|
|
12290
|
+
lineNumber: 585
|
|
12290
12291
|
}
|
|
12291
12292
|
}, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12292
12293
|
className: classes.collapsible,
|
|
@@ -12297,7 +12298,7 @@ class Main extends React$1.Component {
|
|
|
12297
12298
|
__self: this,
|
|
12298
12299
|
__source: {
|
|
12299
12300
|
fileName: _jsxFileName,
|
|
12300
|
-
lineNumber:
|
|
12301
|
+
lineNumber: 591
|
|
12301
12302
|
}
|
|
12302
12303
|
}, React$1.createElement('div', {
|
|
12303
12304
|
dangerouslySetInnerHTML: {
|
|
@@ -12306,7 +12307,7 @@ class Main extends React$1.Component {
|
|
|
12306
12307
|
__self: this,
|
|
12307
12308
|
__source: {
|
|
12308
12309
|
fileName: _jsxFileName,
|
|
12309
|
-
lineNumber:
|
|
12310
|
+
lineNumber: 595
|
|
12310
12311
|
}
|
|
12311
12312
|
})) : React$1.createElement('div', {
|
|
12312
12313
|
dangerouslySetInnerHTML: {
|
|
@@ -12315,28 +12316,28 @@ class Main extends React$1.Component {
|
|
|
12315
12316
|
__self: this,
|
|
12316
12317
|
__source: {
|
|
12317
12318
|
fileName: _jsxFileName,
|
|
12318
|
-
lineNumber:
|
|
12319
|
+
lineNumber: 598
|
|
12319
12320
|
}
|
|
12320
12321
|
})), prompt && React$1.createElement('div', {
|
|
12321
12322
|
className: classes.promptContainer,
|
|
12322
12323
|
__self: this,
|
|
12323
12324
|
__source: {
|
|
12324
12325
|
fileName: _jsxFileName,
|
|
12325
|
-
lineNumber:
|
|
12326
|
+
lineNumber: 602
|
|
12326
12327
|
}
|
|
12327
12328
|
}, React$1.createElement(PreviewPrompt, {
|
|
12328
12329
|
prompt: prompt,
|
|
12329
12330
|
__self: this,
|
|
12330
12331
|
__source: {
|
|
12331
12332
|
fileName: _jsxFileName,
|
|
12332
|
-
lineNumber:
|
|
12333
|
+
lineNumber: 603
|
|
12333
12334
|
}
|
|
12334
12335
|
})), studentPrintMode ? printView : React$1.createElement(Readable, {
|
|
12335
12336
|
false: true,
|
|
12336
12337
|
__self: this,
|
|
12337
12338
|
__source: {
|
|
12338
12339
|
fileName: _jsxFileName,
|
|
12339
|
-
lineNumber:
|
|
12340
|
+
lineNumber: 610
|
|
12340
12341
|
}
|
|
12341
12342
|
}, React$1.createElement('div', {
|
|
12342
12343
|
className: classes.inputAndKeypadContainer,
|
|
@@ -12344,7 +12345,7 @@ class Main extends React$1.Component {
|
|
|
12344
12345
|
__self: this,
|
|
12345
12346
|
__source: {
|
|
12346
12347
|
fileName: _jsxFileName,
|
|
12347
|
-
lineNumber:
|
|
12348
|
+
lineNumber: 611
|
|
12348
12349
|
}
|
|
12349
12350
|
}, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
|
|
12350
12351
|
onSimpleResponseChange: this.onSimpleResponseChange,
|
|
@@ -12357,9 +12358,10 @@ class Main extends React$1.Component {
|
|
|
12357
12358
|
__self: this,
|
|
12358
12359
|
__source: {
|
|
12359
12360
|
fileName: _jsxFileName,
|
|
12360
|
-
lineNumber:
|
|
12361
|
+
lineNumber: 613
|
|
12361
12362
|
}
|
|
12362
12363
|
}), responseType === ResponseTypes.advanced && React$1.createElement('div', {
|
|
12364
|
+
ref: tooltipContainerRef,
|
|
12363
12365
|
className: cx(classes.expression, {
|
|
12364
12366
|
[classes.incorrect]: !emptyResponse && !correct && !showCorrect,
|
|
12365
12367
|
[classes.correct]: !emptyResponse && (correct || showCorrect),
|
|
@@ -12370,7 +12372,7 @@ class Main extends React$1.Component {
|
|
|
12370
12372
|
__self: this,
|
|
12371
12373
|
__source: {
|
|
12372
12374
|
fileName: _jsxFileName,
|
|
12373
|
-
lineNumber:
|
|
12375
|
+
lineNumber: 625
|
|
12374
12376
|
}
|
|
12375
12377
|
}, React$1.createElement(Tooltip, {
|
|
12376
12378
|
ref: ref => this.setTooltipRef(ref),
|
|
@@ -12381,6 +12383,9 @@ class Main extends React$1.Component {
|
|
|
12381
12383
|
tooltip: classes.keypadTooltip,
|
|
12382
12384
|
popper: classes.keypadTooltipPopper
|
|
12383
12385
|
},
|
|
12386
|
+
PopperProps: {
|
|
12387
|
+
container: _optionalChain([tooltipContainerRef, 'optionalAccess', _18 => _18.current]) || undefined
|
|
12388
|
+
},
|
|
12384
12389
|
title: Object.keys(session.answers).map(answerId => answerId === activeAnswerBlock && !(showCorrect || disabled) && React$1.createElement('div', {
|
|
12385
12390
|
'data-keypad': true,
|
|
12386
12391
|
key: answerId,
|
|
@@ -12391,7 +12396,7 @@ class Main extends React$1.Component {
|
|
|
12391
12396
|
__self: this,
|
|
12392
12397
|
__source: {
|
|
12393
12398
|
fileName: _jsxFileName,
|
|
12394
|
-
lineNumber:
|
|
12399
|
+
lineNumber: 650
|
|
12395
12400
|
}
|
|
12396
12401
|
}, React$1.createElement(HorizontalKeypad, {
|
|
12397
12402
|
additionalKeys: additionalKeys,
|
|
@@ -12400,13 +12405,13 @@ class Main extends React$1.Component {
|
|
|
12400
12405
|
__self: this,
|
|
12401
12406
|
__source: {
|
|
12402
12407
|
fileName: _jsxFileName,
|
|
12403
|
-
lineNumber:
|
|
12408
|
+
lineNumber: 659
|
|
12404
12409
|
}
|
|
12405
12410
|
})) || null),
|
|
12406
12411
|
__self: this,
|
|
12407
12412
|
__source: {
|
|
12408
12413
|
fileName: _jsxFileName,
|
|
12409
|
-
lineNumber:
|
|
12414
|
+
lineNumber: 635
|
|
12410
12415
|
}
|
|
12411
12416
|
}, React$1.createElement(mq.Static, {
|
|
12412
12417
|
className: classes.static,
|
|
@@ -12420,7 +12425,7 @@ class Main extends React$1.Component {
|
|
|
12420
12425
|
__self: this,
|
|
12421
12426
|
__source: {
|
|
12422
12427
|
fileName: _jsxFileName,
|
|
12423
|
-
lineNumber:
|
|
12428
|
+
lineNumber: 669
|
|
12424
12429
|
}
|
|
12425
12430
|
}))))), viewMode && displayNote && React$1.createElement('div', {
|
|
12426
12431
|
className: classes.note,
|
|
@@ -12430,7 +12435,7 @@ class Main extends React$1.Component {
|
|
|
12430
12435
|
__self: this,
|
|
12431
12436
|
__source: {
|
|
12432
12437
|
fileName: _jsxFileName,
|
|
12433
|
-
lineNumber:
|
|
12438
|
+
lineNumber: 687
|
|
12434
12439
|
}
|
|
12435
12440
|
}), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12436
12441
|
labels: {
|
|
@@ -12440,7 +12445,7 @@ class Main extends React$1.Component {
|
|
|
12440
12445
|
__self: this,
|
|
12441
12446
|
__source: {
|
|
12442
12447
|
fileName: _jsxFileName,
|
|
12443
|
-
lineNumber:
|
|
12448
|
+
lineNumber: 694
|
|
12444
12449
|
}
|
|
12445
12450
|
}, React$1.createElement('div', {
|
|
12446
12451
|
dangerouslySetInnerHTML: {
|
|
@@ -12449,7 +12454,7 @@ class Main extends React$1.Component {
|
|
|
12449
12454
|
__self: this,
|
|
12450
12455
|
__source: {
|
|
12451
12456
|
fileName: _jsxFileName,
|
|
12452
|
-
lineNumber:
|
|
12457
|
+
lineNumber: 695
|
|
12453
12458
|
}
|
|
12454
12459
|
})) : React$1.createElement('div', {
|
|
12455
12460
|
dangerouslySetInnerHTML: {
|
|
@@ -12458,7 +12463,7 @@ class Main extends React$1.Component {
|
|
|
12458
12463
|
__self: this,
|
|
12459
12464
|
__source: {
|
|
12460
12465
|
fileName: _jsxFileName,
|
|
12461
|
-
lineNumber:
|
|
12466
|
+
lineNumber: 698
|
|
12462
12467
|
}
|
|
12463
12468
|
})));
|
|
12464
12469
|
if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
|
|
@@ -12473,14 +12478,14 @@ class Main extends React$1.Component {
|
|
|
12473
12478
|
__self: this,
|
|
12474
12479
|
__source: {
|
|
12475
12480
|
fileName: _jsxFileName,
|
|
12476
|
-
lineNumber:
|
|
12481
|
+
lineNumber: 719
|
|
12477
12482
|
}
|
|
12478
12483
|
}, React$1.createElement('div', {
|
|
12479
12484
|
className: classes.main,
|
|
12480
12485
|
__self: this,
|
|
12481
12486
|
__source: {
|
|
12482
12487
|
fileName: _jsxFileName,
|
|
12483
|
-
lineNumber:
|
|
12488
|
+
lineNumber: 720
|
|
12484
12489
|
}
|
|
12485
12490
|
}, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
|
|
12486
12491
|
language: language,
|
|
@@ -12491,7 +12496,7 @@ class Main extends React$1.Component {
|
|
|
12491
12496
|
__self: this,
|
|
12492
12497
|
__source: {
|
|
12493
12498
|
fileName: _jsxFileName,
|
|
12494
|
-
lineNumber:
|
|
12499
|
+
lineNumber: 722
|
|
12495
12500
|
}
|
|
12496
12501
|
})), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
|
|
12497
12502
|
className: classes.collapsible,
|
|
@@ -12503,14 +12508,14 @@ class Main extends React$1.Component {
|
|
|
12503
12508
|
__self: this,
|
|
12504
12509
|
__source: {
|
|
12505
12510
|
fileName: _jsxFileName,
|
|
12506
|
-
lineNumber:
|
|
12511
|
+
lineNumber: 733
|
|
12507
12512
|
}
|
|
12508
12513
|
}, React$1.createElement(PreviewPrompt, {
|
|
12509
12514
|
prompt: teacherInstructions,
|
|
12510
12515
|
__self: this,
|
|
12511
12516
|
__source: {
|
|
12512
12517
|
fileName: _jsxFileName,
|
|
12513
|
-
lineNumber:
|
|
12518
|
+
lineNumber: 741
|
|
12514
12519
|
}
|
|
12515
12520
|
})), displayNote && hasText(note) && React$1.createElement(Collapsible, {
|
|
12516
12521
|
className: classes.collapsible,
|
|
@@ -12526,14 +12531,14 @@ class Main extends React$1.Component {
|
|
|
12526
12531
|
__self: this,
|
|
12527
12532
|
__source: {
|
|
12528
12533
|
fileName: _jsxFileName,
|
|
12529
|
-
lineNumber:
|
|
12534
|
+
lineNumber: 745
|
|
12530
12535
|
}
|
|
12531
12536
|
}, React$1.createElement(PreviewPrompt, {
|
|
12532
12537
|
prompt: note,
|
|
12533
12538
|
__self: this,
|
|
12534
12539
|
__source: {
|
|
12535
12540
|
fileName: _jsxFileName,
|
|
12536
|
-
lineNumber:
|
|
12541
|
+
lineNumber: 753
|
|
12537
12542
|
}
|
|
12538
12543
|
})), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
|
|
12539
12544
|
className: classes.collapsible,
|
|
@@ -12545,14 +12550,14 @@ class Main extends React$1.Component {
|
|
|
12545
12550
|
__self: this,
|
|
12546
12551
|
__source: {
|
|
12547
12552
|
fileName: _jsxFileName,
|
|
12548
|
-
lineNumber:
|
|
12553
|
+
lineNumber: 758
|
|
12549
12554
|
}
|
|
12550
12555
|
}, React$1.createElement(PreviewPrompt, {
|
|
12551
12556
|
prompt: rationale,
|
|
12552
12557
|
__self: this,
|
|
12553
12558
|
__source: {
|
|
12554
12559
|
fileName: _jsxFileName,
|
|
12555
|
-
lineNumber:
|
|
12560
|
+
lineNumber: 766
|
|
12556
12561
|
}
|
|
12557
12562
|
})), feedback && React$1.createElement(Feedback, {
|
|
12558
12563
|
correctness: correctness.correctness,
|
|
@@ -12560,13 +12565,13 @@ class Main extends React$1.Component {
|
|
|
12560
12565
|
__self: this,
|
|
12561
12566
|
__source: {
|
|
12562
12567
|
fileName: _jsxFileName,
|
|
12563
|
-
lineNumber:
|
|
12568
|
+
lineNumber: 770
|
|
12564
12569
|
}
|
|
12565
12570
|
})),
|
|
12566
12571
|
__self: this,
|
|
12567
12572
|
__source: {
|
|
12568
12573
|
fileName: _jsxFileName,
|
|
12569
|
-
lineNumber:
|
|
12574
|
+
lineNumber: 711
|
|
12570
12575
|
}
|
|
12571
12576
|
}, React$1.createElement('div', {
|
|
12572
12577
|
className: classes.mainContainer,
|
|
@@ -12574,7 +12579,7 @@ class Main extends React$1.Component {
|
|
|
12574
12579
|
__self: this,
|
|
12575
12580
|
__source: {
|
|
12576
12581
|
fileName: _jsxFileName,
|
|
12577
|
-
lineNumber:
|
|
12582
|
+
lineNumber: 774
|
|
12578
12583
|
}
|
|
12579
12584
|
}, midContent));
|
|
12580
12585
|
}
|
|
@@ -12584,7 +12589,7 @@ class Main extends React$1.Component {
|
|
|
12584
12589
|
__self: this,
|
|
12585
12590
|
__source: {
|
|
12586
12591
|
fileName: _jsxFileName,
|
|
12587
|
-
lineNumber:
|
|
12592
|
+
lineNumber: 782
|
|
12588
12593
|
}
|
|
12589
12594
|
}, midContent);
|
|
12590
12595
|
}
|
package/module/print.js
CHANGED
|
@@ -11628,7 +11628,8 @@ class Main extends React$1.Component {
|
|
|
11628
11628
|
answers
|
|
11629
11629
|
},
|
|
11630
11630
|
activeAnswerBlock: '',
|
|
11631
|
-
showCorrect: this.props.model.config.alwaysShowCorrect || false
|
|
11631
|
+
showCorrect: this.props.model.config.alwaysShowCorrect || false,
|
|
11632
|
+
tooltipContainerRef: React$1.createRef()
|
|
11632
11633
|
};
|
|
11633
11634
|
}
|
|
11634
11635
|
UNSAFE_componentWillMount() {
|
|
@@ -11977,7 +11978,7 @@ class Main extends React$1.Component {
|
|
|
11977
11978
|
}
|
|
11978
11979
|
render() {
|
|
11979
11980
|
const {model, classes} = this.props;
|
|
11980
|
-
const {activeAnswerBlock, showCorrect, session} = this.state;
|
|
11981
|
+
const {activeAnswerBlock, showCorrect, session, tooltipContainerRef} = this.state;
|
|
11981
11982
|
const {config, correctness, disabled, view, teacherInstructions, rationale, feedback, animationsDisabled, printMode, alwaysShowCorrect, language} = model || ({});
|
|
11982
11983
|
if (!config) {
|
|
11983
11984
|
return null;
|
|
@@ -11997,7 +11998,7 @@ class Main extends React$1.Component {
|
|
|
11997
11998
|
__self: this,
|
|
11998
11999
|
__source: {
|
|
11999
12000
|
fileName: _jsxFileName,
|
|
12000
|
-
lineNumber:
|
|
12001
|
+
lineNumber: 569
|
|
12001
12002
|
}
|
|
12002
12003
|
}, React$1.createElement(mq.Static, {
|
|
12003
12004
|
className: classes.static,
|
|
@@ -12011,7 +12012,7 @@ class Main extends React$1.Component {
|
|
|
12011
12012
|
__self: this,
|
|
12012
12013
|
__source: {
|
|
12013
12014
|
fileName: _jsxFileName,
|
|
12014
|
-
lineNumber:
|
|
12015
|
+
lineNumber: 570
|
|
12015
12016
|
}
|
|
12016
12017
|
}));
|
|
12017
12018
|
const midContent = React$1.createElement('div', {
|
|
@@ -12019,14 +12020,14 @@ class Main extends React$1.Component {
|
|
|
12019
12020
|
__self: this,
|
|
12020
12021
|
__source: {
|
|
12021
12022
|
fileName: _jsxFileName,
|
|
12022
|
-
lineNumber:
|
|
12023
|
+
lineNumber: 584
|
|
12023
12024
|
}
|
|
12024
12025
|
}, mode === 'gather' && React$1.createElement('h2', {
|
|
12025
12026
|
className: classes.srOnly,
|
|
12026
12027
|
__self: this,
|
|
12027
12028
|
__source: {
|
|
12028
12029
|
fileName: _jsxFileName,
|
|
12029
|
-
lineNumber:
|
|
12030
|
+
lineNumber: 585
|
|
12030
12031
|
}
|
|
12031
12032
|
}, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12032
12033
|
className: classes.collapsible,
|
|
@@ -12037,7 +12038,7 @@ class Main extends React$1.Component {
|
|
|
12037
12038
|
__self: this,
|
|
12038
12039
|
__source: {
|
|
12039
12040
|
fileName: _jsxFileName,
|
|
12040
|
-
lineNumber:
|
|
12041
|
+
lineNumber: 591
|
|
12041
12042
|
}
|
|
12042
12043
|
}, React$1.createElement('div', {
|
|
12043
12044
|
dangerouslySetInnerHTML: {
|
|
@@ -12046,7 +12047,7 @@ class Main extends React$1.Component {
|
|
|
12046
12047
|
__self: this,
|
|
12047
12048
|
__source: {
|
|
12048
12049
|
fileName: _jsxFileName,
|
|
12049
|
-
lineNumber:
|
|
12050
|
+
lineNumber: 595
|
|
12050
12051
|
}
|
|
12051
12052
|
})) : React$1.createElement('div', {
|
|
12052
12053
|
dangerouslySetInnerHTML: {
|
|
@@ -12055,28 +12056,28 @@ class Main extends React$1.Component {
|
|
|
12055
12056
|
__self: this,
|
|
12056
12057
|
__source: {
|
|
12057
12058
|
fileName: _jsxFileName,
|
|
12058
|
-
lineNumber:
|
|
12059
|
+
lineNumber: 598
|
|
12059
12060
|
}
|
|
12060
12061
|
})), prompt && React$1.createElement('div', {
|
|
12061
12062
|
className: classes.promptContainer,
|
|
12062
12063
|
__self: this,
|
|
12063
12064
|
__source: {
|
|
12064
12065
|
fileName: _jsxFileName,
|
|
12065
|
-
lineNumber:
|
|
12066
|
+
lineNumber: 602
|
|
12066
12067
|
}
|
|
12067
12068
|
}, React$1.createElement(PreviewPrompt, {
|
|
12068
12069
|
prompt: prompt,
|
|
12069
12070
|
__self: this,
|
|
12070
12071
|
__source: {
|
|
12071
12072
|
fileName: _jsxFileName,
|
|
12072
|
-
lineNumber:
|
|
12073
|
+
lineNumber: 603
|
|
12073
12074
|
}
|
|
12074
12075
|
})), studentPrintMode ? printView : React$1.createElement(Readable, {
|
|
12075
12076
|
false: true,
|
|
12076
12077
|
__self: this,
|
|
12077
12078
|
__source: {
|
|
12078
12079
|
fileName: _jsxFileName,
|
|
12079
|
-
lineNumber:
|
|
12080
|
+
lineNumber: 610
|
|
12080
12081
|
}
|
|
12081
12082
|
}, React$1.createElement('div', {
|
|
12082
12083
|
className: classes.inputAndKeypadContainer,
|
|
@@ -12084,7 +12085,7 @@ class Main extends React$1.Component {
|
|
|
12084
12085
|
__self: this,
|
|
12085
12086
|
__source: {
|
|
12086
12087
|
fileName: _jsxFileName,
|
|
12087
|
-
lineNumber:
|
|
12088
|
+
lineNumber: 611
|
|
12088
12089
|
}
|
|
12089
12090
|
}, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
|
|
12090
12091
|
onSimpleResponseChange: this.onSimpleResponseChange,
|
|
@@ -12097,9 +12098,10 @@ class Main extends React$1.Component {
|
|
|
12097
12098
|
__self: this,
|
|
12098
12099
|
__source: {
|
|
12099
12100
|
fileName: _jsxFileName,
|
|
12100
|
-
lineNumber:
|
|
12101
|
+
lineNumber: 613
|
|
12101
12102
|
}
|
|
12102
12103
|
}), responseType === ResponseTypes.advanced && React$1.createElement('div', {
|
|
12104
|
+
ref: tooltipContainerRef,
|
|
12103
12105
|
className: cx(classes.expression, {
|
|
12104
12106
|
[classes.incorrect]: !emptyResponse && !correct && !showCorrect,
|
|
12105
12107
|
[classes.correct]: !emptyResponse && (correct || showCorrect),
|
|
@@ -12110,7 +12112,7 @@ class Main extends React$1.Component {
|
|
|
12110
12112
|
__self: this,
|
|
12111
12113
|
__source: {
|
|
12112
12114
|
fileName: _jsxFileName,
|
|
12113
|
-
lineNumber:
|
|
12115
|
+
lineNumber: 625
|
|
12114
12116
|
}
|
|
12115
12117
|
}, React$1.createElement(Tooltip, {
|
|
12116
12118
|
ref: ref => this.setTooltipRef(ref),
|
|
@@ -12121,6 +12123,9 @@ class Main extends React$1.Component {
|
|
|
12121
12123
|
tooltip: classes.keypadTooltip,
|
|
12122
12124
|
popper: classes.keypadTooltipPopper
|
|
12123
12125
|
},
|
|
12126
|
+
PopperProps: {
|
|
12127
|
+
container: _optionalChain([tooltipContainerRef, 'optionalAccess', _18 => _18.current]) || undefined
|
|
12128
|
+
},
|
|
12124
12129
|
title: Object.keys(session.answers).map(answerId => answerId === activeAnswerBlock && !(showCorrect || disabled) && React$1.createElement('div', {
|
|
12125
12130
|
'data-keypad': true,
|
|
12126
12131
|
key: answerId,
|
|
@@ -12131,7 +12136,7 @@ class Main extends React$1.Component {
|
|
|
12131
12136
|
__self: this,
|
|
12132
12137
|
__source: {
|
|
12133
12138
|
fileName: _jsxFileName,
|
|
12134
|
-
lineNumber:
|
|
12139
|
+
lineNumber: 650
|
|
12135
12140
|
}
|
|
12136
12141
|
}, React$1.createElement(HorizontalKeypad, {
|
|
12137
12142
|
additionalKeys: additionalKeys,
|
|
@@ -12140,13 +12145,13 @@ class Main extends React$1.Component {
|
|
|
12140
12145
|
__self: this,
|
|
12141
12146
|
__source: {
|
|
12142
12147
|
fileName: _jsxFileName,
|
|
12143
|
-
lineNumber:
|
|
12148
|
+
lineNumber: 659
|
|
12144
12149
|
}
|
|
12145
12150
|
})) || null),
|
|
12146
12151
|
__self: this,
|
|
12147
12152
|
__source: {
|
|
12148
12153
|
fileName: _jsxFileName,
|
|
12149
|
-
lineNumber:
|
|
12154
|
+
lineNumber: 635
|
|
12150
12155
|
}
|
|
12151
12156
|
}, React$1.createElement(mq.Static, {
|
|
12152
12157
|
className: classes.static,
|
|
@@ -12160,7 +12165,7 @@ class Main extends React$1.Component {
|
|
|
12160
12165
|
__self: this,
|
|
12161
12166
|
__source: {
|
|
12162
12167
|
fileName: _jsxFileName,
|
|
12163
|
-
lineNumber:
|
|
12168
|
+
lineNumber: 669
|
|
12164
12169
|
}
|
|
12165
12170
|
}))))), viewMode && displayNote && React$1.createElement('div', {
|
|
12166
12171
|
className: classes.note,
|
|
@@ -12170,7 +12175,7 @@ class Main extends React$1.Component {
|
|
|
12170
12175
|
__self: this,
|
|
12171
12176
|
__source: {
|
|
12172
12177
|
fileName: _jsxFileName,
|
|
12173
|
-
lineNumber:
|
|
12178
|
+
lineNumber: 687
|
|
12174
12179
|
}
|
|
12175
12180
|
}), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12176
12181
|
labels: {
|
|
@@ -12180,7 +12185,7 @@ class Main extends React$1.Component {
|
|
|
12180
12185
|
__self: this,
|
|
12181
12186
|
__source: {
|
|
12182
12187
|
fileName: _jsxFileName,
|
|
12183
|
-
lineNumber:
|
|
12188
|
+
lineNumber: 694
|
|
12184
12189
|
}
|
|
12185
12190
|
}, React$1.createElement('div', {
|
|
12186
12191
|
dangerouslySetInnerHTML: {
|
|
@@ -12189,7 +12194,7 @@ class Main extends React$1.Component {
|
|
|
12189
12194
|
__self: this,
|
|
12190
12195
|
__source: {
|
|
12191
12196
|
fileName: _jsxFileName,
|
|
12192
|
-
lineNumber:
|
|
12197
|
+
lineNumber: 695
|
|
12193
12198
|
}
|
|
12194
12199
|
})) : React$1.createElement('div', {
|
|
12195
12200
|
dangerouslySetInnerHTML: {
|
|
@@ -12198,7 +12203,7 @@ class Main extends React$1.Component {
|
|
|
12198
12203
|
__self: this,
|
|
12199
12204
|
__source: {
|
|
12200
12205
|
fileName: _jsxFileName,
|
|
12201
|
-
lineNumber:
|
|
12206
|
+
lineNumber: 698
|
|
12202
12207
|
}
|
|
12203
12208
|
})));
|
|
12204
12209
|
if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
|
|
@@ -12213,14 +12218,14 @@ class Main extends React$1.Component {
|
|
|
12213
12218
|
__self: this,
|
|
12214
12219
|
__source: {
|
|
12215
12220
|
fileName: _jsxFileName,
|
|
12216
|
-
lineNumber:
|
|
12221
|
+
lineNumber: 719
|
|
12217
12222
|
}
|
|
12218
12223
|
}, React$1.createElement('div', {
|
|
12219
12224
|
className: classes.main,
|
|
12220
12225
|
__self: this,
|
|
12221
12226
|
__source: {
|
|
12222
12227
|
fileName: _jsxFileName,
|
|
12223
|
-
lineNumber:
|
|
12228
|
+
lineNumber: 720
|
|
12224
12229
|
}
|
|
12225
12230
|
}, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
|
|
12226
12231
|
language: language,
|
|
@@ -12231,7 +12236,7 @@ class Main extends React$1.Component {
|
|
|
12231
12236
|
__self: this,
|
|
12232
12237
|
__source: {
|
|
12233
12238
|
fileName: _jsxFileName,
|
|
12234
|
-
lineNumber:
|
|
12239
|
+
lineNumber: 722
|
|
12235
12240
|
}
|
|
12236
12241
|
})), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
|
|
12237
12242
|
className: classes.collapsible,
|
|
@@ -12243,14 +12248,14 @@ class Main extends React$1.Component {
|
|
|
12243
12248
|
__self: this,
|
|
12244
12249
|
__source: {
|
|
12245
12250
|
fileName: _jsxFileName,
|
|
12246
|
-
lineNumber:
|
|
12251
|
+
lineNumber: 733
|
|
12247
12252
|
}
|
|
12248
12253
|
}, React$1.createElement(PreviewPrompt, {
|
|
12249
12254
|
prompt: teacherInstructions,
|
|
12250
12255
|
__self: this,
|
|
12251
12256
|
__source: {
|
|
12252
12257
|
fileName: _jsxFileName,
|
|
12253
|
-
lineNumber:
|
|
12258
|
+
lineNumber: 741
|
|
12254
12259
|
}
|
|
12255
12260
|
})), displayNote && hasText(note) && React$1.createElement(Collapsible, {
|
|
12256
12261
|
className: classes.collapsible,
|
|
@@ -12266,14 +12271,14 @@ class Main extends React$1.Component {
|
|
|
12266
12271
|
__self: this,
|
|
12267
12272
|
__source: {
|
|
12268
12273
|
fileName: _jsxFileName,
|
|
12269
|
-
lineNumber:
|
|
12274
|
+
lineNumber: 745
|
|
12270
12275
|
}
|
|
12271
12276
|
}, React$1.createElement(PreviewPrompt, {
|
|
12272
12277
|
prompt: note,
|
|
12273
12278
|
__self: this,
|
|
12274
12279
|
__source: {
|
|
12275
12280
|
fileName: _jsxFileName,
|
|
12276
|
-
lineNumber:
|
|
12281
|
+
lineNumber: 753
|
|
12277
12282
|
}
|
|
12278
12283
|
})), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
|
|
12279
12284
|
className: classes.collapsible,
|
|
@@ -12285,14 +12290,14 @@ class Main extends React$1.Component {
|
|
|
12285
12290
|
__self: this,
|
|
12286
12291
|
__source: {
|
|
12287
12292
|
fileName: _jsxFileName,
|
|
12288
|
-
lineNumber:
|
|
12293
|
+
lineNumber: 758
|
|
12289
12294
|
}
|
|
12290
12295
|
}, React$1.createElement(PreviewPrompt, {
|
|
12291
12296
|
prompt: rationale,
|
|
12292
12297
|
__self: this,
|
|
12293
12298
|
__source: {
|
|
12294
12299
|
fileName: _jsxFileName,
|
|
12295
|
-
lineNumber:
|
|
12300
|
+
lineNumber: 766
|
|
12296
12301
|
}
|
|
12297
12302
|
})), feedback && React$1.createElement(Feedback, {
|
|
12298
12303
|
correctness: correctness.correctness,
|
|
@@ -12300,13 +12305,13 @@ class Main extends React$1.Component {
|
|
|
12300
12305
|
__self: this,
|
|
12301
12306
|
__source: {
|
|
12302
12307
|
fileName: _jsxFileName,
|
|
12303
|
-
lineNumber:
|
|
12308
|
+
lineNumber: 770
|
|
12304
12309
|
}
|
|
12305
12310
|
})),
|
|
12306
12311
|
__self: this,
|
|
12307
12312
|
__source: {
|
|
12308
12313
|
fileName: _jsxFileName,
|
|
12309
|
-
lineNumber:
|
|
12314
|
+
lineNumber: 711
|
|
12310
12315
|
}
|
|
12311
12316
|
}, React$1.createElement('div', {
|
|
12312
12317
|
className: classes.mainContainer,
|
|
@@ -12314,7 +12319,7 @@ class Main extends React$1.Component {
|
|
|
12314
12319
|
__self: this,
|
|
12315
12320
|
__source: {
|
|
12316
12321
|
fileName: _jsxFileName,
|
|
12317
|
-
lineNumber:
|
|
12322
|
+
lineNumber: 774
|
|
12318
12323
|
}
|
|
12319
12324
|
}, midContent));
|
|
12320
12325
|
}
|
|
@@ -12324,7 +12329,7 @@ class Main extends React$1.Component {
|
|
|
12324
12329
|
__self: this,
|
|
12325
12330
|
__source: {
|
|
12326
12331
|
fileName: _jsxFileName,
|
|
12327
|
-
lineNumber:
|
|
12332
|
+
lineNumber: 782
|
|
12328
12333
|
}
|
|
12329
12334
|
}, midContent);
|
|
12330
12335
|
}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "7.26.1-next.
|
|
7
|
+
"version": "7.26.1-next.7+9d14615fc",
|
|
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": "
|
|
27
|
+
"gitHead": "9d14615fc9d273d061c33e8cc55850f8671226a1",
|
|
28
28
|
"module": "src/index.js",
|
|
29
29
|
"exports": {
|
|
30
30
|
".": "./src/index.js",
|