@pie-element/math-templated 7.4.0-beta.0 → 7.4.0-beta.3
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/CHANGELOG.md +12 -0
- package/configure/CHANGELOG.md +12 -0
- package/configure/package.json +1 -1
- package/controller/CHANGELOG.md +12 -0
- package/controller/package.json +1 -1
- package/lib/main.js +6 -6
- package/lib/main.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [7.4.0-beta.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated@7.4.0-beta.2...@pie-element/math-templated@7.4.0-beta.3) (2026-08-11)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/math-templated
|
|
9
|
+
|
|
10
|
+
# [7.4.0-beta.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated@7.4.0-beta.1...@pie-element/math-templated@7.4.0-beta.2) (2026-08-11)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @pie-element/math-templated
|
|
13
|
+
|
|
14
|
+
# [7.4.0-beta.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated@7.4.0-beta.0...@pie-element/math-templated@7.4.0-beta.1) (2026-08-07)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/math-templated
|
|
17
|
+
|
|
6
18
|
# [7.4.0-beta.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated@7.3.0-beta.0...@pie-element/math-templated@7.4.0-beta.0) (2026-08-07)
|
|
7
19
|
|
|
8
20
|
**Note:** Version bump only for package @pie-element/math-templated
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [5.4.0-beta.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-configure@5.4.0-beta.2...@pie-element/math-templated-configure@5.4.0-beta.3) (2026-08-11)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/math-templated-configure
|
|
9
|
+
|
|
10
|
+
# [5.4.0-beta.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-configure@5.4.0-beta.1...@pie-element/math-templated-configure@5.4.0-beta.2) (2026-08-11)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @pie-element/math-templated-configure
|
|
13
|
+
|
|
14
|
+
# [5.4.0-beta.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-configure@5.4.0-beta.0...@pie-element/math-templated-configure@5.4.0-beta.1) (2026-08-07)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/math-templated-configure
|
|
17
|
+
|
|
6
18
|
# [5.4.0-beta.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-configure@5.3.0-beta.0...@pie-element/math-templated-configure@5.4.0-beta.0) (2026-08-07)
|
|
7
19
|
|
|
8
20
|
**Note:** Version bump only for package @pie-element/math-templated-configure
|
package/configure/package.json
CHANGED
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.4.0-beta.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-controller@6.4.0-beta.2...@pie-element/math-templated-controller@6.4.0-beta.3) (2026-08-11)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/math-templated-controller
|
|
9
|
+
|
|
10
|
+
# [6.4.0-beta.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-controller@6.4.0-beta.1...@pie-element/math-templated-controller@6.4.0-beta.2) (2026-08-11)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @pie-element/math-templated-controller
|
|
13
|
+
|
|
14
|
+
# [6.4.0-beta.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-controller@6.4.0-beta.0...@pie-element/math-templated-controller@6.4.0-beta.1) (2026-08-07)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/math-templated-controller
|
|
17
|
+
|
|
6
18
|
# [6.4.0-beta.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-controller@6.3.0-beta.0...@pie-element/math-templated-controller@6.4.0-beta.0) (2026-08-07)
|
|
7
19
|
|
|
8
20
|
**Note:** Version bump only for package @pie-element/math-templated-controller
|
package/controller/package.json
CHANGED
package/lib/main.js
CHANGED
|
@@ -11,7 +11,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
var _lodashEs = require("lodash-es");
|
|
12
12
|
var _styles = require("@mui/material/styles");
|
|
13
13
|
var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
|
|
14
|
-
var
|
|
14
|
+
var _mathInputMathlive = require("@pie-lib/math-input-mathlive");
|
|
15
15
|
var _renderUi = require("@pie-lib/render-ui");
|
|
16
16
|
var _mathRendering = require("@pie-lib/math-rendering");
|
|
17
17
|
var _maskMarkup = require("@pie-lib/mask-markup");
|
|
@@ -119,7 +119,7 @@ const Expression = (0, _styles.styled)('div')(({
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
}));
|
|
122
|
-
const StyledStatic = (0, _styles.styled)(
|
|
122
|
+
const StyledStatic = (0, _styles.styled)(_mathInputMathlive.mq.Static)({
|
|
123
123
|
'& > .mq-root-block': {
|
|
124
124
|
'& > .mq-editable-field': {
|
|
125
125
|
borderColor: _renderUi.color.text()
|
|
@@ -351,7 +351,7 @@ class Main extends _react.default.Component {
|
|
|
351
351
|
const indexEl = this.root.querySelector(`#${answerId}Index`);
|
|
352
352
|
if (el) {
|
|
353
353
|
const answer = answers[answerId];
|
|
354
|
-
(0,
|
|
354
|
+
(0, _mathInputMathlive.applyStaticMath)(el, answer && answer.value || '');
|
|
355
355
|
if (model.view) {
|
|
356
356
|
el.parentElement.parentElement.classList.remove('correct');
|
|
357
357
|
el.parentElement.parentElement.classList.remove('incorrect');
|
|
@@ -483,7 +483,7 @@ class Main extends _react.default.Component {
|
|
|
483
483
|
}, this.handleAnswerBlockDomUpdate);
|
|
484
484
|
});
|
|
485
485
|
(0, _defineProperty2.default)(this, "subFieldChanged", (name, subfieldValue) => {
|
|
486
|
-
(0,
|
|
486
|
+
(0, _mathInputMathlive.updateSpans)();
|
|
487
487
|
if (name) {
|
|
488
488
|
this.setState(state => ({
|
|
489
489
|
session: {
|
|
@@ -681,7 +681,7 @@ class Main extends _react.default.Component {
|
|
|
681
681
|
style: {
|
|
682
682
|
width: getKeyPadWidth(additionalKeys, equationEditor)
|
|
683
683
|
}
|
|
684
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
684
|
+
}, /*#__PURE__*/_react.default.createElement(_mathInputMathlive.HorizontalKeypad, {
|
|
685
685
|
additionalKeys: additionalKeys,
|
|
686
686
|
mode: equationEditor || DEFAULT_KEYPAD_VARIANT,
|
|
687
687
|
onClick: this.onClick
|
|
@@ -724,7 +724,7 @@ class Main extends _react.default.Component {
|
|
|
724
724
|
UNSAFE_componentWillMount() {
|
|
725
725
|
if (typeof window !== 'undefined') {
|
|
726
726
|
if (!registered) {
|
|
727
|
-
(0,
|
|
727
|
+
(0, _mathInputMathlive.registerEmbed)('answerBlock', data => ({
|
|
728
728
|
htmlString: `<div class="block-container">
|
|
729
729
|
<div class="block-response" id="${data}Index">R</div>
|
|
730
730
|
<div class="block-math">
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_styles","_Tooltip","_mathInput","_renderUi","_mathRendering","_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
|
+
{"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":[]}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "7.4.0-beta.
|
|
7
|
+
"version": "7.4.0-beta.3",
|
|
8
8
|
"description": "",
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@emotion/react": "^11.14.0",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
15
15
|
"@pie-lib/correct-answer-toggle": "4.0.5",
|
|
16
16
|
"@pie-lib/mask-markup": "3.1.0-beta.1",
|
|
17
|
-
"@pie-lib/math-input-mathlive": "1.0.
|
|
17
|
+
"@pie-lib/math-input-mathlive": "1.0.7",
|
|
18
18
|
"@pie-lib/math-rendering": "5.1.0",
|
|
19
19
|
"@pie-lib/render-ui": "6.1.3",
|
|
20
20
|
"prop-types": "^15.8.1",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"author": "",
|
|
25
25
|
"license": "ISC",
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "048afdc461a5580a04d4bb5a07434efbde0d4df2",
|
|
27
27
|
"scripts": {
|
|
28
28
|
"postpublish": "../../scripts/postpublish"
|
|
29
29
|
},
|