@pie-element/math-inline 8.4.1-next.2 → 8.4.1-next.20
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 +36 -6
- package/lib/main.js.map +1 -1
- package/module/configure.js +1 -1
- package/module/element.js +60 -41
- package/module/manifest.json +1 -1
- package/module/print.js +60 -41
- package/package.json +2 -2
package/lib/main.js
CHANGED
|
@@ -86,6 +86,20 @@ function generateAdditionalKeys() {
|
|
|
86
86
|
});
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
function isChildOfCurrentPieElement(child, parent) {
|
|
90
|
+
var node = child;
|
|
91
|
+
|
|
92
|
+
while (node !== null) {
|
|
93
|
+
if (node === parent) {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
node = node.parentNode;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
|
|
89
103
|
function getKeyPadWidth() {
|
|
90
104
|
var additionalKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
91
105
|
var equationEditor = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -234,11 +248,17 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
234
248
|
}, 0);
|
|
235
249
|
});
|
|
236
250
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (event, id) {
|
|
251
|
+
// main layout has as id the actual pie-element id
|
|
252
|
+
// needed this to know if the event was triggered from the actual pie-element
|
|
253
|
+
var config = _this.props.model.config;
|
|
254
|
+
var myElement = document.getElementById(config.id);
|
|
255
|
+
var isTrigerredFromActualPieElement = true;
|
|
256
|
+
isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, myElement);
|
|
237
257
|
var isAnswerInputFocused = document.activeElement.getAttribute('aria-label') === 'Enter answer.';
|
|
238
258
|
var isClickOrTouchEvent = event.type === 'click' || event.type === 'touchstart';
|
|
239
259
|
|
|
240
260
|
if (isAnswerInputFocused && (event.key === 'ArrowDown' || isClickOrTouchEvent)) {
|
|
241
|
-
if (_this.state.activeAnswerBlock !== id) {
|
|
261
|
+
if (_this.state.activeAnswerBlock !== id && isTrigerredFromActualPieElement) {
|
|
242
262
|
_this.cleanupKeyDownListener();
|
|
243
263
|
|
|
244
264
|
_this.setState({
|
|
@@ -376,7 +396,11 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
376
396
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (e) {
|
|
377
397
|
var _ref3 = e || {},
|
|
378
398
|
relatedTarget = _ref3.relatedTarget,
|
|
379
|
-
currentTarget = _ref3.currentTarget;
|
|
399
|
+
currentTarget = _ref3.currentTarget; // our keypad is in tooltip
|
|
400
|
+
// in this way we see if event was triggered from the keypad
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
var isKeypadOpen = currentTarget && currentTarget.closest('[role=tooltip]');
|
|
380
404
|
|
|
381
405
|
function getParentWithRoleTooltip(element) {
|
|
382
406
|
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
@@ -412,9 +436,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
412
436
|
var childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;
|
|
413
437
|
|
|
414
438
|
if (!relatedTarget || !currentTarget || !(childWithDataKeypad !== null && childWithDataKeypad !== void 0 && childWithDataKeypad.attributes['data-keypad'])) {
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
439
|
+
// if event was trigered from the keypad, avoid closing the keypad
|
|
440
|
+
if (!isKeypadOpen) {
|
|
441
|
+
_this.setState({
|
|
442
|
+
activeAnswerBlock: ''
|
|
443
|
+
});
|
|
444
|
+
}
|
|
418
445
|
} // else {
|
|
419
446
|
// // Just for debugging purpose:
|
|
420
447
|
// console.log('\n\nNew childWithDataKeypad', childWithDataKeypad);
|
|
@@ -641,6 +668,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
641
668
|
responseType = _ref6.responseType,
|
|
642
669
|
equationEditor = _ref6.equationEditor,
|
|
643
670
|
customKeys = _ref6.customKeys,
|
|
671
|
+
id = _ref6.id,
|
|
644
672
|
_ref6$env = _ref6.env;
|
|
645
673
|
|
|
646
674
|
_ref6$env = _ref6$env === void 0 ? {} : _ref6$env;
|
|
@@ -781,7 +809,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
781
809
|
|
|
782
810
|
if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) || rationale && (0, _renderUi.hasText)(rationale) || feedback)) {
|
|
783
811
|
return /*#__PURE__*/_react["default"].createElement(_renderUi.UiLayout, {
|
|
784
|
-
extraCSSRules: extraCSSRules
|
|
812
|
+
extraCSSRules: extraCSSRules,
|
|
813
|
+
id: id
|
|
785
814
|
}, /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
|
|
786
815
|
interactive: true,
|
|
787
816
|
enterTouchDelay: 0,
|
|
@@ -841,6 +870,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
841
870
|
}
|
|
842
871
|
|
|
843
872
|
return /*#__PURE__*/_react["default"].createElement(_renderUi.UiLayout, {
|
|
873
|
+
id: id,
|
|
844
874
|
extraCSSRules: extraCSSRules,
|
|
845
875
|
className: classes.mainContainer,
|
|
846
876
|
ref: function ref(r) {
|
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","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","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","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","current","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","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, 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 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 if (this.state.activeAnswerBlock !== id) {\n this.cleanupKeyDownListener();\n this.setState({ activeAnswerBlock: id });\n this.onSubFieldFocus(id)\n }\n\n if (event.key === 'ArrowDown') {\n this.focusFirstKeypadElement();\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 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 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 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 extraCSSRules={extraCSSRules} className={classes.mainContainer} 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 {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 '& > .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","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","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","myElement","getElementById","isTrigerredFromActualPieElement","target","isAnswerInputFocused","activeElement","getAttribute","isClickOrTouchEvent","type","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","mqStatic","mathField","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","isKeypadOpen","getParentWithRoleTooltip","element","depth","offsetParent","getDeepChildDataKeypad","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","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","current","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","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, 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 (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\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 // main layout has as id the actual pie-element id\n // needed this to know if the event was triggered from the actual pie-element\n const { config } = this.props.model;\n const myElement = document.getElementById(config.id);\n let isTrigerredFromActualPieElement = true;\n isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, myElement);\n\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 if (this.state.activeAnswerBlock !== id && isTrigerredFromActualPieElement) {\n this.cleanupKeyDownListener();\n this.setState({ activeAnswerBlock: id });\n this.onSubFieldFocus(id);\n }\n\n if (event.key === 'ArrowDown') {\n this.focusFirstKeypadElement();\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} id={id}>\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 '& > .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/configure.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.2.0/module/index.js";
|
|
2
2
|
import {_dll_pie_lib__pie_toolbox_config_ui, _dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_editable_html} from "../../../@pie-lib/pie-toolbox-module@5.8.1/module/index.js";
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
function getDefaultExportFromCjs(x) {
|
package/module/element.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.2.0/module/index.js";
|
|
2
2
|
import {_dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@5.8.1/module/index.js";
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
function getDefaultExportFromCjs(x) {
|
|
@@ -11837,6 +11837,16 @@ function generateAdditionalKeys(keyData = []) {
|
|
|
11837
11837
|
label: key
|
|
11838
11838
|
}));
|
|
11839
11839
|
}
|
|
11840
|
+
function isChildOfCurrentPieElement(child, parent) {
|
|
11841
|
+
let node = child;
|
|
11842
|
+
while (node !== null) {
|
|
11843
|
+
if (node === parent) {
|
|
11844
|
+
return true;
|
|
11845
|
+
}
|
|
11846
|
+
node = node.parentNode;
|
|
11847
|
+
}
|
|
11848
|
+
return false;
|
|
11849
|
+
}
|
|
11840
11850
|
function getKeyPadWidth(additionalKeys = [], equationEditor) {
|
|
11841
11851
|
return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);
|
|
11842
11852
|
}
|
|
@@ -12062,10 +12072,14 @@ class Main extends React$1.Component {
|
|
|
12062
12072
|
}
|
|
12063
12073
|
__init4() {
|
|
12064
12074
|
this.handleKeyDown = (event, id) => {
|
|
12075
|
+
const {config} = this.props.model;
|
|
12076
|
+
const myElement = document.getElementById(config.id);
|
|
12077
|
+
let isTrigerredFromActualPieElement = true;
|
|
12078
|
+
isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, myElement);
|
|
12065
12079
|
const isAnswerInputFocused = document.activeElement.getAttribute('aria-label') === 'Enter answer.';
|
|
12066
12080
|
const isClickOrTouchEvent = event.type === 'click' || event.type === 'touchstart';
|
|
12067
12081
|
if (isAnswerInputFocused && (event.key === 'ArrowDown' || isClickOrTouchEvent)) {
|
|
12068
|
-
if (this.state.activeAnswerBlock !== id) {
|
|
12082
|
+
if (this.state.activeAnswerBlock !== id && isTrigerredFromActualPieElement) {
|
|
12069
12083
|
this.cleanupKeyDownListener();
|
|
12070
12084
|
this.setState({
|
|
12071
12085
|
activeAnswerBlock: id
|
|
@@ -12221,6 +12235,7 @@ class Main extends React$1.Component {
|
|
|
12221
12235
|
__init16() {
|
|
12222
12236
|
this.onBlur = e => {
|
|
12223
12237
|
const {relatedTarget, currentTarget} = e || ({});
|
|
12238
|
+
const isKeypadOpen = currentTarget && currentTarget.closest('[role=tooltip]');
|
|
12224
12239
|
function getParentWithRoleTooltip(element, depth = 0) {
|
|
12225
12240
|
if (!element || depth >= 16) return null;
|
|
12226
12241
|
const parent = element.offsetParent;
|
|
@@ -12242,9 +12257,11 @@ class Main extends React$1.Component {
|
|
|
12242
12257
|
const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);
|
|
12243
12258
|
const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;
|
|
12244
12259
|
if (!relatedTarget || !currentTarget || !_optionalChain([childWithDataKeypad, 'optionalAccess', _16 => _16.attributes, 'access', _17 => _17['data-keypad']])) {
|
|
12245
|
-
|
|
12246
|
-
|
|
12247
|
-
|
|
12260
|
+
if (!isKeypadOpen) {
|
|
12261
|
+
this.setState({
|
|
12262
|
+
activeAnswerBlock: ''
|
|
12263
|
+
});
|
|
12264
|
+
}
|
|
12248
12265
|
}
|
|
12249
12266
|
};
|
|
12250
12267
|
}
|
|
@@ -12266,7 +12283,7 @@ class Main extends React$1.Component {
|
|
|
12266
12283
|
if (!config) {
|
|
12267
12284
|
return null;
|
|
12268
12285
|
}
|
|
12269
|
-
const {showNote, note, prompt, responses, responseType, equationEditor, customKeys, env: {mode, role} = {}} = config || ({});
|
|
12286
|
+
const {showNote, note, prompt, responses, responseType, equationEditor, customKeys, id, env: {mode, role} = {}} = config || ({});
|
|
12270
12287
|
const displayNote = (showCorrect || mode === 'view' && role === 'instructor') && showNote && note;
|
|
12271
12288
|
const emptyResponse = isEmpty(responses);
|
|
12272
12289
|
const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';
|
|
@@ -12281,7 +12298,7 @@ class Main extends React$1.Component {
|
|
|
12281
12298
|
__self: this,
|
|
12282
12299
|
__source: {
|
|
12283
12300
|
fileName: _jsxFileName,
|
|
12284
|
-
lineNumber:
|
|
12301
|
+
lineNumber: 604
|
|
12285
12302
|
}
|
|
12286
12303
|
}, React$1.createElement(mq.Static, {
|
|
12287
12304
|
className: classes.static,
|
|
@@ -12295,7 +12312,7 @@ class Main extends React$1.Component {
|
|
|
12295
12312
|
__self: this,
|
|
12296
12313
|
__source: {
|
|
12297
12314
|
fileName: _jsxFileName,
|
|
12298
|
-
lineNumber:
|
|
12315
|
+
lineNumber: 605
|
|
12299
12316
|
}
|
|
12300
12317
|
}));
|
|
12301
12318
|
const midContent = React$1.createElement('div', {
|
|
@@ -12303,14 +12320,14 @@ class Main extends React$1.Component {
|
|
|
12303
12320
|
__self: this,
|
|
12304
12321
|
__source: {
|
|
12305
12322
|
fileName: _jsxFileName,
|
|
12306
|
-
lineNumber:
|
|
12323
|
+
lineNumber: 619
|
|
12307
12324
|
}
|
|
12308
12325
|
}, mode === 'gather' && React$1.createElement('h2', {
|
|
12309
12326
|
className: classes.srOnly,
|
|
12310
12327
|
__self: this,
|
|
12311
12328
|
__source: {
|
|
12312
12329
|
fileName: _jsxFileName,
|
|
12313
|
-
lineNumber:
|
|
12330
|
+
lineNumber: 620
|
|
12314
12331
|
}
|
|
12315
12332
|
}, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12316
12333
|
className: classes.collapsible,
|
|
@@ -12321,7 +12338,7 @@ class Main extends React$1.Component {
|
|
|
12321
12338
|
__self: this,
|
|
12322
12339
|
__source: {
|
|
12323
12340
|
fileName: _jsxFileName,
|
|
12324
|
-
lineNumber:
|
|
12341
|
+
lineNumber: 626
|
|
12325
12342
|
}
|
|
12326
12343
|
}, React$1.createElement('div', {
|
|
12327
12344
|
dangerouslySetInnerHTML: {
|
|
@@ -12330,7 +12347,7 @@ class Main extends React$1.Component {
|
|
|
12330
12347
|
__self: this,
|
|
12331
12348
|
__source: {
|
|
12332
12349
|
fileName: _jsxFileName,
|
|
12333
|
-
lineNumber:
|
|
12350
|
+
lineNumber: 630
|
|
12334
12351
|
}
|
|
12335
12352
|
})) : React$1.createElement('div', {
|
|
12336
12353
|
dangerouslySetInnerHTML: {
|
|
@@ -12339,28 +12356,28 @@ class Main extends React$1.Component {
|
|
|
12339
12356
|
__self: this,
|
|
12340
12357
|
__source: {
|
|
12341
12358
|
fileName: _jsxFileName,
|
|
12342
|
-
lineNumber:
|
|
12359
|
+
lineNumber: 633
|
|
12343
12360
|
}
|
|
12344
12361
|
})), prompt && React$1.createElement('div', {
|
|
12345
12362
|
className: classes.promptContainer,
|
|
12346
12363
|
__self: this,
|
|
12347
12364
|
__source: {
|
|
12348
12365
|
fileName: _jsxFileName,
|
|
12349
|
-
lineNumber:
|
|
12366
|
+
lineNumber: 637
|
|
12350
12367
|
}
|
|
12351
12368
|
}, React$1.createElement(PreviewPrompt, {
|
|
12352
12369
|
prompt: prompt,
|
|
12353
12370
|
__self: this,
|
|
12354
12371
|
__source: {
|
|
12355
12372
|
fileName: _jsxFileName,
|
|
12356
|
-
lineNumber:
|
|
12373
|
+
lineNumber: 638
|
|
12357
12374
|
}
|
|
12358
12375
|
})), studentPrintMode ? printView : React$1.createElement(Readable, {
|
|
12359
12376
|
false: true,
|
|
12360
12377
|
__self: this,
|
|
12361
12378
|
__source: {
|
|
12362
12379
|
fileName: _jsxFileName,
|
|
12363
|
-
lineNumber:
|
|
12380
|
+
lineNumber: 645
|
|
12364
12381
|
}
|
|
12365
12382
|
}, React$1.createElement('div', {
|
|
12366
12383
|
className: classes.inputAndKeypadContainer,
|
|
@@ -12368,7 +12385,7 @@ class Main extends React$1.Component {
|
|
|
12368
12385
|
__self: this,
|
|
12369
12386
|
__source: {
|
|
12370
12387
|
fileName: _jsxFileName,
|
|
12371
|
-
lineNumber:
|
|
12388
|
+
lineNumber: 646
|
|
12372
12389
|
}
|
|
12373
12390
|
}, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
|
|
12374
12391
|
onSimpleResponseChange: this.onSimpleResponseChange,
|
|
@@ -12381,7 +12398,7 @@ class Main extends React$1.Component {
|
|
|
12381
12398
|
__self: this,
|
|
12382
12399
|
__source: {
|
|
12383
12400
|
fileName: _jsxFileName,
|
|
12384
|
-
lineNumber:
|
|
12401
|
+
lineNumber: 648
|
|
12385
12402
|
}
|
|
12386
12403
|
}), responseType === ResponseTypes.advanced && React$1.createElement('div', {
|
|
12387
12404
|
ref: tooltipContainerRef,
|
|
@@ -12395,7 +12412,7 @@ class Main extends React$1.Component {
|
|
|
12395
12412
|
__self: this,
|
|
12396
12413
|
__source: {
|
|
12397
12414
|
fileName: _jsxFileName,
|
|
12398
|
-
lineNumber:
|
|
12415
|
+
lineNumber: 660
|
|
12399
12416
|
}
|
|
12400
12417
|
}, React$1.createElement(Tooltip, {
|
|
12401
12418
|
ref: ref => this.setTooltipRef(ref),
|
|
@@ -12429,7 +12446,7 @@ class Main extends React$1.Component {
|
|
|
12429
12446
|
__self: this,
|
|
12430
12447
|
__source: {
|
|
12431
12448
|
fileName: _jsxFileName,
|
|
12432
|
-
lineNumber:
|
|
12449
|
+
lineNumber: 695
|
|
12433
12450
|
}
|
|
12434
12451
|
}, React$1.createElement(HorizontalKeypad, {
|
|
12435
12452
|
additionalKeys: additionalKeys,
|
|
@@ -12438,13 +12455,13 @@ class Main extends React$1.Component {
|
|
|
12438
12455
|
__self: this,
|
|
12439
12456
|
__source: {
|
|
12440
12457
|
fileName: _jsxFileName,
|
|
12441
|
-
lineNumber:
|
|
12458
|
+
lineNumber: 704
|
|
12442
12459
|
}
|
|
12443
12460
|
})) || null),
|
|
12444
12461
|
__self: this,
|
|
12445
12462
|
__source: {
|
|
12446
12463
|
fileName: _jsxFileName,
|
|
12447
|
-
lineNumber:
|
|
12464
|
+
lineNumber: 670
|
|
12448
12465
|
}
|
|
12449
12466
|
}, React$1.createElement(mq.Static, {
|
|
12450
12467
|
className: classes.static,
|
|
@@ -12458,7 +12475,7 @@ class Main extends React$1.Component {
|
|
|
12458
12475
|
__self: this,
|
|
12459
12476
|
__source: {
|
|
12460
12477
|
fileName: _jsxFileName,
|
|
12461
|
-
lineNumber:
|
|
12478
|
+
lineNumber: 714
|
|
12462
12479
|
}
|
|
12463
12480
|
}))))), viewMode && displayNote && React$1.createElement('div', {
|
|
12464
12481
|
className: classes.note,
|
|
@@ -12468,7 +12485,7 @@ class Main extends React$1.Component {
|
|
|
12468
12485
|
__self: this,
|
|
12469
12486
|
__source: {
|
|
12470
12487
|
fileName: _jsxFileName,
|
|
12471
|
-
lineNumber:
|
|
12488
|
+
lineNumber: 732
|
|
12472
12489
|
}
|
|
12473
12490
|
}), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12474
12491
|
labels: {
|
|
@@ -12478,7 +12495,7 @@ class Main extends React$1.Component {
|
|
|
12478
12495
|
__self: this,
|
|
12479
12496
|
__source: {
|
|
12480
12497
|
fileName: _jsxFileName,
|
|
12481
|
-
lineNumber:
|
|
12498
|
+
lineNumber: 739
|
|
12482
12499
|
}
|
|
12483
12500
|
}, React$1.createElement('div', {
|
|
12484
12501
|
dangerouslySetInnerHTML: {
|
|
@@ -12487,7 +12504,7 @@ class Main extends React$1.Component {
|
|
|
12487
12504
|
__self: this,
|
|
12488
12505
|
__source: {
|
|
12489
12506
|
fileName: _jsxFileName,
|
|
12490
|
-
lineNumber:
|
|
12507
|
+
lineNumber: 740
|
|
12491
12508
|
}
|
|
12492
12509
|
})) : React$1.createElement('div', {
|
|
12493
12510
|
dangerouslySetInnerHTML: {
|
|
@@ -12496,16 +12513,17 @@ class Main extends React$1.Component {
|
|
|
12496
12513
|
__self: this,
|
|
12497
12514
|
__source: {
|
|
12498
12515
|
fileName: _jsxFileName,
|
|
12499
|
-
lineNumber:
|
|
12516
|
+
lineNumber: 743
|
|
12500
12517
|
}
|
|
12501
12518
|
})));
|
|
12502
12519
|
if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
|
|
12503
12520
|
return React$1.createElement(UiLayout, {
|
|
12504
12521
|
extraCSSRules: extraCSSRules,
|
|
12522
|
+
id: id,
|
|
12505
12523
|
__self: this,
|
|
12506
12524
|
__source: {
|
|
12507
12525
|
fileName: _jsxFileName,
|
|
12508
|
-
lineNumber:
|
|
12526
|
+
lineNumber: 756
|
|
12509
12527
|
}
|
|
12510
12528
|
}, React$1.createElement(Tooltip, {
|
|
12511
12529
|
interactive: true,
|
|
@@ -12518,14 +12536,14 @@ class Main extends React$1.Component {
|
|
|
12518
12536
|
__self: this,
|
|
12519
12537
|
__source: {
|
|
12520
12538
|
fileName: _jsxFileName,
|
|
12521
|
-
lineNumber:
|
|
12539
|
+
lineNumber: 765
|
|
12522
12540
|
}
|
|
12523
12541
|
}, React$1.createElement('div', {
|
|
12524
12542
|
className: classes.main,
|
|
12525
12543
|
__self: this,
|
|
12526
12544
|
__source: {
|
|
12527
12545
|
fileName: _jsxFileName,
|
|
12528
|
-
lineNumber:
|
|
12546
|
+
lineNumber: 766
|
|
12529
12547
|
}
|
|
12530
12548
|
}, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
|
|
12531
12549
|
language: language,
|
|
@@ -12536,7 +12554,7 @@ class Main extends React$1.Component {
|
|
|
12536
12554
|
__self: this,
|
|
12537
12555
|
__source: {
|
|
12538
12556
|
fileName: _jsxFileName,
|
|
12539
|
-
lineNumber:
|
|
12557
|
+
lineNumber: 768
|
|
12540
12558
|
}
|
|
12541
12559
|
})), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
|
|
12542
12560
|
className: classes.collapsible,
|
|
@@ -12548,14 +12566,14 @@ class Main extends React$1.Component {
|
|
|
12548
12566
|
__self: this,
|
|
12549
12567
|
__source: {
|
|
12550
12568
|
fileName: _jsxFileName,
|
|
12551
|
-
lineNumber:
|
|
12569
|
+
lineNumber: 779
|
|
12552
12570
|
}
|
|
12553
12571
|
}, React$1.createElement(PreviewPrompt, {
|
|
12554
12572
|
prompt: teacherInstructions,
|
|
12555
12573
|
__self: this,
|
|
12556
12574
|
__source: {
|
|
12557
12575
|
fileName: _jsxFileName,
|
|
12558
|
-
lineNumber:
|
|
12576
|
+
lineNumber: 787
|
|
12559
12577
|
}
|
|
12560
12578
|
})), displayNote && hasText(note) && React$1.createElement(Collapsible, {
|
|
12561
12579
|
className: classes.collapsible,
|
|
@@ -12571,14 +12589,14 @@ class Main extends React$1.Component {
|
|
|
12571
12589
|
__self: this,
|
|
12572
12590
|
__source: {
|
|
12573
12591
|
fileName: _jsxFileName,
|
|
12574
|
-
lineNumber:
|
|
12592
|
+
lineNumber: 791
|
|
12575
12593
|
}
|
|
12576
12594
|
}, React$1.createElement(PreviewPrompt, {
|
|
12577
12595
|
prompt: note,
|
|
12578
12596
|
__self: this,
|
|
12579
12597
|
__source: {
|
|
12580
12598
|
fileName: _jsxFileName,
|
|
12581
|
-
lineNumber:
|
|
12599
|
+
lineNumber: 799
|
|
12582
12600
|
}
|
|
12583
12601
|
})), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
|
|
12584
12602
|
className: classes.collapsible,
|
|
@@ -12590,14 +12608,14 @@ class Main extends React$1.Component {
|
|
|
12590
12608
|
__self: this,
|
|
12591
12609
|
__source: {
|
|
12592
12610
|
fileName: _jsxFileName,
|
|
12593
|
-
lineNumber:
|
|
12611
|
+
lineNumber: 804
|
|
12594
12612
|
}
|
|
12595
12613
|
}, React$1.createElement(PreviewPrompt, {
|
|
12596
12614
|
prompt: rationale,
|
|
12597
12615
|
__self: this,
|
|
12598
12616
|
__source: {
|
|
12599
12617
|
fileName: _jsxFileName,
|
|
12600
|
-
lineNumber:
|
|
12618
|
+
lineNumber: 812
|
|
12601
12619
|
}
|
|
12602
12620
|
})), feedback && React$1.createElement(Feedback, {
|
|
12603
12621
|
correctness: correctness.correctness,
|
|
@@ -12605,13 +12623,13 @@ class Main extends React$1.Component {
|
|
|
12605
12623
|
__self: this,
|
|
12606
12624
|
__source: {
|
|
12607
12625
|
fileName: _jsxFileName,
|
|
12608
|
-
lineNumber:
|
|
12626
|
+
lineNumber: 816
|
|
12609
12627
|
}
|
|
12610
12628
|
})),
|
|
12611
12629
|
__self: this,
|
|
12612
12630
|
__source: {
|
|
12613
12631
|
fileName: _jsxFileName,
|
|
12614
|
-
lineNumber:
|
|
12632
|
+
lineNumber: 757
|
|
12615
12633
|
}
|
|
12616
12634
|
}, React$1.createElement('div', {
|
|
12617
12635
|
className: classes.mainContainer,
|
|
@@ -12619,11 +12637,12 @@ class Main extends React$1.Component {
|
|
|
12619
12637
|
__self: this,
|
|
12620
12638
|
__source: {
|
|
12621
12639
|
fileName: _jsxFileName,
|
|
12622
|
-
lineNumber:
|
|
12640
|
+
lineNumber: 820
|
|
12623
12641
|
}
|
|
12624
12642
|
}, midContent)));
|
|
12625
12643
|
}
|
|
12626
12644
|
return React$1.createElement(UiLayout, {
|
|
12645
|
+
id: id,
|
|
12627
12646
|
extraCSSRules: extraCSSRules,
|
|
12628
12647
|
className: classes.mainContainer,
|
|
12629
12648
|
ref: r => {
|
|
@@ -12633,7 +12652,7 @@ class Main extends React$1.Component {
|
|
|
12633
12652
|
__self: this,
|
|
12634
12653
|
__source: {
|
|
12635
12654
|
fileName: _jsxFileName,
|
|
12636
|
-
lineNumber:
|
|
12655
|
+
lineNumber: 829
|
|
12637
12656
|
}
|
|
12638
12657
|
}, midContent);
|
|
12639
12658
|
}
|
package/module/manifest.json
CHANGED
package/module/print.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_pie_framework__mathquill, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.2.0/module/index.js";
|
|
2
2
|
import {_dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@5.8.1/module/index.js";
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
function getDefaultExportFromCjs(x) {
|
|
@@ -11574,6 +11574,16 @@ function generateAdditionalKeys(keyData = []) {
|
|
|
11574
11574
|
label: key
|
|
11575
11575
|
}));
|
|
11576
11576
|
}
|
|
11577
|
+
function isChildOfCurrentPieElement(child, parent) {
|
|
11578
|
+
let node = child;
|
|
11579
|
+
while (node !== null) {
|
|
11580
|
+
if (node === parent) {
|
|
11581
|
+
return true;
|
|
11582
|
+
}
|
|
11583
|
+
node = node.parentNode;
|
|
11584
|
+
}
|
|
11585
|
+
return false;
|
|
11586
|
+
}
|
|
11577
11587
|
function getKeyPadWidth(additionalKeys = [], equationEditor) {
|
|
11578
11588
|
return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);
|
|
11579
11589
|
}
|
|
@@ -11799,10 +11809,14 @@ class Main extends React$1.Component {
|
|
|
11799
11809
|
}
|
|
11800
11810
|
__init4() {
|
|
11801
11811
|
this.handleKeyDown = (event, id) => {
|
|
11812
|
+
const {config} = this.props.model;
|
|
11813
|
+
const myElement = document.getElementById(config.id);
|
|
11814
|
+
let isTrigerredFromActualPieElement = true;
|
|
11815
|
+
isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, myElement);
|
|
11802
11816
|
const isAnswerInputFocused = document.activeElement.getAttribute('aria-label') === 'Enter answer.';
|
|
11803
11817
|
const isClickOrTouchEvent = event.type === 'click' || event.type === 'touchstart';
|
|
11804
11818
|
if (isAnswerInputFocused && (event.key === 'ArrowDown' || isClickOrTouchEvent)) {
|
|
11805
|
-
if (this.state.activeAnswerBlock !== id) {
|
|
11819
|
+
if (this.state.activeAnswerBlock !== id && isTrigerredFromActualPieElement) {
|
|
11806
11820
|
this.cleanupKeyDownListener();
|
|
11807
11821
|
this.setState({
|
|
11808
11822
|
activeAnswerBlock: id
|
|
@@ -11958,6 +11972,7 @@ class Main extends React$1.Component {
|
|
|
11958
11972
|
__init16() {
|
|
11959
11973
|
this.onBlur = e => {
|
|
11960
11974
|
const {relatedTarget, currentTarget} = e || ({});
|
|
11975
|
+
const isKeypadOpen = currentTarget && currentTarget.closest('[role=tooltip]');
|
|
11961
11976
|
function getParentWithRoleTooltip(element, depth = 0) {
|
|
11962
11977
|
if (!element || depth >= 16) return null;
|
|
11963
11978
|
const parent = element.offsetParent;
|
|
@@ -11979,9 +11994,11 @@ class Main extends React$1.Component {
|
|
|
11979
11994
|
const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);
|
|
11980
11995
|
const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;
|
|
11981
11996
|
if (!relatedTarget || !currentTarget || !_optionalChain([childWithDataKeypad, 'optionalAccess', _16 => _16.attributes, 'access', _17 => _17['data-keypad']])) {
|
|
11982
|
-
|
|
11983
|
-
|
|
11984
|
-
|
|
11997
|
+
if (!isKeypadOpen) {
|
|
11998
|
+
this.setState({
|
|
11999
|
+
activeAnswerBlock: ''
|
|
12000
|
+
});
|
|
12001
|
+
}
|
|
11985
12002
|
}
|
|
11986
12003
|
};
|
|
11987
12004
|
}
|
|
@@ -12003,7 +12020,7 @@ class Main extends React$1.Component {
|
|
|
12003
12020
|
if (!config) {
|
|
12004
12021
|
return null;
|
|
12005
12022
|
}
|
|
12006
|
-
const {showNote, note, prompt, responses, responseType, equationEditor, customKeys, env: {mode, role} = {}} = config || ({});
|
|
12023
|
+
const {showNote, note, prompt, responses, responseType, equationEditor, customKeys, id, env: {mode, role} = {}} = config || ({});
|
|
12007
12024
|
const displayNote = (showCorrect || mode === 'view' && role === 'instructor') && showNote && note;
|
|
12008
12025
|
const emptyResponse = isEmpty(responses);
|
|
12009
12026
|
const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';
|
|
@@ -12018,7 +12035,7 @@ class Main extends React$1.Component {
|
|
|
12018
12035
|
__self: this,
|
|
12019
12036
|
__source: {
|
|
12020
12037
|
fileName: _jsxFileName,
|
|
12021
|
-
lineNumber:
|
|
12038
|
+
lineNumber: 604
|
|
12022
12039
|
}
|
|
12023
12040
|
}, React$1.createElement(mq.Static, {
|
|
12024
12041
|
className: classes.static,
|
|
@@ -12032,7 +12049,7 @@ class Main extends React$1.Component {
|
|
|
12032
12049
|
__self: this,
|
|
12033
12050
|
__source: {
|
|
12034
12051
|
fileName: _jsxFileName,
|
|
12035
|
-
lineNumber:
|
|
12052
|
+
lineNumber: 605
|
|
12036
12053
|
}
|
|
12037
12054
|
}));
|
|
12038
12055
|
const midContent = React$1.createElement('div', {
|
|
@@ -12040,14 +12057,14 @@ class Main extends React$1.Component {
|
|
|
12040
12057
|
__self: this,
|
|
12041
12058
|
__source: {
|
|
12042
12059
|
fileName: _jsxFileName,
|
|
12043
|
-
lineNumber:
|
|
12060
|
+
lineNumber: 619
|
|
12044
12061
|
}
|
|
12045
12062
|
}, mode === 'gather' && React$1.createElement('h2', {
|
|
12046
12063
|
className: classes.srOnly,
|
|
12047
12064
|
__self: this,
|
|
12048
12065
|
__source: {
|
|
12049
12066
|
fileName: _jsxFileName,
|
|
12050
|
-
lineNumber:
|
|
12067
|
+
lineNumber: 620
|
|
12051
12068
|
}
|
|
12052
12069
|
}, "Math Equation Response Question"), viewMode && teacherInstructions && hasText(teacherInstructions) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12053
12070
|
className: classes.collapsible,
|
|
@@ -12058,7 +12075,7 @@ class Main extends React$1.Component {
|
|
|
12058
12075
|
__self: this,
|
|
12059
12076
|
__source: {
|
|
12060
12077
|
fileName: _jsxFileName,
|
|
12061
|
-
lineNumber:
|
|
12078
|
+
lineNumber: 626
|
|
12062
12079
|
}
|
|
12063
12080
|
}, React$1.createElement('div', {
|
|
12064
12081
|
dangerouslySetInnerHTML: {
|
|
@@ -12067,7 +12084,7 @@ class Main extends React$1.Component {
|
|
|
12067
12084
|
__self: this,
|
|
12068
12085
|
__source: {
|
|
12069
12086
|
fileName: _jsxFileName,
|
|
12070
|
-
lineNumber:
|
|
12087
|
+
lineNumber: 630
|
|
12071
12088
|
}
|
|
12072
12089
|
})) : React$1.createElement('div', {
|
|
12073
12090
|
dangerouslySetInnerHTML: {
|
|
@@ -12076,28 +12093,28 @@ class Main extends React$1.Component {
|
|
|
12076
12093
|
__self: this,
|
|
12077
12094
|
__source: {
|
|
12078
12095
|
fileName: _jsxFileName,
|
|
12079
|
-
lineNumber:
|
|
12096
|
+
lineNumber: 633
|
|
12080
12097
|
}
|
|
12081
12098
|
})), prompt && React$1.createElement('div', {
|
|
12082
12099
|
className: classes.promptContainer,
|
|
12083
12100
|
__self: this,
|
|
12084
12101
|
__source: {
|
|
12085
12102
|
fileName: _jsxFileName,
|
|
12086
|
-
lineNumber:
|
|
12103
|
+
lineNumber: 637
|
|
12087
12104
|
}
|
|
12088
12105
|
}, React$1.createElement(PreviewPrompt, {
|
|
12089
12106
|
prompt: prompt,
|
|
12090
12107
|
__self: this,
|
|
12091
12108
|
__source: {
|
|
12092
12109
|
fileName: _jsxFileName,
|
|
12093
|
-
lineNumber:
|
|
12110
|
+
lineNumber: 638
|
|
12094
12111
|
}
|
|
12095
12112
|
})), studentPrintMode ? printView : React$1.createElement(Readable, {
|
|
12096
12113
|
false: true,
|
|
12097
12114
|
__self: this,
|
|
12098
12115
|
__source: {
|
|
12099
12116
|
fileName: _jsxFileName,
|
|
12100
|
-
lineNumber:
|
|
12117
|
+
lineNumber: 645
|
|
12101
12118
|
}
|
|
12102
12119
|
}, React$1.createElement('div', {
|
|
12103
12120
|
className: classes.inputAndKeypadContainer,
|
|
@@ -12105,7 +12122,7 @@ class Main extends React$1.Component {
|
|
|
12105
12122
|
__self: this,
|
|
12106
12123
|
__source: {
|
|
12107
12124
|
fileName: _jsxFileName,
|
|
12108
|
-
lineNumber:
|
|
12125
|
+
lineNumber: 646
|
|
12109
12126
|
}
|
|
12110
12127
|
}, responseType === ResponseTypes.simple && React$1.createElement(SimpleQuestionBlock, {
|
|
12111
12128
|
onSimpleResponseChange: this.onSimpleResponseChange,
|
|
@@ -12118,7 +12135,7 @@ class Main extends React$1.Component {
|
|
|
12118
12135
|
__self: this,
|
|
12119
12136
|
__source: {
|
|
12120
12137
|
fileName: _jsxFileName,
|
|
12121
|
-
lineNumber:
|
|
12138
|
+
lineNumber: 648
|
|
12122
12139
|
}
|
|
12123
12140
|
}), responseType === ResponseTypes.advanced && React$1.createElement('div', {
|
|
12124
12141
|
ref: tooltipContainerRef,
|
|
@@ -12132,7 +12149,7 @@ class Main extends React$1.Component {
|
|
|
12132
12149
|
__self: this,
|
|
12133
12150
|
__source: {
|
|
12134
12151
|
fileName: _jsxFileName,
|
|
12135
|
-
lineNumber:
|
|
12152
|
+
lineNumber: 660
|
|
12136
12153
|
}
|
|
12137
12154
|
}, React$1.createElement(Tooltip, {
|
|
12138
12155
|
ref: ref => this.setTooltipRef(ref),
|
|
@@ -12166,7 +12183,7 @@ class Main extends React$1.Component {
|
|
|
12166
12183
|
__self: this,
|
|
12167
12184
|
__source: {
|
|
12168
12185
|
fileName: _jsxFileName,
|
|
12169
|
-
lineNumber:
|
|
12186
|
+
lineNumber: 695
|
|
12170
12187
|
}
|
|
12171
12188
|
}, React$1.createElement(HorizontalKeypad, {
|
|
12172
12189
|
additionalKeys: additionalKeys,
|
|
@@ -12175,13 +12192,13 @@ class Main extends React$1.Component {
|
|
|
12175
12192
|
__self: this,
|
|
12176
12193
|
__source: {
|
|
12177
12194
|
fileName: _jsxFileName,
|
|
12178
|
-
lineNumber:
|
|
12195
|
+
lineNumber: 704
|
|
12179
12196
|
}
|
|
12180
12197
|
})) || null),
|
|
12181
12198
|
__self: this,
|
|
12182
12199
|
__source: {
|
|
12183
12200
|
fileName: _jsxFileName,
|
|
12184
|
-
lineNumber:
|
|
12201
|
+
lineNumber: 670
|
|
12185
12202
|
}
|
|
12186
12203
|
}, React$1.createElement(mq.Static, {
|
|
12187
12204
|
className: classes.static,
|
|
@@ -12195,7 +12212,7 @@ class Main extends React$1.Component {
|
|
|
12195
12212
|
__self: this,
|
|
12196
12213
|
__source: {
|
|
12197
12214
|
fileName: _jsxFileName,
|
|
12198
|
-
lineNumber:
|
|
12215
|
+
lineNumber: 714
|
|
12199
12216
|
}
|
|
12200
12217
|
}))))), viewMode && displayNote && React$1.createElement('div', {
|
|
12201
12218
|
className: classes.note,
|
|
@@ -12205,7 +12222,7 @@ class Main extends React$1.Component {
|
|
|
12205
12222
|
__self: this,
|
|
12206
12223
|
__source: {
|
|
12207
12224
|
fileName: _jsxFileName,
|
|
12208
|
-
lineNumber:
|
|
12225
|
+
lineNumber: 732
|
|
12209
12226
|
}
|
|
12210
12227
|
}), viewMode && rationale && hasText(rationale) && (!animationsDisabled ? React$1.createElement(Collapsible, {
|
|
12211
12228
|
labels: {
|
|
@@ -12215,7 +12232,7 @@ class Main extends React$1.Component {
|
|
|
12215
12232
|
__self: this,
|
|
12216
12233
|
__source: {
|
|
12217
12234
|
fileName: _jsxFileName,
|
|
12218
|
-
lineNumber:
|
|
12235
|
+
lineNumber: 739
|
|
12219
12236
|
}
|
|
12220
12237
|
}, React$1.createElement('div', {
|
|
12221
12238
|
dangerouslySetInnerHTML: {
|
|
@@ -12224,7 +12241,7 @@ class Main extends React$1.Component {
|
|
|
12224
12241
|
__self: this,
|
|
12225
12242
|
__source: {
|
|
12226
12243
|
fileName: _jsxFileName,
|
|
12227
|
-
lineNumber:
|
|
12244
|
+
lineNumber: 740
|
|
12228
12245
|
}
|
|
12229
12246
|
})) : React$1.createElement('div', {
|
|
12230
12247
|
dangerouslySetInnerHTML: {
|
|
@@ -12233,16 +12250,17 @@ class Main extends React$1.Component {
|
|
|
12233
12250
|
__self: this,
|
|
12234
12251
|
__source: {
|
|
12235
12252
|
fileName: _jsxFileName,
|
|
12236
|
-
lineNumber:
|
|
12253
|
+
lineNumber: 743
|
|
12237
12254
|
}
|
|
12238
12255
|
})));
|
|
12239
12256
|
if (tooltipModeEnabled && (showCorrectAnswerToggle || teacherInstructions && hasText(teacherInstructions) || rationale && hasText(rationale) || feedback)) {
|
|
12240
12257
|
return React$1.createElement(UiLayout, {
|
|
12241
12258
|
extraCSSRules: extraCSSRules,
|
|
12259
|
+
id: id,
|
|
12242
12260
|
__self: this,
|
|
12243
12261
|
__source: {
|
|
12244
12262
|
fileName: _jsxFileName,
|
|
12245
|
-
lineNumber:
|
|
12263
|
+
lineNumber: 756
|
|
12246
12264
|
}
|
|
12247
12265
|
}, React$1.createElement(Tooltip, {
|
|
12248
12266
|
interactive: true,
|
|
@@ -12255,14 +12273,14 @@ class Main extends React$1.Component {
|
|
|
12255
12273
|
__self: this,
|
|
12256
12274
|
__source: {
|
|
12257
12275
|
fileName: _jsxFileName,
|
|
12258
|
-
lineNumber:
|
|
12276
|
+
lineNumber: 765
|
|
12259
12277
|
}
|
|
12260
12278
|
}, React$1.createElement('div', {
|
|
12261
12279
|
className: classes.main,
|
|
12262
12280
|
__self: this,
|
|
12263
12281
|
__source: {
|
|
12264
12282
|
fileName: _jsxFileName,
|
|
12265
|
-
lineNumber:
|
|
12283
|
+
lineNumber: 766
|
|
12266
12284
|
}
|
|
12267
12285
|
}, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
|
|
12268
12286
|
language: language,
|
|
@@ -12273,7 +12291,7 @@ class Main extends React$1.Component {
|
|
|
12273
12291
|
__self: this,
|
|
12274
12292
|
__source: {
|
|
12275
12293
|
fileName: _jsxFileName,
|
|
12276
|
-
lineNumber:
|
|
12294
|
+
lineNumber: 768
|
|
12277
12295
|
}
|
|
12278
12296
|
})), teacherInstructions && hasText(teacherInstructions) && React$1.createElement(Collapsible, {
|
|
12279
12297
|
className: classes.collapsible,
|
|
@@ -12285,14 +12303,14 @@ class Main extends React$1.Component {
|
|
|
12285
12303
|
__self: this,
|
|
12286
12304
|
__source: {
|
|
12287
12305
|
fileName: _jsxFileName,
|
|
12288
|
-
lineNumber:
|
|
12306
|
+
lineNumber: 779
|
|
12289
12307
|
}
|
|
12290
12308
|
}, React$1.createElement(PreviewPrompt, {
|
|
12291
12309
|
prompt: teacherInstructions,
|
|
12292
12310
|
__self: this,
|
|
12293
12311
|
__source: {
|
|
12294
12312
|
fileName: _jsxFileName,
|
|
12295
|
-
lineNumber:
|
|
12313
|
+
lineNumber: 787
|
|
12296
12314
|
}
|
|
12297
12315
|
})), displayNote && hasText(note) && React$1.createElement(Collapsible, {
|
|
12298
12316
|
className: classes.collapsible,
|
|
@@ -12308,14 +12326,14 @@ class Main extends React$1.Component {
|
|
|
12308
12326
|
__self: this,
|
|
12309
12327
|
__source: {
|
|
12310
12328
|
fileName: _jsxFileName,
|
|
12311
|
-
lineNumber:
|
|
12329
|
+
lineNumber: 791
|
|
12312
12330
|
}
|
|
12313
12331
|
}, React$1.createElement(PreviewPrompt, {
|
|
12314
12332
|
prompt: note,
|
|
12315
12333
|
__self: this,
|
|
12316
12334
|
__source: {
|
|
12317
12335
|
fileName: _jsxFileName,
|
|
12318
|
-
lineNumber:
|
|
12336
|
+
lineNumber: 799
|
|
12319
12337
|
}
|
|
12320
12338
|
})), rationale && hasText(rationale) && React$1.createElement(Collapsible, {
|
|
12321
12339
|
className: classes.collapsible,
|
|
@@ -12327,14 +12345,14 @@ class Main extends React$1.Component {
|
|
|
12327
12345
|
__self: this,
|
|
12328
12346
|
__source: {
|
|
12329
12347
|
fileName: _jsxFileName,
|
|
12330
|
-
lineNumber:
|
|
12348
|
+
lineNumber: 804
|
|
12331
12349
|
}
|
|
12332
12350
|
}, React$1.createElement(PreviewPrompt, {
|
|
12333
12351
|
prompt: rationale,
|
|
12334
12352
|
__self: this,
|
|
12335
12353
|
__source: {
|
|
12336
12354
|
fileName: _jsxFileName,
|
|
12337
|
-
lineNumber:
|
|
12355
|
+
lineNumber: 812
|
|
12338
12356
|
}
|
|
12339
12357
|
})), feedback && React$1.createElement(Feedback, {
|
|
12340
12358
|
correctness: correctness.correctness,
|
|
@@ -12342,13 +12360,13 @@ class Main extends React$1.Component {
|
|
|
12342
12360
|
__self: this,
|
|
12343
12361
|
__source: {
|
|
12344
12362
|
fileName: _jsxFileName,
|
|
12345
|
-
lineNumber:
|
|
12363
|
+
lineNumber: 816
|
|
12346
12364
|
}
|
|
12347
12365
|
})),
|
|
12348
12366
|
__self: this,
|
|
12349
12367
|
__source: {
|
|
12350
12368
|
fileName: _jsxFileName,
|
|
12351
|
-
lineNumber:
|
|
12369
|
+
lineNumber: 757
|
|
12352
12370
|
}
|
|
12353
12371
|
}, React$1.createElement('div', {
|
|
12354
12372
|
className: classes.mainContainer,
|
|
@@ -12356,11 +12374,12 @@ class Main extends React$1.Component {
|
|
|
12356
12374
|
__self: this,
|
|
12357
12375
|
__source: {
|
|
12358
12376
|
fileName: _jsxFileName,
|
|
12359
|
-
lineNumber:
|
|
12377
|
+
lineNumber: 820
|
|
12360
12378
|
}
|
|
12361
12379
|
}, midContent)));
|
|
12362
12380
|
}
|
|
12363
12381
|
return React$1.createElement(UiLayout, {
|
|
12382
|
+
id: id,
|
|
12364
12383
|
extraCSSRules: extraCSSRules,
|
|
12365
12384
|
className: classes.mainContainer,
|
|
12366
12385
|
ref: r => {
|
|
@@ -12370,7 +12389,7 @@ class Main extends React$1.Component {
|
|
|
12370
12389
|
__self: this,
|
|
12371
12390
|
__source: {
|
|
12372
12391
|
fileName: _jsxFileName,
|
|
12373
|
-
lineNumber:
|
|
12392
|
+
lineNumber: 829
|
|
12374
12393
|
}
|
|
12375
12394
|
}, midContent);
|
|
12376
12395
|
}
|
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.1-next.
|
|
7
|
+
"version": "8.4.1-next.20+94407182a",
|
|
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": "94407182a972d67e212e1fe33570a73ff00d14c6",
|
|
28
28
|
"module": "src/index.js",
|
|
29
29
|
"exports": {
|
|
30
30
|
".": "./src/index.js",
|