@pie-element/math-templated 6.2.0-next.0 → 6.2.0-next.10

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_dom as e,_dll_react as t,_dll_prop_types as n,_dll_mui__material as r,_dll_mui__material_styles as o,_dll_mui__icons_material as a,_dll_pie_lib__render_ui as i,_dll_debug as s}from"../../../@pie-lib/shared-module@^4.1.0/module/index.js";import{_dll_pie_lib__config_ui as l}from"../../../@pie-lib/config-module@^3.1.0/module/index.js";import{_dll_pie_lib__editable_html_tip_tap as c}from"../../../@pie-lib/editable-html-module@^6.2.0/module/index.js";import{_dll_pie_lib__math_toolbar as u}from"../../../@pie-lib/math-edit-module@^3.2.0/module/index.js";var p,d=e;p=d.createRoot,d.hydrateRoot;var h="object"==typeof global&&global&&global.Object===Object&&global,g="object"==typeof self&&self&&self.Object===Object&&self,f=h||g||Function("return this")(),m=f.Symbol,b=Object.prototype,y=b.hasOwnProperty,_=b.toString,v=m?m.toStringTag:void 0,C=Object.prototype.toString,j=m?m.toStringTag:void 0;function w(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":j&&j in Object(e)?function(e){var t=y.call(e,v),n=e[v];try{e[v]=void 0;var r=!0}catch(e){}var o=_.call(e);return r&&(t?e[v]=n:delete e[v]),o}(e):function(e){return C.call(e)}(e)}function E(e){return null!=e&&"object"==typeof e}function S(e){return"symbol"==typeof e||E(e)&&"[object Symbol]"==w(e)}var A=Array.isArray,O=m?m.prototype:void 0,x=O?O.toString:void 0;function I(e){if("string"==typeof e)return e;if(A(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,I)+"";if(S(e))return x?x.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}var T=/\s/,M=/^\s+/;function k(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var P=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,D=/^0o[0-7]+$/i,K=parseInt;function z(e){if("number"==typeof e)return e;if(S(e))return NaN;if(k(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=k(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--&&T.test(e.charAt(t)););return t}(e)+1).replace(M,""):e}(e);var n=R.test(e);return n||D.test(e)?K(e.slice(2),n?2:8):P.test(e)?NaN:+e}function $(e){return e}function q(e){if(!k(e))return!1;var t=w(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var B,F=f["__core-js_shared__"],L=(B=/[^.]+$/.exec(F&&F.keys&&F.keys.IE_PROTO||""))?"Symbol(src)_1."+B:"",U=Function.prototype.toString;function N(e){if(null!=e){try{return U.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var W=/^\[object .+?Constructor\]$/,H=Function.prototype,Z=Object.prototype,Y=H.toString,V=Z.hasOwnProperty,G=RegExp("^"+Y.call(V).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function J(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!k(e)||(t=e,L&&L in t))&&(q(e)?G:W).test(N(e));var t}(n)?n:void 0}var Q,X,ee,te=J(f,"WeakMap"),ne=Object.create,re=function(){function e(){}return function(t){if(!k(t))return{};if(ne)return ne(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),oe=Date.now,ae=function(){try{var e=J(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),ie=ae,se=ie?function(e,t){return ie(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:$,le=(Q=se,X=0,ee=0,function(){var e=oe(),t=16-(e-ee);if(ee=e,t>0){if(++X>=800)return arguments[0]}else X=0;return Q.apply(void 0,arguments)}),ce=/^(?:0|[1-9]\d*)$/;function ue(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&ce.test(e))&&e>-1&&e%1==0&&e<t}function pe(e,t,n){"__proto__"==t&&ie?ie(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function de(e,t){return e===t||e!=e&&t!=t}var he=Object.prototype.hasOwnProperty;function ge(e,t,n){var r=e[t];he.call(e,t)&&de(r,n)&&(void 0!==n||t in e)||pe(e,t,n)}function fe(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?pe(n,s,l):ge(n,s,l)}return n}var me=Math.max;function be(e,t,n){return t=me(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=me(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 ye(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function _e(e){return null!=e&&ye(e.length)&&!q(e)}var ve=Object.prototype;function Ce(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ve)}function je(e){return E(e)&&"[object Arguments]"==w(e)}var we=Object.prototype,Ee=we.hasOwnProperty,Se=we.propertyIsEnumerable,Ae=je(function(){return arguments}())?je:function(e){return E(e)&&Ee.call(e,"callee")&&!Se.call(e,"callee")},Oe="object"==typeof exports&&exports&&!exports.nodeType&&exports,xe=Oe&&"object"==typeof module&&module&&!module.nodeType&&module,Ie=xe&&xe.exports===Oe?f.Buffer:void 0,Te=(Ie?Ie.isBuffer:void 0)||function(){return!1},Me={};function ke(e){return function(t){return e(t)}}Me["[object Float32Array]"]=Me["[object Float64Array]"]=Me["[object Int8Array]"]=Me["[object Int16Array]"]=Me["[object Int32Array]"]=Me["[object Uint8Array]"]=Me["[object Uint8ClampedArray]"]=Me["[object Uint16Array]"]=Me["[object Uint32Array]"]=!0,Me["[object Arguments]"]=Me["[object Array]"]=Me["[object ArrayBuffer]"]=Me["[object Boolean]"]=Me["[object DataView]"]=Me["[object Date]"]=Me["[object Error]"]=Me["[object Function]"]=Me["[object Map]"]=Me["[object Number]"]=Me["[object Object]"]=Me["[object RegExp]"]=Me["[object Set]"]=Me["[object String]"]=Me["[object WeakMap]"]=!1;var Pe="object"==typeof exports&&exports&&!exports.nodeType&&exports,Re=Pe&&"object"==typeof module&&module&&!module.nodeType&&module,De=Re&&Re.exports===Pe&&h.process,Ke=function(){try{return Re&&Re.require&&Re.require("util").types||De&&De.binding&&De.binding("util")}catch(e){}}(),ze=Ke&&Ke.isTypedArray,$e=ze?ke(ze):function(e){return E(e)&&ye(e.length)&&!!Me[w(e)]},qe=Object.prototype.hasOwnProperty;function Be(e,t){var n=A(e),r=!n&&Ae(e),o=!n&&!r&&Te(e),a=!n&&!r&&!o&&$e(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&&!qe.call(e,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||ue(c,l))||s.push(c);return s}function Fe(e,t){return function(n){return e(t(n))}}var Le=Fe(Object.keys,Object),Ue=Object.prototype.hasOwnProperty;function Ne(e){return _e(e)?Be(e):function(e){if(!Ce(e))return Le(e);var t=[];for(var n in Object(e))Ue.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}var We=Object.prototype.hasOwnProperty;function He(e){return _e(e)?Be(e,!0):function(e){if(!k(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=Ce(e),n=[];for(var r in e)("constructor"!=r||!t&&We.call(e,r))&&n.push(r);return n}(e)}var Ze=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ye=/^\w*$/,Ve=J(Object,"create"),Ge=Object.prototype.hasOwnProperty,Je=Object.prototype.hasOwnProperty;function Qe(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 Xe(e,t){for(var n=e.length;n--;)if(de(e[n][0],t))return n;return-1}Qe.prototype.clear=function(){this.__data__=Ve?Ve(null):{},this.size=0},Qe.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Qe.prototype.get=function(e){var t=this.__data__;if(Ve){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Ge.call(t,e)?t[e]:void 0},Qe.prototype.has=function(e){var t=this.__data__;return Ve?void 0!==t[e]:Je.call(t,e)},Qe.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ve&&void 0===t?"__lodash_hash_undefined__":t,this};var et=Array.prototype.splice;function tt(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])}}tt.prototype.clear=function(){this.__data__=[],this.size=0},tt.prototype.delete=function(e){var t=this.__data__,n=Xe(t,e);return!(n<0||(n==t.length-1?t.pop():et.call(t,n,1),--this.size,0))},tt.prototype.get=function(e){var t=this.__data__,n=Xe(t,e);return n<0?void 0:t[n][1]},tt.prototype.has=function(e){return Xe(this.__data__,e)>-1},tt.prototype.set=function(e,t){var n=this.__data__,r=Xe(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var nt=J(f,"Map");function rt(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 ot(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 at(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(at.Cache||ot),n}ot.prototype.clear=function(){this.size=0,this.__data__={hash:new Qe,map:new(nt||tt),string:new Qe}},ot.prototype.delete=function(e){var t=rt(this,e).delete(e);return this.size-=t?1:0,t},ot.prototype.get=function(e){return rt(this,e).get(e)},ot.prototype.has=function(e){return rt(this,e).has(e)},ot.prototype.set=function(e,t){var n=rt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},at.Cache=ot;var it=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,st=/\\(\\)?/g,lt=function(){var e=at(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(it,function(e,n,r,o){t.push(r?o.replace(st,"$1"):n||e)}),t},function(e){return 500===t.size&&t.clear(),e}),t=e.cache;return e}(),ct=lt;function ut(e,t){return A(e)?e:function(e,t){if(A(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!S(e))||Ye.test(e)||!Ze.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:ct(function(e){return null==e?"":I(e)}(e))}function pt(e){if("string"==typeof e||S(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function dt(e,t){for(var n=0,r=(t=ut(t,e)).length;null!=e&&n<r;)e=e[pt(t[n++])];return n&&n==r?e:void 0}function ht(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}var gt=m?m.isConcatSpreadable:void 0;function ft(e){return A(e)||Ae(e)||!!(gt&&e&&e[gt])}function mt(e,t,n,r,o){var a=-1,i=e.length;for(n||(n=ft),o||(o=[]);++a<i;){var s=e[a];t>0&&n(s)?t>1?mt(s,t-1,n,r,o):ht(o,s):r||(o[o.length]=s)}return o}function bt(e){return null!=e&&e.length?mt(e,1):[]}var yt=Fe(Object.getPrototypeOf,Object);function _t(e){var t=this.__data__=new tt(e);this.size=t.size}_t.prototype.clear=function(){this.__data__=new tt,this.size=0},_t.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},_t.prototype.get=function(e){return this.__data__.get(e)},_t.prototype.has=function(e){return this.__data__.has(e)},_t.prototype.set=function(e,t){var n=this.__data__;if(n instanceof tt){var r=n.__data__;if(!nt||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ot(r)}return n.set(e,t),this.size=n.size,this};var vt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ct=vt&&"object"==typeof module&&module&&!module.nodeType&&module,jt=Ct&&Ct.exports===vt?f.Buffer:void 0,wt=jt?jt.allocUnsafe:void 0;function Et(){return[]}var St=Object.prototype.propertyIsEnumerable,At=Object.getOwnPropertySymbols,Ot=At?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}(At(e),function(t){return St.call(e,t)}))}:Et,xt=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)ht(t,Ot(e)),e=yt(e);return t}:Et;function It(e,t,n){var r=t(e);return A(e)?r:ht(r,n(e))}function Tt(e){return It(e,Ne,Ot)}function Mt(e){return It(e,He,xt)}var kt=J(f,"DataView"),Pt=J(f,"Promise"),Rt=J(f,"Set"),Dt="[object Map]",Kt="[object Promise]",zt="[object Set]",$t="[object WeakMap]",qt="[object DataView]",Bt=N(kt),Ft=N(nt),Lt=N(Pt),Ut=N(Rt),Nt=N(te),Wt=w;(kt&&Wt(new kt(new ArrayBuffer(1)))!=qt||nt&&Wt(new nt)!=Dt||Pt&&Wt(Pt.resolve())!=Kt||Rt&&Wt(new Rt)!=zt||te&&Wt(new te)!=$t)&&(Wt=function(e){var t=w(e),n="[object Object]"==t?e.constructor:void 0,r=n?N(n):"";if(r)switch(r){case Bt:return qt;case Ft:return Dt;case Lt:return Kt;case Ut:return zt;case Nt:return $t}return t});var Ht=Wt,Zt=Object.prototype.hasOwnProperty,Yt=f.Uint8Array;function Vt(e){var t=new e.constructor(e.byteLength);return new Yt(t).set(new Yt(e)),t}var Gt=/\w*$/,Jt=m?m.prototype:void 0,Qt=Jt?Jt.valueOf:void 0;var Xt=Ke&&Ke.isMap,en=Xt?ke(Xt):function(e){return E(e)&&"[object Map]"==Ht(e)},tn=Ke&&Ke.isSet,nn=tn?ke(tn):function(e){return E(e)&&"[object Set]"==Ht(e)},rn="[object Arguments]",on="[object Function]",an="[object Object]",sn={};function ln(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(!k(e))return e;var u=A(e);if(u){if(i=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Zt.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=Ht(e),d=p==on||"[object GeneratorFunction]"==p;if(Te(e))return function(e,t){if(t)return e.slice();var n=e.length,r=wt?wt(n):new e.constructor(n);return e.copy(r),r}(e,s);if(p==an||p==rn||d&&!o){if(i=l||d?{}:function(e){return"function"!=typeof e.constructor||Ce(e)?{}:re(yt(e))}(e),!s)return l?function(e,t){return fe(e,xt(e),t)}(e,function(e,t){return e&&fe(t,He(t),e)}(i,e)):function(e,t){return fe(e,Ot(e),t)}(e,function(e,t){return e&&fe(t,Ne(t),e)}(i,e))}else{if(!sn[p])return o?e:{};i=function(e,t,n){var r,o,a,i=e.constructor;switch(t){case"[object ArrayBuffer]":return Vt(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return function(e,t){var n=t?Vt(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?Vt(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,Gt.exec(o))).lastIndex=o.lastIndex,a;case"[object Symbol]":return r=e,Qt?Object(Qt.call(r)):{}}}(e,p,s)}}a||(a=new _t);var h=a.get(e);if(h)return h;a.set(e,i),nn(e)?e.forEach(function(r){i.add(ln(r,t,n,r,e,a))}):en(e)&&e.forEach(function(r,o){i.set(o,ln(r,t,n,o,e,a))});var g=u?void 0:(c?l?Mt:Tt:l?He:Ne)(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]),ge(i,o,ln(r,t,n,o,e,a))}),i}function cn(e){return ln(e,5)}function un(e,t){return null!=e&&t in Object(e)}sn[rn]=sn["[object Array]"]=sn["[object ArrayBuffer]"]=sn["[object DataView]"]=sn["[object Boolean]"]=sn["[object Date]"]=sn["[object Float32Array]"]=sn["[object Float64Array]"]=sn["[object Int8Array]"]=sn["[object Int16Array]"]=sn["[object Int32Array]"]=sn["[object Map]"]=sn["[object Number]"]=sn[an]=sn["[object RegExp]"]=sn["[object Set]"]=sn["[object String]"]=sn["[object Symbol]"]=sn["[object Uint8Array]"]=sn["[object Uint8ClampedArray]"]=sn["[object Uint16Array]"]=sn["[object Uint32Array]"]=!0,sn["[object Error]"]=sn[on]=sn["[object WeakMap]"]=!1;var pn=function(){return f.Date.now()},dn=Math.max,hn=Math.min;var gn=Object.prototype,fn=gn.hasOwnProperty,mn=function(e){return le(be(e,void 0,$),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(!k(n))return!1;var r=typeof t;return!!("number"==r?_e(n)&&ue(t,n.length):"string"==r&&t in n)&&de(n[t],e)}(t[0],t[1],o)&&(r=1);++n<r;)for(var a=t[n],i=He(a),s=-1,l=i.length;++s<l;){var c=i[s],u=e[c];(void 0===u||de(u,gn[c])&&!fn.call(e,c))&&(e[c]=a[c])}return e}),bn=mn;function yn(e,t,n,r){if(!k(e))return e;for(var o=-1,a=(t=ut(t,e)).length,i=a-1,s=e;null!=s&&++o<a;){var l=pt(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=k(u)?u:ue(t[o+1])?[]:{})}ge(s,l,c),s=s[l]}return e}function _n(e,t){return function(e,t,n){for(var r=-1,o=t.length,a={};++r<o;){var i=t[r],s=dt(e,i);n(s,i)&&yn(a,ut(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=ut(t,e)).length,a=!1;++r<o;){var i=pt(t[r]);if(!(a=null!=e&&n(e,i)))break;e=e[i]}return a||++r!=o?a:!!(o=null==e?0:e.length)&&ye(o)&&ue(i,o)&&(A(e)||Ae(e))}(e,t,un)}(e,n)})}var vn=function(e){return le(be(e,void 0,bt),e+"")}(function(e,t){return null==e?{}:_n(e,t)}),Cn=vn,jn={};Object.defineProperty(jn,"__esModule",{value:!0});class wn extends CustomEvent{constructor(e,t=!1){super(wn.TYPE,{bubbles:!0,detail:{update:e,reset:t}}),this.update=e,this.reset=t}}wn.TYPE="model.updated";var En=jn.ModelUpdatedEvent=wn;class Sn extends CustomEvent{constructor(e,t){super(Sn.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}Sn.TYPE="delete.image";var An=jn.DeleteImageEvent=Sn;class On extends CustomEvent{constructor(e){super(On.TYPE,{bubbles:!0,detail:e}),this.handler=e}}On.TYPE="insert.image";var xn=jn.InsertImageEvent=On;class In extends CustomEvent{constructor(e,t){super(In.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}In.TYPE="delete.sound";var Tn=jn.DeleteSoundEvent=In;class Mn extends CustomEvent{constructor(e){super(Mn.TYPE,{bubbles:!0,detail:e}),this.handler=e}}Mn.TYPE="insert.sound";var kn=jn.InsertSoundEvent=Mn;const Pn=t,Rn=n,{Card:Dn}=r,{CardContent:Kn}=r,{Button:zn}=r,{FormControlLabel:$n}=r,{Typography:qn}=r,{InputLabel:Bn}=r,{Checkbox:Fn}=r,{Select:Ln}=r,{MenuItem:Un}=r,{IconButton:Nn}=r,{styled:Wn}=o,{Delete:Hn}=a,{color:Zn}=i,{InputContainer:Yn}=l,{MathToolbar:Vn}=u,Gn=Wn(Dn)(({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"})),Jn=Wn(Kn)(({theme:e})=>({paddingBottom:`${e.spacing(2)} !important`})),Qn=Wn(qn)({fontWeight:700,fontSize:"1.2rem",flex:3}),Xn=Wn(Yn)(({theme:e})=>({flex:2,"& > *:not(label)":{marginTop:e.spacing(1)}})),er=Wn("div")(({theme:e})=>({marginBottom:e.spacing(2)})),tr=Wn("div")({display:"flex",alignItems:"center",justifyContent:"space-between"}),nr=Wn("div")({display:"flex"}),rr=Wn(zn)(({theme:e})=>({border:`1px solid ${e.palette.grey.A400}`,color:Zn.text()})),or=Wn(Nn)(({theme:e})=>({marginLeft:e.spacing(1)})),ar=Wn("div")(({theme:e})=>({fontSize:e.typography.fontSize-2,color:e.palette.error.main,paddingTop:e.spacing(1)})),ir=Wn("div")(({theme:e})=>({background:e.palette.grey.A100,color:e.palette.grey.A700,display:"inline",minWidth:"50px",padding:"8px",border:"1px solid #C0C3CF"})),sr=Wn("div")({display:"flex",justifyContent:"space-between",alignItems:"center"}),lr=Wn(Fn)({color:`${Zn.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 cr extends Pn.Component{static __initStatic(){this.propTypes={defaultResponse:Rn.bool,error:Rn.object,mode:Rn.oneOfType([Rn.string,Rn.number]),onResponseChange:Rn.func.isRequired,onResponseDone:Rn.func.isRequired,response:Rn.object.isRequired,cIgnoreOrder:Rn.object.isRequired,cAllowTrailingZeros:Rn.object.isRequired,responseKey:Rn.number.isRequired}}static __initStatic2(){this.defaultProps={defaultResponse:!1,mode:"8"}}constructor(e){super(e),cr.prototype.__init.call(this),cr.prototype.__init2.call(this),cr.prototype.__init3.call(this),cr.prototype.__init4.call(this),cr.prototype.__init5.call(this),cr.prototype.__init6.call(this),cr.prototype.__init7.call(this),cr.prototype.__init8.call(this),cr.prototype.__init9.call(this),cr.prototype.__init10.call(this),cr.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 Pn.createElement(Gn,{style:g},Pn.createElement(Jn,null,Pn.createElement(tr,null,Pn.createElement(Qn,{component:"div"},"Response for ",Pn.createElement(ir,null,f)),Pn.createElement(Xn,{label:"Validation"},Pn.createElement(Ln,{onChange:this.onChange("validation"),value:s||"literal",MenuProps:{transitionDuration:{enter:225,exit:195}}},Pn.createElement(Un,{value:"literal"},"Literal Validation"),Pn.createElement(Un,{value:"symbolic"},"Symbolic Validation")))),"literal"===s&&Pn.createElement(nr,null,r.enabled&&Pn.createElement($n,{label:r.label,control:Pn.createElement(lr,{checked:p,onChange:this.onLiteralOptionsChange("allowTrailingZeros")})}),o.enabled&&Pn.createElement($n,{label:o.label,control:Pn.createElement(lr,{checked:u,onChange:this.onLiteralOptionsChange("ignoreOrder")})})),Pn.createElement(er,null,Pn.createElement(Bn,null,"Correct Answer"),Pn.createElement(Vn,{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?Pn.createElement(ar,null,a.answer):null),d&&Object.keys(c).map((t,n)=>Pn.createElement(er,{key:t},Pn.createElement(Bn,null,"Alternate",Object.keys(c).length>1?` ${n+1}`:""),Pn.createElement(sr,null,Pn.createElement(Vn,{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]}),Pn.createElement(or,{onClick:this.onRemoveAlternate(t),size:"large"},Pn.createElement(Hn,null))),a&&a[t]?Pn.createElement(ar,null,a[t]):null)),Pn.createElement(rr,{type:"primary",onClick:this.onAddAlternate},"ADD ALTERNATE")))}}cr.__initStatic(),cr.__initStatic2();const ur="imes|riangle|an|heta|herefore",pr="throot|parallel|cong|approx|eq|e|sim",dr=new RegExp(`(\\t(?!${ur}))|(\\n(?!${pr}))|(\\\\t(?!${ur}))|(\\\\n(?!${pr}))`,"g"),hr=e=>e.replace(dr,"").replace(/\\"/g,'"').replace(/\\\//g,"/"),gr=e=>{const t=((e="")=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(hr(e||"")||"");return t.querySelectorAll('[data-type="math_templated"]').forEach(e=>e.replaceWith(`{{${e.dataset.index}}}`)),t.innerHTML},fr=/\{\{(\d+)\}\}/g,mr=(e,t)=>e?hr(e).replace(fr,(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>`}):"",br=t,yr=n,{styled:_r}=o,{Typography:vr}=r,{Select:Cr}=r,{MenuItem:jr}=r,{Tooltip:wr}=r,{Info:Er}=a,{InputContainer:Sr}=l,{settings:Ar}=l,{layout:Or}=l,xr=c,{ALL_PLUGINS:Ir}=c;function Tr(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:Mr}=Ar,{Panel:kr,toggle:Pr}=Ar,Rr=_r(Sr)(({theme:e})=>({width:"100%",paddingTop:e.spacing(2),marginBottom:e.spacing(2)})),Dr=_r(xr)({width:"100%"}),Kr=_r("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginTop:e.spacing(1)})),zr=_r("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginBottom:e.spacing(1)})),$r=_r(xr)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),marginBottom:e.spacing(3)})),qr=_r(Sr)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),"& > *:not(label)":{marginTop:e.spacing(1)},marginBottom:e.spacing(2)})),Br=_r(Cr)({width:"100%"}),Fr=_r(vr)(({theme:e})=>({fontSize:1.25*e.typography.fontSize,fontWeight:"bold"})),Lr=_r("div")({display:"flex",alignItems:"center",gap:"8px"}),Ur=_r(wr)(({theme:e})=>({"& .MuiTooltip-tooltip":{fontSize:e.typography.fontSize-2,whiteSpace:"pre",maxWidth:"500px"}}));class Nr extends br.Component{constructor(...e){super(...e),Nr.prototype.__init.call(this),Nr.prototype.__init2.call(this),Nr.prototype.__init3.call(this),Nr.prototype.__init4.call(this),Nr.prototype.__init5.call(this),Nr.prototype.__init6.call(this),Nr.prototype.__init7.call(this),Nr.prototype.__init8.call(this),Nr.prototype.__init9.call(this)}static __initStatic(){this.propTypes={model:yr.object.isRequired,configuration:yr.object.isRequired,onModelChanged:yr.func.isRequired,onConfigurationChanged:yr.func.isRequired,imageSupport:yr.shape({add:yr.func.isRequired,delete:yr.func.isRequired}),uploadSoundSupport:yr.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=cn(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:mr(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=gr(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 k(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=pn();if(g(e))return m(e);s=setTimeout(f,function(e){var n=t-(e-l);return p?hn(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=pn(),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=z(t)||0,k(n)&&(u=!!n.leading,a=(p="maxWait"in n)?dn(z(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(pn())},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?cn(t):{},a=r?cn(r):{};e.forEach(e=>{const t=e.data.get("index");!o[t]&&a[t]?(Object.assign(o,Cn(a,t)),Object.prototype.hasOwnProperty.call(a,t)&&delete a[t]):(Object.assign(a,Cn(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=Tr([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&&Tr([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&&Pr(d.label,!0),language:d.settings&&d.enabled&&Mr(h.label,h.options)},F={teacherInstructionsEnabled:p.settings&&Pr(p.label),rationaleEnabled:c.settings&&Pr(c.label),promptEnabled:l.settings&&Pr(l.label),spellCheckEnabled:g.settings&&Pr(g.label),playerSpellCheckEnabled:f.settings&&Pr(f.label),"editSource.enabled":Tr([v,"optionalAccess",e=>e.settings])&&Pr(v.label,!0),partialScoring:w.settings&&Pr(w.label)},L=m&&m.prompt,U=b&&b.prompt,N={position:"top"===M?"top":"bottom"},W=(e={},t={})=>({...t,...e});return br.createElement(Or.ConfigLayout,{extraCSSRules:A,dimensions:s,hideSettings:u,settings:br.createElement(kr,{model:n,configuration:e,onChangeModel:e=>o(e),onChangeConfiguration:r,groups:{Settings:B,Properties:F}})},T&&br.createElement(Rr,{label:p.label},br.createElement(Dr,{markup:n.teacherInstructions||"",onChange:e=>this.handleChange("teacherInstructions",e),imageSupport:t,nonEmpty:!1,error:z,toolbarOpts:N,pluginProps:W(Tr([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&&br.createElement(Kr,null,z)),O&&br.createElement(Rr,{label:l.label},br.createElement(Dr,{markup:n.prompt,onChange:e=>this.handleChange("prompt",e),imageSupport:t,nonEmpty:!1,disableUnderline:!0,error:R,toolbarOpts:N,pluginProps:W(Tr([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:L,maxImageHeight:U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),R&&br.createElement(Kr,null,R)),br.createElement(Lr,null,br.createElement(Fr,{component:"div"},"Response Template"),br.createElement(Ur,{disableFocusListener:!0,disableTouchListener:!0,placement:"right",title:q},br.createElement(Er,{fontSize:"small",color:"primary"}))),br.createElement($r,{activePlugins:Ir,toolbarOpts:{position:"top"},spellCheck:I,pluginProps:W(Tr([_,"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&&br.createElement(zr,null,K),br.createElement(Fr,null,"Define Response"),br.createElement(qr,{label:"Response Template Equation Editor"},br.createElement(Br,{MenuProps:{transitionDuration:{enter:225,exit:195}},onChange:e=>this.handleChange("equationEditor",e.target.value),value:P},br.createElement(jr,{value:"non-negative-integers"},"Numeric - Non-Negative Integers"),br.createElement(jr,{value:"integers"},"Numeric - Integers"),br.createElement(jr,{value:"decimals"},"Numeric - Decimals"),br.createElement(jr,{value:"fractions"},"Numeric - Fractions"),br.createElement(jr,{value:1},"Grade 1 - 2"),br.createElement(jr,{value:3},"Grade 3 - 5"),br.createElement(jr,{value:6},"Grade 6 - 7"),br.createElement(jr,{value:8},"Grade 8 - HS"),br.createElement(jr,{value:"geometry"},"Geometry"),br.createElement(jr,{value:"advanced-algebra"},"Advanced Algebra"),br.createElement(jr,{value:"statistics"},"Statistics"),br.createElement(jr,{value:"item-authoring"},"Item Authoring"))),Object.keys(k||{}).map((e,t)=>{const n=k[t];return n?br.createElement(cr,{key:t,responseKey:t,mode:P,response:n,onResponseChange:this.onResponseChange,onResponseDone:this.onResponseDone,index:t,cIgnoreOrder:C,cAllowTrailingZeros:j,error:$&&$[t]}):null}),x&&br.createElement(Rr,{label:c.label},br.createElement(Dr,{markup:n.rationale||"",onChange:e=>this.handleChange("rationale",e),imageSupport:t,nonEmpty:!1,error:D,toolbarOpts:N,pluginProps:W(Tr([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&&br.createElement(Kr,null,D)))}}Nr.__initStatic();var Wr={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"},Hr={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 Zr=t;function Yr(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 Vr=s("math-templated:configure");class Gr 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={...Wr,...e,responses:a},s=i.slateMarkup||mr(i.markup,i.responses),l=gr(s);return i.responses&&Object.keys(i.responses).forEach(e=>{A(i.responses[e])&&(i.responses[e]=(i.responses[e]||[]).map((e,t)=>e.answer?e:(Vr('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=Gr.prepareModel(),this._configuration=Hr,this.onModelChanged=this.onModelChanged.bind(this),this.onConfigurationChanged=this.onConfigurationChanged.bind(this)}set model(e){this._model=Gr.prepareModel(e),this._render()}set configuration(e){this._configuration=bn(e,Hr),Yr([e,"access",e=>e.language,"optionalAccess",e=>e.enabled])?Yr([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 En(this._model,t))}onModelChanged(e,t){this._model=Gr.prepareModel(e),this._render(),this.dispatchModelUpdated(t)}onConfigurationChanged(e){this._configuration=e,this._render()}insertImage(e){this.dispatchEvent(new xn(e))}onDeleteImage(e,t){this.dispatchEvent(new An(e,t))}insertSound(e){this.dispatchEvent(new kn(e))}onDeleteSound(e,t){this.dispatchEvent(new Tn(e,t))}_render(){Vr("_render");let e=Zr.createElement(Nr,{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=p(this)),this._root.render(e)}disconnectedCallback(){this._root&&this._root.unmount()}}Gr.__initStatic();export{Gr as default};