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