@pie-element/math-inline 11.0.5-esm.0 → 11.1.0-next.0

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.
Files changed (53) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/configure/CHANGELOG.md +69 -0
  3. package/configure/lib/configure.js +162 -240
  4. package/configure/lib/configure.js.map +1 -1
  5. package/configure/lib/defaults.js +8 -8
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/general-config-block.js +447 -564
  8. package/configure/lib/general-config-block.js.map +1 -1
  9. package/configure/lib/index.js +111 -176
  10. package/configure/lib/index.js.map +1 -1
  11. package/configure/lib/response.js +330 -388
  12. package/configure/lib/response.js.map +1 -1
  13. package/configure/lib/utils.js +15 -30
  14. package/configure/lib/utils.js.map +1 -1
  15. package/configure/package.json +14 -12
  16. package/controller/CHANGELOG.md +49 -0
  17. package/controller/lib/defaults.js +5 -8
  18. package/controller/lib/defaults.js.map +1 -1
  19. package/controller/lib/index.js +189 -278
  20. package/controller/lib/index.js.map +1 -1
  21. package/controller/lib/utils.js +1 -2
  22. package/controller/lib/utils.js.map +1 -1
  23. package/controller/package.json +7 -7
  24. package/lib/index.js +72 -125
  25. package/lib/index.js.map +1 -1
  26. package/lib/main.js +784 -889
  27. package/lib/main.js.map +1 -1
  28. package/lib/print.js +43 -84
  29. package/lib/print.js.map +1 -1
  30. package/lib/simple-question-block.js +125 -162
  31. package/lib/simple-question-block.js.map +1 -1
  32. package/lib/utils.js +1 -2
  33. package/lib/utils.js.map +1 -1
  34. package/module/configure.js +1 -1
  35. package/module/controller.js +2319 -2930
  36. package/module/element.js +1 -1
  37. package/module/index.html +1 -1
  38. package/module/manifest.json +7 -3
  39. package/module/print.html +1 -1
  40. package/module/print.js +1 -1
  41. package/package.json +21 -33
  42. package/esm/configure.css +0 -847
  43. package/esm/configure.js +0 -1769
  44. package/esm/configure.js.map +0 -1
  45. package/esm/controller.css +0 -847
  46. package/esm/controller.js +0 -416
  47. package/esm/controller.js.map +0 -1
  48. package/esm/element.css +0 -847
  49. package/esm/element.js +0 -1476
  50. package/esm/element.js.map +0 -1
  51. package/esm/print.css +0 -847
  52. package/esm/print.js +0 -1288
  53. package/esm/print.js.map +0 -1
