@pie-element/math-templated 6.2.0-next.1 → 6.2.0-next.11

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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_styles","_Tooltip","_mathInput","_renderUi","_mathRendering","_mathquill","_maskMarkup","_correctAnswerToggle","_reactDom","StyledUiLayout","styled","UiLayout","color","text","backgroundColor","background","display","MainContainer","width","position","PromptContainer","theme","marginBottom","spacing","CollapsibleContainer","InputAndKeypadContainer","alignItems","flexWrap","border","padding","minWidth","lineHeight","top","left","right","borderTop","paddingTop","Expression","$incorrect","$correct","$showCorrectness","$correctAnswerShown","maxWidth","borderColor","incorrect","correct","letterSpacing","StyledStatic","mq","Static","ResponseContainer","zIndex","marginTop","PrintContainer","pointerEvents","SrOnly","height","overflow","Note","StyledToggle","CorrectAnswerToggle","document","styleId","getElementById","style","createElement","id","textContent","head","appendChild","registered","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","splitByParts","parts","split","filter","part","prepareForStatic","model","state","responses","disabled","markup","printMode","alwaysShowCorrect","showCorrect","Object","keys","reduce","acc","responseKey","answer","splitted","match","Main","getResponseKey","session","answers","blankSpace","repeat","value","React","Component","constructor","props","_defineProperty2","default","root","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","view","parentElement","classList","remove","StaticMath","renderMath","setState","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","updateSpans","callOnSessionChange","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","teacherInstructions","animationsDisabled","showTeacherInstructions","hasText","hasMedia","teacherInstructionsDiv","PreviewPrompt","defaultClassName","prompt","Collapsible","labels","hidden","visible","rationale","rationaleDiv","showRationale","tooltipContainerRef","correctness","customKeys","feedback","env","mode","emptyResponse","isEmpty","statics","studentPrintMode","Customizable","customMarkMarkupComponent","responseIsCorrect","MQStatic","ref","mqStatic","onSubFieldChange","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","setTooltipRef","enterTouchDelay","interactive","open","slotProps","popper","container","current","undefined","placement","sx","opacity","modifiers","preventOverflow","enabled","boundariesElement","flip","tooltip","fontSize","boxShadow","title","HorizontalKeypad","onClick","sessionAnswers","replace","response","sessionAnswerForResponse","createRef","UNSAFE_componentWillMount","window","registerEmbed","htmlString","UNSAFE_componentWillReceiveProps","nextProps","nextModel","nextMarkup","nextEnv","nextAlwaysShowCorrect","isEvaluateMode","prevState","matches","nextMatches","isEqual","newAnswers","nextMatch","shouldComponentUpdate","nextState","sameModel","sameState","componentDidMount","setTimeout","componentDidUpdate","div","firstChild","setAttribute","render","role","extraCSSRules","language","showNote","note","showCorrectAnswerToggle","displayNote","r","domNode","ReactDOM","findDOMNode","toggled","onToggle","toggleShowCorrect","renderTeacherInstructions","Readable","false","renderPlayerContent","className","dangerouslySetInnerHTML","__html","renderRationale","exports","replaceAll","PropTypes","object","isRequired","func","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { isEmpty, isEqual } from 'lodash-es';\nimport { styled } from '@mui/material/styles';\nimport Tooltip from '@mui/material/Tooltip';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/math-input';\nimport { color, Collapsible, Readable, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport MathQuill from '@pie-framework/mathquill';\nimport { Customizable } from '@pie-lib/mask-markup';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport ReactDOM from 'react-dom';\n\nconst StyledUiLayout = styled(UiLayout)({\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n});\n\nconst MainContainer = styled('div')({\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n});\n\nconst PromptContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst CollapsibleContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst InputAndKeypadContainer = styled('div')({\n position: 'relative',\n '& > div > div': {\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n },\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\nconst Expression = styled('div')(({ theme, $incorrect, $correct, $showCorrectness, $correctAnswerShown }) => ({\n maxWidth: 'fit-content',\n ...($incorrect && {\n borderColor: `${color.incorrect()} !important`,\n }),\n ...($correct && {\n borderColor: `${color.correct()} !important`,\n }),\n ...($showCorrectness && {\n border: '2px solid',\n }),\n ...($correctAnswerShown && {\n padding: theme.spacing(1),\n letterSpacing: '0.5px',\n }),\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n padding: theme.spacing(0.25),\n },\n },\n '& sup': {\n top: 0,\n },\n },\n}));\n\nconst StyledStatic = styled(mq.Static)({\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n});\n\n// Tooltip styling is handled via slotProps, no need for styled component\n\nconst ResponseContainer = styled('div')(({ theme }) => ({\n zIndex: 10,\n minWidth: '400px',\n marginTop: theme.spacing(2),\n}));\n\nconst PrintContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n pointerEvents: 'none',\n}));\n\nconst SrOnly = styled('h2')({\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n});\n\nconst Note = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledToggle = styled(CorrectAnswerToggle)(({ theme }) => ({\n color: color.text(),\n marginBottom: theme.spacing(2),\n}));\n\n// CSS for classes used in HTML strings and classList operations\nif (typeof document !== 'undefined') {\n const styleId = 'math-templated-main-styles';\n if (!document.getElementById(styleId)) {\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = `\n .block-container {\n margin: 8px !important;\n display: inline-flex;\n border: 2px solid grey !important;\n }\n .block-response {\n flex: 2;\n color: grey;\n background: rgba(0, 0, 0, 0.04);\n font-size: 0.8rem !important;\n padding: 4px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 2px solid #bdbdbd !important;\n }\n .block-math {\n color: ${color.text()};\n background-color: ${color.background()};\n padding: 4px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 8;\n }\n .block-math > .mq-math-mode > .mq-hasCursor > .mq-cursor {\n display: none;\n }\n .correct {\n border-color: ${color.correct()} !important;\n }\n .incorrect {\n border-color: ${color.incorrect()} !important;\n }\n `;\n document.head.appendChild(style);\n }\n}\n\nlet registered = false;\n\n// Define a regex pattern to match {{number}}\nconst REGEX = /(\\{\\{\\d+\\}\\})/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 splitByParts(text) {\n // Use the regex pattern to split the text\n const parts = text.split(REGEX);\n // Filter out empty strings that might result from splitting\n return parts.filter((part) => part);\n}\n\nfunction prepareForStatic(model, state) {\n const { responses, disabled, markup, printMode, alwaysShowCorrect } = model || {};\n\n if (markup) {\n if (state.showCorrect) {\n return Object.keys(responses || {}).reduce((acc, responseKey) => {\n acc[responseKey] = responses?.[responseKey]?.answer;\n\n return acc;\n }, {});\n }\n\n const splitted = splitByParts(markup);\n\n return splitted.reduce((acc, split) => {\n if (split.match(REGEX)) {\n const responseKey = Main.getResponseKey(split);\n const answer = state.session.answers[`r${responseKey}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\embed{newLine}[] ';\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${blankSpace.repeat(3)}}`,\n };\n }\n\n if (disabled) {\n return {\n ...acc,\n [responseKey]: `\\\\embed{answerBlock}[r${responseKey}]`,\n };\n }\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${(answer && answer.value) || ''}}`,\n };\n }\n\n return acc;\n }, {});\n }\n}\n\nexport class Main extends React.Component {\n // removes {{ and }} and returns only key response. Eg: {{0}} => 0\n static getResponseKey = (response) => (response || '').replaceAll('{{', '').replaceAll('}}', '');\n\n static propTypes = {\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 const { model, session } = props || {};\n const { markup, alwaysShowCorrect } = model || {};\n const { answers: sessionAnswers } = session || {};\n\n if (markup) {\n // build out local state model using responses declared in markup\n (markup || '').replace(REGEX, (response) => {\n const responseKey = Main.getResponseKey(response);\n const sessionAnswerForResponse = sessionAnswers && sessionAnswers[`r${responseKey}`];\n\n answers[`r${responseKey}`] = { value: sessionAnswerForResponse?.value || '' };\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: alwaysShowCorrect || false,\n tooltipContainerRef: React.createRef(),\n };\n }\n\n UNSAFE_componentWillMount() {\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(3);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => ({\n htmlString: `<div class=\"block-container\">\n <div class=\"block-response\" id=\"${data}Index\">R</div>\n <div class=\"block-math\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n }));\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = 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\n if (el) {\n let MQ = MathQuill.getInterface(3);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (model.view) {\n el.parentElement.parentElement.classList.remove('correct');\n el.parentElement.parentElement.classList.remove('incorrect');\n }\n\n MQ.StaticMath(el);\n\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel = {} } = nextProps || {};\n const { markup = '', env = {} } = model || {};\n const { markup: nextMarkup = '', env: nextEnv = {}, alwaysShowCorrect: nextAlwaysShowCorrect = false } = nextModel;\n\n const isEvaluateMode = (env) => env && env.mode === 'evaluate';\n\n if (!isEvaluateMode(env) || !isEvaluateMode(nextEnv)) {\n this.setState((prevState) => ({ ...prevState.session, showCorrect: false }));\n }\n\n if (nextAlwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n const matches = markup.match(REGEX);\n const nextMatches = nextMarkup.match(REGEX);\n\n // If markup changed, and we no longer have the same response area, the session needs to be updated\n if (!isEqual(matches, nextMatches)) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n (nextMatches || []).forEach((nextMatch) => {\n const responseKey = Main.getResponseKey(nextMatch);\n const sessionAnswerForResponse = answers && answers[`r${responseKey}`];\n\n // build out local state model using responses declared in markup\n newAnswers[`r${responseKey}`] = { value: sessionAnswerForResponse?.value || '' };\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: newAnswers,\n },\n }),\n () => {\n this.props.onSessionChange(this.state.session);\n this.handleAnswerBlockDomUpdate();\n },\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 setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\n };\n\n toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') return data;\n\n if (type === 'answer') return { type: 'answer', ...data };\n\n if (value === 'clear') return { type: 'clear' };\n\n return { type: 'write', value };\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 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 };\n\n // function for tooltip\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 renderTeacherInstructions = () => {\n const { model } = this.props;\n const { teacherInstructions, animationsDisabled } = model || {};\n const showTeacherInstructions =\n teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n return (\n showTeacherInstructions && (\n <CollapsibleContainer>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </CollapsibleContainer>\n )\n );\n };\n\n renderRationale = () => {\n const { model } = this.props;\n const { rationale, animationsDisabled } = model || {};\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));\n\n return (\n showRationale && (\n <CollapsibleContainer>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </CollapsibleContainer>\n )\n );\n };\n\n renderPlayerContent = () => {\n const { model } = this.props;\n const { activeAnswerBlock, showCorrect, session, tooltipContainerRef } = this.state;\n const {\n correctness,\n disabled,\n view,\n responses,\n equationEditor,\n customKeys,\n feedback,\n env: { mode } = {},\n printMode,\n alwaysShowCorrect,\n } = model || {};\n\n const emptyResponse = isEmpty(responses);\n const additionalKeys = generateAdditionalKeys(customKeys);\n const statics = prepareForStatic(model, this.state) || '';\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n return (\n <InputAndKeypadContainer>\n <Customizable\n disabled={disabled}\n markup={model.markup}\n // TODO remove the need of value?\n value={{}}\n customMarkMarkupComponent={(id) => {\n const responseIsCorrect = mode === 'evaluate' && feedback && feedback[id];\n\n const MQStatic = (\n <StyledStatic\n ref={(mqStatic) => {\n this.mqStatic = mqStatic || this.mqStatic;\n }}\n latex={statics[id]}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n );\n\n return (\n <Expression\n ref={tooltipContainerRef}\n $incorrect={!emptyResponse && !responseIsCorrect && !showCorrect}\n $correct={!emptyResponse && (responseIsCorrect || showCorrect)}\n $showCorrectness={!emptyResponse && disabled && correctness && !view}\n $correctAnswerShown={showCorrect}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={activeAnswerBlock === `r${id}`}\n slotProps={{\n popper: {\n container: tooltipContainerRef?.current || undefined,\n placement: 'bottom-end',\n sx: {\n backgroundColor: 'transparent',\n width: '650px',\n opacity: 1,\n '& .MuiTooltip-arrow': {\n display: 'none',\n },\n },\n modifiers: {\n preventOverflow: {\n enabled: true,\n boundariesElement: 'body',\n },\n flip: {\n enabled: false,\n },\n },\n },\n tooltip: {\n sx: {\n fontSize: 'initial',\n backgroundColor: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n boxShadow: 'none',\n },\n },\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <ResponseContainer\n data-keypad={true}\n key={answerId}\n style={{ width: getKeyPadWidth(additionalKeys, equationEditor) }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </ResponseContainer>\n )) ||\n null,\n )}\n >\n {studentPrintMode ? <PrintContainer>{MQStatic}</PrintContainer> : <div>{MQStatic}</div>}\n </Tooltip>\n </Expression>\n );\n }}\n />\n </InputAndKeypadContainer>\n );\n };\n\n render() {\n const { model } = this.props;\n const { showCorrect } = this.state;\n const {\n prompt,\n env: { mode, role } = {},\n extraCSSRules,\n correctness,\n responses,\n language,\n showNote,\n note,\n } = model || {};\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n\n return (\n <StyledUiLayout\n extraCSSRules={extraCSSRules}\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 <MainContainer>\n {/* what is srOnly ? */}\n {mode === 'gather' && <SrOnly>Math Equation Response Question</SrOnly>}\n\n <MainContainer>\n {showCorrectAnswerToggle && (\n <StyledToggle language={language} show toggled={showCorrect} onToggle={this.toggleShowCorrect} />\n )}\n </MainContainer>\n\n {this.renderTeacherInstructions()}\n\n {prompt && (\n <PromptContainer>\n <PreviewPrompt prompt={prompt} />\n </PromptContainer>\n )}\n\n <Readable false>{this.renderPlayerContent()}</Readable>\n\n {displayNote && <Note className=\"note\" dangerouslySetInnerHTML={{ __html: note }} />}\n\n {this.renderRationale()}\n </MainContainer>\n </StyledUiLayout>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_styles","_Tooltip","_mathInput","_renderUi","_mathRendering","_mathquill","_maskMarkup","_correctAnswerToggle","_reactDom","StyledUiLayout","styled","UiLayout","color","text","backgroundColor","background","display","MainContainer","width","position","PromptContainer","theme","marginBottom","spacing","CollapsibleContainer","InputAndKeypadContainer","alignItems","flexWrap","border","padding","minWidth","lineHeight","top","left","right","borderTop","paddingTop","Expression","$incorrect","$correct","$showCorrectness","$correctAnswerShown","maxWidth","borderColor","incorrect","correct","letterSpacing","StyledStatic","mq","Static","ResponseContainer","zIndex","marginTop","PrintContainer","pointerEvents","SrOnly","height","overflow","Note","StyledToggle","CorrectAnswerToggle","document","styleId","getElementById","style","createElement","id","textContent","head","appendChild","registered","REGEX","DEFAULT_KEYPAD_VARIANT","KEYPAD_VIEWPORT_PADDING","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","splitByParts","parts","split","filter","part","prepareForStatic","model","state","responses","disabled","markup","printMode","alwaysShowCorrect","showCorrect","Object","keys","reduce","acc","responseKey","answer","splitted","match","Main","getResponseKey","session","answers","blankSpace","repeat","value","smartHorizontalPlacementModifier","enabled","phase","requires","fn","offsets","modifiersData","popperOffsets","viewportWidth","window","innerWidth","documentElement","clientWidth","popperWidth","rects","popper","referenceViewportLeft","elements","reference","getBoundingClientRect","offsetParentEl","offsetParent","offsetParentRect","offsetParentScrollLeft","scrollLeft","referenceOffsetParentX","viewportLeftInOffsetParent","minX","maxX","x","min","max","React","Component","constructor","props","_defineProperty2","default","root","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","view","parentElement","classList","remove","StaticMath","renderMath","editableFields","Array","from","querySelectorAll","savedScroll","scrollTop","restoreEditableScroll","setState","activeAnswerBlock","requestAnimationFrame","setTimeout","data","type","input","c","toNodeData","clear","isArray","vv","cmd","keystroke","fieldElement","scrollTargets","node","body","isScrollable","scrollWidth","scrollHeight","clientHeight","push","scrollingElement","windowScroll","scrollX","y","scrollY","restoreScroll","scrollTo","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","updateSpans","callOnSessionChange","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","parent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","teacherInstructions","animationsDisabled","showTeacherInstructions","hasText","hasMedia","teacherInstructionsDiv","PreviewPrompt","defaultClassName","prompt","Collapsible","labels","hidden","visible","rationale","rationaleDiv","showRationale","tooltipContainerRef","correctness","customKeys","feedback","env","mode","emptyResponse","isEmpty","statics","studentPrintMode","Customizable","customMarkMarkupComponent","responseIsCorrect","MQStatic","ref","mqStatic","onSubFieldChange","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","setTooltipRef","enterTouchDelay","interactive","open","slotProps","container","current","undefined","placement","sx","opacity","modifiers","options","boundary","mainAxis","altAxis","tooltip","fontSize","boxShadow","title","HorizontalKeypad","onClick","sessionAnswers","replace","response","sessionAnswerForResponse","createRef","UNSAFE_componentWillMount","registerEmbed","htmlString","UNSAFE_componentWillReceiveProps","nextProps","nextModel","nextMarkup","nextEnv","nextAlwaysShowCorrect","isEvaluateMode","prevState","matches","nextMatches","isEqual","newAnswers","nextMatch","shouldComponentUpdate","nextState","sameModel","sameState","componentDidMount","componentDidUpdate","div","firstChild","setAttribute","render","role","extraCSSRules","language","showNote","note","showCorrectAnswerToggle","displayNote","r","domNode","ReactDOM","findDOMNode","toggled","onToggle","toggleShowCorrect","renderTeacherInstructions","Readable","false","renderPlayerContent","className","dangerouslySetInnerHTML","__html","renderRationale","exports","replaceAll","PropTypes","object","isRequired","func","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { isEmpty, isEqual } from 'lodash-es';\nimport { styled } from '@mui/material/styles';\nimport Tooltip from '@mui/material/Tooltip';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/math-input';\nimport { color, Collapsible, Readable, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport MathQuill from '@pie-framework/mathquill';\nimport { Customizable } from '@pie-lib/mask-markup';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport ReactDOM from 'react-dom';\n\nconst StyledUiLayout = styled(UiLayout)({\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n});\n\nconst MainContainer = styled('div')({\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n});\n\nconst PromptContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst CollapsibleContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst InputAndKeypadContainer = styled('div')({\n position: 'relative',\n '& > div > div': {\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n },\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\nconst Expression = styled('div')(({ theme, $incorrect, $correct, $showCorrectness, $correctAnswerShown }) => ({\n maxWidth: 'fit-content',\n ...($incorrect && {\n borderColor: `${color.incorrect()} !important`,\n }),\n ...($correct && {\n borderColor: `${color.correct()} !important`,\n }),\n ...($showCorrectness && {\n border: '2px solid',\n }),\n ...($correctAnswerShown && {\n padding: theme.spacing(1),\n letterSpacing: '0.5px',\n }),\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n padding: theme.spacing(0.25),\n },\n },\n '& sup': {\n top: 0,\n },\n },\n}));\n\nconst StyledStatic = styled(mq.Static)({\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n});\n\n// Tooltip styling is handled via slotProps, no need for styled component\n\nconst ResponseContainer = styled('div')(({ theme }) => ({\n zIndex: 10,\n minWidth: '400px',\n marginTop: theme.spacing(2),\n}));\n\nconst PrintContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n pointerEvents: 'none',\n}));\n\nconst SrOnly = styled('h2')({\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n});\n\nconst Note = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledToggle = styled(CorrectAnswerToggle)(({ theme }) => ({\n color: color.text(),\n marginBottom: theme.spacing(2),\n}));\n\n// CSS for classes used in HTML strings and classList operations\nif (typeof document !== 'undefined') {\n const styleId = 'math-templated-main-styles';\n if (!document.getElementById(styleId)) {\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = `\n .block-container {\n margin: 8px !important;\n display: inline-flex;\n border: 2px solid grey !important;\n }\n .block-response {\n flex: 2;\n color: grey;\n background: rgba(0, 0, 0, 0.04);\n font-size: 0.8rem !important;\n padding: 4px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 2px solid #bdbdbd !important;\n }\n .block-math {\n color: ${color.text()};\n background-color: ${color.background()};\n padding: 4px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 8;\n }\n .block-math > .mq-math-mode > .mq-hasCursor > .mq-cursor {\n display: none;\n }\n .correct {\n border-color: ${color.correct()} !important;\n }\n .incorrect {\n border-color: ${color.incorrect()} !important;\n }\n `;\n document.head.appendChild(style);\n }\n}\n\nlet registered = false;\n\n// Define a regex pattern to match {{number}}\nconst REGEX = /(\\{\\{\\d+\\}\\})/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\nconst KEYPAD_VIEWPORT_PADDING = 8;\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 splitByParts(text) {\n // Use the regex pattern to split the text\n const parts = text.split(REGEX);\n // Filter out empty strings that might result from splitting\n return parts.filter((part) => part);\n}\n\nfunction prepareForStatic(model, state) {\n const { responses, disabled, markup, printMode, alwaysShowCorrect } = model || {};\n\n if (markup) {\n if (state.showCorrect) {\n return Object.keys(responses || {}).reduce((acc, responseKey) => {\n acc[responseKey] = responses?.[responseKey]?.answer;\n\n return acc;\n }, {});\n }\n\n const splitted = splitByParts(markup);\n\n return splitted.reduce((acc, split) => {\n if (split.match(REGEX)) {\n const responseKey = Main.getResponseKey(split);\n const answer = state.session.answers[`r${responseKey}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\embed{newLine}[] ';\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${blankSpace.repeat(3)}}`,\n };\n }\n\n if (disabled) {\n return {\n ...acc,\n [responseKey]: `\\\\embed{answerBlock}[r${responseKey}]`,\n };\n }\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${(answer && answer.value) || ''}}`,\n };\n }\n\n return acc;\n }, {});\n }\n}\n\n/**\n * Popper.js v2 modifier that implements precise horizontal placement:\n *\n * 1. Default: left-align the keypad with the left edge of the response area.\n *\n * 2. Overflow: if left-aligning would push the right edge of the keypad past\n * the viewport's right edge, right-align the keypad so that its right edge\n * sits exactly at the left edge of the response area.\n *\n * In both cases we compute offsets.x from first principles (rather than\n * adjusting whatever Popper already set) to avoid any upstream skew.\n *\n * Coordinate note:\n * state.rects.reference.x — reference's left edge in offset-parent coords.\n * getBoundingClientRect() — viewport-relative coords.\n * Both describe the same physical point, so the difference between them is\n * the constant offset needed to convert viewport ↔ offset-parent coords.\n */\nconst smartHorizontalPlacementModifier = {\n name: 'smartHorizontalPlacement',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: ({ state }) => {\n const offsets = state.modifiersData.popperOffsets;\n if (!offsets) return;\n\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n const popperWidth = state.rects.popper.width;\n\n const referenceViewportLeft = state.elements.reference.getBoundingClientRect().left;\n\n const offsetParentEl = state.elements.popper?.offsetParent;\n const offsetParentRect = offsetParentEl?.getBoundingClientRect?.() || { left: 0 };\n const offsetParentScrollLeft = offsetParentEl?.scrollLeft || 0;\n const referenceOffsetParentX = referenceViewportLeft - offsetParentRect.left + offsetParentScrollLeft;\n const viewportLeftInOffsetParent = referenceOffsetParentX - referenceViewportLeft;\n const minX = viewportLeftInOffsetParent + KEYPAD_VIEWPORT_PADDING;\n const maxX = viewportLeftInOffsetParent + viewportWidth - popperWidth - KEYPAD_VIEWPORT_PADDING;\n\n if (referenceViewportLeft + popperWidth <= viewportWidth) {\n offsets.x = referenceOffsetParentX;\n } else {\n offsets.x = referenceOffsetParentX - popperWidth;\n }\n\n if (maxX < minX) {\n offsets.x = minX;\n } else {\n offsets.x = Math.min(Math.max(offsets.x, minX), maxX);\n }\n },\n};\n\nexport class Main extends React.Component {\n // removes {{ and }} and returns only key response. Eg: {{0}} => 0\n static getResponseKey = (response) => (response || '').replaceAll('{{', '').replaceAll('}}', '');\n\n static propTypes = {\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 const { model, session } = props || {};\n const { markup, alwaysShowCorrect } = model || {};\n const { answers: sessionAnswers } = session || {};\n\n if (markup) {\n (markup || '').replace(REGEX, (response) => {\n const responseKey = Main.getResponseKey(response);\n const sessionAnswerForResponse = sessionAnswers && sessionAnswers[`r${responseKey}`];\n\n answers[`r${responseKey}`] = { value: sessionAnswerForResponse?.value || '' };\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: alwaysShowCorrect || false,\n tooltipContainerRef: React.createRef(),\n };\n }\n\n UNSAFE_componentWillMount() {\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(3);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => ({\n htmlString: `<div class=\"block-container\">\n <div class=\"block-response\" id=\"${data}Index\">R</div>\n <div class=\"block-math\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n }));\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = 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\n if (el) {\n let MQ = MathQuill.getInterface(3);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (model.view) {\n el.parentElement.parentElement.classList.remove('correct');\n el.parentElement.parentElement.classList.remove('incorrect');\n }\n\n MQ.StaticMath(el);\n\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel = {} } = nextProps || {};\n const { markup = '', env = {} } = model || {};\n const { markup: nextMarkup = '', env: nextEnv = {}, alwaysShowCorrect: nextAlwaysShowCorrect = false } = nextModel;\n\n const isEvaluateMode = (env) => env && env.mode === 'evaluate';\n\n if (!isEvaluateMode(env) || !isEvaluateMode(nextEnv)) {\n this.setState((prevState) => ({ ...prevState.session, showCorrect: false }));\n }\n\n if (nextAlwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n const matches = markup.match(REGEX);\n const nextMatches = nextMarkup.match(REGEX);\n\n // If markup changed, and we no longer have the same response area, the session needs to be updated\n if (!isEqual(matches, nextMatches)) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n (nextMatches || []).forEach((nextMatch) => {\n const responseKey = Main.getResponseKey(nextMatch);\n const sessionAnswerForResponse = answers && answers[`r${responseKey}`];\n\n // build out local state model using responses declared in markup\n newAnswers[`r${responseKey}`] = { value: sessionAnswerForResponse?.value || '' };\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: newAnswers,\n },\n }),\n () => {\n this.props.onSessionChange(this.state.session);\n this.handleAnswerBlockDomUpdate();\n },\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 setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n onSubFieldFocus = (id) => {\n const editableFields = Array.from(this.root?.querySelectorAll('.mq-editable-field') || []);\n const savedScroll = editableFields.map((el) => ({\n el,\n left: el.scrollLeft,\n top: el.scrollTop,\n }));\n\n const restoreEditableScroll = () => {\n savedScroll.forEach(({ el, left, top }) => {\n el.scrollLeft = left;\n el.scrollTop = top;\n });\n };\n\n this.setState({ activeAnswerBlock: id }, () => {\n restoreEditableScroll();\n requestAnimationFrame(restoreEditableScroll);\n setTimeout(restoreEditableScroll, 0);\n });\n };\n\n toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') return data;\n\n if (type === 'answer') return { type: 'answer', ...data };\n\n if (value === 'clear') return { type: 'clear' };\n\n return { type: 'write', value };\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 // Keep all relevant scroll containers stable when refocusing after keypad\n // click. Browser \"focus into view\" can scroll horizontally back to start.\n const fieldElement = this.input?.el?.() || this.root;\n const scrollTargets = [];\n let node = fieldElement;\n\n while (node && node !== document.body && node !== document.documentElement) {\n const isScrollable = node.scrollWidth > node.clientWidth || node.scrollHeight > node.clientHeight;\n if (isScrollable) {\n scrollTargets.push(node);\n }\n node = node.parentElement;\n }\n\n if (document.scrollingElement) {\n scrollTargets.push(document.scrollingElement);\n }\n\n const savedScroll = scrollTargets.map((el) => ({\n el,\n left: el.scrollLeft,\n top: el.scrollTop,\n }));\n const windowScroll = { x: window.scrollX, y: window.scrollY };\n\n const restoreScroll = () => {\n savedScroll.forEach(({ el, left, top }) => {\n el.scrollLeft = left;\n el.scrollTop = top;\n });\n window.scrollTo(windowScroll.x, windowScroll.y);\n };\n\n this.input.focus();\n restoreScroll();\n requestAnimationFrame(restoreScroll);\n setTimeout(restoreScroll, 0);\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 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 };\n\n // function for tooltip\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 renderTeacherInstructions = () => {\n const { model } = this.props;\n const { teacherInstructions, animationsDisabled } = model || {};\n const showTeacherInstructions =\n teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n return (\n showTeacherInstructions && (\n <CollapsibleContainer>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </CollapsibleContainer>\n )\n );\n };\n\n renderRationale = () => {\n const { model } = this.props;\n const { rationale, animationsDisabled } = model || {};\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));\n\n return (\n showRationale && (\n <CollapsibleContainer>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </CollapsibleContainer>\n )\n );\n };\n\n renderPlayerContent = () => {\n const { model } = this.props;\n const { activeAnswerBlock, showCorrect, session, tooltipContainerRef } = this.state;\n const {\n correctness,\n disabled,\n view,\n responses,\n equationEditor,\n customKeys,\n feedback,\n env: { mode } = {},\n printMode,\n alwaysShowCorrect,\n } = model || {};\n\n const emptyResponse = isEmpty(responses);\n const additionalKeys = generateAdditionalKeys(customKeys);\n const statics = prepareForStatic(model, this.state) || '';\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n return (\n <InputAndKeypadContainer>\n <Customizable\n disabled={disabled}\n markup={model.markup}\n // TODO remove the need of value?\n value={{}}\n customMarkMarkupComponent={(id) => {\n const responseIsCorrect = mode === 'evaluate' && feedback && feedback[id];\n\n const MQStatic = (\n <StyledStatic\n ref={(mqStatic) => {\n this.mqStatic = mqStatic || this.mqStatic;\n }}\n latex={statics[id]}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n );\n\n return (\n <Expression\n ref={tooltipContainerRef}\n $incorrect={!emptyResponse && !responseIsCorrect && !showCorrect}\n $correct={!emptyResponse && (responseIsCorrect || showCorrect)}\n $showCorrectness={!emptyResponse && disabled && correctness && !view}\n $correctAnswerShown={showCorrect}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={activeAnswerBlock === `r${id}`}\n slotProps={{\n popper: {\n container: tooltipContainerRef?.current || undefined,\n // 'bottom-start' left-aligns the keypad with the left edge of the\n // response area by default. The smartHorizontalPlacement modifier\n // below overrides this when the keypad would overflow the viewport.\n placement: 'bottom-start',\n sx: {\n backgroundColor: 'transparent',\n width: 'auto',\n opacity: 1,\n '& .MuiTooltip-arrow': {\n display: 'none',\n },\n },\n modifiers: [\n {\n name: 'preventOverflow',\n enabled: true,\n options: {\n boundary: 'viewport',\n mainAxis: false,\n altAxis: true,\n },\n },\n {\n name: 'flip',\n enabled: false,\n },\n\n smartHorizontalPlacementModifier,\n ],\n },\n tooltip: {\n sx: {\n fontSize: 'initial',\n backgroundColor: 'transparent',\n width: 'auto',\n maxWidth: 'none',\n marginTop: 0,\n paddingTop: 0,\n boxShadow: 'none',\n },\n },\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <ResponseContainer\n data-keypad={true}\n key={answerId}\n style={{ width: getKeyPadWidth(additionalKeys, equationEditor) }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </ResponseContainer>\n )) ||\n null,\n )}\n >\n {studentPrintMode ? <PrintContainer>{MQStatic}</PrintContainer> : <div>{MQStatic}</div>}\n </Tooltip>\n </Expression>\n );\n }}\n />\n </InputAndKeypadContainer>\n );\n };\n\n render() {\n const { model } = this.props;\n const { showCorrect } = this.state;\n const {\n prompt,\n env: { mode, role } = {},\n extraCSSRules,\n correctness,\n responses,\n language,\n showNote,\n note,\n } = model || {};\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n\n return (\n <StyledUiLayout\n extraCSSRules={extraCSSRules}\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 <MainContainer>\n {/* what is srOnly ? */}\n {mode === 'gather' && <SrOnly>Math Equation Response Question</SrOnly>}\n\n <MainContainer>\n {showCorrectAnswerToggle && (\n <StyledToggle language={language} show toggled={showCorrect} onToggle={this.toggleShowCorrect} />\n )}\n </MainContainer>\n\n {this.renderTeacherInstructions()}\n\n {prompt && (\n <PromptContainer>\n <PreviewPrompt prompt={prompt} />\n </PromptContainer>\n )}\n\n <Readable false>{this.renderPlayerContent()}</Readable>\n\n {displayNote && <Note className=\"note\" dangerouslySetInnerHTML={{ __html: note }} />}\n\n {this.renderRationale()}\n </MainContainer>\n </StyledUiLayout>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ import{_dll_react as e,_dll_prop_types as t,_dll_mui__material as n,_dll_mui__material_styles as r,_dll_mui__icons_material as o,_dll_pie_lib__render_ui as a,_dll_debug as i,_dll_react_dom_client as s}from"../../../@pie-lib/shared-module@^4.1.3/module/index.js";import{_dll_pie_lib__config_ui as l}from"../../../@pie-lib/config-module@^3.1.3/module/index.js";import{_dll_pie_lib__editable_html_tip_tap as c}from"../../../@pie-lib/editable-html-module@^6.2.3/module/index.js";import{_dll_pie_lib__math_toolbar as u}from"../../../@pie-lib/math-edit-module@^3.2.3/module/index.js";var p="object"==typeof global&&global&&global.Object===Object&&global,d="object"==typeof self&&self&&self.Object===Object&&self,h=p||d||Function("return this")(),g=h.Symbol,f=Object.prototype,m=f.hasOwnProperty,b=f.toString,y=g?g.toStringTag:void 0,_=Object.prototype.toString,v=g?g.toStringTag:void 0;function C(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":v&&v in Object(e)?function(e){var t=m.call(e,y),n=e[y];try{e[y]=void 0;var r=!0}catch(e){}var o=b.call(e);return r&&(t?e[y]=n:delete e[y]),o}(e):function(e){return _.call(e)}(e)}function j(e){return null!=e&&"object"==typeof e}function w(e){return"symbol"==typeof e||j(e)&&"[object Symbol]"==C(e)}var E=Array.isArray,S=g?g.prototype:void 0,A=S?S.toString:void 0;function O(e){if("string"==typeof e)return e;if(E(e))return function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}(e,O)+"";if(w(e))return A?A.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}var x=/\s/,I=/^\s+/;function T(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var M=/^[-+]0x[0-9a-f]+$/i,k=/^0b[01]+$/i,P=/^0o[0-7]+$/i,R=parseInt;function D(e){if("number"==typeof e)return e;if(w(e))return NaN;if(T(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=T(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&x.test(e.charAt(t)););return t}(e)+1).replace(I,""):e}(e);var n=k.test(e);return n||P.test(e)?R(e.slice(2),n?2:8):M.test(e)?NaN:+e}function K(e){return e}function z(e){if(!T(e))return!1;var t=C(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var $,q=h["__core-js_shared__"],B=($=/[^.]+$/.exec(q&&q.keys&&q.keys.IE_PROTO||""))?"Symbol(src)_1."+$:"",F=Function.prototype.toString;function L(e){if(null!=e){try{return F.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var U=/^\[object .+?Constructor\]$/,N=Function.prototype,W=Object.prototype,H=N.toString,Z=W.hasOwnProperty,Y=RegExp("^"+H.call(Z).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function V(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!T(e)||(t=e,B&&B in t))&&(z(e)?Y:U).test(L(e));var t}(n)?n:void 0}var G,J,Q,X=V(h,"WeakMap"),ee=Object.create,te=function(){function e(){}return function(t){if(!T(t))return{};if(ee)return ee(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),ne=Date.now,re=function(){try{var e=V(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),oe=re,ae=oe?function(e,t){return oe(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:K,ie=(G=ae,J=0,Q=0,function(){var e=ne(),t=16-(e-Q);if(Q=e,t>0){if(++J>=800)return arguments[0]}else J=0;return G.apply(void 0,arguments)}),se=/^(?:0|[1-9]\d*)$/;function le(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&se.test(e))&&e>-1&&e%1==0&&e<t}function ce(e,t,n){"__proto__"==t&&oe?oe(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ue(e,t){return e===t||e!=e&&t!=t}var pe=Object.prototype.hasOwnProperty;function de(e,t,n){var r=e[t];pe.call(e,t)&&ue(r,n)&&(void 0!==n||t in e)||ce(e,t,n)}function he(e,t,n,r){var o=!n;n||(n={});for(var a=-1,i=t.length;++a<i;){var s=t[a],l=r?r(n[s],e[s],s,n,e):void 0;void 0===l&&(l=e[s]),o?ce(n,s,l):de(n,s,l)}return n}var ge=Math.max;function fe(e,t,n){return t=ge(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=ge(r.length-t,0),i=Array(a);++o<a;)i[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=n(i),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,s)}}function me(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function be(e){return null!=e&&me(e.length)&&!z(e)}var ye=Object.prototype;function _e(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ye)}function ve(e){return j(e)&&"[object Arguments]"==C(e)}var Ce=Object.prototype,je=Ce.hasOwnProperty,we=Ce.propertyIsEnumerable,Ee=ve(function(){return arguments}())?ve:function(e){return j(e)&&je.call(e,"callee")&&!we.call(e,"callee")},Se="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ae=Se&&"object"==typeof module&&module&&!module.nodeType&&module,Oe=Ae&&Ae.exports===Se?h.Buffer:void 0,xe=(Oe?Oe.isBuffer:void 0)||function(){return!1},Ie={};function Te(e){return function(t){return e(t)}}Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object Boolean]"]=Ie["[object DataView]"]=Ie["[object Date]"]=Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object WeakMap]"]=!1;var Me="object"==typeof exports&&exports&&!exports.nodeType&&exports,ke=Me&&"object"==typeof module&&module&&!module.nodeType&&module,Pe=ke&&ke.exports===Me&&p.process,Re=function(){try{return ke&&ke.require&&ke.require("util").types||Pe&&Pe.binding&&Pe.binding("util")}catch(e){}}(),De=Re&&Re.isTypedArray,Ke=De?Te(De):function(e){return j(e)&&me(e.length)&&!!Ie[C(e)]},ze=Object.prototype.hasOwnProperty;function $e(e,t){var n=E(e),r=!n&&Ee(e),o=!n&&!r&&xe(e),a=!n&&!r&&!o&&Ke(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],l=s.length;for(var c in e)!t&&!ze.call(e,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||le(c,l))||s.push(c);return s}function qe(e,t){return function(n){return e(t(n))}}var Be=qe(Object.keys,Object),Fe=Object.prototype.hasOwnProperty;function Le(e){return be(e)?$e(e):function(e){if(!_e(e))return Be(e);var t=[];for(var n in Object(e))Fe.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}var Ue=Object.prototype.hasOwnProperty;function Ne(e){return be(e)?$e(e,!0):function(e){if(!T(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=_e(e),n=[];for(var r in e)("constructor"!=r||!t&&Ue.call(e,r))&&n.push(r);return n}(e)}var We=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,He=/^\w*$/,Ze=V(Object,"create"),Ye=Object.prototype.hasOwnProperty,Ve=Object.prototype.hasOwnProperty;function Ge(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Je(e,t){for(var n=e.length;n--;)if(ue(e[n][0],t))return n;return-1}Ge.prototype.clear=function(){this.__data__=Ze?Ze(null):{},this.size=0},Ge.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Ge.prototype.get=function(e){var t=this.__data__;if(Ze){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Ye.call(t,e)?t[e]:void 0},Ge.prototype.has=function(e){var t=this.__data__;return Ze?void 0!==t[e]:Ve.call(t,e)},Ge.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ze&&void 0===t?"__lodash_hash_undefined__":t,this};var Qe=Array.prototype.splice;function Xe(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Xe.prototype.clear=function(){this.__data__=[],this.size=0},Xe.prototype.delete=function(e){var t=this.__data__,n=Je(t,e);return!(n<0||(n==t.length-1?t.pop():Qe.call(t,n,1),--this.size,0))},Xe.prototype.get=function(e){var t=this.__data__,n=Je(t,e);return n<0?void 0:t[n][1]},Xe.prototype.has=function(e){return Je(this.__data__,e)>-1},Xe.prototype.set=function(e,t){var n=this.__data__,r=Je(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var et=V(h,"Map");function tt(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function nt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function rt(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(rt.Cache||nt),n}nt.prototype.clear=function(){this.size=0,this.__data__={hash:new Ge,map:new(et||Xe),string:new Ge}},nt.prototype.delete=function(e){var t=tt(this,e).delete(e);return this.size-=t?1:0,t},nt.prototype.get=function(e){return tt(this,e).get(e)},nt.prototype.has=function(e){return tt(this,e).has(e)},nt.prototype.set=function(e,t){var n=tt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},rt.Cache=nt;var ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,at=/\\(\\)?/g,it=function(){var e=rt(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ot,function(e,n,r,o){t.push(r?o.replace(at,"$1"):n||e)}),t},function(e){return 500===t.size&&t.clear(),e}),t=e.cache;return e}(),st=it;function lt(e,t){return E(e)?e:function(e,t){if(E(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!w(e))||He.test(e)||!We.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:st(function(e){return null==e?"":O(e)}(e))}function ct(e){if("string"==typeof e||w(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ut(e,t){for(var n=0,r=(t=lt(t,e)).length;null!=e&&n<r;)e=e[ct(t[n++])];return n&&n==r?e:void 0}function pt(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}var dt=g?g.isConcatSpreadable:void 0;function ht(e){return E(e)||Ee(e)||!!(dt&&e&&e[dt])}function gt(e,t,n,r,o){var a=-1,i=e.length;for(n||(n=ht),o||(o=[]);++a<i;){var s=e[a];t>0&&n(s)?t>1?gt(s,t-1,n,r,o):pt(o,s):r||(o[o.length]=s)}return o}function ft(e){return null!=e&&e.length?gt(e,1):[]}var mt=qe(Object.getPrototypeOf,Object);function bt(e){var t=this.__data__=new Xe(e);this.size=t.size}bt.prototype.clear=function(){this.__data__=new Xe,this.size=0},bt.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},bt.prototype.get=function(e){return this.__data__.get(e)},bt.prototype.has=function(e){return this.__data__.has(e)},bt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Xe){var r=n.__data__;if(!et||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new nt(r)}return n.set(e,t),this.size=n.size,this};var yt="object"==typeof exports&&exports&&!exports.nodeType&&exports,_t=yt&&"object"==typeof module&&module&&!module.nodeType&&module,vt=_t&&_t.exports===yt?h.Buffer:void 0,Ct=vt?vt.allocUnsafe:void 0;function jt(){return[]}var wt=Object.prototype.propertyIsEnumerable,Et=Object.getOwnPropertySymbols,St=Et?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i)&&(a[o++]=i)}return a}(Et(e),function(t){return wt.call(e,t)}))}:jt,At=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)pt(t,St(e)),e=mt(e);return t}:jt;function Ot(e,t,n){var r=t(e);return E(e)?r:pt(r,n(e))}function xt(e){return Ot(e,Le,St)}function It(e){return Ot(e,Ne,At)}var Tt=V(h,"DataView"),Mt=V(h,"Promise"),kt=V(h,"Set"),Pt="[object Map]",Rt="[object Promise]",Dt="[object Set]",Kt="[object WeakMap]",zt="[object DataView]",$t=L(Tt),qt=L(et),Bt=L(Mt),Ft=L(kt),Lt=L(X),Ut=C;(Tt&&Ut(new Tt(new ArrayBuffer(1)))!=zt||et&&Ut(new et)!=Pt||Mt&&Ut(Mt.resolve())!=Rt||kt&&Ut(new kt)!=Dt||X&&Ut(new X)!=Kt)&&(Ut=function(e){var t=C(e),n="[object Object]"==t?e.constructor:void 0,r=n?L(n):"";if(r)switch(r){case $t:return zt;case qt:return Pt;case Bt:return Rt;case Ft:return Dt;case Lt:return Kt}return t});var Nt=Ut,Wt=Object.prototype.hasOwnProperty,Ht=h.Uint8Array;function Zt(e){var t=new e.constructor(e.byteLength);return new Ht(t).set(new Ht(e)),t}var Yt=/\w*$/,Vt=g?g.prototype:void 0,Gt=Vt?Vt.valueOf:void 0;var Jt=Re&&Re.isMap,Qt=Jt?Te(Jt):function(e){return j(e)&&"[object Map]"==Nt(e)},Xt=Re&&Re.isSet,en=Xt?Te(Xt):function(e){return j(e)&&"[object Set]"==Nt(e)},tn="[object Arguments]",nn="[object Function]",rn="[object Object]",on={};function an(e,t,n,r,o,a){var i,s=1&t,l=2&t,c=4&t;if(n&&(i=o?n(e,r,o,a):n(e)),void 0!==i)return i;if(!T(e))return e;var u=E(e);if(u){if(i=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Wt.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,i)}else{var p=Nt(e),d=p==nn||"[object GeneratorFunction]"==p;if(xe(e))return function(e,t){if(t)return e.slice();var n=e.length,r=Ct?Ct(n):new e.constructor(n);return e.copy(r),r}(e,s);if(p==rn||p==tn||d&&!o){if(i=l||d?{}:function(e){return"function"!=typeof e.constructor||_e(e)?{}:te(mt(e))}(e),!s)return l?function(e,t){return he(e,At(e),t)}(e,function(e,t){return e&&he(t,Ne(t),e)}(i,e)):function(e,t){return he(e,St(e),t)}(e,function(e,t){return e&&he(t,Le(t),e)}(i,e))}else{if(!on[p])return o?e:{};i=function(e,t,n){var r,o,a,i=e.constructor;switch(t){case"[object ArrayBuffer]":return Zt(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(a=new(o=e).constructor(o.source,Yt.exec(o))).lastIndex=o.lastIndex,a;case"[object Symbol]":return r=e,Gt?Object(Gt.call(r)):{}}}(e,p,s)}}a||(a=new bt);var h=a.get(e);if(h)return h;a.set(e,i),en(e)?e.forEach(function(r){i.add(an(r,t,n,r,e,a))}):Qt(e)&&e.forEach(function(r,o){i.set(o,an(r,t,n,o,e,a))});var g=u?void 0:(c?l?It:xt:l?Ne:Le)(e);return function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n););}(g||e,function(r,o){g&&(r=e[o=r]),de(i,o,an(r,t,n,o,e,a))}),i}function sn(e){return an(e,5)}function ln(e,t){return null!=e&&t in Object(e)}on[tn]=on["[object Array]"]=on["[object ArrayBuffer]"]=on["[object DataView]"]=on["[object Boolean]"]=on["[object Date]"]=on["[object Float32Array]"]=on["[object Float64Array]"]=on["[object Int8Array]"]=on["[object Int16Array]"]=on["[object Int32Array]"]=on["[object Map]"]=on["[object Number]"]=on[rn]=on["[object RegExp]"]=on["[object Set]"]=on["[object String]"]=on["[object Symbol]"]=on["[object Uint8Array]"]=on["[object Uint8ClampedArray]"]=on["[object Uint16Array]"]=on["[object Uint32Array]"]=!0,on["[object Error]"]=on[nn]=on["[object WeakMap]"]=!1;var cn=function(){return h.Date.now()},un=Math.max,pn=Math.min;var dn=Object.prototype,hn=dn.hasOwnProperty,gn=function(e){return ie(fe(e,void 0,K),e+"")}(function(e,t){e=Object(e);var n=-1,r=t.length,o=r>2?t[2]:void 0;for(o&&function(e,t,n){if(!T(n))return!1;var r=typeof t;return!!("number"==r?be(n)&&le(t,n.length):"string"==r&&t in n)&&ue(n[t],e)}(t[0],t[1],o)&&(r=1);++n<r;)for(var a=t[n],i=Ne(a),s=-1,l=i.length;++s<l;){var c=i[s],u=e[c];(void 0===u||ue(u,dn[c])&&!hn.call(e,c))&&(e[c]=a[c])}return e}),fn=gn;function mn(e,t,n,r){if(!T(e))return e;for(var o=-1,a=(t=lt(t,e)).length,i=a-1,s=e;null!=s&&++o<a;){var l=ct(t[o]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(o!=i){var u=s[l];void 0===(c=r?r(u,l,s):void 0)&&(c=T(u)?u:le(t[o+1])?[]:{})}de(s,l,c),s=s[l]}return e}function bn(e,t){return function(e,t,n){for(var r=-1,o=t.length,a={};++r<o;){var i=t[r],s=ut(e,i);n(s,i)&&mn(a,lt(i,e),s)}return a}(e,t,function(t,n){return function(e,t){return null!=e&&function(e,t,n){for(var r=-1,o=(t=lt(t,e)).length,a=!1;++r<o;){var i=ct(t[r]);if(!(a=null!=e&&n(e,i)))break;e=e[i]}return a||++r!=o?a:!!(o=null==e?0:e.length)&&me(o)&&le(i,o)&&(E(e)||Ee(e))}(e,t,ln)}(e,n)})}var yn=function(e){return ie(fe(e,void 0,ft),e+"")}(function(e,t){return null==e?{}:bn(e,t)}),_n=yn,vn={};Object.defineProperty(vn,"__esModule",{value:!0});class Cn extends CustomEvent{constructor(e,t=!1){super(Cn.TYPE,{bubbles:!0,detail:{update:e,reset:t}}),this.update=e,this.reset=t}}Cn.TYPE="model.updated";var jn=vn.ModelUpdatedEvent=Cn;class wn extends CustomEvent{constructor(e,t){super(wn.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}wn.TYPE="delete.image";var En=vn.DeleteImageEvent=wn;class Sn extends CustomEvent{constructor(e){super(Sn.TYPE,{bubbles:!0,detail:e}),this.handler=e}}Sn.TYPE="insert.image";var An=vn.InsertImageEvent=Sn;class On extends CustomEvent{constructor(e,t){super(On.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}On.TYPE="delete.sound";var xn=vn.DeleteSoundEvent=On;class In extends CustomEvent{constructor(e){super(In.TYPE,{bubbles:!0,detail:e}),this.handler=e}}In.TYPE="insert.sound";var Tn=vn.InsertSoundEvent=In;const Mn=e,kn=t,{Card:Pn}=n,{CardContent:Rn}=n,{Button:Dn}=n,{FormControlLabel:Kn}=n,{Typography:zn}=n,{InputLabel:$n}=n,{Checkbox:qn}=n,{Select:Bn}=n,{MenuItem:Fn}=n,{IconButton:Ln}=n,{styled:Un}=r,{Delete:Nn}=o,{color:Wn}=a,{InputContainer:Hn}=l,{MathToolbar:Zn}=u,Yn=Un(Pn)(({theme:e})=>({marginBottom:e.spacing(2.5),width:"100%",minWidth:"548px",border:`1px solid ${e.palette.grey[700]}`,display:"flex",flexDirection:"column",justifyContent:"space-between"})),Vn=Un(Rn)(({theme:e})=>({paddingBottom:`${e.spacing(2)} !important`})),Gn=Un(zn)({fontWeight:700,fontSize:"1.2rem",flex:3}),Jn=Un(Hn)(({theme:e})=>({flex:2,"& > *:not(label)":{marginTop:e.spacing(1)}})),Qn=Un("div")(({theme:e})=>({marginBottom:e.spacing(2)})),Xn=Un("div")({display:"flex",alignItems:"center",justifyContent:"space-between"}),er=Un("div")({display:"flex"}),tr=Un(Dn)(({theme:e})=>({border:`1px solid ${e.palette.grey.A400}`,color:Wn.text()})),nr=Un(Ln)(({theme:e})=>({marginLeft:e.spacing(1)})),rr=Un("div")(({theme:e})=>({fontSize:e.typography.fontSize-2,color:e.palette.error.main,paddingTop:e.spacing(1)})),or=Un("div")(({theme:e})=>({background:e.palette.grey.A100,color:e.palette.grey.A700,display:"inline",minWidth:"50px",padding:"8px",border:"1px solid #C0C3CF"})),ar=Un("div")({display:"flex",justifyContent:"space-between",alignItems:"center"}),ir=Un(qn)({color:`${Wn.tertiary()} !important`});if("undefined"!=typeof document){const e="math-templated-response-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .response-editor {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 500px;\n max-width: 900px;\n height: auto;\n min-height: 40px;\n }\n .math-toolbar {\n width: 100%;\n }\n ",document.head.appendChild(t)}}class sr extends Mn.Component{static __initStatic(){this.propTypes={defaultResponse:kn.bool,error:kn.object,mode:kn.oneOfType([kn.string,kn.number]),onResponseChange:kn.func.isRequired,onResponseDone:kn.func.isRequired,response:kn.object.isRequired,cIgnoreOrder:kn.object.isRequired,cAllowTrailingZeros:kn.object.isRequired,responseKey:kn.number.isRequired}}static __initStatic2(){this.defaultProps={defaultResponse:!1,mode:"8"}}constructor(e){super(e),sr.prototype.__init.call(this),sr.prototype.__init2.call(this),sr.prototype.__init3.call(this),sr.prototype.__init4.call(this),sr.prototype.__init5.call(this),sr.prototype.__init6.call(this),sr.prototype.__init7.call(this),sr.prototype.__init8.call(this),sr.prototype.__init9.call(this),sr.prototype.__init10.call(this),sr.prototype.__init11.call(this);const{response:{alternates:t}={}}=e||{},n=Object.keys(t||{}).length;this.state={alternateIdCounter:n+1,showKeypad:{openCount:0,main:!1}}}__init(){this.onChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.value,r(a,o)}}__init2(){this.onConfigChanged=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.checked,r(a,o)}}__init3(){this.onLiteralOptionsChange=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o[e]=!t[e],n(o,r)}}__init4(){this.onAnswerChange=e=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o.answer=e,n(o,r)}}__init5(){this.onAlternateAnswerChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a.alternates[e]=t,r(a,o)}}__init6(){this.onAddAlternate=()=>{const{response:e,onResponseChange:t,responseKey:n}=this.props,{alternateIdCounter:r}=this.state,o={...e};o.alternates||(o.alternates={}),o.alternates[r]="",t(o,n),this.setState({alternateIdCounter:r+1})}}__init7(){this.onRemoveAlternate=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};delete o.alternates[e],n(o,r),this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount-1:t.showKeypad.openCount}}))}}__init8(){this.onDone=()=>{const{onResponseDone:e}=this.props;this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.openCount-1,main:!1}})),e()}}__init9(){this.onFocus=()=>{this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.main?e.showKeypad.openCount:e.showKeypad.openCount+1,main:!0}}))}}__init10(){this.onAlternateFocus=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount:t.showKeypad.openCount+1,[e]:!0}}))}}__init11(){this.onAlternateDone=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad.openCount-1,[e]:!1}}))}}render(){const{mode:e,responseKey:t,response:n,cAllowTrailingZeros:r,cIgnoreOrder:o,error:a}=this.props,{showKeypad:i}=this.state,{validation:s,answer:l,alternates:c,ignoreOrder:u,allowTrailingZeros:p}=n,d=Object.keys(c||{}).length>0,h={editor:"response-editor",mathToolbar:"math-toolbar"},g={minHeight:(i.openCount>0?430:230)+"px"},f=`R ${parseInt(t)+1}`;return Mn.createElement(Yn,{style:g},Mn.createElement(Vn,null,Mn.createElement(Xn,null,Mn.createElement(Gn,{component:"div"},"Response for ",Mn.createElement(or,null,f)),Mn.createElement(Jn,{label:"Validation"},Mn.createElement(Bn,{onChange:this.onChange("validation"),value:s||"literal",MenuProps:{transitionDuration:{enter:225,exit:195}}},Mn.createElement(Fn,{value:"literal"},"Literal Validation"),Mn.createElement(Fn,{value:"symbolic"},"Symbolic Validation")))),"literal"===s&&Mn.createElement(er,null,r.enabled&&Mn.createElement(Kn,{label:r.label,control:Mn.createElement(ir,{checked:p,onChange:this.onLiteralOptionsChange("allowTrailingZeros")})}),o.enabled&&Mn.createElement(Kn,{label:o.label,control:Mn.createElement(ir,{checked:u,onChange:this.onLiteralOptionsChange("ignoreOrder")})})),Mn.createElement(Qn,null,Mn.createElement($n,null,"Correct Answer"),Mn.createElement(Zn,{keypadMode:e,classNames:h,controlledKeypad:!0,showKeypad:i.main,latex:l||"",onChange:this.onAnswerChange,onFocus:this.onFocus,onDone:this.onDone,error:a&&a.answer}),a&&a.answer?Mn.createElement(rr,null,a.answer):null),d&&Object.keys(c).map((t,n)=>Mn.createElement(Qn,{key:t},Mn.createElement($n,null,"Alternate",Object.keys(c).length>1?` ${n+1}`:""),Mn.createElement(ar,null,Mn.createElement(Zn,{classNames:h,controlledKeypad:!0,keypadMode:e,showKeypad:i[t]||!1,latex:c[t]||"",onChange:this.onAlternateAnswerChange(t),onFocus:this.onAlternateFocus(t),onDone:this.onAlternateDone(t),error:a&&a[t]}),Mn.createElement(nr,{onClick:this.onRemoveAlternate(t),size:"large"},Mn.createElement(Nn,null))),a&&a[t]?Mn.createElement(rr,null,a[t]):null)),Mn.createElement(tr,{type:"primary",onClick:this.onAddAlternate},"ADD ALTERNATE")))}}sr.__initStatic(),sr.__initStatic2();const lr="imes|riangle|an|heta|herefore",cr="throot|parallel|cong|approx|eq|e|sim",ur=new RegExp(`(\\t(?!${lr}))|(\\n(?!${cr}))|(\\\\t(?!${lr}))|(\\\\n(?!${cr}))`,"g"),pr=e=>e.replace(ur,"").replace(/\\"/g,'"').replace(/\\\//g,"/"),dr=e=>{const t=((e="")=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(pr(e||"")||"");return t.querySelectorAll('[data-type="math_templated"]').forEach(e=>e.replaceWith(`{{${e.dataset.index}}}`)),t.innerHTML},hr=/\{\{(\d+)\}\}/g,gr=(e,t)=>e?pr(e).replace(hr,(e,n)=>{const r=function(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}([t,"access",e=>e[n],"optionalAccess",e=>e.answer])||"";return`<span data-type="math_templated" data-index="${n}" data-value="${r}"></span>`}):"",fr=e,mr=t,{styled:br}=r,{Typography:yr}=n,{Select:_r}=n,{MenuItem:vr}=n,{Tooltip:Cr}=n,{Info:jr}=o,{InputContainer:wr}=l,{settings:Er}=l,{layout:Sr}=l,Ar=c,{ALL_PLUGINS:Or}=c;function xr(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const{dropdown:Ir}=Er,{Panel:Tr,toggle:Mr}=Er,kr=br(wr)(({theme:e})=>({width:"100%",paddingTop:e.spacing(2),marginBottom:e.spacing(2)})),Pr=br(Ar)({width:"100%"}),Rr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginTop:e.spacing(1)})),Dr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginBottom:e.spacing(1)})),Kr=br(Ar)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),marginBottom:e.spacing(3)})),zr=br(wr)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),"& > *:not(label)":{marginTop:e.spacing(1)},marginBottom:e.spacing(2)})),$r=br(_r)({width:"100%"}),qr=br(yr)(({theme:e})=>({fontSize:1.25*e.typography.fontSize,fontWeight:"bold"})),Br=br("div")({display:"flex",alignItems:"center",gap:"8px"}),Fr=br(Cr)(({theme:e})=>({"& .MuiTooltip-tooltip":{fontSize:e.typography.fontSize-2,whiteSpace:"pre",maxWidth:"500px"}}));class Lr extends fr.Component{constructor(...e){super(...e),Lr.prototype.__init.call(this),Lr.prototype.__init2.call(this),Lr.prototype.__init3.call(this),Lr.prototype.__init4.call(this),Lr.prototype.__init5.call(this),Lr.prototype.__init6.call(this),Lr.prototype.__init7.call(this),Lr.prototype.__init8.call(this),Lr.prototype.__init9.call(this)}static __initStatic(){this.propTypes={model:mr.object.isRequired,configuration:mr.object.isRequired,onModelChanged:mr.func.isRequired,onConfigurationChanged:mr.func.isRequired,imageSupport:mr.shape({add:mr.func.isRequired,delete:mr.func.isRequired}),uploadSoundSupport:mr.object}}__init(){this.state={}}componentDidMount(){const{model:{slateMarkup:e}}=this.props;this.setState({markup:e})}__init2(){this.handleChange=(e,t)=>{const{onModelChanged:n,model:r}=this.props,o=sn(r);o[e]=t,n(o)}}__init3(){this.onResponseChange=(e,t)=>{const{model:n,onModelChanged:r}=this.props,o={...n};o.responses[t]=e,r(o)}}__init4(){this.onResponseDone=()=>{const{model:e,onModelChanged:t}=this.props;t({...e,slateMarkup:gr(e.markup,e.responses)})}}__init5(){this.onChangeResponse=(e,t)=>{const{model:n,onModelChanged:r}=this.props,{responses:o}=n;o[e]?o[e][0].answer=t||"":o[e]=[{answer:t||"",id:"response"+e,allowSpaces:!0}],r({...n,responses:o})}}__init6(){this.onResponsesChanged=e=>{this.props.onModelChanged({...this.props.model,responses:e})}}__init7(){this.onChange=e=>{const{model:{responses:t,validationDefault:n,allowTrailingZerosDefault:r,ignoreOrderDefault:o},onModelChanged:a}=this.props,i={},s=(e=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(e);s.querySelectorAll('[data-type="math_templated"]').forEach((e,a)=>{const{value:s,index:l}=e.dataset;s||(e.dataset.value=""),i[a]=t[l]||{allowSpaces:!0,validation:n||"symbolic",allowTrailingZeros:r||!1,ignoreOrder:o||!1,answer:"",alternates:{}},e.dataset.index=a.toString()});const l=dr(e);this.setState({cachedResponses:void 0},()=>a({...this.props.model,slateMarkup:s.innerHTML,responses:i,markup:l}))}}__init8(){this.onHandleAreaChange=function(e,t,n){var r=!0,o=!0;return T(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),function(e,t,n){var r,o,a,i,s,l,c=0,u=!1,p=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function g(e){var n=e-l;return void 0===l||n>=t||n<0||p&&e-c>=a}function f(){var e=cn();if(g(e))return m(e);s=setTimeout(f,function(e){var n=t-(e-l);return p?pn(n,a-(e-c)):n}(e))}function m(e){return s=void 0,d&&r?h(e):(r=o=void 0,i)}function b(){var e=cn(),n=g(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(f,t),u?h(e):i}(l);if(p)return clearTimeout(s),s=setTimeout(f,t),h(l)}return void 0===s&&(s=setTimeout(f,t)),i}return t=D(t)||0,T(n)&&(u=!!n.leading,a=(p="maxWait"in n)?un(D(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),b.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},b.flush=function(){return void 0===s?i:m(cn())},b}(e,500,{leading:r,maxWait:500,trailing:o})}(e=>{const{model:{responses:t},onModelChanged:n}=this.props,{cachedResponses:r}=this.state;if(!e)return;const o=t?sn(t):{},a=r?sn(r):{};e.forEach(e=>{const t=e.data.get("index");!o[t]&&a[t]?(Object.assign(o,_n(a,t)),Object.prototype.hasOwnProperty.call(a,t)&&delete a[t]):(Object.assign(a,_n(o,t)),Object.prototype.hasOwnProperty.call(o,t)&&delete o[t])}),this.setState({cachedResponses:a},()=>n({...this.props.model,responses:o}))},0,{trailing:!1,leading:!0})}__init9(){this.onBlur=e=>{const{relatedTarget:t,currentTarget:n}=e||{},r=function e(t,n=0){if(!t||n>=16)return null;const r=t.offsetParent;return r?"tooltip"===r.getAttribute("role")?r:e(r,n+1):null}(t),o=r?function e(t,n=0){if(!t||n>=4)return null;const r=xr([t,"optionalAccess",e=>e.children,"optionalAccess",e=>e[0]]);return r?r.attributes&&r.attributes["data-keypad"]?r:e(r,n+1):null}(r):null;t&&n&&xr([o,"optionalAccess",e=>e.attributes,"access",e=>e["data-keypad"]])||this.setState({activeAnswerBlock:""})}}render(){const{configuration:e,imageSupport:t,model:n,onConfigurationChanged:r,onModelChanged:o,uploadSoundSupport:a}=this.props,{baseInputConfiguration:i={},contentDimensions:s={},prompt:l={},rationale:c={},settingsPanelDisabled:u,teacherInstructions:p={},language:d={},languageChoices:h={},spellCheck:g={},playerSpellCheck:f={},maxImageWidth:m={},maxImageHeight:b={},mathMlOptions:y={},template:_={},editSource:v={},ignoreOrder:C={},allowTrailingZeros:j={},partialScoring:w={},maxResponseAreas:E}=e||{},{errors:S,extraCSSRules:A,promptEnabled:O,rationaleEnabled:x,spellCheckEnabled:I,teacherInstructionsEnabled:T,toolbarEditorPosition:M,responses:k,equationEditor:P}=n||{},{prompt:R,rationale:D,responseAreas:K,teacherInstructions:z,responses:$={}}=S||{},q=(e=>{const{maxResponseAreas:t}=e;return"Validation requirements:\nCorrect answers should not be blank.\nEach answer defined for a response area should be unique.\nThere should be at least 1 "+(t?`and at most ${t} `:"")+"response area"+(t?"s":"")+" defined."})(e),B={"language.enabled":d.settings&&Mr(d.label,!0),language:d.settings&&d.enabled&&Ir(h.label,h.options)},F={teacherInstructionsEnabled:p.settings&&Mr(p.label),rationaleEnabled:c.settings&&Mr(c.label),promptEnabled:l.settings&&Mr(l.label),spellCheckEnabled:g.settings&&Mr(g.label),playerSpellCheckEnabled:f.settings&&Mr(f.label),"editSource.enabled":xr([v,"optionalAccess",e=>e.settings])&&Mr(v.label,!0),partialScoring:w.settings&&Mr(w.label)},L=m&&m.prompt,U=b&&b.prompt,N={position:"top"===M?"top":"bottom"},W=(e={},t={})=>({...t,...e});return fr.createElement(Sr.ConfigLayout,{extraCSSRules:A,dimensions:s,hideSettings:u,settings:fr.createElement(Tr,{model:n,configuration:e,onChangeModel:e=>o(e),onChangeConfiguration:r,groups:{Settings:B,Properties:F}})},T&&fr.createElement(kr,{label:p.label},fr.createElement(Pr,{markup:n.teacherInstructions||"",onChange:e=>this.handleChange("teacherInstructions",e),imageSupport:t,nonEmpty:!1,error:z,toolbarOpts:N,pluginProps:W(xr([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:m&&m.teacherInstructions||L,maxImageHeight:b&&b.teacherInstructions||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),z&&fr.createElement(Rr,null,z)),O&&fr.createElement(kr,{label:l.label},fr.createElement(Pr,{markup:n.prompt,onChange:e=>this.handleChange("prompt",e),imageSupport:t,nonEmpty:!1,disableUnderline:!0,error:R,toolbarOpts:N,pluginProps:W(xr([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:L,maxImageHeight:U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),R&&fr.createElement(Rr,null,R)),fr.createElement(Br,null,fr.createElement(qr,{component:"div"},"Response Template"),fr.createElement(Fr,{disableFocusListener:!0,disableTouchListener:!0,placement:"right",title:q},fr.createElement(jr,{fontSize:"small",color:"primary"}))),fr.createElement(Kr,{activePlugins:Or,toolbarOpts:{position:"top"},spellCheck:I,pluginProps:W(xr([_,"optionalAccess",e=>e.inputConfiguration]),i),responseAreaProps:{type:"math-templated",respAreaToolbar:null,error:()=>$,onHandleAreaChange:this.onHandleAreaChange,maxResponseAreas:E},markup:n.slateMarkup,onChange:this.onChange,imageSupport:t,disableImageAlignmentButtons:!0,onBlur:this.onBlur,disabled:!1,highlightShape:!1,error:K,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),K&&fr.createElement(Dr,null,K),fr.createElement(qr,null,"Define Response"),fr.createElement(zr,{label:"Response Template Equation Editor"},fr.createElement($r,{MenuProps:{transitionDuration:{enter:225,exit:195}},onChange:e=>this.handleChange("equationEditor",e.target.value),value:P},fr.createElement(vr,{value:"non-negative-integers"},"Numeric - Non-Negative Integers"),fr.createElement(vr,{value:"integers"},"Numeric - Integers"),fr.createElement(vr,{value:"decimals"},"Numeric - Decimals"),fr.createElement(vr,{value:"fractions"},"Numeric - Fractions"),fr.createElement(vr,{value:1},"Grade 1 - 2"),fr.createElement(vr,{value:3},"Grade 3 - 5"),fr.createElement(vr,{value:6},"Grade 6 - 7"),fr.createElement(vr,{value:8},"Grade 8 - HS"),fr.createElement(vr,{value:"geometry"},"Geometry"),fr.createElement(vr,{value:"advanced-algebra"},"Advanced Algebra"),fr.createElement(vr,{value:"statistics"},"Statistics"),fr.createElement(vr,{value:"item-authoring"},"Item Authoring"))),Object.keys(k||{}).map((e,t)=>{const n=k[t];return n?fr.createElement(sr,{key:t,responseKey:t,mode:P,response:n,onResponseChange:this.onResponseChange,onResponseDone:this.onResponseDone,index:t,cIgnoreOrder:C,cAllowTrailingZeros:j,error:$&&$[t]}):null}),x&&fr.createElement(kr,{label:c.label},fr.createElement(Pr,{markup:n.rationale||"",onChange:e=>this.handleChange("rationale",e),imageSupport:t,nonEmpty:!1,error:D,toolbarOpts:N,pluginProps:W(xr([c,"optionalAccess",e=>e.inputConfiguration]),{...i,math:{controlledKeypadMode:!1}}),spellCheck:I,maxImageWidth:m&&m.rationale||L,maxImageHeight:b&&b.rationale||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),D&&fr.createElement(Rr,null,D)))}}Lr.__initStatic();var Ur={allowTrailingZerosDefault:!1,equationEditor:"8",ignoreOrderDefault:!1,markup:"",playerSpellCheckEnabled:!0,prompt:"",promptEnabled:!0,rationale:"",rationaleEnabled:!0,responses:{},spellCheckEnabled:!0,teacherInstructions:"",teacherInstructionsEnabled:!0,toolbarEditorPosition:"bottom",validationDefault:"literal"},Nr={ignoreOrder:{settings:!0,label:"Ignore Order",enabled:!0},allowTrailingZeros:{settings:!0,label:"Allow Trailing Zeros",enabled:!0},partialScoring:{settings:!0,label:"Allow Partial Scoring"},baseInputConfiguration:{html:{disabled:!0},audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1},h3:{disabled:!0},blockquote:{disabled:!0},textAlign:{disabled:!0},showParagraphs:{disabled:!1},separateParagraphs:{disabled:!0}},prompt:{label:"Prompt",settings:!0,inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},spellCheck:{label:"Spellcheck",settings:!1,enabled:!0},editSource:{label:"Edit Source",settings:!1,enabled:!1},playerSpellCheck:{label:"Student Spellcheck",settings:!0,enabled:!0},teacherInstructions:{settings:!0,label:"Teacher Instructions",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},rationale:{settings:!0,label:"Rationale",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},template:{inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}}},maxImageWidth:{teacherInstructions:300,prompt:300,rationale:300},maxImageHeight:{teacherInstructions:300,prompt:300,rationale:300},mathMlOptions:{mmlOutput:!1,mmlEditing:!1},language:{settings:!1,label:"Specify Language",enabled:!1},languageChoices:{label:"Language Choices",options:[]},maxResponseAreas:10};const Wr=e,{createRoot:Hr}=s;function Zr(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const Yr=i("math-templated:configure");class Vr extends HTMLElement{static __initStatic(){this.prepareModel=(e={})=>{const{validationDefault:t,allowTrailingZerosDefault:n,ignoreOrderDefault:r,responses:o={}}=e,a=Object.keys(o).reduce((e,a)=>{const i=o[a];return e[a]={...i,validation:i.validation||t,allowTrailingZeros:i.allowTrailingZeros||n,ignoreOrder:i.ignoreOrder||r},e},{}),i={...Ur,...e,responses:a},s=i.slateMarkup||gr(i.markup,i.responses),l=dr(s);return i.responses&&Object.keys(i.responses).forEach(e=>{E(i.responses[e])&&(i.responses[e]=(i.responses[e]||[]).map((e,t)=>e.answer?e:(Yr('Choice does not contain "answer" property, which is required.',e),{answer:`${t}`,...e})))}),{...i,slateMarkup:s,markup:l}}}constructor(){super(),this._root=null,this._model=Vr.prepareModel(),this._configuration=Nr,this.onModelChanged=this.onModelChanged.bind(this),this.onConfigurationChanged=this.onConfigurationChanged.bind(this)}set model(e){this._model=Vr.prepareModel(e),this._render()}set configuration(e){this._configuration=fn(e,Nr),Zr([e,"access",e=>e.language,"optionalAccess",e=>e.enabled])?Zr([e,"access",e=>e.languageChoices,"optionalAccess",e=>e.options,"optionalAccess",e=>e.length])&&(this._model.language=e.languageChoices.options[0].value):e.language.settings&&this._model.language?(this._configuration.language.enabled=!0,this._configuration.languageChoices.options&&this._configuration.languageChoices.options.length||(this._configuration.languageChoices.options=[]),this._configuration.languageChoices.options.find(e=>e.value===this._model.language)||this._configuration.languageChoices.options.push({value:this._model.language,label:this._model.language})):delete this._model.language,this._render()}set disableSidePanel(e){this._disableSidePanel=e,this._render()}dispatchModelUpdated(e){const t=!!e;this.dispatchEvent(new jn(this._model,t))}onModelChanged(e,t){this._model=Vr.prepareModel(e),this._render(),this.dispatchModelUpdated(t)}onConfigurationChanged(e){this._configuration=e,this._render()}insertImage(e){this.dispatchEvent(new An(e))}onDeleteImage(e,t){this.dispatchEvent(new En(e,t))}insertSound(e){this.dispatchEvent(new Tn(e))}onDeleteSound(e,t){this.dispatchEvent(new xn(e,t))}_render(){Yr("_render");let e=Wr.createElement(Lr,{model:this._model,configuration:this._configuration,onModelChanged:this.onModelChanged,onConfigurationChanged:this.onConfigurationChanged,disableSidePanel:this._disableSidePanel,imageSupport:{add:this.insertImage.bind(this),delete:this.onDeleteImage.bind(this)},uploadSoundSupport:{add:this.insertSound.bind(this),delete:this.onDeleteSound.bind(this)}});this._root||(this._root=Hr(this)),this._root.render(e)}disconnectedCallback(){this._root&&this._root.unmount()}}Vr.__initStatic();export{Vr as default};