@pie-element/math-templated 7.2.2-beta.3 → 7.2.2

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","_mathInputMathlive","_renderUi","_mathRendering","_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","applyStaticMath","view","parentElement","classList","remove","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","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, registerEmbed, applyStaticMath } from '@pie-lib/math-input-mathlive';\nimport { color, Collapsible, Readable, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\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 if (!registered) {\n 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 const answer = answers[answerId];\n\n applyStaticMath(el, (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 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: false,\n },\n {\n name: 'flip',\n enabled: false,\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":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,oBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,SAAA,GAAAX,sBAAA,CAAAC,OAAA;AAEA,MAAMW,cAAc,GAAG,IAAAC,cAAM,EAACC,kBAAQ,CAAC,CAAC;EACtCC,KAAK,EAAEA,eAAK,CAACC,IAAI,CAAC,CAAC;EACnBC,eAAe,EAAEF,eAAK,CAACG,UAAU,CAAC,CAAC;EACnCC,OAAO,EAAE;AACX,CAAC,CAAC;AAEF,MAAMC,aAAa,GAAG,IAAAP,cAAM,EAAC,KAAK,CAAC,CAAC;EAClCQ,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,UAAU;EACpBL,eAAe,EAAEF,eAAK,CAACG,UAAU,CAAC,CAAC;EACnCH,KAAK,EAAEA,eAAK,CAACC,IAAI,CAAC;AACpB,CAAC,CAAC;AAEF,MAAMO,eAAe,GAAG,IAAAV,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEW;AAAM,CAAC,MAAM;EACpDC,YAAY,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAMC,oBAAoB,GAAG,IAAAd,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEW;AAAM,CAAC,MAAM;EACzDC,YAAY,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAME,uBAAuB,GAAG,IAAAf,cAAM,EAAC,KAAK,CAAC,CAAC;EAC5CS,QAAQ,EAAE,UAAU;EACpB,eAAe,EAAE;IACfH,OAAO,EAAE,MAAM;IACfU,UAAU,EAAE,UAAU;IACtBC,QAAQ,EAAE;EACZ,CAAC;EACD,uBAAuB,EAAE;IACvBC,MAAM,EAAE,iBAAiB;IACzBC,OAAO,EAAE;EACX,CAAC;EACD,6BAA6B,EAAE;IAC7Bb,OAAO,EAAE;EACX,CAAC;EACD,4BAA4B,EAAE;IAC5BA,OAAO,EAAE;EACX,CAAC;EACD,+BAA+B,EAAE;IAC/Bc,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE;MACLC,UAAU,EAAE;IACd,CAAC;IACD,UAAU,EAAE;MACVC,GAAG,EAAE,QAAQ;MACbC,IAAI,EAAE;IACR,CAAC;IACD,SAAS,EAAE;MACTD,GAAG,EAAE,QAAQ;MACbE,KAAK,EAAE;IACT,CAAC;IACD,kBAAkB,EAAE;MAClBF,GAAG,EAAE;IACP;EACF,CAAC;EACD,gCAAgC,EAAE;IAChC,UAAU,EAAE;MACVA,GAAG,EAAE,QAAQ;MACbE,KAAK,EAAE;IACT;EACF,CAAC;EACD,qBAAqB,EAAE;IACrBC,SAAS,EAAE,sBAAsB;IACjCC,UAAU,EAAE;EACd,CAAC;EACD,qBAAqB,EAAE;IACrBL,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEF,MAAMM,UAAU,GAAG,IAAA3B,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEW,KAAK;EAAEiB,UAAU;EAAEC,QAAQ;EAAEC,gBAAgB;EAAEC;AAAoB,CAAC,MAAM;EAC5GC,QAAQ,EAAE,aAAa;EACvB,IAAIJ,UAAU,IAAI;IAChBK,WAAW,EAAE,GAAG/B,eAAK,CAACgC,SAAS,CAAC,CAAC;EACnC,CAAC,CAAC;EACF,IAAIL,QAAQ,IAAI;IACdI,WAAW,EAAE,GAAG/B,eAAK,CAACiC,OAAO,CAAC,CAAC;EACjC,CAAC,CAAC;EACF,IAAIL,gBAAgB,IAAI;IACtBZ,MAAM,EAAE;EACV,CAAC,CAAC;EACF,IAAIa,mBAAmB,IAAI;IACzBZ,OAAO,EAAER,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;IACzBuB,aAAa,EAAE;EACjB,CAAC,CAAC;EACF,mBAAmB,EAAE;IACnB,oBAAoB,EAAE;MACpB,wBAAwB,EAAE;QACxBhB,QAAQ,EAAE,MAAM;QAChBD,OAAO,EAAER,KAAK,CAACE,OAAO,CAAC,IAAI;MAC7B;IACF,CAAC;IACD,OAAO,EAAE;MACPS,GAAG,EAAE;IACP;EACF;AACF,CAAC,CAAC,CAAC;AAEH,MAAMe,YAAY,GAAG,IAAArC,cAAM,EAACsC,qBAAE,CAACC,MAAM,CAAC,CAAC;EACrC,oBAAoB,EAAE;IACpB,wBAAwB,EAAE;MACxBN,WAAW,EAAE/B,eAAK,CAACC,IAAI,CAAC;IAC1B;EACF;AACF,CAAC,CAAC;;AAEF;;AAEA,MAAMqC,iBAAiB,GAAG,IAAAxC,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEW;AAAM,CAAC,MAAM;EACtD8B,MAAM,EAAE,EAAE;EACVrB,QAAQ,EAAE,OAAO;EACjBsB,SAAS,EAAE/B,KAAK,CAACE,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,MAAM8B,cAAc,GAAG,IAAA3C,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEW;AAAM,CAAC,MAAM;EACnDC,YAAY,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC9B+B,aAAa,EAAE;AACjB,CAAC,CAAC,CAAC;AAEH,MAAMC,MAAM,GAAG,IAAA7C,cAAM,EAAC,IAAI,CAAC,CAAC;EAC1BS,QAAQ,EAAE,UAAU;EACpBc,IAAI,EAAE,UAAU;EAChBD,GAAG,EAAE,MAAM;EACXd,KAAK,EAAE,KAAK;EACZsC,MAAM,EAAE,KAAK;EACbC,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,MAAMC,IAAI,GAAG,IAAAhD,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEW;AAAM,CAAC,MAAM;EACzCC,YAAY,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAMoC,YAAY,GAAG,IAAAjD,cAAM,EAACkD,4BAAmB,CAAC,CAAC,CAAC;EAAEvC;AAAM,CAAC,MAAM;EAC/DT,KAAK,EAAEA,eAAK,CAACC,IAAI,CAAC,CAAC;EACnBS,YAAY,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;;AAEH;AACA,IAAI,OAAOsC,QAAQ,KAAK,WAAW,EAAE;EACnC,MAAMC,OAAO,GAAG,4BAA4B;EAC5C,IAAI,CAACD,QAAQ,CAACE,cAAc,CAACD,OAAO,CAAC,EAAE;IACrC,MAAME,KAAK,GAAGH,QAAQ,CAACI,aAAa,CAAC,OAAO,CAAC;IAC7CD,KAAK,CAACE,EAAE,GAAGJ,OAAO;IAClBE,KAAK,CAACG,WAAW,GAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiBvD,eAAK,CAACC,IAAI,CAAC,CAAC;AAC7B,4BAA4BD,eAAK,CAACG,UAAU,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwBH,eAAK,CAACiC,OAAO,CAAC,CAAC;AACvC;AACA;AACA,wBAAwBjC,eAAK,CAACgC,SAAS,CAAC,CAAC;AACzC;AACA,KAAK;IACDiB,QAAQ,CAACO,IAAI,CAACC,WAAW,CAACL,KAAK,CAAC;EAClC;AACF;AAEA,IAAIM,UAAU,GAAG,KAAK;;AAEtB;AACA,MAAMC,KAAK,GAAG,iBAAiB;AAC/B,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,uBAAuB,GAAG,CAAC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG,gCAAgC,CAACC,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC;AAE5E,SAASC,sBAAsBA,CAACC,OAAO,GAAG,EAAE,EAAE;EAC5C,OAAOA,OAAO,CAACC,GAAG,CAAEC,GAAG,KAAM;IAC3BC,IAAI,EAAED,GAAG;IACTE,KAAK,EAAEF,GAAG;IACVG,KAAK,EAAEH,GAAG;IACVI,KAAK,EAAEJ;EACT,CAAC,CAAC,CAAC;AACL;AAEA,SAASK,cAAcA,CAACC,cAAc,GAAG,EAAE,EAAEC,cAAc,EAAE;EAC3D,OAAOC,IAAI,CAACC,KAAK,CAACH,cAAc,CAACI,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,IAAIH,cAAc,KAAK,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC;AACtG;AAEA,SAASI,YAAYA,CAAC/E,IAAI,EAAE;EAC1B;EACA,MAAMgF,KAAK,GAAGhF,IAAI,CAACiF,KAAK,CAACvB,KAAK,CAAC;EAC/B;EACA,OAAOsB,KAAK,CAACE,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAAC;AACrC;AAEA,SAASC,gBAAgBA,CAACC,KAAK,EAAEC,KAAK,EAAE;EACtC,MAAM;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GAAGN,KAAK,IAAI,CAAC,CAAC;EAEjF,IAAII,MAAM,EAAE;IACV,IAAIH,KAAK,CAACM,WAAW,EAAE;MACrB,OAAOC,MAAM,CAACC,IAAI,CAACP,SAAS,IAAI,CAAC,CAAC,CAAC,CAACQ,MAAM,CAAC,CAACC,GAAG,EAAEC,WAAW,KAAK;QAC/DD,GAAG,CAACC,WAAW,CAAC,GAAGV,SAAS,GAAGU,WAAW,CAAC,EAAEC,MAAM;QAEnD,OAAOF,GAAG;MACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IACR;IAEA,MAAMG,QAAQ,GAAGpB,YAAY,CAACU,MAAM,CAAC;IAErC,OAAOU,QAAQ,CAACJ,MAAM,CAAC,CAACC,GAAG,EAAEf,KAAK,KAAK;MACrC,IAAIA,KAAK,CAACmB,KAAK,CAAC1C,KAAK,CAAC,EAAE;QACtB,MAAMuC,WAAW,GAAGI,IAAI,CAACC,cAAc,CAACrB,KAAK,CAAC;QAC9C,MAAMiB,MAAM,GAAGZ,KAAK,CAACiB,OAAO,CAACC,OAAO,CAAC,IAAIP,WAAW,EAAE,CAAC;QAEvD,IAAIP,SAAS,IAAI,CAACC,iBAAiB,EAAE;UACnC,MAAMc,UAAU,GAAG,QAAQ,CAACC,MAAM,CAAC,EAAE,CAAC,GAAG,qBAAqB;UAE9D,OAAO;YACL,GAAGV,GAAG;YACN,CAACC,WAAW,GAAG,yBAAyBA,WAAW,KAAKQ,UAAU,CAACC,MAAM,CAAC,CAAC,CAAC;UAC9E,CAAC;QACH;QAEA,IAAIlB,QAAQ,EAAE;UACZ,OAAO;YACL,GAAGQ,GAAG;YACN,CAACC,WAAW,GAAG,yBAAyBA,WAAW;UACrD,CAAC;QACH;QAEA,OAAO;UACL,GAAGD,GAAG;UACN,CAACC,WAAW,GAAG,yBAAyBA,WAAW,KAAMC,MAAM,IAAIA,MAAM,CAACS,KAAK,IAAK,EAAE;QACxF,CAAC;MACH;MAEA,OAAOX,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACR;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMY,gCAAgC,GAAG;EACvCvC,IAAI,EAAE,0BAA0B;EAChCwC,OAAO,EAAE,IAAI;EACbC,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,CAAC,eAAe,CAAC;EAC3BC,EAAE,EAAEA,CAAC;IAAE1B;EAAM,CAAC,KAAK;IACjB,MAAM2B,OAAO,GAAG3B,KAAK,CAAC4B,aAAa,CAACC,aAAa;IACjD,IAAI,CAACF,OAAO,EAAE;IAEd,MAAMG,aAAa,GAAGC,MAAM,CAACC,UAAU,IAAItE,QAAQ,CAACuE,eAAe,CAACC,WAAW;IAC/E,MAAMC,WAAW,GAAGnC,KAAK,CAACoC,KAAK,CAACC,MAAM,CAACtH,KAAK;IAE5C,MAAMuH,qBAAqB,GAAGtC,KAAK,CAACuC,QAAQ,CAACC,SAAS,CAACC,qBAAqB,CAAC,CAAC,CAAC3G,IAAI;IAEnF,MAAM4G,cAAc,GAAG1C,KAAK,CAACuC,QAAQ,CAACF,MAAM,EAAEM,YAAY;IAC1D,MAAMC,gBAAgB,GAAGF,cAAc,EAAED,qBAAqB,GAAG,CAAC,IAAI;MAAE3G,IAAI,EAAE;IAAE,CAAC;IACjF,MAAM+G,sBAAsB,GAAGH,cAAc,EAAEI,UAAU,IAAI,CAAC;IAC9D,MAAMC,sBAAsB,GAAGT,qBAAqB,GAAGM,gBAAgB,CAAC9G,IAAI,GAAG+G,sBAAsB;IACrG,MAAMG,0BAA0B,GAAGD,sBAAsB,GAAGT,qBAAqB;IACjF,MAAMW,IAAI,GAAGD,0BAA0B,GAAG1E,uBAAuB;IACjE,MAAM4E,IAAI,GAAGF,0BAA0B,GAAGlB,aAAa,GAAGK,WAAW,GAAG7D,uBAAuB;IAE/F,IAAIgE,qBAAqB,GAAGH,WAAW,IAAIL,aAAa,EAAE;MACxDH,OAAO,CAACwB,CAAC,GAAGJ,sBAAsB;IACpC,CAAC,MAAM;MACLpB,OAAO,CAACwB,CAAC,GAAGJ,sBAAsB,GAAGZ,WAAW;IAClD;IAEA,IAAIe,IAAI,GAAGD,IAAI,EAAE;MACftB,OAAO,CAACwB,CAAC,GAAGF,IAAI;IAClB,CAAC,MAAM;MACLtB,OAAO,CAACwB,CAAC,GAAG7D,IAAI,CAAC8D,GAAG,CAAC9D,IAAI,CAAC+D,GAAG,CAAC1B,OAAO,CAACwB,CAAC,EAAEF,IAAI,CAAC,EAAEC,IAAI,CAAC;IACvD;EACF;AACF,CAAC;AAEM,MAAMnC,IAAI,SAASuC,cAAK,CAACC,SAAS,CAAC;EAUxCC,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,sCA2Cc,MAAM;MACjC,MAAM;QAAE5D;MAAM,CAAC,GAAG,IAAI,CAAC0D,KAAK;MAC5B,MAAM;QAAExC,OAAO;QAAEX;MAAY,CAAC,GAAG,IAAI,CAACN,KAAK;MAC3C,MAAMkB,OAAO,GAAGD,OAAO,CAACC,OAAO;MAE/B,IAAI,IAAI,CAAC0C,IAAI,IAAI7D,KAAK,CAACG,QAAQ,IAAI,CAACI,WAAW,EAAE;QAC/CC,MAAM,CAACC,IAAI,CAACU,OAAO,CAAC,CAAC2C,OAAO,CAAEC,QAAQ,IAAK;UACzC,MAAMC,EAAE,GAAG,IAAI,CAACH,IAAI,CAACI,aAAa,CAAC,IAAIF,QAAQ,EAAE,CAAC;UAClD,MAAMG,OAAO,GAAG,IAAI,CAACL,IAAI,CAACI,aAAa,CAAC,IAAIF,QAAQ,OAAO,CAAC;UAE5D,IAAIC,EAAE,EAAE;YACN,MAAMnD,MAAM,GAAGM,OAAO,CAAC4C,QAAQ,CAAC;YAEhC,IAAAI,kCAAe,EAACH,EAAE,EAAGnD,MAAM,IAAIA,MAAM,CAACS,KAAK,IAAK,EAAE,CAAC;YAEnD,IAAItB,KAAK,CAACoE,IAAI,EAAE;cACdJ,EAAE,CAACK,aAAa,CAACA,aAAa,CAACC,SAAS,CAACC,MAAM,CAAC,SAAS,CAAC;cAC1DP,EAAE,CAACK,aAAa,CAACA,aAAa,CAACC,SAAS,CAACC,MAAM,CAAC,WAAW,CAAC;YAC9D;YAEAL,OAAO,CAACjG,WAAW,GAAG,GAAG;UAC3B;QACF,CAAC,CAAC;MACJ;MAEA,IAAAuG,yBAAU,EAAC,IAAI,CAACX,IAAI,CAAC;IACvB,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,2BAiEkB5F,EAAE,IAAK;MACxB,MAAMyG,cAAc,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACd,IAAI,EAAEe,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;MAC1F,MAAMC,WAAW,GAAGJ,cAAc,CAAC3F,GAAG,CAAEkF,EAAE,KAAM;QAC9CA,EAAE;QACFjI,IAAI,EAAEiI,EAAE,CAACjB,UAAU;QACnBjH,GAAG,EAAEkI,EAAE,CAACc;MACV,CAAC,CAAC,CAAC;MAEH,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;QAClCF,WAAW,CAACf,OAAO,CAAC,CAAC;UAAEE,EAAE;UAAEjI,IAAI;UAAED;QAAI,CAAC,KAAK;UACzCkI,EAAE,CAACjB,UAAU,GAAGhH,IAAI;UACpBiI,EAAE,CAACc,SAAS,GAAGhJ,GAAG;QACpB,CAAC,CAAC;MACJ,CAAC;MAED,IAAI,CAACkJ,QAAQ,CAAC;QAAEC,iBAAiB,EAAEjH;MAAG,CAAC,EAAE,MAAM;QAC7C+G,qBAAqB,CAAC,CAAC;QACvBG,qBAAqB,CAACH,qBAAqB,CAAC;QAC5CI,UAAU,CAACJ,qBAAqB,EAAE,CAAC,CAAC;MACtC,CAAC,CAAC;IACJ,CAAC;IAAA,IAAApB,gBAAA,CAAAC,OAAA,sBAEawB,IAAI,IAAK;MACrB,IAAI,CAACA,IAAI,EAAE;QACT;MACF;MAEA,MAAM;QAAEC,IAAI;QAAE/D;MAAM,CAAC,GAAG8D,IAAI;MAE5B,IAAIC,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,QAAQ,EAAE,OAAOD,IAAI;MAExD,IAAIC,IAAI,KAAK,QAAQ,EAAE,OAAO;QAAEA,IAAI,EAAE,QAAQ;QAAE,GAAGD;MAAK,CAAC;MAEzD,IAAI9D,KAAK,KAAK,OAAO,EAAE,OAAO;QAAE+D,IAAI,EAAE;MAAQ,CAAC;MAE/C,OAAO;QAAEA,IAAI,EAAE,OAAO;QAAE/D;MAAM,CAAC;IACjC,CAAC;IAAA,IAAAqC,gBAAA,CAAAC,OAAA,oBAEW0B,KAAK,IAAK;MACpB,IAAI,CAACA,KAAK,GAAGA,KAAK;IACpB,CAAC;IAAA,IAAA3B,gBAAA,CAAAC,OAAA,mBAEUwB,IAAI,IAAK;MAClB,MAAMG,CAAC,GAAG,IAAI,CAACC,UAAU,CAACJ,IAAI,CAAC;MAE/B,IAAIG,CAAC,CAACF,IAAI,KAAK,OAAO,EAAE;QACtB,IAAI,CAACC,KAAK,CAACG,KAAK,CAAC,CAAC;MACpB,CAAC,MAAM,IAAIF,CAAC,CAACF,IAAI,KAAK,SAAS,EAAE;QAC/B,IAAIX,KAAK,CAACgB,OAAO,CAACH,CAAC,CAACjE,KAAK,CAAC,EAAE;UAC1BiE,CAAC,CAACjE,KAAK,CAACwC,OAAO,CAAE6B,EAAE,IAAK;YACtB,IAAI,CAACL,KAAK,CAACM,GAAG,CAACD,EAAE,CAAC;UACpB,CAAC,CAAC;QACJ,CAAC,MAAM;UACL,IAAI,CAACL,KAAK,CAACM,GAAG,CAACL,CAAC,CAACjE,KAAK,CAAC;QACzB;MACF,CAAC,MAAM,IAAIiE,CAAC,CAACF,IAAI,KAAK,QAAQ,EAAE;QAC9B,IAAI,CAACC,KAAK,CAACO,SAAS,CAACN,CAAC,CAACjE,KAAK,CAAC;MAC/B,CAAC,MAAM;QACL,IAAI,CAACgE,KAAK,CAACpG,KAAK,CAACqG,CAAC,CAACjE,KAAK,CAAC;MAC3B;;MAEA;MACA;MACA,MAAMwE,YAAY,GAAG,IAAI,CAACR,KAAK,EAAEtB,EAAE,GAAG,CAAC,IAAI,IAAI,CAACH,IAAI;MACpD,MAAMkC,aAAa,GAAG,EAAE;MACxB,IAAIC,IAAI,GAAGF,YAAY;MAEvB,OAAOE,IAAI,IAAIA,IAAI,KAAKrI,QAAQ,CAACsI,IAAI,IAAID,IAAI,KAAKrI,QAAQ,CAACuE,eAAe,EAAE;QAC1E,MAAMgE,YAAY,GAAGF,IAAI,CAACG,WAAW,GAAGH,IAAI,CAAC7D,WAAW,IAAI6D,IAAI,CAACI,YAAY,GAAGJ,IAAI,CAACK,YAAY;QACjG,IAAIH,YAAY,EAAE;UAChBH,aAAa,CAACO,IAAI,CAACN,IAAI,CAAC;QAC1B;QACAA,IAAI,GAAGA,IAAI,CAAC3B,aAAa;MAC3B;MAEA,IAAI1G,QAAQ,CAAC4I,gBAAgB,EAAE;QAC7BR,aAAa,CAACO,IAAI,CAAC3I,QAAQ,CAAC4I,gBAAgB,CAAC;MAC/C;MAEA,MAAM1B,WAAW,GAAGkB,aAAa,CAACjH,GAAG,CAAEkF,EAAE,KAAM;QAC7CA,EAAE;QACFjI,IAAI,EAAEiI,EAAE,CAACjB,UAAU;QACnBjH,GAAG,EAAEkI,EAAE,CAACc;MACV,CAAC,CAAC,CAAC;MACH,MAAM0B,YAAY,GAAG;QAAEpD,CAAC,EAAEpB,MAAM,CAACyE,OAAO;QAAEC,CAAC,EAAE1E,MAAM,CAAC2E;MAAQ,CAAC;MAE7D,MAAMC,aAAa,GAAGA,CAAA,KAAM;QAC1B/B,WAAW,CAACf,OAAO,CAAC,CAAC;UAAEE,EAAE;UAAEjI,IAAI;UAAED;QAAI,CAAC,KAAK;UACzCkI,EAAE,CAACjB,UAAU,GAAGhH,IAAI;UACpBiI,EAAE,CAACc,SAAS,GAAGhJ,GAAG;QACpB,CAAC,CAAC;QACFkG,MAAM,CAAC6E,QAAQ,CAACL,YAAY,CAACpD,CAAC,EAAEoD,YAAY,CAACE,CAAC,CAAC;MACjD,CAAC;MAED,IAAI,CAACpB,KAAK,CAACwB,KAAK,CAAC,CAAC;MAClBF,aAAa,CAAC,CAAC;MACf1B,qBAAqB,CAAC0B,aAAa,CAAC;MACpCzB,UAAU,CAACyB,aAAa,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAA,IAAAjD,gBAAA,CAAAC,OAAA,+BAEqB,MAAM;MAC1B,MAAM;QAAEmD;MAAgB,CAAC,GAAG,IAAI,CAACrD,KAAK;MAEtC,IAAIqD,eAAe,EAAE;QACnBA,eAAe,CAAC,IAAI,CAAC9G,KAAK,CAACiB,OAAO,CAAC;MACrC;IACF,CAAC;IAAA,IAAAyC,gBAAA,CAAAC,OAAA,6BAEoBoD,IAAI,IAAK;MAC5B,IAAI,CAAChC,QAAQ,CAAC;QAAEzE,WAAW,EAAEyG;MAAK,CAAC,EAAE,IAAI,CAACC,0BAA0B,CAAC;IACvE,CAAC;IAAA,IAAAtD,gBAAA,CAAAC,OAAA,2BAEiB,CAAC5E,IAAI,EAAEkI,aAAa,KAAK;MACzC,IAAAC,8BAAW,EAAC,CAAC;MAEb,IAAInI,IAAI,EAAE;QACR,IAAI,CAACgG,QAAQ,CACV/E,KAAK,KAAM;UACViB,OAAO,EAAE;YACP,GAAGjB,KAAK,CAACiB,OAAO;YAChBC,OAAO,EAAE;cACP,GAAGlB,KAAK,CAACiB,OAAO,CAACC,OAAO;cACxB,CAACnC,IAAI,GAAG;gBAAEsC,KAAK,EAAE4F;cAAc;YACjC;UACF;QACF,CAAC,CAAC,EACF,IAAI,CAACE,mBACP,CAAC;MACH;IACF,CAAC;IAAA,IAAAzD,gBAAA,CAAAC,OAAA,wBAEc,CAACyD,WAAW,EAAEC,MAAM,KAAK;MACtC,MAAM;QAAEnG;MAAQ,CAAC,GAAG,IAAI,CAAClB,KAAK,CAACiB,OAAO;MAEtC,IAAIV,MAAM,CAACC,IAAI,CAACU,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC1B,MAAM,EAAE;QACrC,MAAMgB,IAAI,GAAGD,MAAM,CAACC,IAAI,CAACU,OAAO,CAAC;QAEjC,OAAOV,IAAI,CAAC8G,IAAI,CAAEC,CAAC,IAAK;UACtB,MAAMC,EAAE,GAAGH,MAAM,CAACE,CAAC,CAAC;UAEpB,OAAOC,EAAE,IAAIA,EAAE,CAACzJ,EAAE,IAAIqJ,WAAW,CAACrJ,EAAE;QACtC,CAAC,CAAC;MACJ;IACF,CAAC;IAAA,IAAA2F,gBAAA,CAAAC,OAAA,kBAES8D,CAAC,IAAK;MACd,MAAM;QAAEC,aAAa;QAAEC;MAAc,CAAC,GAAGF,CAAC,IAAI,CAAC,CAAC;MAEhD,SAASG,wBAAwBA,CAACC,OAAO,EAAEC,KAAK,GAAG,CAAC,EAAE;QACpD;QACA,IAAI,CAACD,OAAO,IAAIC,KAAK,IAAI,EAAE,EAAE,OAAO,IAAI;QAExC,MAAMC,MAAM,GAAGF,OAAO,CAAClF,YAAY;QAEnC,IAAI,CAACoF,MAAM,EAAE,OAAO,IAAI;QAExB,IAAIA,MAAM,CAACC,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;UAC7C,OAAOD,MAAM;QACf;QAEA,OAAOH,wBAAwB,CAACG,MAAM,EAAED,KAAK,GAAG,CAAC,CAAC;MACpD;MAEA,SAASG,sBAAsBA,CAACJ,OAAO,EAAEC,KAAK,GAAG,CAAC,EAAE;QAClD;QACA,IAAI,CAACD,OAAO,IAAIC,KAAK,IAAI,CAAC,EAAE,OAAO,IAAI;QAEvC,MAAMI,KAAK,GAAGL,OAAO,EAAEM,QAAQ,GAAG,CAAC,CAAC;QAEpC,IAAI,CAACD,KAAK,EAAE,OAAO,IAAI;QAEvB,IAAIA,KAAK,CAACE,UAAU,IAAIF,KAAK,CAACE,UAAU,CAAC,aAAa,CAAC,EAAE;UACvD,OAAOF,KAAK;QACd;QAEA,OAAOD,sBAAsB,CAACC,KAAK,EAAEJ,KAAK,GAAG,CAAC,CAAC;MACjD;MAEA,MAAMO,qBAAqB,GAAGT,wBAAwB,CAACF,aAAa,CAAC;MACrE,MAAMY,mBAAmB,GAAGD,qBAAqB,GAAGJ,sBAAsB,CAACI,qBAAqB,CAAC,GAAG,IAAI;MAExG,IAAI,CAACX,aAAa,IAAI,CAACC,aAAa,IAAI,CAACW,mBAAmB,EAAEF,UAAU,CAAC,aAAa,CAAC,EAAE;QACvF,IAAI,CAACrD,QAAQ,CAAC;UAAEC,iBAAiB,EAAE;QAAG,CAAC,CAAC;MAC1C;IACF,CAAC;IAAA,IAAAtB,gBAAA,CAAAC,OAAA,qCAiB2B,MAAM;MAChC,MAAM;QAAE5D;MAAM,CAAC,GAAG,IAAI,CAAC0D,KAAK;MAC5B,MAAM;QAAE8E,mBAAmB;QAAEC;MAAmB,CAAC,GAAGzI,KAAK,IAAI,CAAC,CAAC;MAC/D,MAAM0I,uBAAuB,GAC3BF,mBAAmB,KAAK,IAAAG,iBAAO,EAACH,mBAAmB,CAAC,IAAI,IAAAI,kBAAQ,EAACJ,mBAAmB,CAAC,CAAC;MAExF,MAAMK,sBAAsB,gBAC1BnP,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC7D,SAAA,CAAA4O,aAAa;QAACC,gBAAgB,EAAC,sBAAsB;QAACC,MAAM,EAAER;MAAoB,CAAE,CACtF;MAED,OACEE,uBAAuB,iBACrBhP,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAACzC,oBAAoB,QAClB,CAACmN,kBAAkB,gBAClB/O,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC7D,SAAA,CAAA+O,WAAW;QAACC,MAAM,EAAE;UAAEC,MAAM,EAAE,2BAA2B;UAAEC,OAAO,EAAE;QAA4B;MAAE,GAChGP,sBACU,CAAC,GAEdA,sBAEkB,CACvB;IAEL,CAAC;IAAA,IAAAlF,gBAAA,CAAAC,OAAA,2BAEiB,MAAM;MACtB,MAAM;QAAE5D;MAAM,CAAC,GAAG,IAAI,CAAC0D,KAAK;MAC5B,MAAM;QAAE2F,SAAS;QAAEZ;MAAmB,CAAC,GAAGzI,KAAK,IAAI,CAAC,CAAC;MACrD,MAAMsJ,YAAY,gBAAG5P,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC7D,SAAA,CAAA4O,aAAa;QAACE,MAAM,EAAEK;MAAU,CAAE,CAAC;MACzD,MAAME,aAAa,GAAGF,SAAS,KAAK,IAAAV,iBAAO,EAACU,SAAS,CAAC,IAAI,IAAAT,kBAAQ,EAACS,SAAS,CAAC,CAAC;MAE9E,OACEE,aAAa,iBACX7P,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAACzC,oBAAoB,QAClB,CAACmN,kBAAkB,gBAClB/O,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC7D,SAAA,CAAA+O,WAAW;QAACC,MAAM,EAAE;UAAEC,MAAM,EAAE,gBAAgB;UAAEC,OAAO,EAAE;QAAiB;MAAE,GAAEE,YAA0B,CAAC,GAE1GA,YAEkB,CACvB;IAEL,CAAC;IAAA,IAAA3F,gBAAA,CAAAC,OAAA,+BAEqB,MAAM;MAC1B,MAAM;QAAE5D;MAAM,CAAC,GAAG,IAAI,CAAC0D,KAAK;MAC5B,MAAM;QAAEuB,iBAAiB;QAAE1E,WAAW;QAAEW,OAAO;QAAEsI;MAAoB,CAAC,GAAG,IAAI,CAACvJ,KAAK;MACnF,MAAM;QACJwJ,WAAW;QACXtJ,QAAQ;QACRiE,IAAI;QACJlE,SAAS;QACTZ,cAAc;QACdoK,UAAU;QACVC,QAAQ;QACRC,GAAG,EAAE;UAAEC;QAAK,CAAC,GAAG,CAAC,CAAC;QAClBxJ,SAAS;QACTC;MACF,CAAC,GAAGN,KAAK,IAAI,CAAC,CAAC;MAEf,MAAM8J,aAAa,GAAG,IAAAC,iBAAO,EAAC7J,SAAS,CAAC;MACxC,MAAMb,cAAc,GAAGT,sBAAsB,CAAC8K,UAAU,CAAC;MACzD,MAAMM,OAAO,GAAGjK,gBAAgB,CAACC,KAAK,EAAE,IAAI,CAACC,KAAK,CAAC,IAAI,EAAE;MACzD,MAAMgK,gBAAgB,GAAG5J,SAAS,IAAI,CAACC,iBAAiB;MAExD,oBACE5G,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAACxC,uBAAuB,qBACtB7B,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC3D,WAAA,CAAA8P,YAAY;QACX/J,QAAQ,EAAEA,QAAS;QACnBC,MAAM,EAAEJ,KAAK,CAACI;QACd;QAAA;QACAkB,KAAK,EAAE,CAAC,CAAE;QACV6I,yBAAyB,EAAGnM,EAAE,IAAK;UACjC,MAAMoM,iBAAiB,GAAGP,IAAI,KAAK,UAAU,IAAIF,QAAQ,IAAIA,QAAQ,CAAC3L,EAAE,CAAC;UAEzE,MAAMqM,QAAQ,gBACZ3Q,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAClB,YAAY;YACXyN,GAAG,EAAGC,QAAQ,IAAK;cACjB,IAAI,CAACA,QAAQ,GAAGA,QAAQ,IAAI,IAAI,CAACA,QAAQ;YAC3C,CAAE;YACFtL,KAAK,EAAE+K,OAAO,CAAChM,EAAE,CAAE;YACnBwM,gBAAgB,EAAE,IAAI,CAACC,eAAgB;YACvCC,YAAY,EAAE,IAAI,CAACA,YAAa;YAChCC,QAAQ,EAAE,IAAI,CAACA,QAAS;YACxBC,eAAe,EAAE,IAAI,CAACA,eAAgB;YACtCC,MAAM,EAAE,IAAI,CAACA;UAAO,CACrB,CACF;UAED,oBACEnR,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC5B,UAAU;YACTmO,GAAG,EAAEd,mBAAoB;YACzBpN,UAAU,EAAE,CAAC0N,aAAa,IAAI,CAACM,iBAAiB,IAAI,CAAC7J,WAAY;YACjElE,QAAQ,EAAE,CAACyN,aAAa,KAAKM,iBAAiB,IAAI7J,WAAW,CAAE;YAC/DjE,gBAAgB,EAAE,CAACwN,aAAa,IAAI3J,QAAQ,IAAIsJ,WAAW,IAAI,CAACrF,IAAK;YACrE7H,mBAAmB,EAAEgE;UAAY,gBAEjC7G,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC/D,QAAA,CAAA4J,OAAO;YACN0G,GAAG,EAAGA,GAAG,IAAK,IAAI,CAACQ,aAAa,CAACR,GAAG,CAAE;YACtCS,eAAe,EAAE,CAAE;YACnBC,WAAW;YACXC,IAAI,EAAEhG,iBAAiB,KAAK,IAAIjH,EAAE,EAAG;YACrCkN,SAAS,EAAE;cACT5I,MAAM,EAAE;gBACN6I,SAAS,EAAE3B,mBAAmB,EAAE4B,OAAO,IAAIC,SAAS;gBACpD;gBACA;gBACA;gBACAC,SAAS,EAAE,cAAc;gBACzBC,EAAE,EAAE;kBACF3Q,eAAe,EAAE,aAAa;kBAC9BI,KAAK,EAAE,MAAM;kBACbwQ,OAAO,EAAE,CAAC;kBACV,qBAAqB,EAAE;oBACrB1Q,OAAO,EAAE;kBACX;gBACF,CAAC;gBACD2Q,SAAS,EAAE,CACT;kBACEzM,IAAI,EAAE,iBAAiB;kBACvBwC,OAAO,EAAE;gBACX,CAAC,EACD;kBACExC,IAAI,EAAE,MAAM;kBACZwC,OAAO,EAAE;gBACX,CAAC,EACDD,gCAAgC;cAEpC,CAAC;cACDmK,OAAO,EAAE;gBACPH,EAAE,EAAE;kBACFI,QAAQ,EAAE,SAAS;kBACnB/Q,eAAe,EAAE,aAAa;kBAC9BI,KAAK,EAAE,MAAM;kBACbwB,QAAQ,EAAE,MAAM;kBAChBU,SAAS,EAAE,CAAC;kBACZhB,UAAU,EAAE,CAAC;kBACb0P,SAAS,EAAE;gBACb;cACF;YACF,CAAE;YACFC,KAAK,EAAErL,MAAM,CAACC,IAAI,CAACS,OAAO,CAACC,OAAO,CAAC,CAACrC,GAAG,CACpCiF,QAAQ,IACNA,QAAQ,KAAKkB,iBAAiB,IAAI,EAAE1E,WAAW,IAAIJ,QAAQ,CAAC,iBAC3DzG,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAACf,iBAAiB;cAChB,eAAa,IAAK;cAClB+B,GAAG,EAAEgF,QAAS;cACdjG,KAAK,EAAE;gBAAE9C,KAAK,EAAEoE,cAAc,CAACC,cAAc,EAAEC,cAAc;cAAE;YAAE,gBAEjE5F,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC9D,kBAAA,CAAA6R,gBAAgB;cACfzM,cAAc,EAAEA,cAAe;cAC/BwK,IAAI,EAAEvK,cAAc,IAAIhB,sBAAuB;cAC/CyN,OAAO,EAAE,IAAI,CAACA;YAAQ,CACvB,CACgB,CACpB,IACD,IACJ;UAAE,GAED9B,gBAAgB,gBAAGvQ,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAACZ,cAAc,QAAEkN,QAAyB,CAAC,gBAAG3Q,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,cAAMsM,QAAc,CAC/E,CACC,CAAC;QAEjB;MAAE,CACH,CACsB,CAAC;IAE9B,CAAC;IApfC,MAAMlJ,QAAO,GAAG,CAAC,CAAC;IAClB,MAAM;MAAEnB,KAAK,EAALA,MAAK;MAAEkB,OAAO,EAAPA;IAAQ,CAAC,GAAGwC,KAAK,IAAI,CAAC,CAAC;IACtC,MAAM;MAAEtD,MAAM;MAAEE,iBAAiB,EAAjBA;IAAkB,CAAC,GAAGN,MAAK,IAAI,CAAC,CAAC;IACjD,MAAM;MAAEmB,OAAO,EAAE6K;IAAe,CAAC,GAAG9K,QAAO,IAAI,CAAC,CAAC;IAEjD,IAAId,MAAM,EAAE;MACV,CAACA,MAAM,IAAI,EAAE,EAAE6L,OAAO,CAAC5N,KAAK,EAAG6N,QAAQ,IAAK;QAC1C,MAAMtL,WAAW,GAAGI,IAAI,CAACC,cAAc,CAACiL,QAAQ,CAAC;QACjD,MAAMC,wBAAwB,GAAGH,cAAc,IAAIA,cAAc,CAAC,IAAIpL,WAAW,EAAE,CAAC;QAEpFO,QAAO,CAAC,IAAIP,WAAW,EAAE,CAAC,GAAG;UAAEU,KAAK,EAAE6K,wBAAwB,EAAE7K,KAAK,IAAI;QAAG,CAAC;MAC/E,CAAC,CAAC;IACJ;IAEA,IAAI,CAACrB,KAAK,GAAG;MACXiB,OAAO,EAAE;QAAE,GAAGwC,KAAK,CAACxC,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC;MACtC8D,iBAAiB,EAAE,EAAE;MACrB1E,WAAW,EAAED,kBAAiB,IAAI,KAAK;MACvCkJ,mBAAmB,eAAEjG,cAAK,CAAC6I,SAAS,CAAC;IACvC,CAAC;EACH;EAEAC,yBAAyBA,CAAA,EAAG;IAC1B,IAAI,OAAOrK,MAAM,KAAK,WAAW,EAAE;MACjC,IAAI,CAAC5D,UAAU,EAAE;QACf,IAAAkO,gCAAa,EAAC,aAAa,EAAGlH,IAAI,KAAM;UACtCmH,UAAU,EAAE;AACtB,gDAAgDnH,IAAI;AACpD;AACA,4BAA4BA,IAAI;AAChC;AACA,mBAAmB;UACTzK,IAAI,EAAEA,CAAA,KAAM,MAAM;UAClBsE,KAAK,EAAEA,CAAA,KAAM,wBAAwBmG,IAAI;QAC3C,CAAC,CAAC,CAAC;QAEHhH,UAAU,GAAG,IAAI;MACnB;IACF;EACF;EA8BAoO,gCAAgCA,CAACC,SAAS,EAAE;IAC1C,MAAM;MAAEzM;IAAM,CAAC,GAAG,IAAI,CAAC0D,KAAK;IAC5B,MAAM;MAAE1D,KAAK,EAAE0M,SAAS,GAAG,CAAC;IAAE,CAAC,GAAGD,SAAS,IAAI,CAAC,CAAC;IACjD,MAAM;MAAErM,MAAM,GAAG,EAAE;MAAEwJ,GAAG,GAAG,CAAC;IAAE,CAAC,GAAG5J,KAAK,IAAI,CAAC,CAAC;IAC7C,MAAM;MAAEI,MAAM,EAAEuM,UAAU,GAAG,EAAE;MAAE/C,GAAG,EAAEgD,OAAO,GAAG,CAAC,CAAC;MAAEtM,iBAAiB,EAAEuM,qBAAqB,GAAG;IAAM,CAAC,GAAGH,SAAS;IAElH,MAAMI,cAAc,GAAIlD,GAAG,IAAKA,GAAG,IAAIA,GAAG,CAACC,IAAI,KAAK,UAAU;IAE9D,IAAI,CAACiD,cAAc,CAAClD,GAAG,CAAC,IAAI,CAACkD,cAAc,CAACF,OAAO,CAAC,EAAE;MACpD,IAAI,CAAC5H,QAAQ,CAAE+H,SAAS,KAAM;QAAE,GAAGA,SAAS,CAAC7L,OAAO;QAAEX,WAAW,EAAE;MAAM,CAAC,CAAC,CAAC;IAC9E;IAEA,IAAIsM,qBAAqB,EAAE;MACzB,IAAI,CAAC7H,QAAQ,CAAC;QAAEzE,WAAW,EAAE;MAAK,CAAC,CAAC;IACtC;IAEA,MAAMyM,OAAO,GAAG5M,MAAM,CAACW,KAAK,CAAC1C,KAAK,CAAC;IACnC,MAAM4O,WAAW,GAAGN,UAAU,CAAC5L,KAAK,CAAC1C,KAAK,CAAC;;IAE3C;IACA,IAAI,CAAC,IAAA6O,iBAAO,EAACF,OAAO,EAAEC,WAAW,CAAC,EAAE;MAClC,MAAME,UAAU,GAAG,CAAC,CAAC;MACrB,MAAMhM,OAAO,GAAG,IAAI,CAAClB,KAAK,CAACiB,OAAO,CAACC,OAAO;MAE1C,CAAC8L,WAAW,IAAI,EAAE,EAAEnJ,OAAO,CAAEsJ,SAAS,IAAK;QACzC,MAAMxM,WAAW,GAAGI,IAAI,CAACC,cAAc,CAACmM,SAAS,CAAC;QAClD,MAAMjB,wBAAwB,GAAGhL,OAAO,IAAIA,OAAO,CAAC,IAAIP,WAAW,EAAE,CAAC;;QAEtE;QACAuM,UAAU,CAAC,IAAIvM,WAAW,EAAE,CAAC,GAAG;UAAEU,KAAK,EAAE6K,wBAAwB,EAAE7K,KAAK,IAAI;QAAG,CAAC;MAClF,CAAC,CAAC;MAEF,IAAI,CAAC0D,QAAQ,CACV/E,KAAK,KAAM;QACViB,OAAO,EAAE;UACP,GAAGjB,KAAK,CAACiB,OAAO;UAChBC,OAAO,EAAEgM;QACX;MACF,CAAC,CAAC,EACF,MAAM;QACJ,IAAI,CAACzJ,KAAK,CAACqD,eAAe,CAAC,IAAI,CAAC9G,KAAK,CAACiB,OAAO,CAAC;QAC9C,IAAI,CAAC+F,0BAA0B,CAAC,CAAC;MACnC,CACF,CAAC;IACH;EACF;EAEAoG,qBAAqBA,CAACZ,SAAS,EAAEa,SAAS,EAAE;IAC1C,MAAMC,SAAS,GAAG,IAAAL,iBAAO,EAAC,IAAI,CAACxJ,KAAK,CAAC1D,KAAK,EAAEyM,SAAS,CAACzM,KAAK,CAAC;IAC5D,MAAMwN,SAAS,GAAG,IAAAN,iBAAO,EAAC,IAAI,CAACjN,KAAK,EAAEqN,SAAS,CAAC;IAEhD,OAAO,CAACC,SAAS,IAAI,CAACC,SAAS;EACjC;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACxG,0BAA0B,CAAC,CAAC;IACjC9B,UAAU,CAAC,MAAM,IAAAX,yBAAU,EAAC,IAAI,CAACX,IAAI,CAAC,EAAE,GAAG,CAAC;EAC9C;EAEA6J,kBAAkBA,CAAA,EAAG;IACnB,IAAI,CAACzG,0BAA0B,CAAC,CAAC;EACnC;EA4LA;EACA6D,aAAaA,CAACR,GAAG,EAAE;IACjB;IACAnF,UAAU,CAAC,MAAM;MACf,IAAImF,GAAG,IAAI9L,SAAS,EAAE;QACpB,MAAMmP,GAAG,GAAGhQ,QAAQ,CAACsG,aAAa,CAAC,kBAAkB,CAAC;QAEtD,IAAI0J,GAAG,EAAE;UACP,MAAM3J,EAAE,GAAG2J,GAAG,CAACC,UAAU;UACzB5J,EAAE,CAAC6J,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;QACnC;MACF;IACF,CAAC,EAAE,CAAC,CAAC;EACP;EA2KAC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAE9N;IAAM,CAAC,GAAG,IAAI,CAAC0D,KAAK;IAC5B,MAAM;MAAEnD;IAAY,CAAC,GAAG,IAAI,CAACN,KAAK;IAClC,MAAM;MACJ+I,MAAM;MACNY,GAAG,EAAE;QAAEC,IAAI;QAAEkE;MAAK,CAAC,GAAG,CAAC,CAAC;MACxBC,aAAa;MACbvE,WAAW;MACXvJ,SAAS;MACT+N,QAAQ;MACRC,QAAQ;MACRC;IACF,CAAC,GAAGnO,KAAK,IAAI,CAAC,CAAC;IACf,MAAM8J,aAAa,GAAG,IAAAC,iBAAO,EAAC7J,SAAS,CAAC;IACxC,MAAMkO,uBAAuB,GAAG,CAACtE,aAAa,IAAIL,WAAW,IAAIA,WAAW,CAACA,WAAW,KAAK,SAAS;IACtG,MAAM4E,WAAW,GAAG,CAAC9N,WAAW,IAAKsJ,IAAI,KAAK,MAAM,IAAIkE,IAAI,KAAK,YAAa,KAAKG,QAAQ,IAAIC,IAAI;IAEnG,oBACEzU,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAACxD,cAAc;MACbyT,aAAa,EAAEA,aAAc;MAC7B1D,GAAG,EAAGgE,CAAC,IAAK;QACV;QACA,MAAMC,OAAO,GAAGC,iBAAQ,CAACC,WAAW,CAACH,CAAC,CAAC;QAEvC,IAAI,CAACzK,IAAI,GAAG0K,OAAO,IAAI,IAAI,CAAC1K,IAAI;MAClC;IAAE,gBAEFnK,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAChD,aAAa,QAEX8O,IAAI,KAAK,QAAQ,iBAAInQ,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAACV,MAAM,QAAC,iCAAuC,CAAC,eAEtE3D,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAChD,aAAa,QACXqT,uBAAuB,iBACtB1U,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAACN,YAAY;MAACwQ,QAAQ,EAAEA,QAAS;MAACjH,IAAI;MAAC0H,OAAO,EAAEnO,WAAY;MAACoO,QAAQ,EAAE,IAAI,CAACC;IAAkB,CAAE,CAErF,CAAC,EAEf,IAAI,CAACC,yBAAyB,CAAC,CAAC,EAEhC7F,MAAM,iBACLtP,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC7C,eAAe,qBACdxB,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC7D,SAAA,CAAA4O,aAAa;MAACE,MAAM,EAAEA;IAAO,CAAE,CACjB,CAClB,eAEDtP,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAAC7D,SAAA,CAAA4U,QAAQ;MAACC,KAAK;IAAA,GAAE,IAAI,CAACC,mBAAmB,CAAC,CAAY,CAAC,EAEtDX,WAAW,iBAAI3U,MAAA,CAAAkK,OAAA,CAAA7F,aAAA,CAACP,IAAI;MAACyR,SAAS,EAAC,MAAM;MAACC,uBAAuB,EAAE;QAAEC,MAAM,EAAEhB;MAAK;IAAE,CAAE,CAAC,EAEnF,IAAI,CAACiB,eAAe,CAAC,CACT,CACD,CAAC;EAErB;AACF;AAACC,OAAA,CAAArO,IAAA,GAAAA,IAAA;AAxjBC;AAAA,IAAA2C,gBAAA,CAAAC,OAAA,EADW5C,IAAI,oBAEUkL,QAAQ,IAAK,CAACA,QAAQ,IAAI,EAAE,EAAEoD,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAACA,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AAAA,IAAA3L,gBAAA,CAAAC,OAAA,EAFrF5C,IAAI,eAII;EACjBE,OAAO,EAAEqO,kBAAS,CAACC,MAAM,CAACC,UAAU;EACpC1I,eAAe,EAAEwI,kBAAS,CAACG,IAAI;EAC/B1P,KAAK,EAAEuP,kBAAS,CAACC,MAAM,CAACC;AAC1B,CAAC;AAAA,IAAAE,QAAA,GAAAN,OAAA,CAAAzL,OAAA,GAmjBY5C,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_styles","_Tooltip","_mathInput","_renderUi","_mathRendering","_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","applyStaticMath","view","parentElement","classList","remove","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","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, registerEmbed, applyStaticMath } 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 { 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 if (!registered) {\n 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 const answer = answers[answerId];\n\n applyStaticMath(el, (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 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: false,\n },\n {\n name: 'flip',\n enabled: false,\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":[]}
@@ -1 +1 @@
1
- import{_dll_react as e,_dll_prop_types as t,_dll_mui__material as n,_dll_mui__material_styles as r,_dll_mui__icons_material as o,_dll_pie_lib__render_ui as a,_dll_debug as i,_dll_react_dom_client as s}from"../../../@pie-lib/shared-module@^5.1.1/module/index.js";import{_dll_pie_lib__config_ui as l}from"../../../@pie-lib/config-module@^4.0.4/module/index.js";import{_dll_pie_lib__editable_html_tip_tap as c}from"../../../@pie-lib/editable-html-module@^7.1.1/module/index.js";import{_dll_pie_lib__math_toolbar as u}from"../../../@pie-lib/math-edit-module@^4.1.1/module/index.js";var p="object"==typeof global&&global&&global.Object===Object&&global,d="object"==typeof self&&self&&self.Object===Object&&self,h=p||d||Function("return this")(),g=h.Symbol,f=Object.prototype,m=f.hasOwnProperty,b=f.toString,y=g?g.toStringTag:void 0,_=Object.prototype.toString,v=g?g.toStringTag:void 0;function C(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":v&&v in Object(e)?function(e){var t=m.call(e,y),n=e[y];try{e[y]=void 0;var r=!0}catch(e){}var o=b.call(e);return r&&(t?e[y]=n:delete e[y]),o}(e):function(e){return _.call(e)}(e)}function j(e){return null!=e&&"object"==typeof e}function w(e){return"symbol"==typeof e||j(e)&&"[object Symbol]"==C(e)}var E=Array.isArray,S=g?g.prototype:void 0,A=S?S.toString:void 0;function O(e){if("string"==typeof e)return e;if(E(e))return function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}(e,O)+"";if(w(e))return A?A.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}var x=/\s/,I=/^\s+/;function T(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var M=/^[-+]0x[0-9a-f]+$/i,k=/^0b[01]+$/i,P=/^0o[0-7]+$/i,R=parseInt;function D(e){if("number"==typeof e)return e;if(w(e))return NaN;if(T(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=T(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&x.test(e.charAt(t)););return t}(e)+1).replace(I,""):e}(e);var n=k.test(e);return n||P.test(e)?R(e.slice(2),n?2:8):M.test(e)?NaN:+e}function K(e){return e}function z(e){if(!T(e))return!1;var t=C(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var $,q=h["__core-js_shared__"],B=($=/[^.]+$/.exec(q&&q.keys&&q.keys.IE_PROTO||""))?"Symbol(src)_1."+$:"",F=Function.prototype.toString;function L(e){if(null!=e){try{return F.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var U=/^\[object .+?Constructor\]$/,N=Function.prototype,W=Object.prototype,H=N.toString,Z=W.hasOwnProperty,Y=RegExp("^"+H.call(Z).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function V(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!T(e)||(t=e,B&&B in t))&&(z(e)?Y:U).test(L(e));var t}(n)?n:void 0}var G,J,Q,X=V(h,"WeakMap"),ee=Object.create,te=function(){function e(){}return function(t){if(!T(t))return{};if(ee)return ee(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),ne=Date.now,re=function(){try{var e=V(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),oe=re,ae=oe?function(e,t){return oe(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:K,ie=(G=ae,J=0,Q=0,function(){var e=ne(),t=16-(e-Q);if(Q=e,t>0){if(++J>=800)return arguments[0]}else J=0;return G.apply(void 0,arguments)}),se=/^(?:0|[1-9]\d*)$/;function le(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&se.test(e))&&e>-1&&e%1==0&&e<t}function ce(e,t,n){"__proto__"==t&&oe?oe(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ue(e,t){return e===t||e!=e&&t!=t}var pe=Object.prototype.hasOwnProperty;function de(e,t,n){var r=e[t];pe.call(e,t)&&ue(r,n)&&(void 0!==n||t in e)||ce(e,t,n)}function he(e,t,n,r){var o=!n;n||(n={});for(var a=-1,i=t.length;++a<i;){var s=t[a],l=r?r(n[s],e[s],s,n,e):void 0;void 0===l&&(l=e[s]),o?ce(n,s,l):de(n,s,l)}return n}var ge=Math.max;function fe(e,t,n){return t=ge(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=ge(r.length-t,0),i=Array(a);++o<a;)i[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=n(i),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,s)}}function me(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function be(e){return null!=e&&me(e.length)&&!z(e)}var ye=Object.prototype;function _e(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ye)}function ve(e){return j(e)&&"[object Arguments]"==C(e)}var Ce=Object.prototype,je=Ce.hasOwnProperty,we=Ce.propertyIsEnumerable,Ee=ve(function(){return arguments}())?ve:function(e){return j(e)&&je.call(e,"callee")&&!we.call(e,"callee")},Se="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ae=Se&&"object"==typeof module&&module&&!module.nodeType&&module,Oe=Ae&&Ae.exports===Se?h.Buffer:void 0,xe=(Oe?Oe.isBuffer:void 0)||function(){return!1},Ie={};function Te(e){return function(t){return e(t)}}Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object Boolean]"]=Ie["[object DataView]"]=Ie["[object Date]"]=Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object WeakMap]"]=!1;var Me="object"==typeof exports&&exports&&!exports.nodeType&&exports,ke=Me&&"object"==typeof module&&module&&!module.nodeType&&module,Pe=ke&&ke.exports===Me&&p.process,Re=function(){try{return ke&&ke.require&&ke.require("util").types||Pe&&Pe.binding&&Pe.binding("util")}catch(e){}}(),De=Re&&Re.isTypedArray,Ke=De?Te(De):function(e){return j(e)&&me(e.length)&&!!Ie[C(e)]},ze=Object.prototype.hasOwnProperty;function $e(e,t){var n=E(e),r=!n&&Ee(e),o=!n&&!r&&xe(e),a=!n&&!r&&!o&&Ke(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],l=s.length;for(var c in e)!t&&!ze.call(e,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||le(c,l))||s.push(c);return s}function qe(e,t){return function(n){return e(t(n))}}var Be=qe(Object.keys,Object),Fe=Object.prototype.hasOwnProperty;function Le(e){return be(e)?$e(e):function(e){if(!_e(e))return Be(e);var t=[];for(var n in Object(e))Fe.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}var Ue=Object.prototype.hasOwnProperty;function Ne(e){return be(e)?$e(e,!0):function(e){if(!T(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=_e(e),n=[];for(var r in e)("constructor"!=r||!t&&Ue.call(e,r))&&n.push(r);return n}(e)}var We=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,He=/^\w*$/,Ze=V(Object,"create"),Ye=Object.prototype.hasOwnProperty,Ve=Object.prototype.hasOwnProperty;function Ge(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Je(e,t){for(var n=e.length;n--;)if(ue(e[n][0],t))return n;return-1}Ge.prototype.clear=function(){this.__data__=Ze?Ze(null):{},this.size=0},Ge.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Ge.prototype.get=function(e){var t=this.__data__;if(Ze){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Ye.call(t,e)?t[e]:void 0},Ge.prototype.has=function(e){var t=this.__data__;return Ze?void 0!==t[e]:Ve.call(t,e)},Ge.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ze&&void 0===t?"__lodash_hash_undefined__":t,this};var Qe=Array.prototype.splice;function Xe(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Xe.prototype.clear=function(){this.__data__=[],this.size=0},Xe.prototype.delete=function(e){var t=this.__data__,n=Je(t,e);return!(n<0||(n==t.length-1?t.pop():Qe.call(t,n,1),--this.size,0))},Xe.prototype.get=function(e){var t=this.__data__,n=Je(t,e);return n<0?void 0:t[n][1]},Xe.prototype.has=function(e){return Je(this.__data__,e)>-1},Xe.prototype.set=function(e,t){var n=this.__data__,r=Je(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var et=V(h,"Map");function tt(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function nt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function rt(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(rt.Cache||nt),n}nt.prototype.clear=function(){this.size=0,this.__data__={hash:new Ge,map:new(et||Xe),string:new Ge}},nt.prototype.delete=function(e){var t=tt(this,e).delete(e);return this.size-=t?1:0,t},nt.prototype.get=function(e){return tt(this,e).get(e)},nt.prototype.has=function(e){return tt(this,e).has(e)},nt.prototype.set=function(e,t){var n=tt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},rt.Cache=nt;var ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,at=/\\(\\)?/g,it=function(){var e=rt(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ot,function(e,n,r,o){t.push(r?o.replace(at,"$1"):n||e)}),t},function(e){return 500===t.size&&t.clear(),e}),t=e.cache;return e}(),st=it;function lt(e,t){return E(e)?e:function(e,t){if(E(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!w(e))||He.test(e)||!We.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:st(function(e){return null==e?"":O(e)}(e))}function ct(e){if("string"==typeof e||w(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ut(e,t){for(var n=0,r=(t=lt(t,e)).length;null!=e&&n<r;)e=e[ct(t[n++])];return n&&n==r?e:void 0}function pt(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}var dt=g?g.isConcatSpreadable:void 0;function ht(e){return E(e)||Ee(e)||!!(dt&&e&&e[dt])}function gt(e,t,n,r,o){var a=-1,i=e.length;for(n||(n=ht),o||(o=[]);++a<i;){var s=e[a];t>0&&n(s)?t>1?gt(s,t-1,n,r,o):pt(o,s):r||(o[o.length]=s)}return o}function ft(e){return null!=e&&e.length?gt(e,1):[]}var mt=qe(Object.getPrototypeOf,Object);function bt(e){var t=this.__data__=new Xe(e);this.size=t.size}bt.prototype.clear=function(){this.__data__=new Xe,this.size=0},bt.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},bt.prototype.get=function(e){return this.__data__.get(e)},bt.prototype.has=function(e){return this.__data__.has(e)},bt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Xe){var r=n.__data__;if(!et||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new nt(r)}return n.set(e,t),this.size=n.size,this};var yt="object"==typeof exports&&exports&&!exports.nodeType&&exports,_t=yt&&"object"==typeof module&&module&&!module.nodeType&&module,vt=_t&&_t.exports===yt?h.Buffer:void 0,Ct=vt?vt.allocUnsafe:void 0;function jt(){return[]}var wt=Object.prototype.propertyIsEnumerable,Et=Object.getOwnPropertySymbols,St=Et?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i)&&(a[o++]=i)}return a}(Et(e),function(t){return wt.call(e,t)}))}:jt,At=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)pt(t,St(e)),e=mt(e);return t}:jt;function Ot(e,t,n){var r=t(e);return E(e)?r:pt(r,n(e))}function xt(e){return Ot(e,Le,St)}function It(e){return Ot(e,Ne,At)}var Tt=V(h,"DataView"),Mt=V(h,"Promise"),kt=V(h,"Set"),Pt="[object Map]",Rt="[object Promise]",Dt="[object Set]",Kt="[object WeakMap]",zt="[object DataView]",$t=L(Tt),qt=L(et),Bt=L(Mt),Ft=L(kt),Lt=L(X),Ut=C;(Tt&&Ut(new Tt(new ArrayBuffer(1)))!=zt||et&&Ut(new et)!=Pt||Mt&&Ut(Mt.resolve())!=Rt||kt&&Ut(new kt)!=Dt||X&&Ut(new X)!=Kt)&&(Ut=function(e){var t=C(e),n="[object Object]"==t?e.constructor:void 0,r=n?L(n):"";if(r)switch(r){case $t:return zt;case qt:return Pt;case Bt:return Rt;case Ft:return Dt;case Lt:return Kt}return t});var Nt=Ut,Wt=Object.prototype.hasOwnProperty,Ht=h.Uint8Array;function Zt(e){var t=new e.constructor(e.byteLength);return new Ht(t).set(new Ht(e)),t}var Yt=/\w*$/,Vt=g?g.prototype:void 0,Gt=Vt?Vt.valueOf:void 0;var Jt=Re&&Re.isMap,Qt=Jt?Te(Jt):function(e){return j(e)&&"[object Map]"==Nt(e)},Xt=Re&&Re.isSet,en=Xt?Te(Xt):function(e){return j(e)&&"[object Set]"==Nt(e)},tn="[object Arguments]",nn="[object Function]",rn="[object Object]",on={};function an(e,t,n,r,o,a){var i,s=1&t,l=2&t,c=4&t;if(n&&(i=o?n(e,r,o,a):n(e)),void 0!==i)return i;if(!T(e))return e;var u=E(e);if(u){if(i=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Wt.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,i)}else{var p=Nt(e),d=p==nn||"[object GeneratorFunction]"==p;if(xe(e))return function(e,t){if(t)return e.slice();var n=e.length,r=Ct?Ct(n):new e.constructor(n);return e.copy(r),r}(e,s);if(p==rn||p==tn||d&&!o){if(i=l||d?{}:function(e){return"function"!=typeof e.constructor||_e(e)?{}:te(mt(e))}(e),!s)return l?function(e,t){return he(e,At(e),t)}(e,function(e,t){return e&&he(t,Ne(t),e)}(i,e)):function(e,t){return he(e,St(e),t)}(e,function(e,t){return e&&he(t,Le(t),e)}(i,e))}else{if(!on[p])return o?e:{};i=function(e,t,n){var r,o,a,i=e.constructor;switch(t){case"[object ArrayBuffer]":return Zt(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(a=new(o=e).constructor(o.source,Yt.exec(o))).lastIndex=o.lastIndex,a;case"[object Symbol]":return r=e,Gt?Object(Gt.call(r)):{}}}(e,p,s)}}a||(a=new bt);var h=a.get(e);if(h)return h;a.set(e,i),en(e)?e.forEach(function(r){i.add(an(r,t,n,r,e,a))}):Qt(e)&&e.forEach(function(r,o){i.set(o,an(r,t,n,o,e,a))});var g=u?void 0:(c?l?It:xt:l?Ne:Le)(e);return function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n););}(g||e,function(r,o){g&&(r=e[o=r]),de(i,o,an(r,t,n,o,e,a))}),i}function sn(e){return an(e,5)}function ln(e,t){return null!=e&&t in Object(e)}on[tn]=on["[object Array]"]=on["[object ArrayBuffer]"]=on["[object DataView]"]=on["[object Boolean]"]=on["[object Date]"]=on["[object Float32Array]"]=on["[object Float64Array]"]=on["[object Int8Array]"]=on["[object Int16Array]"]=on["[object Int32Array]"]=on["[object Map]"]=on["[object Number]"]=on[rn]=on["[object RegExp]"]=on["[object Set]"]=on["[object String]"]=on["[object Symbol]"]=on["[object Uint8Array]"]=on["[object Uint8ClampedArray]"]=on["[object Uint16Array]"]=on["[object Uint32Array]"]=!0,on["[object Error]"]=on[nn]=on["[object WeakMap]"]=!1;var cn=function(){return h.Date.now()},un=Math.max,pn=Math.min;var dn=Object.prototype,hn=dn.hasOwnProperty,gn=function(e){return ie(fe(e,void 0,K),e+"")}(function(e,t){e=Object(e);var n=-1,r=t.length,o=r>2?t[2]:void 0;for(o&&function(e,t,n){if(!T(n))return!1;var r=typeof t;return!!("number"==r?be(n)&&le(t,n.length):"string"==r&&t in n)&&ue(n[t],e)}(t[0],t[1],o)&&(r=1);++n<r;)for(var a=t[n],i=Ne(a),s=-1,l=i.length;++s<l;){var c=i[s],u=e[c];(void 0===u||ue(u,dn[c])&&!hn.call(e,c))&&(e[c]=a[c])}return e}),fn=gn;function mn(e,t,n,r){if(!T(e))return e;for(var o=-1,a=(t=lt(t,e)).length,i=a-1,s=e;null!=s&&++o<a;){var l=ct(t[o]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(o!=i){var u=s[l];void 0===(c=r?r(u,l,s):void 0)&&(c=T(u)?u:le(t[o+1])?[]:{})}de(s,l,c),s=s[l]}return e}function bn(e,t){return function(e,t,n){for(var r=-1,o=t.length,a={};++r<o;){var i=t[r],s=ut(e,i);n(s,i)&&mn(a,lt(i,e),s)}return a}(e,t,function(t,n){return function(e,t){return null!=e&&function(e,t,n){for(var r=-1,o=(t=lt(t,e)).length,a=!1;++r<o;){var i=ct(t[r]);if(!(a=null!=e&&n(e,i)))break;e=e[i]}return a||++r!=o?a:!!(o=null==e?0:e.length)&&me(o)&&le(i,o)&&(E(e)||Ee(e))}(e,t,ln)}(e,n)})}var yn=function(e){return ie(fe(e,void 0,ft),e+"")}(function(e,t){return null==e?{}:bn(e,t)}),_n=yn,vn={};Object.defineProperty(vn,"__esModule",{value:!0});class Cn extends CustomEvent{constructor(e,t=!1){super(Cn.TYPE,{bubbles:!0,detail:{update:e,reset:t}}),this.update=e,this.reset=t}}Cn.TYPE="model.updated";var jn=vn.ModelUpdatedEvent=Cn;class wn extends CustomEvent{constructor(e,t){super(wn.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}wn.TYPE="delete.image";var En=vn.DeleteImageEvent=wn;class Sn extends CustomEvent{constructor(e){super(Sn.TYPE,{bubbles:!0,detail:e}),this.handler=e}}Sn.TYPE="insert.image";var An=vn.InsertImageEvent=Sn;class On extends CustomEvent{constructor(e,t){super(On.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}On.TYPE="delete.sound";var xn=vn.DeleteSoundEvent=On;class In extends CustomEvent{constructor(e){super(In.TYPE,{bubbles:!0,detail:e}),this.handler=e}}In.TYPE="insert.sound";var Tn=vn.InsertSoundEvent=In;const Mn=e,kn=t,{Card:Pn}=n,{CardContent:Rn}=n,{Button:Dn}=n,{FormControlLabel:Kn}=n,{Typography:zn}=n,{InputLabel:$n}=n,{Checkbox:qn}=n,{Select:Bn}=n,{MenuItem:Fn}=n,{IconButton:Ln}=n,{styled:Un}=r,{Delete:Nn}=o,{color:Wn}=a,{InputContainer:Hn}=l,{MathToolbar:Zn}=u,Yn=Un(Pn)(({theme:e})=>({marginBottom:e.spacing(2.5),width:"100%",minWidth:"548px",border:`1px solid ${e.palette.grey[700]}`,display:"flex",flexDirection:"column",justifyContent:"space-between"})),Vn=Un(Rn)(({theme:e})=>({paddingBottom:`${e.spacing(2)} !important`})),Gn=Un(zn)({fontWeight:700,fontSize:"1.2rem",flex:3}),Jn=Un(Hn)(({theme:e})=>({flex:2,"& > *:not(label)":{marginTop:e.spacing(1)}})),Qn=Un("div")(({theme:e})=>({marginBottom:e.spacing(2)})),Xn=Un("div")({display:"flex",alignItems:"center",justifyContent:"space-between"}),er=Un("div")({display:"flex"}),tr=Un(Dn)(({theme:e})=>({border:`1px solid ${e.palette.grey.A400}`,color:Wn.text()})),nr=Un(Ln)(({theme:e})=>({marginLeft:e.spacing(1)})),rr=Un("div")(({theme:e})=>({fontSize:e.typography.fontSize-2,color:e.palette.error.main,paddingTop:e.spacing(1)})),or=Un("div")(({theme:e})=>({background:e.palette.grey.A100,color:e.palette.grey.A700,display:"inline",minWidth:"50px",padding:"8px",border:"1px solid #C0C3CF"})),ar=Un("div")({display:"flex",justifyContent:"space-between",alignItems:"center"}),ir=Un(qn)({color:`${Wn.tertiary()} !important`});if("undefined"!=typeof document){const e="math-templated-response-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .response-editor {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 500px;\n max-width: 900px;\n height: auto;\n min-height: 40px;\n }\n .math-toolbar {\n width: 100%;\n }\n ",document.head.appendChild(t)}}class sr extends Mn.Component{static __initStatic(){this.propTypes={defaultResponse:kn.bool,error:kn.object,mode:kn.oneOfType([kn.string,kn.number]),onResponseChange:kn.func.isRequired,onResponseDone:kn.func.isRequired,response:kn.object.isRequired,cIgnoreOrder:kn.object.isRequired,cAllowTrailingZeros:kn.object.isRequired,responseKey:kn.number.isRequired}}static __initStatic2(){this.defaultProps={defaultResponse:!1,mode:"8"}}constructor(e){super(e),sr.prototype.__init.call(this),sr.prototype.__init2.call(this),sr.prototype.__init3.call(this),sr.prototype.__init4.call(this),sr.prototype.__init5.call(this),sr.prototype.__init6.call(this),sr.prototype.__init7.call(this),sr.prototype.__init8.call(this),sr.prototype.__init9.call(this),sr.prototype.__init10.call(this),sr.prototype.__init11.call(this);const{response:{alternates:t}={}}=e||{},n=Object.keys(t||{}).length;this.state={alternateIdCounter:n+1,showKeypad:{openCount:0,main:!1}}}__init(){this.onChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.value,r(a,o)}}__init2(){this.onConfigChanged=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.checked,r(a,o)}}__init3(){this.onLiteralOptionsChange=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o[e]=!t[e],n(o,r)}}__init4(){this.onAnswerChange=e=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o.answer=e,n(o,r)}}__init5(){this.onAlternateAnswerChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a.alternates[e]=t,r(a,o)}}__init6(){this.onAddAlternate=()=>{const{response:e,onResponseChange:t,responseKey:n}=this.props,{alternateIdCounter:r}=this.state,o={...e};o.alternates||(o.alternates={}),o.alternates[r]="",t(o,n),this.setState({alternateIdCounter:r+1})}}__init7(){this.onRemoveAlternate=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};delete o.alternates[e],n(o,r),this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount-1:t.showKeypad.openCount}}))}}__init8(){this.onDone=()=>{const{onResponseDone:e}=this.props;this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.openCount-1,main:!1}})),e()}}__init9(){this.onFocus=()=>{this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.main?e.showKeypad.openCount:e.showKeypad.openCount+1,main:!0}}))}}__init10(){this.onAlternateFocus=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount:t.showKeypad.openCount+1,[e]:!0}}))}}__init11(){this.onAlternateDone=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad.openCount-1,[e]:!1}}))}}render(){const{mode:e,responseKey:t,response:n,cAllowTrailingZeros:r,cIgnoreOrder:o,error:a}=this.props,{showKeypad:i}=this.state,{validation:s,answer:l,alternates:c,ignoreOrder:u,allowTrailingZeros:p}=n,d=Object.keys(c||{}).length>0,h={editor:"response-editor",mathToolbar:"math-toolbar"},g={minHeight:(i.openCount>0?430:230)+"px"},f=`R ${parseInt(t)+1}`;return Mn.createElement(Yn,{style:g},Mn.createElement(Vn,null,Mn.createElement(Xn,null,Mn.createElement(Gn,{component:"div"},"Response for ",Mn.createElement(or,null,f)),Mn.createElement(Jn,{label:"Validation"},Mn.createElement(Bn,{onChange:this.onChange("validation"),value:s||"literal",MenuProps:{transitionDuration:{enter:225,exit:195}}},Mn.createElement(Fn,{value:"literal"},"Literal Validation"),Mn.createElement(Fn,{value:"symbolic"},"Symbolic Validation")))),"literal"===s&&Mn.createElement(er,null,r.enabled&&Mn.createElement(Kn,{label:r.label,control:Mn.createElement(ir,{checked:p,onChange:this.onLiteralOptionsChange("allowTrailingZeros")})}),o.enabled&&Mn.createElement(Kn,{label:o.label,control:Mn.createElement(ir,{checked:u,onChange:this.onLiteralOptionsChange("ignoreOrder")})})),Mn.createElement(Qn,null,Mn.createElement($n,null,"Correct Answer"),Mn.createElement(Zn,{keypadMode:e,classNames:h,controlledKeypad:!0,showKeypad:i.main,latex:l||"",onChange:this.onAnswerChange,onFocus:this.onFocus,onDone:this.onDone,error:a&&a.answer}),a&&a.answer?Mn.createElement(rr,null,a.answer):null),d&&Object.keys(c).map((t,n)=>Mn.createElement(Qn,{key:t},Mn.createElement($n,null,"Alternate",Object.keys(c).length>1?` ${n+1}`:""),Mn.createElement(ar,null,Mn.createElement(Zn,{classNames:h,controlledKeypad:!0,keypadMode:e,showKeypad:i[t]||!1,latex:c[t]||"",onChange:this.onAlternateAnswerChange(t),onFocus:this.onAlternateFocus(t),onDone:this.onAlternateDone(t),error:a&&a[t]}),Mn.createElement(nr,{onClick:this.onRemoveAlternate(t),size:"large"},Mn.createElement(Nn,null))),a&&a[t]?Mn.createElement(rr,null,a[t]):null)),Mn.createElement(tr,{type:"primary",onClick:this.onAddAlternate},"ADD ALTERNATE")))}}sr.__initStatic(),sr.__initStatic2();const lr="imes|riangle|an|heta|herefore",cr="throot|parallel|cong|approx|eq|e|sim",ur=new RegExp(`(\\t(?!${lr}))|(\\n(?!${cr}))|(\\\\t(?!${lr}))|(\\\\n(?!${cr}))`,"g"),pr=e=>e.replace(ur,"").replace(/\\"/g,'"').replace(/\\\//g,"/"),dr=e=>{const t=((e="")=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(pr(e||"")||"");return t.querySelectorAll('[data-type="math_templated"]').forEach(e=>e.replaceWith(`{{${e.dataset.index}}}`)),t.innerHTML},hr=/\{\{(\d+)\}\}/g,gr=(e,t)=>e?pr(e).replace(hr,(e,n)=>{const r=function(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}([t,"access",e=>e[n],"optionalAccess",e=>e.answer])||"";return`<span data-type="math_templated" data-index="${n}" data-value="${r}"></span>`}):"",fr=e,mr=t,{styled:br}=r,{Typography:yr}=n,{Select:_r}=n,{MenuItem:vr}=n,{Tooltip:Cr}=n,{Info:jr}=o,{InputContainer:wr}=l,{settings:Er}=l,{layout:Sr}=l,Ar=c,{ALL_PLUGINS:Or}=c;function xr(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const{dropdown:Ir}=Er,{Panel:Tr,toggle:Mr}=Er,kr=br(wr)(({theme:e})=>({width:"100%",paddingTop:e.spacing(2),marginBottom:e.spacing(2)})),Pr=br(Ar)({width:"100%"}),Rr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginTop:e.spacing(1)})),Dr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginBottom:e.spacing(1)})),Kr=br(Ar)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),marginBottom:e.spacing(3)})),zr=br(wr)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),"& > *:not(label)":{marginTop:e.spacing(1)},marginBottom:e.spacing(2)})),$r=br(_r)({width:"100%"}),qr=br(yr)(({theme:e})=>({fontSize:1.25*e.typography.fontSize,fontWeight:"bold"})),Br=br("div")({display:"flex",alignItems:"center",gap:"8px"}),Fr=br(Cr)(({theme:e})=>({"& .MuiTooltip-tooltip":{fontSize:e.typography.fontSize-2,whiteSpace:"pre",maxWidth:"500px"}}));class Lr extends fr.Component{constructor(...e){super(...e),Lr.prototype.__init.call(this),Lr.prototype.__init2.call(this),Lr.prototype.__init3.call(this),Lr.prototype.__init4.call(this),Lr.prototype.__init5.call(this),Lr.prototype.__init6.call(this),Lr.prototype.__init7.call(this),Lr.prototype.__init8.call(this),Lr.prototype.__init9.call(this)}static __initStatic(){this.propTypes={model:mr.object.isRequired,configuration:mr.object.isRequired,onModelChanged:mr.func.isRequired,onConfigurationChanged:mr.func.isRequired,imageSupport:mr.shape({add:mr.func.isRequired,delete:mr.func.isRequired}),uploadSoundSupport:mr.object}}__init(){this.state={}}componentDidMount(){const{model:{slateMarkup:e}}=this.props;this.setState({markup:e})}__init2(){this.handleChange=(e,t)=>{const{onModelChanged:n,model:r}=this.props,o=sn(r);o[e]=t,n(o)}}__init3(){this.onResponseChange=(e,t)=>{const{model:n,onModelChanged:r}=this.props,o={...n};o.responses[t]=e,r(o)}}__init4(){this.onResponseDone=()=>{const{model:e,onModelChanged:t}=this.props;t({...e,slateMarkup:gr(e.markup,e.responses)})}}__init5(){this.onChangeResponse=(e,t)=>{const{model:n,onModelChanged:r}=this.props,{responses:o}=n;o[e]?o[e][0].answer=t||"":o[e]=[{answer:t||"",id:"response"+e,allowSpaces:!0}],r({...n,responses:o})}}__init6(){this.onResponsesChanged=e=>{this.props.onModelChanged({...this.props.model,responses:e})}}__init7(){this.onChange=e=>{const{model:{responses:t,validationDefault:n,allowTrailingZerosDefault:r,ignoreOrderDefault:o},onModelChanged:a}=this.props,i={},s=(e=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(e);s.querySelectorAll('[data-type="math_templated"]').forEach((e,a)=>{const{value:s,index:l}=e.dataset;s||(e.dataset.value=""),i[a]=t[l]||{allowSpaces:!0,validation:n||"symbolic",allowTrailingZeros:r||!1,ignoreOrder:o||!1,answer:"",alternates:{}},e.dataset.index=a.toString()});const l=dr(e);this.setState({cachedResponses:void 0},()=>a({...this.props.model,slateMarkup:s.innerHTML,responses:i,markup:l}))}}__init8(){this.onHandleAreaChange=function(e,t,n){var r=!0,o=!0;return T(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),function(e,t,n){var r,o,a,i,s,l,c=0,u=!1,p=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function g(e){var n=e-l;return void 0===l||n>=t||n<0||p&&e-c>=a}function f(){var e=cn();if(g(e))return m(e);s=setTimeout(f,function(e){var n=t-(e-l);return p?pn(n,a-(e-c)):n}(e))}function m(e){return s=void 0,d&&r?h(e):(r=o=void 0,i)}function b(){var e=cn(),n=g(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(f,t),u?h(e):i}(l);if(p)return clearTimeout(s),s=setTimeout(f,t),h(l)}return void 0===s&&(s=setTimeout(f,t)),i}return t=D(t)||0,T(n)&&(u=!!n.leading,a=(p="maxWait"in n)?un(D(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),b.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},b.flush=function(){return void 0===s?i:m(cn())},b}(e,500,{leading:r,maxWait:500,trailing:o})}(e=>{const{model:{responses:t},onModelChanged:n}=this.props,{cachedResponses:r}=this.state;if(!e)return;const o=t?sn(t):{},a=r?sn(r):{};e.forEach(e=>{const t=e.data.get("index");!o[t]&&a[t]?(Object.assign(o,_n(a,t)),Object.prototype.hasOwnProperty.call(a,t)&&delete a[t]):(Object.assign(a,_n(o,t)),Object.prototype.hasOwnProperty.call(o,t)&&delete o[t])}),this.setState({cachedResponses:a},()=>n({...this.props.model,responses:o}))},0,{trailing:!1,leading:!0})}__init9(){this.onBlur=e=>{const{relatedTarget:t,currentTarget:n}=e||{},r=function e(t,n=0){if(!t||n>=16)return null;const r=t.offsetParent;return r?"tooltip"===r.getAttribute("role")?r:e(r,n+1):null}(t),o=r?function e(t,n=0){if(!t||n>=4)return null;const r=xr([t,"optionalAccess",e=>e.children,"optionalAccess",e=>e[0]]);return r?r.attributes&&r.attributes["data-keypad"]?r:e(r,n+1):null}(r):null;t&&n&&xr([o,"optionalAccess",e=>e.attributes,"access",e=>e["data-keypad"]])||this.setState({activeAnswerBlock:""})}}render(){const{configuration:e,imageSupport:t,model:n,onConfigurationChanged:r,onModelChanged:o,uploadSoundSupport:a}=this.props,{baseInputConfiguration:i={},contentDimensions:s={},prompt:l={},rationale:c={},settingsPanelDisabled:u,teacherInstructions:p={},language:d={},languageChoices:h={},spellCheck:g={},playerSpellCheck:f={},maxImageWidth:m={},maxImageHeight:b={},mathMlOptions:y={},template:_={},editSource:v={},ignoreOrder:C={},allowTrailingZeros:j={},partialScoring:w={},maxResponseAreas:E}=e||{},{errors:S,extraCSSRules:A,promptEnabled:O,rationaleEnabled:x,spellCheckEnabled:I,teacherInstructionsEnabled:T,toolbarEditorPosition:M,responses:k,equationEditor:P}=n||{},{prompt:R,rationale:D,responseAreas:K,teacherInstructions:z,responses:$={}}=S||{},q=(e=>{const{maxResponseAreas:t}=e;return"Validation requirements:\nCorrect answers should not be blank.\nEach answer defined for a response area should be unique.\nThere should be at least 1 "+(t?`and at most ${t} `:"")+"response area"+(t?"s":"")+" defined."})(e),B={"language.enabled":d.settings&&Mr(d.label,!0),language:d.settings&&d.enabled&&Ir(h.label,h.options)},F={teacherInstructionsEnabled:p.settings&&Mr(p.label),rationaleEnabled:c.settings&&Mr(c.label),promptEnabled:l.settings&&Mr(l.label),spellCheckEnabled:g.settings&&Mr(g.label),playerSpellCheckEnabled:f.settings&&Mr(f.label),"editSource.enabled":xr([v,"optionalAccess",e=>e.settings])&&Mr(v.label,!0),partialScoring:w.settings&&Mr(w.label)},L=m&&m.prompt,U=b&&b.prompt,N={position:"top"===M?"top":"bottom"},W=(e={},t={})=>({...t,...e});return fr.createElement(Sr.ConfigLayout,{extraCSSRules:A,dimensions:s,hideSettings:u,settings:fr.createElement(Tr,{model:n,configuration:e,onChangeModel:e=>o(e),onChangeConfiguration:r,groups:{Settings:B,Properties:F}})},T&&fr.createElement(kr,{label:p.label},fr.createElement(Pr,{markup:n.teacherInstructions||"",onChange:e=>this.handleChange("teacherInstructions",e),imageSupport:t,nonEmpty:!1,error:z,toolbarOpts:N,pluginProps:W(xr([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:m&&m.teacherInstructions||L,maxImageHeight:b&&b.teacherInstructions||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),z&&fr.createElement(Rr,null,z)),O&&fr.createElement(kr,{label:l.label},fr.createElement(Pr,{markup:n.prompt,onChange:e=>this.handleChange("prompt",e),imageSupport:t,nonEmpty:!1,disableUnderline:!0,error:R,toolbarOpts:N,pluginProps:W(xr([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:L,maxImageHeight:U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),R&&fr.createElement(Rr,null,R)),fr.createElement(Br,null,fr.createElement(qr,{component:"div"},"Response Template"),fr.createElement(Fr,{disableFocusListener:!0,disableTouchListener:!0,placement:"right",title:q},fr.createElement(jr,{fontSize:"small",color:"primary"}))),fr.createElement(Kr,{activePlugins:Or,toolbarOpts:{position:"top"},spellCheck:I,pluginProps:W(xr([_,"optionalAccess",e=>e.inputConfiguration]),i),responseAreaProps:{type:"math-templated",respAreaToolbar:null,error:()=>$,onHandleAreaChange:this.onHandleAreaChange,maxResponseAreas:E},markup:n.slateMarkup,onChange:this.onChange,imageSupport:t,disableImageAlignmentButtons:!0,onBlur:this.onBlur,disabled:!1,highlightShape:!1,error:K,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),K&&fr.createElement(Dr,null,K),fr.createElement(qr,null,"Define Response"),fr.createElement(zr,{label:"Response Template Equation Editor"},fr.createElement($r,{MenuProps:{transitionDuration:{enter:225,exit:195}},onChange:e=>this.handleChange("equationEditor",e.target.value),value:P},fr.createElement(vr,{value:"non-negative-integers"},"Numeric - Non-Negative Integers"),fr.createElement(vr,{value:"integers"},"Numeric - Integers"),fr.createElement(vr,{value:"decimals"},"Numeric - Decimals"),fr.createElement(vr,{value:"fractions"},"Numeric - Fractions"),fr.createElement(vr,{value:1},"Grade 1 - 2"),fr.createElement(vr,{value:3},"Grade 3 - 5"),fr.createElement(vr,{value:6},"Grade 6 - 7"),fr.createElement(vr,{value:8},"Grade 8 - HS"),fr.createElement(vr,{value:"geometry"},"Geometry"),fr.createElement(vr,{value:"advanced-algebra"},"Advanced Algebra"),fr.createElement(vr,{value:"statistics"},"Statistics"),fr.createElement(vr,{value:"item-authoring"},"Item Authoring"))),Object.keys(k||{}).map((e,t)=>{const n=k[t];return n?fr.createElement(sr,{key:t,responseKey:t,mode:P,response:n,onResponseChange:this.onResponseChange,onResponseDone:this.onResponseDone,index:t,cIgnoreOrder:C,cAllowTrailingZeros:j,error:$&&$[t]}):null}),x&&fr.createElement(kr,{label:c.label},fr.createElement(Pr,{markup:n.rationale||"",onChange:e=>this.handleChange("rationale",e),imageSupport:t,nonEmpty:!1,error:D,toolbarOpts:N,pluginProps:W(xr([c,"optionalAccess",e=>e.inputConfiguration]),{...i,math:{controlledKeypadMode:!1}}),spellCheck:I,maxImageWidth:m&&m.rationale||L,maxImageHeight:b&&b.rationale||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),D&&fr.createElement(Rr,null,D)))}}Lr.__initStatic();var Ur={allowTrailingZerosDefault:!1,equationEditor:"8",ignoreOrderDefault:!1,markup:"",playerSpellCheckEnabled:!0,prompt:"",promptEnabled:!0,rationale:"",rationaleEnabled:!0,responses:{},spellCheckEnabled:!0,teacherInstructions:"",teacherInstructionsEnabled:!0,toolbarEditorPosition:"bottom",validationDefault:"literal"},Nr={ignoreOrder:{settings:!0,label:"Ignore Order",enabled:!0},allowTrailingZeros:{settings:!0,label:"Allow Trailing Zeros",enabled:!0},partialScoring:{settings:!0,label:"Allow Partial Scoring"},baseInputConfiguration:{html:{disabled:!0},audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1},h3:{disabled:!0},blockquote:{disabled:!0},textAlign:{disabled:!0},showParagraphs:{disabled:!1},separateParagraphs:{disabled:!0}},prompt:{label:"Prompt",settings:!0,inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},spellCheck:{label:"Spellcheck",settings:!1,enabled:!0},editSource:{label:"Edit Source",settings:!1,enabled:!1},playerSpellCheck:{label:"Student Spellcheck",settings:!0,enabled:!0},teacherInstructions:{settings:!0,label:"Teacher Instructions",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},rationale:{settings:!0,label:"Rationale",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},template:{inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}}},maxImageWidth:{teacherInstructions:300,prompt:300,rationale:300},maxImageHeight:{teacherInstructions:300,prompt:300,rationale:300},mathMlOptions:{mmlOutput:!1,mmlEditing:!1},language:{settings:!1,label:"Specify Language",enabled:!1},languageChoices:{label:"Language Choices",options:[]},maxResponseAreas:10};const Wr=e,{createRoot:Hr}=s;function Zr(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const Yr=i("math-templated:configure");class Vr extends HTMLElement{static __initStatic(){this.prepareModel=(e={})=>{const{validationDefault:t,allowTrailingZerosDefault:n,ignoreOrderDefault:r,responses:o={}}=e,a=Object.keys(o).reduce((e,a)=>{const i=o[a];return e[a]={...i,validation:i.validation||t,allowTrailingZeros:i.allowTrailingZeros||n,ignoreOrder:i.ignoreOrder||r},e},{}),i={...Ur,...e,responses:a},s=i.slateMarkup||gr(i.markup,i.responses),l=dr(s);return i.responses&&Object.keys(i.responses).forEach(e=>{E(i.responses[e])&&(i.responses[e]=(i.responses[e]||[]).map((e,t)=>e.answer?e:(Yr('Choice does not contain "answer" property, which is required.',e),{answer:`${t}`,...e})))}),{...i,slateMarkup:s,markup:l}}}constructor(){super(),this._root=null,this._model=Vr.prepareModel(),this._configuration=Nr,this.onModelChanged=this.onModelChanged.bind(this),this.onConfigurationChanged=this.onConfigurationChanged.bind(this)}set model(e){this._model=Vr.prepareModel(e),this._render()}set configuration(e){this._configuration=fn(e,Nr),Zr([e,"access",e=>e.language,"optionalAccess",e=>e.enabled])?Zr([e,"access",e=>e.languageChoices,"optionalAccess",e=>e.options,"optionalAccess",e=>e.length])&&(this._model.language=e.languageChoices.options[0].value):e.language.settings&&this._model.language?(this._configuration.language.enabled=!0,this._configuration.languageChoices.options&&this._configuration.languageChoices.options.length||(this._configuration.languageChoices.options=[]),this._configuration.languageChoices.options.find(e=>e.value===this._model.language)||this._configuration.languageChoices.options.push({value:this._model.language,label:this._model.language})):delete this._model.language,this._render()}set disableSidePanel(e){this._disableSidePanel=e,this._render()}dispatchModelUpdated(e){const t=!!e;this.dispatchEvent(new jn(this._model,t))}onModelChanged(e,t){this._model=Vr.prepareModel(e),this._render(),this.dispatchModelUpdated(t)}onConfigurationChanged(e){this._configuration=e,this._render()}insertImage(e){this.dispatchEvent(new An(e))}onDeleteImage(e,t){this.dispatchEvent(new En(e,t))}insertSound(e){this.dispatchEvent(new Tn(e))}onDeleteSound(e,t){this.dispatchEvent(new xn(e,t))}_render(){Yr("_render");let e=Wr.createElement(Lr,{model:this._model,configuration:this._configuration,onModelChanged:this.onModelChanged,onConfigurationChanged:this.onConfigurationChanged,disableSidePanel:this._disableSidePanel,imageSupport:{add:this.insertImage.bind(this),delete:this.onDeleteImage.bind(this)},uploadSoundSupport:{add:this.insertSound.bind(this),delete:this.onDeleteSound.bind(this)}});this._root||(this._root=Hr(this)),this._root.render(e)}disconnectedCallback(){this._root&&this._root.unmount()}}Vr.__initStatic();export{Vr as default};
1
+ import{_dll_react as e,_dll_prop_types as t,_dll_mui__material as n,_dll_mui__material_styles as r,_dll_mui__icons_material as o,_dll_pie_lib__render_ui as a,_dll_debug as i,_dll_react_dom_client as s}from"../../../@pie-lib/shared-module@6.0.0/module/index.js";import{_dll_pie_lib__config_ui as l}from"../../../@pie-lib/config-module@5.0.0/module/index.js";import{_dll_pie_lib__editable_html_tip_tap as c}from"../../../@pie-lib/editable-html-module@8.0.0/module/index.js";import{_dll_pie_lib__math_toolbar as u}from"../../../@pie-lib/math-edit-module@5.0.0/module/index.js";var p="object"==typeof global&&global&&global.Object===Object&&global,d="object"==typeof self&&self&&self.Object===Object&&self,h=p||d||Function("return this")(),g=h.Symbol,f=Object.prototype,m=f.hasOwnProperty,b=f.toString,y=g?g.toStringTag:void 0,_=Object.prototype.toString,v=g?g.toStringTag:void 0;function C(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":v&&v in Object(e)?function(e){var t=m.call(e,y),n=e[y];try{e[y]=void 0;var r=!0}catch(e){}var o=b.call(e);return r&&(t?e[y]=n:delete e[y]),o}(e):function(e){return _.call(e)}(e)}function j(e){return null!=e&&"object"==typeof e}function w(e){return"symbol"==typeof e||j(e)&&"[object Symbol]"==C(e)}var E=Array.isArray,S=g?g.prototype:void 0,A=S?S.toString:void 0;function x(e){if("string"==typeof e)return e;if(E(e))return function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}(e,x)+"";if(w(e))return A?A.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}var O=/\s/,I=/^\s+/;function T(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var k=/^[-+]0x[0-9a-f]+$/i,M=/^0b[01]+$/i,P=/^0o[0-7]+$/i,R=parseInt;function D(e){if("number"==typeof e)return e;if(w(e))return NaN;if(T(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=T(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&O.test(e.charAt(t)););return t}(e)+1).replace(I,""):e}(e);var n=M.test(e);return n||P.test(e)?R(e.slice(2),n?2:8):k.test(e)?NaN:+e}function K(e){return e}function z(e){if(!T(e))return!1;var t=C(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var $,q=h["__core-js_shared__"],B=($=/[^.]+$/.exec(q&&q.keys&&q.keys.IE_PROTO||""))?"Symbol(src)_1."+$:"",F=Function.prototype.toString;function L(e){if(null!=e){try{return F.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var U=/^\[object .+?Constructor\]$/,N=Function.prototype,W=Object.prototype,H=N.toString,Z=W.hasOwnProperty,Y=RegExp("^"+H.call(Z).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function V(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!T(e)||(t=e,B&&B in t))&&(z(e)?Y:U).test(L(e));var t}(n)?n:void 0}var G,J,Q,X=V(h,"WeakMap"),ee=Object.create,te=function(){function e(){}return function(t){if(!T(t))return{};if(ee)return ee(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),ne=Date.now,re=function(){try{var e=V(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),oe=re,ae=oe?function(e,t){return oe(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:K,ie=(G=ae,J=0,Q=0,function(){var e=ne(),t=16-(e-Q);if(Q=e,t>0){if(++J>=800)return arguments[0]}else J=0;return G.apply(void 0,arguments)}),se=/^(?:0|[1-9]\d*)$/;function le(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&se.test(e))&&e>-1&&e%1==0&&e<t}function ce(e,t,n){"__proto__"==t&&oe?oe(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ue(e,t){return e===t||e!=e&&t!=t}var pe=Object.prototype.hasOwnProperty;function de(e,t,n){var r=e[t];pe.call(e,t)&&ue(r,n)&&(void 0!==n||t in e)||ce(e,t,n)}function he(e,t,n,r){var o=!n;n||(n={});for(var a=-1,i=t.length;++a<i;){var s=t[a],l=r?r(n[s],e[s],s,n,e):void 0;void 0===l&&(l=e[s]),o?ce(n,s,l):de(n,s,l)}return n}var ge=Math.max;function fe(e,t,n){return t=ge(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=ge(r.length-t,0),i=Array(a);++o<a;)i[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=n(i),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,s)}}function me(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function be(e){return null!=e&&me(e.length)&&!z(e)}var ye=Object.prototype;function _e(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ye)}function ve(e){return j(e)&&"[object Arguments]"==C(e)}var Ce=Object.prototype,je=Ce.hasOwnProperty,we=Ce.propertyIsEnumerable,Ee=ve(function(){return arguments}())?ve:function(e){return j(e)&&je.call(e,"callee")&&!we.call(e,"callee")},Se="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ae=Se&&"object"==typeof module&&module&&!module.nodeType&&module,xe=Ae&&Ae.exports===Se?h.Buffer:void 0,Oe=(xe?xe.isBuffer:void 0)||function(){return!1},Ie={};function Te(e){return function(t){return e(t)}}Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object Boolean]"]=Ie["[object DataView]"]=Ie["[object Date]"]=Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object WeakMap]"]=!1;var ke="object"==typeof exports&&exports&&!exports.nodeType&&exports,Me=ke&&"object"==typeof module&&module&&!module.nodeType&&module,Pe=Me&&Me.exports===ke&&p.process,Re=function(){try{return Me&&Me.require&&Me.require("util").types||Pe&&Pe.binding&&Pe.binding("util")}catch(e){}}(),De=Re&&Re.isTypedArray,Ke=De?Te(De):function(e){return j(e)&&me(e.length)&&!!Ie[C(e)]},ze=Object.prototype.hasOwnProperty;function $e(e,t){var n=E(e),r=!n&&Ee(e),o=!n&&!r&&Oe(e),a=!n&&!r&&!o&&Ke(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],l=s.length;for(var c in e)!t&&!ze.call(e,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||le(c,l))||s.push(c);return s}function qe(e,t){return function(n){return e(t(n))}}var Be=qe(Object.keys,Object),Fe=Object.prototype.hasOwnProperty;function Le(e){return be(e)?$e(e):function(e){if(!_e(e))return Be(e);var t=[];for(var n in Object(e))Fe.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}var Ue=Object.prototype.hasOwnProperty;function Ne(e){return be(e)?$e(e,!0):function(e){if(!T(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=_e(e),n=[];for(var r in e)("constructor"!=r||!t&&Ue.call(e,r))&&n.push(r);return n}(e)}var We=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,He=/^\w*$/,Ze=V(Object,"create"),Ye=Object.prototype.hasOwnProperty,Ve=Object.prototype.hasOwnProperty;function Ge(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Je(e,t){for(var n=e.length;n--;)if(ue(e[n][0],t))return n;return-1}Ge.prototype.clear=function(){this.__data__=Ze?Ze(null):{},this.size=0},Ge.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Ge.prototype.get=function(e){var t=this.__data__;if(Ze){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Ye.call(t,e)?t[e]:void 0},Ge.prototype.has=function(e){var t=this.__data__;return Ze?void 0!==t[e]:Ve.call(t,e)},Ge.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ze&&void 0===t?"__lodash_hash_undefined__":t,this};var Qe=Array.prototype.splice;function Xe(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Xe.prototype.clear=function(){this.__data__=[],this.size=0},Xe.prototype.delete=function(e){var t=this.__data__,n=Je(t,e);return!(n<0||(n==t.length-1?t.pop():Qe.call(t,n,1),--this.size,0))},Xe.prototype.get=function(e){var t=this.__data__,n=Je(t,e);return n<0?void 0:t[n][1]},Xe.prototype.has=function(e){return Je(this.__data__,e)>-1},Xe.prototype.set=function(e,t){var n=this.__data__,r=Je(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var et=V(h,"Map");function tt(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function nt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function rt(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(rt.Cache||nt),n}nt.prototype.clear=function(){this.size=0,this.__data__={hash:new Ge,map:new(et||Xe),string:new Ge}},nt.prototype.delete=function(e){var t=tt(this,e).delete(e);return this.size-=t?1:0,t},nt.prototype.get=function(e){return tt(this,e).get(e)},nt.prototype.has=function(e){return tt(this,e).has(e)},nt.prototype.set=function(e,t){var n=tt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},rt.Cache=nt;var ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,at=/\\(\\)?/g,it=function(){var e=rt(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ot,function(e,n,r,o){t.push(r?o.replace(at,"$1"):n||e)}),t},function(e){return 500===t.size&&t.clear(),e}),t=e.cache;return e}(),st=it;function lt(e,t){return E(e)?e:function(e,t){if(E(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!w(e))||He.test(e)||!We.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:st(function(e){return null==e?"":x(e)}(e))}function ct(e){if("string"==typeof e||w(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ut(e,t){for(var n=0,r=(t=lt(t,e)).length;null!=e&&n<r;)e=e[ct(t[n++])];return n&&n==r?e:void 0}function pt(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}var dt=g?g.isConcatSpreadable:void 0;function ht(e){return E(e)||Ee(e)||!!(dt&&e&&e[dt])}function gt(e,t,n,r,o){var a=-1,i=e.length;for(n||(n=ht),o||(o=[]);++a<i;){var s=e[a];t>0&&n(s)?t>1?gt(s,t-1,n,r,o):pt(o,s):r||(o[o.length]=s)}return o}function ft(e){return null!=e&&e.length?gt(e,1):[]}var mt=qe(Object.getPrototypeOf,Object);function bt(e){var t=this.__data__=new Xe(e);this.size=t.size}bt.prototype.clear=function(){this.__data__=new Xe,this.size=0},bt.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},bt.prototype.get=function(e){return this.__data__.get(e)},bt.prototype.has=function(e){return this.__data__.has(e)},bt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Xe){var r=n.__data__;if(!et||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new nt(r)}return n.set(e,t),this.size=n.size,this};var yt="object"==typeof exports&&exports&&!exports.nodeType&&exports,_t=yt&&"object"==typeof module&&module&&!module.nodeType&&module,vt=_t&&_t.exports===yt?h.Buffer:void 0,Ct=vt?vt.allocUnsafe:void 0;function jt(){return[]}var wt=Object.prototype.propertyIsEnumerable,Et=Object.getOwnPropertySymbols,St=Et?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i)&&(a[o++]=i)}return a}(Et(e),function(t){return wt.call(e,t)}))}:jt,At=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)pt(t,St(e)),e=mt(e);return t}:jt;function xt(e,t,n){var r=t(e);return E(e)?r:pt(r,n(e))}function Ot(e){return xt(e,Le,St)}function It(e){return xt(e,Ne,At)}var Tt=V(h,"DataView"),kt=V(h,"Promise"),Mt=V(h,"Set"),Pt="[object Map]",Rt="[object Promise]",Dt="[object Set]",Kt="[object WeakMap]",zt="[object DataView]",$t=L(Tt),qt=L(et),Bt=L(kt),Ft=L(Mt),Lt=L(X),Ut=C;(Tt&&Ut(new Tt(new ArrayBuffer(1)))!=zt||et&&Ut(new et)!=Pt||kt&&Ut(kt.resolve())!=Rt||Mt&&Ut(new Mt)!=Dt||X&&Ut(new X)!=Kt)&&(Ut=function(e){var t=C(e),n="[object Object]"==t?e.constructor:void 0,r=n?L(n):"";if(r)switch(r){case $t:return zt;case qt:return Pt;case Bt:return Rt;case Ft:return Dt;case Lt:return Kt}return t});var Nt=Ut,Wt=Object.prototype.hasOwnProperty,Ht=h.Uint8Array;function Zt(e){var t=new e.constructor(e.byteLength);return new Ht(t).set(new Ht(e)),t}var Yt=/\w*$/,Vt=g?g.prototype:void 0,Gt=Vt?Vt.valueOf:void 0;var Jt=Re&&Re.isMap,Qt=Jt?Te(Jt):function(e){return j(e)&&"[object Map]"==Nt(e)},Xt=Re&&Re.isSet,en=Xt?Te(Xt):function(e){return j(e)&&"[object Set]"==Nt(e)},tn="[object Arguments]",nn="[object Function]",rn="[object Object]",on={};function an(e,t,n,r,o,a){var i,s=1&t,l=2&t,c=4&t;if(n&&(i=o?n(e,r,o,a):n(e)),void 0!==i)return i;if(!T(e))return e;var u=E(e);if(u){if(i=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Wt.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,i)}else{var p=Nt(e),d=p==nn||"[object GeneratorFunction]"==p;if(Oe(e))return function(e,t){if(t)return e.slice();var n=e.length,r=Ct?Ct(n):new e.constructor(n);return e.copy(r),r}(e,s);if(p==rn||p==tn||d&&!o){if(i=l||d?{}:function(e){return"function"!=typeof e.constructor||_e(e)?{}:te(mt(e))}(e),!s)return l?function(e,t){return he(e,At(e),t)}(e,function(e,t){return e&&he(t,Ne(t),e)}(i,e)):function(e,t){return he(e,St(e),t)}(e,function(e,t){return e&&he(t,Le(t),e)}(i,e))}else{if(!on[p])return o?e:{};i=function(e,t,n){var r,o,a,i=e.constructor;switch(t){case"[object ArrayBuffer]":return Zt(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(a=new(o=e).constructor(o.source,Yt.exec(o))).lastIndex=o.lastIndex,a;case"[object Symbol]":return r=e,Gt?Object(Gt.call(r)):{}}}(e,p,s)}}a||(a=new bt);var h=a.get(e);if(h)return h;a.set(e,i),en(e)?e.forEach(function(r){i.add(an(r,t,n,r,e,a))}):Qt(e)&&e.forEach(function(r,o){i.set(o,an(r,t,n,o,e,a))});var g=u?void 0:(c?l?It:Ot:l?Ne:Le)(e);return function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n););}(g||e,function(r,o){g&&(r=e[o=r]),de(i,o,an(r,t,n,o,e,a))}),i}function sn(e){return an(e,5)}function ln(e,t){return null!=e&&t in Object(e)}on[tn]=on["[object Array]"]=on["[object ArrayBuffer]"]=on["[object DataView]"]=on["[object Boolean]"]=on["[object Date]"]=on["[object Float32Array]"]=on["[object Float64Array]"]=on["[object Int8Array]"]=on["[object Int16Array]"]=on["[object Int32Array]"]=on["[object Map]"]=on["[object Number]"]=on[rn]=on["[object RegExp]"]=on["[object Set]"]=on["[object String]"]=on["[object Symbol]"]=on["[object Uint8Array]"]=on["[object Uint8ClampedArray]"]=on["[object Uint16Array]"]=on["[object Uint32Array]"]=!0,on["[object Error]"]=on[nn]=on["[object WeakMap]"]=!1;var cn=function(){return h.Date.now()},un=Math.max,pn=Math.min;var dn=Object.prototype,hn=dn.hasOwnProperty,gn=function(e){return ie(fe(e,void 0,K),e+"")}(function(e,t){e=Object(e);var n=-1,r=t.length,o=r>2?t[2]:void 0;for(o&&function(e,t,n){if(!T(n))return!1;var r=typeof t;return!!("number"==r?be(n)&&le(t,n.length):"string"==r&&t in n)&&ue(n[t],e)}(t[0],t[1],o)&&(r=1);++n<r;)for(var a=t[n],i=Ne(a),s=-1,l=i.length;++s<l;){var c=i[s],u=e[c];(void 0===u||ue(u,dn[c])&&!hn.call(e,c))&&(e[c]=a[c])}return e}),fn=gn;function mn(e,t,n,r){if(!T(e))return e;for(var o=-1,a=(t=lt(t,e)).length,i=a-1,s=e;null!=s&&++o<a;){var l=ct(t[o]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(o!=i){var u=s[l];void 0===(c=r?r(u,l,s):void 0)&&(c=T(u)?u:le(t[o+1])?[]:{})}de(s,l,c),s=s[l]}return e}function bn(e,t){return function(e,t,n){for(var r=-1,o=t.length,a={};++r<o;){var i=t[r],s=ut(e,i);n(s,i)&&mn(a,lt(i,e),s)}return a}(e,t,function(t,n){return function(e,t){return null!=e&&function(e,t,n){for(var r=-1,o=(t=lt(t,e)).length,a=!1;++r<o;){var i=ct(t[r]);if(!(a=null!=e&&n(e,i)))break;e=e[i]}return a||++r!=o?a:!!(o=null==e?0:e.length)&&me(o)&&le(i,o)&&(E(e)||Ee(e))}(e,t,ln)}(e,n)})}var yn=function(e){return ie(fe(e,void 0,ft),e+"")}(function(e,t){return null==e?{}:bn(e,t)}),_n=yn,vn={};Object.defineProperty(vn,"__esModule",{value:!0});class Cn extends CustomEvent{constructor(e,t=!1){super(Cn.TYPE,{bubbles:!0,detail:{update:e,reset:t}}),this.update=e,this.reset=t}}Cn.TYPE="model.updated";var jn=vn.ModelUpdatedEvent=Cn;class wn extends CustomEvent{constructor(e,t){super(wn.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}wn.TYPE="delete.image";var En=vn.DeleteImageEvent=wn;class Sn extends CustomEvent{constructor(e){super(Sn.TYPE,{bubbles:!0,detail:e}),this.handler=e}}Sn.TYPE="insert.image";var An=vn.InsertImageEvent=Sn;class xn extends CustomEvent{constructor(e,t){super(xn.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}xn.TYPE="delete.sound";var On=vn.DeleteSoundEvent=xn;class In extends CustomEvent{constructor(e){super(In.TYPE,{bubbles:!0,detail:e}),this.handler=e}}In.TYPE="insert.sound";var Tn=vn.InsertSoundEvent=In;const kn=e,Mn=t,{Card:Pn}=n,{CardContent:Rn}=n,{Button:Dn}=n,{FormControlLabel:Kn}=n,{Typography:zn}=n,{InputLabel:$n}=n,{Checkbox:qn}=n,{Select:Bn}=n,{MenuItem:Fn}=n,{IconButton:Ln}=n,{styled:Un}=r,{Delete:Nn}=o,{color:Wn}=a,{InputContainer:Hn}=l,{MathToolbar:Zn}=u,Yn=Un(Pn)(({theme:e})=>({marginBottom:e.spacing(2.5),width:"100%",minWidth:"548px",border:`1px solid ${Wn.borderDark()}`,display:"flex",flexDirection:"column",justifyContent:"space-between"})),Vn=Un(Rn)(({theme:e})=>({paddingBottom:`${e.spacing(2)} !important`})),Gn=Un(zn)({fontWeight:700,fontSize:"1.2rem",flex:3}),Jn=Un(Hn)(({theme:e})=>({flex:2,"& > *:not(label)":{marginTop:e.spacing(1)}})),Qn=Un("div")(({theme:e})=>({marginBottom:e.spacing(2)})),Xn=Un("div")({display:"flex",alignItems:"center",justifyContent:"space-between"}),er=Un("div")({display:"flex"}),tr=Un(Dn)(()=>({border:`1px solid ${Wn.border()}`,color:Wn.text()})),nr=Un(Ln)(({theme:e})=>({marginLeft:e.spacing(1)})),rr=Un("div")(({theme:e})=>({fontSize:e.typography.fontSize-2,color:e.palette.error.main,paddingTop:e.spacing(1)})),or=Un("div")(()=>({background:Wn.backgroundDark(),color:Wn.text(),display:"inline",minWidth:"50px",padding:"8px",border:`1px solid ${Wn.border()}`})),ar=Un("div")({display:"flex",justifyContent:"space-between",alignItems:"center"}),ir=Un(qn)({color:`${Wn.tertiary()} !important`});if("undefined"!=typeof document){const e="math-templated-response-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .response-editor {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 500px;\n max-width: 900px;\n height: auto;\n min-height: 40px;\n }\n .math-toolbar {\n width: 100%;\n }\n ",document.head.appendChild(t)}}class sr extends kn.Component{static __initStatic(){this.propTypes={defaultResponse:Mn.bool,error:Mn.object,mode:Mn.oneOfType([Mn.string,Mn.number]),onResponseChange:Mn.func.isRequired,onResponseDone:Mn.func.isRequired,response:Mn.object.isRequired,cIgnoreOrder:Mn.object.isRequired,cAllowTrailingZeros:Mn.object.isRequired,responseKey:Mn.number.isRequired}}static __initStatic2(){this.defaultProps={defaultResponse:!1,mode:"8"}}constructor(e){super(e),sr.prototype.__init.call(this),sr.prototype.__init2.call(this),sr.prototype.__init3.call(this),sr.prototype.__init4.call(this),sr.prototype.__init5.call(this),sr.prototype.__init6.call(this),sr.prototype.__init7.call(this),sr.prototype.__init8.call(this),sr.prototype.__init9.call(this),sr.prototype.__init10.call(this),sr.prototype.__init11.call(this);const{response:{alternates:t}={}}=e||{},n=Object.keys(t||{}).length;this.state={alternateIdCounter:n+1,showKeypad:{openCount:0,main:!1}}}__init(){this.onChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.value,r(a,o)}}__init2(){this.onConfigChanged=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.checked,r(a,o)}}__init3(){this.onLiteralOptionsChange=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o[e]=!t[e],n(o,r)}}__init4(){this.onAnswerChange=e=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o.answer=e,n(o,r)}}__init5(){this.onAlternateAnswerChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a.alternates[e]=t,r(a,o)}}__init6(){this.onAddAlternate=()=>{const{response:e,onResponseChange:t,responseKey:n}=this.props,{alternateIdCounter:r}=this.state,o={...e};o.alternates||(o.alternates={}),o.alternates[r]="",t(o,n),this.setState({alternateIdCounter:r+1})}}__init7(){this.onRemoveAlternate=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};delete o.alternates[e],n(o,r),this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount-1:t.showKeypad.openCount}}))}}__init8(){this.onDone=()=>{const{onResponseDone:e}=this.props;this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.openCount-1,main:!1}})),e()}}__init9(){this.onFocus=()=>{this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.main?e.showKeypad.openCount:e.showKeypad.openCount+1,main:!0}}))}}__init10(){this.onAlternateFocus=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount:t.showKeypad.openCount+1,[e]:!0}}))}}__init11(){this.onAlternateDone=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad.openCount-1,[e]:!1}}))}}render(){const{mode:e,responseKey:t,response:n,cAllowTrailingZeros:r,cIgnoreOrder:o,error:a}=this.props,{showKeypad:i}=this.state,{validation:s,answer:l,alternates:c,ignoreOrder:u,allowTrailingZeros:p}=n,d=Object.keys(c||{}).length>0,h={editor:"response-editor",mathToolbar:"math-toolbar"},g={minHeight:(i.openCount>0?430:230)+"px"},f=`R ${parseInt(t)+1}`;return kn.createElement(Yn,{style:g},kn.createElement(Vn,null,kn.createElement(Xn,null,kn.createElement(Gn,{component:"div"},"Response for ",kn.createElement(or,null,f)),kn.createElement(Jn,{label:"Validation"},kn.createElement(Bn,{onChange:this.onChange("validation"),value:s||"literal",MenuProps:{transitionDuration:{enter:225,exit:195}}},kn.createElement(Fn,{value:"literal"},"Literal Validation"),kn.createElement(Fn,{value:"symbolic"},"Symbolic Validation")))),"literal"===s&&kn.createElement(er,null,r.enabled&&kn.createElement(Kn,{label:r.label,control:kn.createElement(ir,{checked:p,onChange:this.onLiteralOptionsChange("allowTrailingZeros")})}),o.enabled&&kn.createElement(Kn,{label:o.label,control:kn.createElement(ir,{checked:u,onChange:this.onLiteralOptionsChange("ignoreOrder")})})),kn.createElement(Qn,null,kn.createElement($n,null,"Correct Answer"),kn.createElement(Zn,{keypadMode:e,classNames:h,controlledKeypad:!0,showKeypad:i.main,latex:l||"",onChange:this.onAnswerChange,onFocus:this.onFocus,onDone:this.onDone,error:a&&a.answer}),a&&a.answer?kn.createElement(rr,null,a.answer):null),d&&Object.keys(c).map((t,n)=>kn.createElement(Qn,{key:t},kn.createElement($n,null,"Alternate",Object.keys(c).length>1?` ${n+1}`:""),kn.createElement(ar,null,kn.createElement(Zn,{classNames:h,controlledKeypad:!0,keypadMode:e,showKeypad:i[t]||!1,latex:c[t]||"",onChange:this.onAlternateAnswerChange(t),onFocus:this.onAlternateFocus(t),onDone:this.onAlternateDone(t),error:a&&a[t]}),kn.createElement(nr,{onClick:this.onRemoveAlternate(t),size:"large"},kn.createElement(Nn,null))),a&&a[t]?kn.createElement(rr,null,a[t]):null)),kn.createElement(tr,{type:"primary",onClick:this.onAddAlternate},"ADD ALTERNATE")))}}sr.__initStatic(),sr.__initStatic2();const lr="imes|riangle|an|heta|herefore",cr="throot|parallel|cong|approx|eq|e|sim",ur=new RegExp(`(\\t(?!${lr}))|(\\n(?!${cr}))|(\\\\t(?!${lr}))|(\\\\n(?!${cr}))`,"g"),pr=e=>e.replace(ur,"").replace(/\\"/g,'"').replace(/\\\//g,"/"),dr=e=>{const t=((e="")=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(pr(e||"")||"");return t.querySelectorAll('[data-type="math_templated"]').forEach(e=>e.replaceWith(`{{${e.dataset.index}}}`)),t.innerHTML},hr=/\{\{(\d+)\}\}/g,gr=(e,t)=>e?pr(e).replace(hr,(e,n)=>{const r=function(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}([t,"access",e=>e[n],"optionalAccess",e=>e.answer])||"";return`<span data-type="math_templated" data-index="${n}" data-value="${r}"></span>`}):"",fr=e,mr=t,{styled:br}=r,{Typography:yr}=n,{Select:_r}=n,{MenuItem:vr}=n,{Tooltip:Cr}=n,{Info:jr}=o,{InputContainer:wr}=l,{settings:Er}=l,{layout:Sr}=l,Ar=c,{ALL_PLUGINS:xr}=c;function Or(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const{dropdown:Ir}=Er,{Panel:Tr,toggle:kr}=Er,Mr=br(wr)(({theme:e})=>({width:"100%",paddingTop:e.spacing(2),marginBottom:e.spacing(2)})),Pr=br(Ar)({width:"100%"}),Rr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginTop:e.spacing(1)})),Dr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginBottom:e.spacing(1)})),Kr=br(Ar)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),marginBottom:e.spacing(3)})),zr=br(wr)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),"& > *:not(label)":{marginTop:e.spacing(1)},marginBottom:e.spacing(2)})),$r=br(_r)({width:"100%"}),qr=br(yr)(({theme:e})=>({fontSize:1.25*e.typography.fontSize,fontWeight:"bold"})),Br=br("div")({display:"flex",alignItems:"center",gap:"8px"}),Fr=br(Cr)(({theme:e})=>({"& .MuiTooltip-tooltip":{fontSize:e.typography.fontSize-2,whiteSpace:"pre",maxWidth:"500px"}}));class Lr extends fr.Component{constructor(...e){super(...e),Lr.prototype.__init.call(this),Lr.prototype.__init2.call(this),Lr.prototype.__init3.call(this),Lr.prototype.__init4.call(this),Lr.prototype.__init5.call(this),Lr.prototype.__init6.call(this),Lr.prototype.__init7.call(this),Lr.prototype.__init8.call(this),Lr.prototype.__init9.call(this)}static __initStatic(){this.propTypes={model:mr.object.isRequired,configuration:mr.object.isRequired,onModelChanged:mr.func.isRequired,onConfigurationChanged:mr.func.isRequired,imageSupport:mr.shape({add:mr.func.isRequired,delete:mr.func.isRequired}),uploadSoundSupport:mr.object}}__init(){this.state={}}componentDidMount(){const{model:{slateMarkup:e}}=this.props;this.setState({markup:e})}__init2(){this.handleChange=(e,t)=>{const{onModelChanged:n,model:r}=this.props,o=sn(r);o[e]=t,n(o)}}__init3(){this.onResponseChange=(e,t)=>{const{model:n,onModelChanged:r}=this.props,o={...n};o.responses[t]=e,r(o)}}__init4(){this.onResponseDone=()=>{const{model:e,onModelChanged:t}=this.props;t({...e,slateMarkup:gr(e.markup,e.responses)})}}__init5(){this.onChangeResponse=(e,t)=>{const{model:n,onModelChanged:r}=this.props,{responses:o}=n;o[e]?o[e][0].answer=t||"":o[e]=[{answer:t||"",id:"response"+e,allowSpaces:!0}],r({...n,responses:o})}}__init6(){this.onResponsesChanged=e=>{this.props.onModelChanged({...this.props.model,responses:e})}}__init7(){this.onChange=e=>{const{model:{responses:t,validationDefault:n,allowTrailingZerosDefault:r,ignoreOrderDefault:o},onModelChanged:a}=this.props,i={},s=(e=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(e);s.querySelectorAll('[data-type="math_templated"]').forEach((e,a)=>{const{value:s,index:l}=e.dataset;s||(e.dataset.value=""),i[a]=t[l]||{allowSpaces:!0,validation:n||"symbolic",allowTrailingZeros:r||!1,ignoreOrder:o||!1,answer:"",alternates:{}},e.dataset.index=a.toString()});const l=dr(e);this.setState({cachedResponses:void 0},()=>a({...this.props.model,slateMarkup:s.innerHTML,responses:i,markup:l}))}}__init8(){this.onHandleAreaChange=function(e,t,n){var r=!0,o=!0;return T(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),function(e,t,n){var r,o,a,i,s,l,c=0,u=!1,p=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function g(e){var n=e-l;return void 0===l||n>=t||n<0||p&&e-c>=a}function f(){var e=cn();if(g(e))return m(e);s=setTimeout(f,function(e){var n=t-(e-l);return p?pn(n,a-(e-c)):n}(e))}function m(e){return s=void 0,d&&r?h(e):(r=o=void 0,i)}function b(){var e=cn(),n=g(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(f,t),u?h(e):i}(l);if(p)return clearTimeout(s),s=setTimeout(f,t),h(l)}return void 0===s&&(s=setTimeout(f,t)),i}return t=D(t)||0,T(n)&&(u=!!n.leading,a=(p="maxWait"in n)?un(D(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),b.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},b.flush=function(){return void 0===s?i:m(cn())},b}(e,500,{leading:r,maxWait:500,trailing:o})}(e=>{const{model:{responses:t},onModelChanged:n}=this.props,{cachedResponses:r}=this.state;if(!e)return;const o=t?sn(t):{},a=r?sn(r):{};e.forEach(e=>{const t=e.index;!o[t]&&a[t]?(Object.assign(o,_n(a,t)),Object.prototype.hasOwnProperty.call(a,t)&&delete a[t]):(Object.assign(a,_n(o,t)),Object.prototype.hasOwnProperty.call(o,t)&&delete o[t])}),this.setState({cachedResponses:a},()=>n({...this.props.model,responses:o}))},0,{trailing:!1,leading:!0})}__init9(){this.onBlur=e=>{const{relatedTarget:t,currentTarget:n}=e||{},r=function e(t,n=0){if(!t||n>=16)return null;const r=t.offsetParent;return r?"tooltip"===r.getAttribute("role")?r:e(r,n+1):null}(t),o=r?function e(t,n=0){if(!t||n>=4)return null;const r=Or([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&&Or([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:x,rationaleEnabled:O,spellCheckEnabled:I,teacherInstructionsEnabled:T,toolbarEditorPosition:k,responses:M,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&&kr(d.label,!0),language:d.settings&&d.enabled&&Ir(h.label,h.options)},F={teacherInstructionsEnabled:p.settings&&kr(p.label),rationaleEnabled:c.settings&&kr(c.label),promptEnabled:l.settings&&kr(l.label),spellCheckEnabled:g.settings&&kr(g.label),playerSpellCheckEnabled:f.settings&&kr(f.label),"editSource.enabled":Or([v,"optionalAccess",e=>e.settings])&&kr(v.label,!0),partialScoring:w.settings&&kr(w.label)},L=m&&m.prompt,U=b&&b.prompt,N={position:"top"===k?"top":"bottom"},W=(e={},t={})=>({...t,...e});return fr.createElement(Sr.ConfigLayout,{extraCSSRules:A,dimensions:s,hideSettings:u,settings:fr.createElement(Tr,{model:n,configuration:e,onChangeModel:e=>o(e),onChangeConfiguration:r,groups:{Settings:B,Properties:F}})},T&&fr.createElement(Mr,{label:p.label},fr.createElement(Pr,{markup:n.teacherInstructions||"",onChange:e=>this.handleChange("teacherInstructions",e),imageSupport:t,nonEmpty:!1,error:z,toolbarOpts:N,pluginProps:W(Or([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:m&&m.teacherInstructions||L,maxImageHeight:b&&b.teacherInstructions||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),z&&fr.createElement(Rr,null,z)),x&&fr.createElement(Mr,{label:l.label},fr.createElement(Pr,{markup:n.prompt,onChange:e=>this.handleChange("prompt",e),imageSupport:t,nonEmpty:!1,disableUnderline:!0,error:R,toolbarOpts:N,pluginProps:W(Or([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:L,maxImageHeight:U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),R&&fr.createElement(Rr,null,R)),fr.createElement(Br,null,fr.createElement(qr,{component:"div"},"Response Template"),fr.createElement(Fr,{disableFocusListener:!0,disableTouchListener:!0,placement:"right",title:q},fr.createElement(jr,{fontSize:"small",color:"primary"}))),fr.createElement(Kr,{activePlugins:xr,toolbarOpts:{position:"top"},spellCheck:I,pluginProps:W(Or([_,"optionalAccess",e=>e.inputConfiguration]),i),responseAreaProps:{type:"math-templated",respAreaToolbar:null,error:()=>$,onHandleAreaChange:this.onHandleAreaChange,maxResponseAreas:E},markup:n.slateMarkup,onChange:this.onChange,imageSupport:t,disableImageAlignmentButtons:!0,onBlur:this.onBlur,disabled:!1,highlightShape:!1,error:K,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),K&&fr.createElement(Dr,null,K),fr.createElement(qr,null,"Define Response"),fr.createElement(zr,{label:"Response Template Equation Editor"},fr.createElement($r,{MenuProps:{transitionDuration:{enter:225,exit:195}},onChange:e=>this.handleChange("equationEditor",e.target.value),value:P},fr.createElement(vr,{value:"non-negative-integers"},"Numeric - Non-Negative Integers"),fr.createElement(vr,{value:"integers"},"Numeric - Integers"),fr.createElement(vr,{value:"decimals"},"Numeric - Decimals"),fr.createElement(vr,{value:"fractions"},"Numeric - Fractions"),fr.createElement(vr,{value:1},"Grade 1 - 2"),fr.createElement(vr,{value:3},"Grade 3 - 5"),fr.createElement(vr,{value:6},"Grade 6 - 7"),fr.createElement(vr,{value:8},"Grade 8 - HS"),fr.createElement(vr,{value:"geometry"},"Geometry"),fr.createElement(vr,{value:"advanced-algebra"},"Advanced Algebra"),fr.createElement(vr,{value:"statistics"},"Statistics"),fr.createElement(vr,{value:"item-authoring"},"Item Authoring"))),Object.keys(M||{}).map((e,t)=>{const n=M[t];return n?fr.createElement(sr,{key:t,responseKey:t,mode:P,response:n,onResponseChange:this.onResponseChange,onResponseDone:this.onResponseDone,index:t,cIgnoreOrder:C,cAllowTrailingZeros:j,error:$&&$[t]}):null}),O&&fr.createElement(Mr,{label:c.label},fr.createElement(Pr,{markup:n.rationale||"",onChange:e=>this.handleChange("rationale",e),imageSupport:t,nonEmpty:!1,error:D,toolbarOpts:N,pluginProps:W(Or([c,"optionalAccess",e=>e.inputConfiguration]),{...i,math:{controlledKeypadMode:!1}}),spellCheck:I,maxImageWidth:m&&m.rationale||L,maxImageHeight:b&&b.rationale||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),D&&fr.createElement(Rr,null,D)))}}Lr.__initStatic();var Ur={allowTrailingZerosDefault:!1,equationEditor:"8",ignoreOrderDefault:!1,markup:"",playerSpellCheckEnabled:!0,prompt:"",promptEnabled:!0,rationale:"",rationaleEnabled:!0,responses:{},spellCheckEnabled:!0,teacherInstructions:"",teacherInstructionsEnabled:!0,toolbarEditorPosition:"bottom",validationDefault:"literal"},Nr={ignoreOrder:{settings:!0,label:"Ignore Order",enabled:!0},allowTrailingZeros:{settings:!0,label:"Allow Trailing Zeros",enabled:!0},partialScoring:{settings:!0,label:"Allow Partial Scoring"},baseInputConfiguration:{html:{disabled:!0},audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1},h3:{disabled:!0},blockquote:{disabled:!0},textAlign:{disabled:!0},showParagraphs:{disabled:!1},separateParagraphs:{disabled:!0}},prompt:{label:"Prompt",settings:!0,inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},spellCheck:{label:"Spellcheck",settings:!1,enabled:!0},editSource:{label:"Edit Source",settings:!1,enabled:!1},playerSpellCheck:{label:"Student Spellcheck",settings:!0,enabled:!0},teacherInstructions:{settings:!0,label:"Teacher Instructions",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},rationale:{settings:!0,label:"Rationale",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},template:{inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}}},maxImageWidth:{teacherInstructions:300,prompt:300,rationale:300},maxImageHeight:{teacherInstructions:300,prompt:300,rationale:300},mathMlOptions:{mmlOutput:!1,mmlEditing:!1},language:{settings:!1,label:"Specify Language",enabled:!1},languageChoices:{label:"Language Choices",options:[]},maxResponseAreas:10};const Wr=e,{createRoot:Hr}=s;function Zr(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const Yr=i("math-templated:configure");class Vr extends HTMLElement{static __initStatic(){this.prepareModel=(e={})=>{const{validationDefault:t,allowTrailingZerosDefault:n,ignoreOrderDefault:r,responses:o={}}=e,a=Object.keys(o).reduce((e,a)=>{const i=o[a];return e[a]={...i,validation:i.validation||t,allowTrailingZeros:i.allowTrailingZeros||n,ignoreOrder:i.ignoreOrder||r},e},{}),i={...Ur,...e,responses:a},s=i.slateMarkup||gr(i.markup,i.responses),l=dr(s);return i.responses&&Object.keys(i.responses).forEach(e=>{E(i.responses[e])&&(i.responses[e]=(i.responses[e]||[]).map((e,t)=>e.answer?e:(Yr('Choice does not contain "answer" property, which is required.',e),{answer:`${t}`,...e})))}),{...i,slateMarkup:s,markup:l}}}constructor(){super(),this._root=null,this._model=Vr.prepareModel(),this._configuration=Nr,this.onModelChanged=this.onModelChanged.bind(this),this.onConfigurationChanged=this.onConfigurationChanged.bind(this)}set model(e){this._model=Vr.prepareModel(e),this._render()}set configuration(e){this._configuration=fn(e,Nr),Zr([e,"access",e=>e.language,"optionalAccess",e=>e.enabled])?Zr([e,"access",e=>e.languageChoices,"optionalAccess",e=>e.options,"optionalAccess",e=>e.length])&&(this._model.language=e.languageChoices.options[0].value):e.language.settings&&this._model.language?(this._configuration.language.enabled=!0,this._configuration.languageChoices.options&&this._configuration.languageChoices.options.length||(this._configuration.languageChoices.options=[]),this._configuration.languageChoices.options.find(e=>e.value===this._model.language)||this._configuration.languageChoices.options.push({value:this._model.language,label:this._model.language})):delete this._model.language,this._render()}set disableSidePanel(e){this._disableSidePanel=e,this._render()}dispatchModelUpdated(e){const t=!!e;this.dispatchEvent(new jn(this._model,t))}onModelChanged(e,t){this._model=Vr.prepareModel(e),this._render(),this.dispatchModelUpdated(t)}onConfigurationChanged(e){this._configuration=e,this._render()}insertImage(e){this.dispatchEvent(new An(e))}onDeleteImage(e,t){this.dispatchEvent(new En(e,t))}insertSound(e){this.dispatchEvent(new Tn(e))}onDeleteSound(e,t){this.dispatchEvent(new On(e,t))}_render(){Yr("_render");let e=Wr.createElement(Lr,{model:this._model,configuration:this._configuration,onModelChanged:this.onModelChanged,onConfigurationChanged:this.onConfigurationChanged,disableSidePanel:this._disableSidePanel,imageSupport:{add:this.insertImage.bind(this),delete:this.onDeleteImage.bind(this)},uploadSoundSupport:{add:this.insertSound.bind(this),delete:this.onDeleteSound.bind(this)}});this._root||(this._root=Hr(this)),this._root.render(e)}connectedCallback(){this._render()}disconnectedCallback(){this._root&&(this._root.unmount(),this._root=null)}}Vr.__initStatic();export{Vr as default};