package/esm/print.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"print.js","sources":["../src/utils.js","../src/simple-question-block.jsx","../src/main.jsx","../src/print.js"],"sourcesContent":["export const ResponseTypes = {\n advanced: 'Advanced Multi',\n simple: 'Simple',\n};\n","import React from 'react';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport { mq } from '@pie-lib/math-input';\nimport cx from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\n\nexport class SimpleQuestionBlockRaw extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n onSimpleResponseChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n emptyResponse: PropTypes.bool,\n session: PropTypes.object.isRequired,\n showCorrect: PropTypes.bool,\n onSubFieldFocus: PropTypes.func.isRequired,\n showKeypad: PropTypes.bool.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.mathToolBarId = `math-toolbar-${new Date().getTime()}`;\n }\n\n mathToolBarContainsTarget = (e) => document.getElementById(this.mathToolBarId).contains(e.target);\n\n handleClick = (e) => {\n try {\n if (!this.mathToolBarContainsTarget(e)) {\n this.setState({ showKeypad: false });\n }\n } catch (e) {\n // console.log(e.toString());\n }\n };\n\n onFocus = () => {\n const { onSubFieldFocus } = this.props;\n\n onSubFieldFocus(this.mathToolBarId);\n };\n\n render() {\n const { classes, model, showCorrect, session, emptyResponse, onSimpleResponseChange, showKeypad } = this.props;\n const { config, disabled, correctness } = model || {};\n\n if (!config) {\n return;\n }\n\n const correct = correctness && correctness.correct;\n const { responses, equationEditor } = config;\n\n return (\n <div className={classes.expression} data-keypad={true}>\n {showCorrect || disabled ? (\n <div\n className={cx(classes.static, {\n [classes.incorrect]: !emptyResponse && !correct && !showCorrect,\n [classes.correct]: !emptyResponse && (correct || showCorrect),\n })}\n >\n <mq.Static\n latex={showCorrect ? responses && responses.length && responses[0].answer : session.response || ''}\n />\n </div>\n ) : (\n <div id={this.mathToolBarId}>\n <MathToolbar\n classNames={{ editor: classes.responseEditor }}\n latex={session.response}\n keypadMode={equationEditor}\n onChange={onSimpleResponseChange}\n onDone={() => {}}\n onFocus={this.onFocus}\n controlledKeypad={true}\n showKeypad={showKeypad}\n hideDoneButton={true}\n />\n </div>\n )}\n </div>\n );\n }\n}\n\nconst SimpleQuestionBlock = withStyles((theme) => ({\n responseEditor: {\n display: 'flex',\n justifyContent: 'center',\n width: 'auto',\n maxWidth: 'fit-content',\n height: 'auto',\n textAlign: 'left',\n padding: theme.spacing.unit,\n '&.mq-math-mode': {\n border: `1px solid ${color.primaryLight()}`,\n },\n },\n expression: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n padding: theme.spacing.unit,\n },\n static: {\n color: color.text(),\n background: color.background(),\n border: `1px solid ${color.primaryLight()}`,\n width: 'fit-content',\n fontSize: '1rem',\n padding: theme.spacing.unit / 2,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n correct: {\n border: `2px solid ${color.correct()} !important`,\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n incorrect: {\n border: `2px solid ${color.incorrect()} !important`,\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n}))(SimpleQuestionBlockRaw);\n\nexport default SimpleQuestionBlock;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/math-input';\nimport { Feedback, Collapsible, Readable, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/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/render-ui';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/translator';\nimport ReactDOM from 'react-dom';\nconst { translator } = Translator;\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction isChildOfCurrentPieElement(child, parent) {\n let node = child;\n while (node !== null) {\n if (parent && node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction parseAnswers(session, model) {\n const answers = {};\n\n if (model.config && model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (session &&\n session.answers &&\n session.answers[`r${answerBlocks}`] &&\n session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n return answers;\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { model, session } = props;\n const answers = parseAnswers(session, model);\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n tooltipContainerRef: React.createRef(),\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n return {\n htmlString: `<div class=\"${classes.blockContainer}\">\n <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n <div class=\"${classes.blockMath}\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? classes.correct : classes.incorrect\n // );\n } else {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n countResponseOccurrences(expression) {\n const pattern = /\\{\\{response\\}\\}/g;\n const matches = expression?.match(pattern);\n\n return matches ? matches.length : 0;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n const { session } = this.props;\n const { session: nextSession = {} } = nextProps || {};\n\n // in case session props changed in parent, we need to catch this and update local state\n // example: when env is changing in pieoneer\n if (session && nextSession && !isEqual(session.answers, nextSession.answers)) {\n this.setState({\n session: { ...nextSession, answers: parseAnswers(nextSession, this.props.model) },\n });\n }\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n config.note &&\n config.language &&\n config.language !== nextConfig.language &&\n config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })\n ) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {\n setTimeout(() => this.updateAria(), 100);\n }\n\n if (\n (config && config.responses && config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate,\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n this.updateAria();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.handleAnswerBlockDomUpdate();\n\n const prevResponseType = prevProps.model?.config?.responseType;\n const currentResponseType = this.props.model?.config?.responseType;\n\n if (prevResponseType !== currentResponseType) {\n this.updateAria();\n }\n }\n\n updateAria = () => {\n const { classes } = this.props;\n\n if (this.root) {\n // Update aria-hidden for .mq-selectable elements\n const selectableElements = this.root.querySelectorAll('.mq-selectable');\n selectableElements.forEach((elem) => elem.setAttribute('aria-hidden', 'true'));\n\n // Update aria-label for textarea elements and add aria-describedby\n const textareaElements = this.root.querySelectorAll('textarea');\n textareaElements.forEach((elem, index) => {\n elem.setAttribute('aria-label', 'Enter answer.');\n\n // Create a unique id for each instructions element\n const instructionsId = `instructions-${index}`;\n\n // Find the parent element that contains the textarea\n const parent = elem.closest('.mq-textarea');\n\n if (parent) {\n // Create or find the instructions element within the parent\n let instructionsElement = parent.querySelector(`#${instructionsId}`);\n\n if (!instructionsElement) {\n instructionsElement = document.createElement('span');\n instructionsElement.id = instructionsId;\n instructionsElement.className = classes.srOnly;\n instructionsElement.textContent =\n 'This field supports both keypad and keyboard input. Use the keyboard to access and interact with the on-screen math keypad, which accepts LaTeX markup. Use the down arrow key to open the keypad and navigate its buttons. Use the escape key to close the keypad and return to the input field.';\n parent.insertBefore(instructionsElement, elem);\n }\n\n elem.setAttribute('aria-describedby', instructionsId);\n }\n });\n }\n };\n\n focusFirstKeypadElement = () => {\n setTimeout(() => {\n const keypadElement = document.querySelector('[data-keypad]');\n\n if (keypadElement) {\n const firstButton = keypadElement.querySelector(\"button, [role='button']\");\n\n if (firstButton) {\n firstButton.focus();\n }\n }\n }, 0);\n };\n\n handleKeyDown = (event, id) => {\n const isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, this.root);\n const isAnswerInputFocused =\n this.mqStatic && this.mqStatic.inputRef?.current\n ? this.mqStatic.inputRef?.current.contains(document.activeElement)\n : document.activeElement?.getAttribute('aria-label') === 'Enter answer.';\n const { key, type } = event;\n const isClickOrTouchEvent = type === 'click' || type === 'touchstart';\n\n if (isAnswerInputFocused && (key === 'ArrowDown' || isClickOrTouchEvent)) {\n if (this.state.activeAnswerBlock !== id && isTrigerredFromActualPieElement) {\n this.cleanupKeyDownListener();\n this.setState({ activeAnswerBlock: id }, () => {\n this.onSubFieldFocus(id);\n if (key === 'ArrowDown') {\n this.focusFirstKeypadElement();\n }\n });\n }\n } else if (event.key === 'Escape') {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n onSubFieldFocus = (id) => {\n if (!this.handleEvent) {\n this.handleEvent = (event) => {\n this.handleKeyDown(event, id);\n };\n\n document.addEventListener('keydown', this.handleEvent);\n document.addEventListener('click', this.handleEvent);\n document.addEventListener('touchstart', this.handleEvent);\n }\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 const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));\n const showTeacherInstructions =\n teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const printView = (\n <div className={classes.printContainer}>\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => {\n if (mqStatic) this.mqStatic = mqStatic;\n }}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </div>\n );\n\n const midContent = (\n <div className={classes.main}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n {viewMode &&\n showTeacherInstructions &&\n (!animationsDisabled ? (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }} />\n ))}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <div className={classes.inputAndKeypadContainer} tabIndex={0}>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n onSubFieldFocus={this.onSubFieldFocus}\n showKeypad={!!activeAnswerBlock}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div\n ref={tooltipContainerRef}\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !correct && !showCorrect,\n [classes.correct]: !emptyResponse && (correct || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n [classes.printCorrect]: printMode && alwaysShowCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={!!activeAnswerBlock}\n classes={{\n tooltip: classes.keypadTooltip,\n popper: classes.keypadTooltipPopper,\n }}\n PopperProps={{\n container: tooltipContainerRef?.current || undefined,\n placement: 'bottom-start',\n modifiers: {\n preventOverflow: {\n enabled: true,\n boundariesElement: 'body',\n },\n flip: {\n enabled: false,\n },\n },\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(additionalKeys, equationEditor),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => {\n if (mqStatic) this.mqStatic = mqStatic;\n }}\n latex={staticLatex}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </Tooltip>\n </div>\n )}\n </div>\n </Readable>\n )}\n\n {viewMode && displayNote && (\n <div className={classes.note} dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }} />\n )}\n\n {viewMode &&\n showRationale &&\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 (tooltipModeEnabled && (showCorrectAnswerToggle || showTeacherInstructions || showRationale || feedback)) {\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 {showTeacherInstructions && (\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 {showRationale && (\n <Collapsible\n className={classes.collapsible}\n key=\"collapsible-rationale\"\n labels={{\n hidden: 'Show Rationale',\n visible: 'Hide Rationale',\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n <div className={classes.mainContainer} ref={(r) => (this.root = r || this.root)}>\n {midContent}\n </div>\n </Tooltip>\n </UiLayout>\n );\n }\n\n return (\n <UiLayout\n id={id}\n extraCSSRules={extraCSSRules}\n className={classes.mainContainer}\n ref={(r) => {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(r);\n\n this.root = domNode || this.root;\n }}\n >\n {midContent}\n </UiLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n note: {\n paddingBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n // position: 'absolute',\n // right: 0,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n padding: theme.spacing.unit / 4,\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n // PD-4803 unset padding as events are not correctly propagated in the proximity of math input\n paddingRight: '0 !important',\n paddingLeft: '0 !important',\n '& > .mq-editable-field': {\n minWidth: '10px',\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n printCorrect: {\n border: `2px solid ${color.correct()} !important`,\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n flexShrink: 0,\n flexGrow: 0,\n flexBasis: 'auto', // take only the space needed for content + padding\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexGrow: 1, // take all the remaining space\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\n\nconst log = debug('pie-element:math-inline:print');\n\n/**\n * Live in same package as main element - so we can access some of the shared comps!\n *\n * - update pslb to build print if src/print.js is there\n * - update demo el\n * - get configure/controller building\n */\n\nconst preparePrintModel = (model, opts) => {\n const instr = opts.role === 'instructor';\n\n model.prompt = model.promptEnabled !== false ? model.prompt : undefined;\n model.teacherInstructions =\n instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;\n model.rationale = instr && model.rationaleEnabled !== false ? model.rationale : undefined;\n model.showTeacherInstructions = instr;\n model.alwaysShowCorrect = instr;\n model.printMode = true;\n model.feedback = undefined;\n model.expression = model.expression || '{{response}}';\n\n model.animationsDisabled = true;\n return {\n ...model,\n disabled: true,\n config: {\n ...model,\n env: { mode: instr ? 'evaluate' : model.mode, role: opts.role },\n },\n };\n};\n\nexport default class MathInlinePrint extends HTMLElement {\n constructor() {\n super();\n this._options = null;\n this._model = null;\n this._session = [];\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n const printModel = preparePrintModel(this._model, this._options);\n\n const element =\n this._options &&\n React.createElement(Main, {\n model: printModel,\n session: {},\n });\n\n ReactDOM.render(element, this, () => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n set options(o) {\n this._options = o;\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n }\n\n connectedCallback() {}\n}\n"],"names":["ResponseTypes","advanced","simple","SimpleQuestionBlockRaw","React","Component","constructor","props","mathToolBarContainsTarget","e","document","getElementById","mathToolBarId","contains","target","handleClick","setState","showKeypad","onFocus","onSubFieldFocus","Date","getTime","render","classes","model","showCorrect","session","emptyResponse","onSimpleResponseChange","config","disabled","correctness","correct","responses","equationEditor","expression","cx","static","incorrect","length","answer","response","editor","responseEditor","propTypes","PropTypes","object","func","isRequired","bool","SimpleQuestionBlock","withStyles","theme","display","justifyContent","width","maxWidth","height","textAlign","padding","spacing","unit","border","color","primaryLight","marginTop","marginBottom","text","background","fontSize","letterSpacing","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","Math","floor","prepareForStatic","state","printMode","alwaysShowCorrect","modelExpression","answerBlocks","replace","answers","blankSpace","repeat","value","parseAnswers","Main","handleAnswerBlockDomUpdate","root","Object","keys","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","StaticMath","renderMath","updateAria","selectableElements","querySelectorAll","elem","setAttribute","textareaElements","index","instructionsId","closest","instructionsElement","createElement","id","className","srOnly","insertBefore","focusFirstKeypadElement","setTimeout","keypadElement","firstButton","focus","handleKeyDown","event","isTrigerredFromActualPieElement","isAnswerInputFocused","mqStatic","inputRef","current","activeElement","getAttribute","type","isClickOrTouchEvent","activeAnswerBlock","cleanupKeyDownListener","handleEvent","addEventListener","removeEventListener","onDone","callOnSessionChange","toNodeData","data","setInput","input","onClick","c","clear","Array","isArray","vv","cmd","keystroke","onSessionChange","toggleShowCorrect","show","subFieldChanged","subfieldValue","updateSpans","completeAnswer","mathField","getFieldName","changeField","fields","find","k","tf","onBlur","relatedTarget","currentTarget","isKeypadOpen","getParentWithRoleTooltip","element","depth","offsetParent","getDeepChildDataKeypad","children","attributes","parentWithTooltipRole","childWithDataKeypad","tooltipContainerRef","createRef","UNSAFE_componentWillMount","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","countResponseOccurrences","pattern","matches","match","UNSAFE_componentWillReceiveProps","nextProps","nextConfig","nextSession","isEqual","note","language","t","lng","env","mode","newAnswers","shouldComponentUpdate","nextState","sameModel","sameState","componentDidMount","componentDidUpdate","prevProps","prevState","prevResponseType","responseType","currentResponseType","componentWillUnmount","setTooltipRef","ref","div","firstChild","extraCSSRules","teacherInstructions","rationale","feedback","animationsDisabled","showNote","prompt","customKeys","role","displayNote","isEmpty","showCorrectAnswerToggle","tooltipModeEnabled","staticLatex","viewMode","studentPrintMode","showRationale","hasText","hasMedia","showTeacherInstructions","printView","printContainer","midContent","main","collapsible","hidden","visible","__html","promptContainer","inputAndKeypadContainer","showCorrectness","correctAnswerShown","printCorrect","tooltip","keypadTooltip","popper","keypadTooltipPopper","container","undefined","placement","modifiers","preventOverflow","enabled","boundariesElement","flip","responseContainer","tooltipPopper","toggle","mainContainer","r","domNode","ReactDOM","findDOMNode","styles","backgroundColor","secondary","opacity","paddingTop","position","title","paddingBottom","zIndex","minWidth","paddingRight","paddingLeft","top","borderColor","lineHeight","left","right","borderTop","margin","palette","grey","alignItems","borderRight","flexShrink","flexGrow","flexBasis","pointerEvents","overflow","log","debug","preparePrintModel","opts","instr","promptEnabled","teacherInstructionsEnabled","rationaleEnabled","MathInlinePrint","HTMLElement","_options","_model","_session","_rerender","debounce","printModel","leading","trailing","options","o","s","connectedCallback"],"mappings":"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"}