@pie-element/math-inline 13.0.5-next.20261014231219 → 13.0.5
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/dist/browser/author/index.js +5370 -5337
- package/dist/browser/author/index.js.map +1 -1
- package/dist/browser/controller/index.js +5 -2
- package/dist/browser/delivery/index.js +6 -3
- package/dist/browser/delivery/index.js.map +1 -1
- package/dist/browser/{dist-BrOIrVqB.js → dist-BHHPmy0B.js} +4 -2
- package/dist/browser/dist-BHHPmy0B.js.map +1 -0
- package/dist/browser/editor-runtime/author/index.js +1331 -1298
- package/dist/browser/editor-runtime/author/index.js.map +1 -1
- package/dist/browser/editor-runtime/controller/index.js +5 -2
- package/dist/browser/editor-runtime/delivery/index.js +6 -3
- package/dist/browser/editor-runtime/delivery/index.js.map +1 -1
- package/dist/browser/editor-runtime/{dist-BZwowi7t.js → dist-B1WbtNIm.js} +4 -2
- package/dist/browser/editor-runtime/dist-B1WbtNIm.js.map +1 -0
- package/dist/browser/editor-runtime/{main-de3wcNuD.js → main-BO5Bc5oB.js} +2 -2
- package/dist/browser/editor-runtime/{main-de3wcNuD.js.map → main-BO5Bc5oB.js.map} +1 -1
- package/dist/browser/editor-runtime/print/index.js +7 -4
- package/dist/browser/{main-PRoS5KLc.js → main-CjEk0ct_.js} +2 -2
- package/dist/browser/{main-PRoS5KLc.js.map → main-CjEk0ct_.js.map} +1 -1
- package/dist/browser/print/index.js +7 -4
- package/dist/index.iife.js +1 -1
- package/dist/schemas/configuration.schema.json +1 -1
- package/dist/schemas/model.schema.json +1 -1
- package/dist/schemas/session.schema.json +1 -1
- package/module/print.js +3 -1
- package/module/print.js.map +1 -1
- package/package.json +16 -16
- package/dist/browser/dist-BrOIrVqB.js.map +0 -1
- package/dist/browser/editor-runtime/dist-BZwowi7t.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-PRoS5KLc.js","names":[],"sources":["../../../../lib-react/correct-answer-toggle/dist/expander.js","../../../../lib-react/icons/dist/correct-response-icon.js","../../../../lib-react/correct-answer-toggle/dist/index.js","../../src/delivery/utils.ts","../../src/delivery/simple-question-block.tsx","../../src/delivery/main.tsx"],"sourcesContent":["import { styled as e } from \"@mui/material/styles\";\nimport { CSSTransition as t } from \"react-transition-group\";\nimport { jsx as n } from \"react/jsx-runtime\";\nimport { useRef as r } from \"react\";\nimport i from \"prop-types\";\n//#region src/expander.tsx\nvar a = \"height ease-in 300ms, opacity ease-in 300ms\", o = e(\"div\")(() => ({\n\tposition: \"relative\",\n\theight: 0,\n\toverflow: \"hidden\",\n\tdisplay: \"flex\",\n\tvisibility: \"hidden\",\n\twidth: 0,\n\t\"&.enter\": {\n\t\ttransition: a,\n\t\topacity: 1,\n\t\theight: \"auto\",\n\t\twidth: \"auto\",\n\t\tvisibility: \"visible\",\n\t\tminHeight: \"25px\"\n\t},\n\t\"&.enter-done\": {\n\t\theight: \"auto\",\n\t\tvisibility: \"visible\",\n\t\twidth: \"auto\",\n\t\tminHeight: \"25px\"\n\t},\n\t\"&.exit\": {\n\t\ttransition: a,\n\t\topacity: 0,\n\t\theight: 0,\n\t\tvisibility: \"visible\",\n\t\twidth: 0\n\t},\n\t\"&.exit-done\": {\n\t\topacity: 0,\n\t\tvisibility: \"hidden\",\n\t\theight: 0,\n\t\twidth: 0\n\t}\n})), s = (e) => {\n\tlet { show: i, children: a, className: s } = e, c = r(null);\n\treturn /* @__PURE__ */ n(t, {\n\t\tnodeRef: c,\n\t\tin: i,\n\t\tappear: !0,\n\t\tmountOnEnter: !1,\n\t\ttimeout: 300,\n\t\tclassNames: {\n\t\t\tenter: \"enter\",\n\t\t\tenterDone: \"enter-done\",\n\t\t\texit: \"exit\",\n\t\t\texitDone: \"exit-done\"\n\t\t},\n\t\tchildren: /* @__PURE__ */ n(o, {\n\t\t\tref: c,\n\t\t\tclassName: s,\n\t\t\tchildren: a\n\t\t})\n\t});\n};\ns.propTypes = {\n\tshow: i.bool.isRequired,\n\tclassName: i.string,\n\tchildren: i.oneOfType([i.arrayOf(i.node), i.node]).isRequired\n};\n//#endregion\nexport { s as default };\n","import \"react\";\nimport e from \"prop-types\";\nimport { jsx as t, jsxs as n } from \"react/jsx-runtime\";\nimport { styled as r } from \"@mui/material/styles\";\n//#region src/correct-response-icon.tsx\nvar i = ({ bgFill: e, fgFill: r }) => /* @__PURE__ */ n(\"svg\", {\n\t\"aria-hidden\": \"true\",\n\tfocusable: \"false\",\n\tpreserveAspectRatio: \"xMinYMin meet\",\n\tversion: \"1.1\",\n\tviewBox: \"-283 359 34 35\",\n\tstyle: { enableBackground: \"new -283 359 34 35\" },\n\tchildren: [\n\t\t/* @__PURE__ */ t(\"circle\", {\n\t\t\tcx: \"-266\",\n\t\t\tcy: \"375.9\",\n\t\t\tr: \"14\",\n\t\t\tfill: e\n\t\t}),\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\td: \"M-280.5,375.9c0-8,6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5s-6.5,14.5-14.5,14.5S-280.5,383.9-280.5,375.9z\\n M-279.5,375.9c0,7.4,6.1,13.5,13.5,13.5c7.4,0,13.5-6.1,13.5-13.5s-6.1-13.5-13.5-13.5C-273.4,362.4-279.5,368.5-279.5,375.9z\",\n\t\t\tfill: e\n\t\t}),\n\t\t/* @__PURE__ */ t(\"polygon\", {\n\t\t\tpoints: \"-265.4,383.1 -258.6,377.2 -261.2,374.2 -264.3,376.9 -268.9,368.7 -272.4,370.6\",\n\t\t\tfill: r\n\t\t})\n\t]\n});\ni.propTypes = {\n\tbgFill: e.string.isRequired,\n\tfgFill: e.string.isRequired\n};\nvar a = ({ bgFill: e, fgFill: r, borderFill: i }) => /* @__PURE__ */ n(\"svg\", {\n\t\"aria-hidden\": \"true\",\n\tfocusable: \"false\",\n\tpreserveAspectRatio: \"xMinYMin meet\",\n\tversion: \"1.1\",\n\tviewBox: \"-129.5 127 34 35\",\n\tstyle: { enableBackground: \"new -129.5 127 34 35\" },\n\tchildren: [\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\tstyle: {\n\t\t\t\tfill: \"#D0CAC5\",\n\t\t\t\tstroke: \"#E6E3E0\",\n\t\t\t\tstrokeWidth: .75,\n\t\t\t\tstrokeMiterlimit: 10\n\t\t\t},\n\t\t\td: \"M-112.9,160.4c-8.5,0-15.5-6.9-15.5-15.5c0-8.5,6.9-15.5,15.5-15.5s15.5,6.9,15.5,15.5\\n C-97.4,153.5-104.3,160.4-112.9,160.4z\"\n\t\t}),\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\tstyle: {\n\t\t\t\tfill: \"#B3ABA4\",\n\t\t\t\tstroke: \"#CDC7C2\",\n\t\t\t\tstrokeWidth: .5,\n\t\t\t\tstrokeMiterlimit: 10\n\t\t\t},\n\t\t\td: \"M-113.2,159c-8,0-14.5-6.5-14.5-14.5s6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5S-105.2,159-113.2,159z\"\n\t\t}),\n\t\t/* @__PURE__ */ t(\"circle\", {\n\t\t\tcx: \"-114.2\",\n\t\t\tcy: \"143.5\",\n\t\t\tr: \"14\",\n\t\t\tfill: e\n\t\t}),\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\td: \"M-114.2,158c-8,0-14.5-6.5-14.5-14.5s6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5S-106.2,158-114.2,158z\\n M-114.2,130c-7.4,0-13.5,6.1-13.5,13.5s6.1,13.5,13.5,13.5s13.5-6.1,13.5-13.5S-106.8,130-114.2,130z\",\n\t\t\tfill: i\n\t\t}),\n\t\t/* @__PURE__ */ t(\"polygon\", {\n\t\t\tpoints: \"-114.8,150.7 -121.6,144.8 -119,141.8 -115.9,144.5 -111.3,136.3 -107.8,138.2\",\n\t\t\tfill: r\n\t\t})\n\t]\n});\na.propTypes = {\n\tbgFill: e.string.isRequired,\n\tfgFill: e.string.isRequired,\n\tborderFill: e.string.isRequired\n};\nvar o = r(\"div\")(({ size: e }) => ({\n\twidth: e || \"25px\",\n\theight: e || \"25px\"\n})), s = ({ open: e, size: n }) => /* @__PURE__ */ t(o, {\n\tsize: n,\n\tchildren: e ? /* @__PURE__ */ t(i, {\n\t\tbgFill: \"#bce2ff\",\n\t\tfgFill: \"#1a9cff\"\n\t}) : /* @__PURE__ */ t(a, {\n\t\tbgFill: \"white\",\n\t\tfgFill: \"#1a9cff\",\n\t\tborderFill: \"#bce2ff\"\n\t})\n});\ns.propTypes = {\n\topen: e.bool,\n\tsize: e.string\n}, s.defaultProps = { open: !1 };\n//#endregion\nexport { s as default };\n","import e from \"./expander.js\";\nimport { styled as t } from \"@mui/material/styles\";\nimport { CSSTransition as n } from \"react-transition-group\";\nimport { CorrectResponse as r } from \"@pie-lib/icons\";\nimport * as i from \"@pie-lib/render-ui\";\nimport { Readable as a, color as o } from \"@pie-lib/render-ui\";\nimport { jsx as s, jsxs as c } from \"react/jsx-runtime\";\nimport l from \"react\";\nimport u from \"prop-types\";\nimport d from \"@pie-lib/translator\";\n//#region src/index.tsx\nfunction f(e) {\n\treturn typeof e == \"function\" || typeof e == \"object\" && !!e && typeof e.$$typeof == \"symbol\";\n}\nfunction p(e, t) {\n\treturn !e || f(e) ? e : f(e.default) ? e.default : t && f(e[t]) ? e[t] : t && f(e[t]?.default) ? e[t].default : e;\n}\nvar m = i, h = m.default, g = h && typeof h == \"object\" ? h : m, _ = p(a, \"Readable\") || p(g.Readable, \"Readable\"), { translator: v } = d, y = {\n\tWebkitTouchCallout: \"none\",\n\tWebkitUserSelect: \"none\",\n\tKhtmlUserSelect: \"none\",\n\tMozUserSelect: \"none\",\n\tmsUserSelect: \"none\",\n\tuserSelect: \"none\"\n}, b = t(\"div\")(() => ({\n\twidth: \"100%\",\n\tcursor: \"pointer\"\n})), x = t(\"button\")(() => ({\n\tmargin: \"0 auto\",\n\ttextAlign: \"center\",\n\tdisplay: \"flex\",\n\tminWidth: \"24px\",\n\tminHeight: \"24px\",\n\tpadding: 0,\n\tborder: 0,\n\tbackground: \"none\",\n\tcolor: \"inherit\",\n\tfont: \"inherit\",\n\tcursor: \"pointer\",\n\t\"&:focus-visible\": {\n\t\toutline: `2px solid ${o.buttonFocusOutline()}`,\n\t\toutlineOffset: \"-2px\"\n\t}\n})), S = t(\"div\")(() => ({\n\twidth: \"fit-content\",\n\tminWidth: \"140px\",\n\talignSelf: \"center\",\n\tverticalAlign: \"middle\",\n\tcolor: `var(--correct-answer-toggle-label-color, ${o.text()})`,\n\tfontWeight: \"normal\",\n\t...y\n})), C = t(\"div\")(() => ({\n\tposition: \"absolute\",\n\twidth: \"25px\",\n\t\"&.enter\": { opacity: \"0\" },\n\t\"&.enter-active\": {\n\t\topacity: \"1\",\n\t\ttransition: \"opacity 0.3s ease-in\"\n\t},\n\t\"&.exit\": { opacity: \"1\" },\n\t\"&.exit-active\": {\n\t\topacity: \"0\",\n\t\ttransition: \"opacity 0.3s ease-in\"\n\t}\n})), w = t(\"div\")(() => ({\n\twidth: \"25px\",\n\tmarginRight: \"5px\",\n\tdisplay: \"flex\",\n\talignItems: \"center\"\n})), T = class t extends l.Component {\n\tstatic propTypes = {\n\t\tonToggle: u.func,\n\t\ttoggled: u.bool,\n\t\tshow: u.bool,\n\t\thideMessage: u.string,\n\t\tshowMessage: u.string,\n\t\tclassName: u.string,\n\t\tlanguage: u.string\n\t};\n\tstatic defaultProps = {\n\t\tshowMessage: \"Show correct answer\",\n\t\thideMessage: \"Hide correct answer\",\n\t\tshow: !1,\n\t\ttoggled: !1\n\t};\n\tconstructor(e) {\n\t\tsuper(e), this.state = { show: e.show }, this.openIconRef = l.createRef(), this.closedIconRef = l.createRef(), t.defaultProps = {\n\t\t\t...t.defaultProps,\n\t\t\tshowMessage: v.t(\"common:showCorrectAnswer\", { lng: e.language }),\n\t\t\thideMessage: v.t(\"common:hideCorrectAnswer\", { lng: e.language })\n\t\t};\n\t}\n\tonClick() {\n\t\tthis.props.onToggle(!this.props.toggled);\n\t}\n\tonTouch(e) {\n\t\te.preventDefault(), this.props.onToggle(!this.props.toggled);\n\t}\n\tUNSAFE_componentWillReceiveProps(e) {\n\t\tthis.setState({ show: e.show }), e.language !== this.props?.language && (t.defaultProps = {\n\t\t\t...t.defaultProps,\n\t\t\tshowMessage: v.t(\"common:showCorrectAnswer\", { lng: e.language }),\n\t\t\thideMessage: v.t(\"common:hideCorrectAnswer\", { lng: e.language })\n\t\t});\n\t}\n\trender() {\n\t\tlet { className: t, toggled: i, hideMessage: a, showMessage: o } = this.props;\n\t\treturn /* @__PURE__ */ s(b, {\n\t\t\tclassName: t,\n\t\t\tchildren: /* @__PURE__ */ s(e, {\n\t\t\t\tshow: this.state.show,\n\t\t\t\tchildren: /* @__PURE__ */ c(x, {\n\t\t\t\t\ttype: \"button\",\n\t\t\t\t\t\"aria-pressed\": !!i,\n\t\t\t\t\tonClick: this.onClick.bind(this),\n\t\t\t\t\tonTouchEnd: this.onTouch.bind(this),\n\t\t\t\t\tchildren: [/* @__PURE__ */ c(w, { children: [/* @__PURE__ */ s(n, {\n\t\t\t\t\t\tnodeRef: this.openIconRef,\n\t\t\t\t\t\ttimeout: 400,\n\t\t\t\t\t\tin: i,\n\t\t\t\t\t\texit: !i,\n\t\t\t\t\t\tclassNames: {\n\t\t\t\t\t\t\tenter: \"enter\",\n\t\t\t\t\t\t\tenterActive: \"enter-active\",\n\t\t\t\t\t\t\texit: \"exit\",\n\t\t\t\t\t\t\texitActive: \"exit-active\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: /* @__PURE__ */ s(C, {\n\t\t\t\t\t\t\tref: this.openIconRef,\n\t\t\t\t\t\t\tchildren: /* @__PURE__ */ s(r, { open: i }, \"correct-open\")\n\t\t\t\t\t\t})\n\t\t\t\t\t}), /* @__PURE__ */ s(n, {\n\t\t\t\t\t\tnodeRef: this.closedIconRef,\n\t\t\t\t\t\ttimeout: 5e3,\n\t\t\t\t\t\tin: !i,\n\t\t\t\t\t\texit: i,\n\t\t\t\t\t\tclassNames: {\n\t\t\t\t\t\t\tenter: \"enter\",\n\t\t\t\t\t\t\tenterActive: \"enter-active\",\n\t\t\t\t\t\t\texit: \"exit\",\n\t\t\t\t\t\t\texitActive: \"exit-active\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: /* @__PURE__ */ s(C, {\n\t\t\t\t\t\t\tref: this.closedIconRef,\n\t\t\t\t\t\t\tchildren: /* @__PURE__ */ s(r, { open: i }, \"correct-closed\")\n\t\t\t\t\t\t})\n\t\t\t\t\t})] }), /* @__PURE__ */ s(_, {\n\t\t\t\t\t\tfalse: !0,\n\t\t\t\t\t\tchildren: /* @__PURE__ */ s(S, {\n\t\t\t\t\t\t\t\"aria-hidden\": !this.state.show,\n\t\t\t\t\t\t\tchildren: i ? a : o\n\t\t\t\t\t\t})\n\t\t\t\t\t})]\n\t\t\t\t})\n\t\t\t})\n\t\t});\n\t}\n};\n//#endregion\nexport { T as CorrectAnswerToggle, T as default };\n","// @ts-nocheck\n\nexport const ResponseTypes = {\n advanced: 'Advanced Multi',\n simple: 'Simple',\n};\n","// @ts-nocheck\n\nimport React from 'react';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport { mq } from '@pie-lib/math-input';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\nimport { color, createUniqueId } from '@pie-lib/render-ui';\n\nconst Expression: any = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n padding: theme.spacing(1),\n}));\n\nconst Static: any = styled('div', {\n shouldForwardProp: (prop) => !['isCorrect', 'isIncorrect'].includes(prop),\n})(({ theme, isCorrect, isIncorrect }) => ({\n color: color.text(),\n background: color.background(),\n border: isCorrect\n ? `2px solid ${color.correct()} !important`\n : isIncorrect\n ? `2px solid ${color.incorrect()} !important`\n : `1px solid ${color.primaryLight()}`,\n width: 'fit-content',\n fontSize: '1rem',\n padding: isCorrect || isIncorrect ? theme.spacing(1) : theme.spacing(0.5),\n letterSpacing: (isCorrect || isIncorrect) ? '0.5px' : 'normal',\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n}));\n\n// CSS for MathToolbar classNames (used as strings)\nif (typeof document !== 'undefined') {\n const styleId = 'math-inline-simple-question-styles';\n if (!document.getElementById(styleId)) {\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = `\n .response-editor {\n display: flex;\n justify-content: center;\n width: auto;\n max-width: fit-content;\n height: auto;\n text-align: left;\n padding: 8px;\n }\n .response-editor.mq-math-mode {\n border: 1px solid ${color.primaryLight()};\n }\n `;\n document.head.appendChild(style);\n }\n}\n\nexport class SimpleQuestionBlock extends React.Component {\n static propTypes = {\n onSimpleResponseChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n emptyResponse: PropTypes.bool,\n session: PropTypes.object.isRequired,\n showCorrect: PropTypes.bool,\n onSubFieldFocus: PropTypes.func.isRequired,\n showKeypad: PropTypes.bool.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n // A timestamp repeats when two items construct in the same millisecond, and the toolbar is\n // looked up in the whole document.\n this.mathToolBarId = createUniqueId('math-toolbar');\n }\n\n mathToolBarContainsTarget = (e) => document.getElementById(this.mathToolBarId).contains(e.target);\n\n handleClick: any = (e) => {\n try {\n if (!this.mathToolBarContainsTarget(e)) {\n this.setState({ showKeypad: false });\n }\n } catch (e) {\n // console.log(e.toString());\n }\n };\n\n onFocus: any = () => {\n const { onSubFieldFocus } = this.props;\n\n onSubFieldFocus(this.mathToolBarId);\n };\n\n render() {\n const { model, showCorrect, session, emptyResponse,onSimpleResponseChange, showKeypad } = this.props;\n const { config, disabled, correctness } = model || {};\n\n if (!config) {\n return;\n }\n\n const correct = correctness && correctness.correct;\n const { responses, equationEditor } = config;\n\n return (\n <Expression data-keypad={true}>\n {showCorrect || disabled ? (\n <Static\n isIncorrect={!emptyResponse && !correct && !showCorrect}\n isCorrect={!emptyResponse && (correct || showCorrect)}\n >\n <mq.Static\n latex={showCorrect ? responses && responses.length && responses[0].answer : session.response || ''}\n />\n </Static>\n ) : (\n <div id={this.mathToolBarId}>\n <MathToolbar\n classNames={{ editor: 'response-editor' }}\n latex={session.response}\n keypadMode={equationEditor}\n onChange={onSimpleResponseChange}\n onDone={() => {}}\n onFocus={this.onFocus}\n controlledKeypad={true}\n showKeypad={showKeypad}\n hideDoneButton={true}\n />\n </div>\n )}\n </Expression>\n );\n }\n}\n\nexport default SimpleQuestionBlock;\n","// @ts-nocheck\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans, registerEmbed, applyStaticMath } from '@pie-lib/math-input';\nimport { Feedback as FeedbackImport, Collapsible as CollapsibleImport, Readable as ReadableImport, hasText, hasMedia, PreviewPrompt as PreviewPromptImport, UiLayout as UiLayoutImport } from '@pie-lib/render-ui';\n\nfunction isRenderableReactInteropType(value: any) {\n return (\n typeof value === 'function' ||\n (typeof value === 'object' && value !== null && typeof value.$$typeof === 'symbol')\n );\n}\n\nfunction unwrapReactInteropSymbol(maybeSymbol: any, namedExport?: string) {\n if (!maybeSymbol) return maybeSymbol;\n if (isRenderableReactInteropType(maybeSymbol)) return maybeSymbol;\n if (isRenderableReactInteropType(maybeSymbol.default)) return maybeSymbol.default;\n if (namedExport && isRenderableReactInteropType(maybeSymbol[namedExport])) {\n return maybeSymbol[namedExport];\n }\n if (namedExport && isRenderableReactInteropType(maybeSymbol[namedExport]?.default)) {\n return maybeSymbol[namedExport].default;\n }\n return maybeSymbol;\n}\nimport * as RenderUiNamespace from '@pie-lib/render-ui';\nconst renderUiNamespaceAny = RenderUiNamespace as any;\nconst renderUiDefaultMaybe = renderUiNamespaceAny['default'];\nconst renderUi =\n renderUiDefaultMaybe && typeof renderUiDefaultMaybe === 'object'\n ? renderUiDefaultMaybe\n : renderUiNamespaceAny;\nconst UiLayout = unwrapReactInteropSymbol(UiLayoutImport, 'UiLayout') || unwrapReactInteropSymbol(renderUi.UiLayout, 'UiLayout');\nconst PreviewPrompt = unwrapReactInteropSymbol(PreviewPromptImport, 'PreviewPrompt') || unwrapReactInteropSymbol(renderUi.PreviewPrompt, 'PreviewPrompt');\nconst Readable = unwrapReactInteropSymbol(ReadableImport, 'Readable') || unwrapReactInteropSymbol(renderUi.Readable, 'Readable');\nconst Collapsible = unwrapReactInteropSymbol(CollapsibleImport, 'Collapsible') || unwrapReactInteropSymbol(renderUi.Collapsible, 'Collapsible');\nconst Feedback = unwrapReactInteropSymbol(FeedbackImport, 'Feedback') || unwrapReactInteropSymbol(renderUi.Feedback, 'Feedback');\nimport { renderMath } from '@pie-element/shared-math-rendering-mathjax';\nimport { styled } from '@mui/material/styles';\nimport Tooltip from '@mui/material/Tooltip';\nimport { ResponseTypes } from './utils.js';\nimport { isEmpty, isEqual } from '@pie-element/shared-lodash';\nimport SimpleQuestionBlock from './simple-question-block.js';\nimport { color, createUniqueId } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\nimport ReactDOM from 'react-dom';\nimport { sanitizeModelHtml } from '@pie-element/shared-utils';\nconst { translator } = Translator;\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction isChildOfCurrentPieElement(child, parent) {\n let node = child;\n while (node !== null) {\n if (parent && node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction parseAnswers(session, model) {\n const answers = {};\n\n if (model.config && model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (session &&\n session.answers &&\n session.answers[`r${answerBlocks}`] &&\n session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n return answers;\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { model, session } = props;\n const answers = parseAnswers(session, model);\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n tooltipContainerRef: React.createRef(),\n };\n this.instructionsIdPrefix = createUniqueId('math-inline-instructions');\n }\n\n UNSAFE_componentWillMount() {\n if (typeof window !== 'undefined') {\n if (!registered) {\n // The embed is registered once for every item on the page, so it marks each block by its\n // response id rather than taking it as a DOM id, which a second item would repeat.\n registerEmbed('answerBlock', (data) => {\n const classNames = getBlockClassNames();\n return {\n htmlString: `<div class=\"${classNames.blockContainer}\">\n <div class=\"${classNames.blockResponse}\" data-answer-block-index=\"${data}\">R</div>\n <div class=\"${classNames.blockMath}\">\n <span data-answer-block=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate: any = () => {\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(`[data-answer-block=\"${answerId}\"]`);\n const indexEl = this.root.querySelector(`[data-answer-block-index=\"${answerId}\"]`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n const answer = answers[answerId];\n\n applyStaticMath(el, (answer && answer.value) || '');\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? 'correct' : 'incorrect'\n // );\n } else {\n el.parentElement.parentElement.classList.remove('correct');\n el.parentElement.parentElement.classList.remove('incorrect');\n }\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n countResponseOccurrences(expression) {\n const pattern = /\\{\\{response\\}\\}/g;\n const matches = expression?.match(pattern);\n\n return matches ? matches.length : 0;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n const { session } = this.props;\n const { session: nextSession = {} } = nextProps || {};\n\n // in case session props changed in parent, we need to catch this and update local state\n // example: when env is changing in pieoneer\n if (session && nextSession && !isEqual(session.answers, nextSession.answers)) {\n this.setState({\n session: { ...nextSession, answers: parseAnswers(nextSession, this.props.model) },\n });\n }\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n config.note &&\n config.language &&\n config.language !== nextConfig.language &&\n config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })\n ) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {\n setTimeout(() => this.updateAria(), 100);\n }\n\n if (\n (config && config.responses && config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate,\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n this.updateAria();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.handleAnswerBlockDomUpdate();\n\n const prevResponseType = prevProps.model?.config?.responseType;\n const currentResponseType = this.props.model?.config?.responseType;\n\n if (prevResponseType !== currentResponseType || prevProps.model?.language !== this.props.model?.language) {\n this.updateAria();\n }\n }\n\n updateAria: any = () => {\n if (this.root) {\n // Update aria-hidden for .mq-selectable elements\n const selectableElements = this.root.querySelectorAll('.mq-selectable');\n selectableElements.forEach((elem) => elem.setAttribute('aria-hidden', 'true'));\n\n // Describe the keypad shortcuts on each textarea; @pie-lib/math-input names it\n const instructions = translator.t('mathInline.keypadInstructions', { lng: this.props.model?.language });\n const textareaElements = this.root.querySelectorAll('textarea');\n textareaElements.forEach((elem, index) => {\n const instructionsId = `${this.instructionsIdPrefix}-${index}`;\n\n // Find the parent element that contains the textarea\n const parent = elem.closest('.mq-textarea');\n\n if (parent) {\n // Create or find the instructions element within the parent\n let instructionsElement = parent.querySelector(`#${instructionsId}`);\n\n if (!instructionsElement) {\n instructionsElement = document.createElement('span');\n instructionsElement.id = instructionsId;\n instructionsElement.className = 'sr-only';\n parent.insertBefore(instructionsElement, elem);\n }\n\n instructionsElement.textContent = instructions;\n elem.setAttribute('aria-describedby', instructionsId);\n }\n });\n }\n };\n\n focusFirstKeypadElement: any = () => {\n setTimeout(() => {\n const keypadElement = document.querySelector('[data-keypad]');\n\n if (keypadElement) {\n const firstButton = keypadElement.querySelector(\"button, [role='button']\");\n\n if (firstButton) {\n firstButton.focus();\n }\n }\n }, 0);\n };\n\n handleKeyDown: any = (event, id) => {\n const isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, this.root);\n const isAnswerInputFocused =\n this.mqStatic && this.mqStatic.inputRef?.current\n ? this.mqStatic.inputRef?.current.contains(document.activeElement)\n : !!document.activeElement?.closest('.mq-editable-field');\n const { key, type } = event;\n const isClickOrTouchEvent = type === 'click' || type === 'touchstart';\n\n if (isAnswerInputFocused && (key === 'ArrowDown' || isClickOrTouchEvent)) {\n if (this.state.activeAnswerBlock !== id && isTrigerredFromActualPieElement) {\n this.cleanupKeyDownListener();\n this.setState({ activeAnswerBlock: id }, () => {\n this.onSubFieldFocus(id);\n if (key === 'ArrowDown') {\n this.focusFirstKeypadElement();\n }\n });\n }\n } else if (event.key === 'Escape') {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n onSubFieldFocus: any = (id) => {\n if (!this.handleEvent) {\n this.handleEvent = (event) => {\n this.handleKeyDown(event, id);\n };\n\n document.addEventListener('keydown', this.handleEvent);\n document.addEventListener('click', this.handleEvent);\n document.addEventListener('touchstart', this.handleEvent);\n }\n };\n\n cleanupKeyDownListener: any = () => {\n if (this.handleEvent) {\n document.removeEventListener('keydown', this.handleEvent);\n document.removeEventListener('click', this.handleEvent);\n document.removeEventListener('touchstart', this.handleEvent);\n this.handleEvent = null;\n }\n };\n\n componentWillUnmount() {\n if (this.cleanupKeyDownListener) {\n this.cleanupKeyDownListener();\n }\n }\n\n onDone: any = () => {};\n\n onSimpleResponseChange: any = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\n };\n\n toNodeData: any = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n };\n\n setInput: any = (input) => {\n this.input = input;\n };\n\n onClick: any = (data) => {\n const scrollX = window.scrollX;\n const scrollY = window.scrollY;\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach((vv) => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n requestAnimationFrame(() => {\n window.scrollTo(scrollX, scrollY);\n requestAnimationFrame(() => window.scrollTo(scrollX, scrollY));\n });\n };\n\n callOnSessionChange: any = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect: any = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged: any = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n const scrollX = window.scrollX;\n const scrollY = window.scrollY;\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n () => {\n this.callOnSessionChange();\n requestAnimationFrame(() => {\n window.scrollTo(scrollX, scrollY);\n });\n },\n );\n }\n };\n\n getFieldName: any = (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: any = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n // our keypad is in tooltip\n // in this way we see if event was triggered from the keypad\n const isKeypadOpen = currentTarget && currentTarget.closest('[role=tooltip]');\n\n function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n // if event was trigered from the keypad, avoid closing the keypad\n if (!isKeypadOpen) {\n this.setState({ activeAnswerBlock: '' });\n }\n }\n // else {\n // // Just for debugging purpose:\n // console.log('\\n\\nNew childWithDataKeypad', childWithDataKeypad);\n //\n // if (IS_SAFARI) {\n // // (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]?.children[0]);\n // } else {\n // // (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]);\n // }\n // }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector(\"[role='tooltip']\");\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model } = this.props;\n const { activeAnswerBlock, showCorrect, session, tooltipContainerRef } = this.state;\n const {\n config,\n correctness,\n disabled,\n extraCSSRules,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language,\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));\n const showTeacherInstructions =\n teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const printView = (\n <PrintContainer>\n <mq.Static\n className=\"static-math\"\n ref={(mqStatic) => {\n if (mqStatic) this.mqStatic = mqStatic;\n }}\n latex={staticLatex}\n language={language}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </PrintContainer>\n );\n\n const midContent = (\n <MainContent>\n {mode === 'gather' && (\n <SrOnly>{translator.t('mathInline.mathEquationResponseQuestion', { lng: language })}</SrOnly>\n )}\n\n {viewMode &&\n showTeacherInstructions &&\n (!animationsDisabled ? (\n <StyledCollapsible labels={{ hidden: translator.t('common:showTeacherInstructions', { lng: language }), visible: translator.t('common:hideTeacherInstructions', { lng: language }) }}>\n <div dangerouslySetInnerHTML={{ __html: sanitizeModelHtml(teacherInstructions) }} />\n </StyledCollapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: sanitizeModelHtml(teacherInstructions) }} />\n ))}\n\n {prompt && (\n <PromptContainer>\n <PreviewPrompt prompt={prompt} />\n </PromptContainer>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <InputAndKeypadContainer>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n onSubFieldFocus={this.onSubFieldFocus}\n showKeypad={!!activeAnswerBlock}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <Expression\n ref={tooltipContainerRef}\n isIncorrect={!emptyResponse && !correct && !showCorrect}\n isCorrect={!emptyResponse && (correct || showCorrect)}\n showCorrectness={!emptyResponse && disabled && correctness && !view}\n correctAnswerShown={showCorrect}\n printCorrect={printMode && alwaysShowCorrect}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={!!activeAnswerBlock}\n slotProps={{\n popper: {\n container: tooltipContainerRef?.current || undefined,\n placement: 'bottom-start',\n sx: {\n backgroundColor: 'transparent',\n width: '650px',\n opacity: 1,\n '& .MuiTooltip-arrow': {\n display: 'none',\n },\n },\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n {\n name: 'preventOverflow',\n enabled: true,\n options: {\n boundary: 'viewport',\n padding: 8,\n },\n },\n {\n name: 'computeStyles',\n options: {\n adaptive: true,\n gpuAcceleration: true,\n },\n },\n {\n name: 'flip',\n enabled: false,\n },\n ],\n },\n tooltip: {\n sx: {\n fontSize: 'initial',\n backgroundColor: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n boxShadow: 'none',\n },\n },\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <ResponseContainer\n data-keypad={true}\n key={answerId}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(additionalKeys, equationEditor),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </ResponseContainer>\n )) ||\n null,\n )}\n >\n <div>\n <mq.Static\n className=\"static-math\"\n ref={(mqStatic) => {\n if (mqStatic) this.mqStatic = mqStatic;\n }}\n latex={staticLatex}\n language={language}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </div>\n </Tooltip>\n </Expression>\n )}\n </InputAndKeypadContainer>\n </Readable>\n )}\n\n {viewMode && displayNote && <Note dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${sanitizeModelHtml(note)}` }} />}\n\n {viewMode &&\n showRationale &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: translator.t('common:showRationale', { lng: language }), visible: translator.t('common:hideRationale', { lng: language }) }}>\n <div dangerouslySetInnerHTML={{ __html: sanitizeModelHtml(rationale) }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: sanitizeModelHtml(rationale) }} />\n ))}\n </MainContent>\n );\n\n if (tooltipModeEnabled && (showCorrectAnswerToggle || showTeacherInstructions || showRationale || feedback)) {\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 <StyledTooltip\n interactive\n enterTouchDelay={0}\n placement=\"bottom-start\"\n slotProps={{\n tooltip: {\n sx: (theme) => ({\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing(2),\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n }),\n },\n popper: {\n sx: {\n opacity: 1,\n },\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 2],\n },\n },\n ],\n },\n }}\n title={\n <div>\n <MainContent>\n {showCorrectAnswerToggle && (\n <StyledCorrectAnswerToggle\n language={language}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </MainContent>\n\n {showTeacherInstructions && (\n <StyledCollapsible\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: translator.t('common:showTeacherInstructions', { lng: language }),\n visible: translator.t('common:hideTeacherInstructions', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </StyledCollapsible>\n )}\n {displayNote && hasText(note) && (\n <StyledCollapsible\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </StyledCollapsible>\n )}\n\n {showRationale && (\n <StyledCollapsible\n key=\"collapsible-rationale\"\n labels={{\n hidden: translator.t('common:showRationale', { lng: language }),\n visible: translator.t('common:hideRationale', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </StyledCollapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n {midContent}\n </StyledTooltip>\n </StyledUiLayout>\n );\n }\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 {midContent}\n </StyledUiLayout>\n );\n }\n}\n\n// Helper function to get class names for HTML string generation\nconst getBlockClassNames = () => {\n return {\n blockContainer: 'block-container',\n blockResponse: 'block-response',\n blockMath: 'block-math',\n };\n};\n\n// CSS for block classes used in HTML string generation\nif (typeof document !== 'undefined') {\n const styleId = 'math-inline-block-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 color: grey;\n background: #f5f5f5;\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 flex-shrink: 0;\n flex-grow: 0;\n flex-basis: auto;\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-grow: 1;\n }\n .block-math > .mq-math-mode > .mq-hasCursor > .mq-cursor {\n display: none;\n }\n .sr-only {\n position: absolute;\n left: -10000px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n }\n .static-math > .mq-root-block > .mq-editable-field {\n border-color: ${color.text()};\n }\n `;\n document.head.appendChild(style);\n }\n}\n\nconst StyledUiLayout: any = styled(UiLayout)(() => ({\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n}));\n\nconst StyledTooltip: any = styled(Tooltip)({\n // Styles applied via slotProps.sx below\n});\n\nconst PromptContainer: any = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst MainContent: any = styled('div')({\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n});\n\nconst Note: any = styled('div')(({ theme }) => ({\n paddingBottom: theme.spacing(2),\n}));\n\nconst StyledCollapsible: any = styled(Collapsible)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst ResponseContainer: any = styled('div')(({ theme }) => ({\n zIndex: 10,\n minWidth: '400px',\n marginTop: theme.spacing(2),\n}));\n\nconst Expression: any = styled('div', {\n shouldForwardProp: (prop) =>\n !['isIncorrect', 'isCorrect', 'showCorrectness', 'correctAnswerShown', 'printCorrect'].includes(prop),\n})(({ theme, isIncorrect, isCorrect, showCorrectness, correctAnswerShown, printCorrect }) => {\n const borderColor = isIncorrect ? color.incorrect() : isCorrect ? color.correct() : undefined;\n\n return {\n maxWidth: 'fit-content',\n padding: theme.spacing(0.25),\n ...(showCorrectness && {\n border: borderColor ? `2px solid ${borderColor} !important` : '2px solid',\n }),\n ...(!showCorrectness &&\n borderColor && {\n borderColor: `${borderColor} !important`,\n }),\n ...(correctAnswerShown && {\n padding: theme.spacing(1),\n letterSpacing: '0.5px',\n }),\n ...(printCorrect && {\n border: `2px solid ${color.correct()} !important`,\n }),\n '& .mq-math-mode': {\n '& .mq-root-block': {\n paddingRight: '0 !important',\n paddingLeft: '0 !important',\n '& .mq-editable-field': {\n minWidth: '10px',\n padding: theme.spacing(0.4),\n },\n },\n '& sup': {\n top: 0,\n },\n },\n };\n});\n\nconst InputAndKeypadContainer: any = styled('div')({\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n});\n\nconst PrintContainer: any = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n pointerEvents: 'none',\n}));\n\nconst SrOnly: any = styled('h2')({\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n});\n\nconst StyledCorrectAnswerToggle: any = styled(CorrectAnswerToggle)(({ theme }) => ({\n color: color.text(),\n marginBottom: theme.spacing(2),\n}));\n\nexport default Main;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main-CjEk0ct_.js","names":[],"sources":["../../../../lib-react/correct-answer-toggle/dist/expander.js","../../../../lib-react/icons/dist/correct-response-icon.js","../../../../lib-react/correct-answer-toggle/dist/index.js","../../src/delivery/utils.ts","../../src/delivery/simple-question-block.tsx","../../src/delivery/main.tsx"],"sourcesContent":["import { styled as e } from \"@mui/material/styles\";\nimport { CSSTransition as t } from \"react-transition-group\";\nimport { jsx as n } from \"react/jsx-runtime\";\nimport { useRef as r } from \"react\";\nimport i from \"prop-types\";\n//#region src/expander.tsx\nvar a = \"height ease-in 300ms, opacity ease-in 300ms\", o = e(\"div\")(() => ({\n\tposition: \"relative\",\n\theight: 0,\n\toverflow: \"hidden\",\n\tdisplay: \"flex\",\n\tvisibility: \"hidden\",\n\twidth: 0,\n\t\"&.enter\": {\n\t\ttransition: a,\n\t\topacity: 1,\n\t\theight: \"auto\",\n\t\twidth: \"auto\",\n\t\tvisibility: \"visible\",\n\t\tminHeight: \"25px\"\n\t},\n\t\"&.enter-done\": {\n\t\theight: \"auto\",\n\t\tvisibility: \"visible\",\n\t\twidth: \"auto\",\n\t\tminHeight: \"25px\"\n\t},\n\t\"&.exit\": {\n\t\ttransition: a,\n\t\topacity: 0,\n\t\theight: 0,\n\t\tvisibility: \"visible\",\n\t\twidth: 0\n\t},\n\t\"&.exit-done\": {\n\t\topacity: 0,\n\t\tvisibility: \"hidden\",\n\t\theight: 0,\n\t\twidth: 0\n\t}\n})), s = (e) => {\n\tlet { show: i, children: a, className: s } = e, c = r(null);\n\treturn /* @__PURE__ */ n(t, {\n\t\tnodeRef: c,\n\t\tin: i,\n\t\tappear: !0,\n\t\tmountOnEnter: !1,\n\t\ttimeout: 300,\n\t\tclassNames: {\n\t\t\tenter: \"enter\",\n\t\t\tenterDone: \"enter-done\",\n\t\t\texit: \"exit\",\n\t\t\texitDone: \"exit-done\"\n\t\t},\n\t\tchildren: /* @__PURE__ */ n(o, {\n\t\t\tref: c,\n\t\t\tclassName: s,\n\t\t\tchildren: a\n\t\t})\n\t});\n};\ns.propTypes = {\n\tshow: i.bool.isRequired,\n\tclassName: i.string,\n\tchildren: i.oneOfType([i.arrayOf(i.node), i.node]).isRequired\n};\n//#endregion\nexport { s as default };\n","import \"react\";\nimport e from \"prop-types\";\nimport { jsx as t, jsxs as n } from \"react/jsx-runtime\";\nimport { styled as r } from \"@mui/material/styles\";\n//#region src/correct-response-icon.tsx\nvar i = ({ bgFill: e, fgFill: r }) => /* @__PURE__ */ n(\"svg\", {\n\t\"aria-hidden\": \"true\",\n\tfocusable: \"false\",\n\tpreserveAspectRatio: \"xMinYMin meet\",\n\tversion: \"1.1\",\n\tviewBox: \"-283 359 34 35\",\n\tstyle: { enableBackground: \"new -283 359 34 35\" },\n\tchildren: [\n\t\t/* @__PURE__ */ t(\"circle\", {\n\t\t\tcx: \"-266\",\n\t\t\tcy: \"375.9\",\n\t\t\tr: \"14\",\n\t\t\tfill: e\n\t\t}),\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\td: \"M-280.5,375.9c0-8,6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5s-6.5,14.5-14.5,14.5S-280.5,383.9-280.5,375.9z\\n M-279.5,375.9c0,7.4,6.1,13.5,13.5,13.5c7.4,0,13.5-6.1,13.5-13.5s-6.1-13.5-13.5-13.5C-273.4,362.4-279.5,368.5-279.5,375.9z\",\n\t\t\tfill: e\n\t\t}),\n\t\t/* @__PURE__ */ t(\"polygon\", {\n\t\t\tpoints: \"-265.4,383.1 -258.6,377.2 -261.2,374.2 -264.3,376.9 -268.9,368.7 -272.4,370.6\",\n\t\t\tfill: r\n\t\t})\n\t]\n});\ni.propTypes = {\n\tbgFill: e.string.isRequired,\n\tfgFill: e.string.isRequired\n};\nvar a = ({ bgFill: e, fgFill: r, borderFill: i }) => /* @__PURE__ */ n(\"svg\", {\n\t\"aria-hidden\": \"true\",\n\tfocusable: \"false\",\n\tpreserveAspectRatio: \"xMinYMin meet\",\n\tversion: \"1.1\",\n\tviewBox: \"-129.5 127 34 35\",\n\tstyle: { enableBackground: \"new -129.5 127 34 35\" },\n\tchildren: [\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\tstyle: {\n\t\t\t\tfill: \"#D0CAC5\",\n\t\t\t\tstroke: \"#E6E3E0\",\n\t\t\t\tstrokeWidth: .75,\n\t\t\t\tstrokeMiterlimit: 10\n\t\t\t},\n\t\t\td: \"M-112.9,160.4c-8.5,0-15.5-6.9-15.5-15.5c0-8.5,6.9-15.5,15.5-15.5s15.5,6.9,15.5,15.5\\n C-97.4,153.5-104.3,160.4-112.9,160.4z\"\n\t\t}),\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\tstyle: {\n\t\t\t\tfill: \"#B3ABA4\",\n\t\t\t\tstroke: \"#CDC7C2\",\n\t\t\t\tstrokeWidth: .5,\n\t\t\t\tstrokeMiterlimit: 10\n\t\t\t},\n\t\t\td: \"M-113.2,159c-8,0-14.5-6.5-14.5-14.5s6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5S-105.2,159-113.2,159z\"\n\t\t}),\n\t\t/* @__PURE__ */ t(\"circle\", {\n\t\t\tcx: \"-114.2\",\n\t\t\tcy: \"143.5\",\n\t\t\tr: \"14\",\n\t\t\tfill: e\n\t\t}),\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\td: \"M-114.2,158c-8,0-14.5-6.5-14.5-14.5s6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5S-106.2,158-114.2,158z\\n M-114.2,130c-7.4,0-13.5,6.1-13.5,13.5s6.1,13.5,13.5,13.5s13.5-6.1,13.5-13.5S-106.8,130-114.2,130z\",\n\t\t\tfill: i\n\t\t}),\n\t\t/* @__PURE__ */ t(\"polygon\", {\n\t\t\tpoints: \"-114.8,150.7 -121.6,144.8 -119,141.8 -115.9,144.5 -111.3,136.3 -107.8,138.2\",\n\t\t\tfill: r\n\t\t})\n\t]\n});\na.propTypes = {\n\tbgFill: e.string.isRequired,\n\tfgFill: e.string.isRequired,\n\tborderFill: e.string.isRequired\n};\nvar o = r(\"div\")(({ size: e }) => ({\n\twidth: e || \"25px\",\n\theight: e || \"25px\"\n})), s = ({ open: e, size: n }) => /* @__PURE__ */ t(o, {\n\tsize: n,\n\tchildren: e ? /* @__PURE__ */ t(i, {\n\t\tbgFill: \"#bce2ff\",\n\t\tfgFill: \"#1a9cff\"\n\t}) : /* @__PURE__ */ t(a, {\n\t\tbgFill: \"white\",\n\t\tfgFill: \"#1a9cff\",\n\t\tborderFill: \"#bce2ff\"\n\t})\n});\ns.propTypes = {\n\topen: e.bool,\n\tsize: e.string\n}, s.defaultProps = { open: !1 };\n//#endregion\nexport { s as default };\n","import e from \"./expander.js\";\nimport { styled as t } from \"@mui/material/styles\";\nimport { CSSTransition as n } from \"react-transition-group\";\nimport { CorrectResponse as r } from \"@pie-lib/icons\";\nimport * as i from \"@pie-lib/render-ui\";\nimport { Readable as a, color as o } from \"@pie-lib/render-ui\";\nimport { jsx as s, jsxs as c } from \"react/jsx-runtime\";\nimport l from \"react\";\nimport u from \"prop-types\";\nimport d from \"@pie-lib/translator\";\n//#region src/index.tsx\nfunction f(e) {\n\treturn typeof e == \"function\" || typeof e == \"object\" && !!e && typeof e.$$typeof == \"symbol\";\n}\nfunction p(e, t) {\n\treturn !e || f(e) ? e : f(e.default) ? e.default : t && f(e[t]) ? e[t] : t && f(e[t]?.default) ? e[t].default : e;\n}\nvar m = i, h = m.default, g = h && typeof h == \"object\" ? h : m, _ = p(a, \"Readable\") || p(g.Readable, \"Readable\"), { translator: v } = d, y = {\n\tWebkitTouchCallout: \"none\",\n\tWebkitUserSelect: \"none\",\n\tKhtmlUserSelect: \"none\",\n\tMozUserSelect: \"none\",\n\tmsUserSelect: \"none\",\n\tuserSelect: \"none\"\n}, b = t(\"div\")(() => ({\n\twidth: \"100%\",\n\tcursor: \"pointer\"\n})), x = t(\"button\")(() => ({\n\tmargin: \"0 auto\",\n\ttextAlign: \"center\",\n\tdisplay: \"flex\",\n\tminWidth: \"24px\",\n\tminHeight: \"24px\",\n\tpadding: 0,\n\tborder: 0,\n\tbackground: \"none\",\n\tcolor: \"inherit\",\n\tfont: \"inherit\",\n\tcursor: \"pointer\",\n\t\"&:focus-visible\": {\n\t\toutline: `2px solid ${o.buttonFocusOutline()}`,\n\t\toutlineOffset: \"-2px\"\n\t}\n})), S = t(\"div\")(() => ({\n\twidth: \"fit-content\",\n\tminWidth: \"140px\",\n\talignSelf: \"center\",\n\tverticalAlign: \"middle\",\n\tcolor: `var(--correct-answer-toggle-label-color, ${o.text()})`,\n\tfontWeight: \"normal\",\n\t...y\n})), C = t(\"div\")(() => ({\n\tposition: \"absolute\",\n\twidth: \"25px\",\n\t\"&.enter\": { opacity: \"0\" },\n\t\"&.enter-active\": {\n\t\topacity: \"1\",\n\t\ttransition: \"opacity 0.3s ease-in\"\n\t},\n\t\"&.exit\": { opacity: \"1\" },\n\t\"&.exit-active\": {\n\t\topacity: \"0\",\n\t\ttransition: \"opacity 0.3s ease-in\"\n\t}\n})), w = t(\"div\")(() => ({\n\twidth: \"25px\",\n\tmarginRight: \"5px\",\n\tdisplay: \"flex\",\n\talignItems: \"center\"\n})), T = class t extends l.Component {\n\tstatic propTypes = {\n\t\tonToggle: u.func,\n\t\ttoggled: u.bool,\n\t\tshow: u.bool,\n\t\thideMessage: u.string,\n\t\tshowMessage: u.string,\n\t\tclassName: u.string,\n\t\tlanguage: u.string\n\t};\n\tstatic defaultProps = {\n\t\tshowMessage: \"Show correct answer\",\n\t\thideMessage: \"Hide correct answer\",\n\t\tshow: !1,\n\t\ttoggled: !1\n\t};\n\tconstructor(e) {\n\t\tsuper(e), this.state = { show: e.show }, this.openIconRef = l.createRef(), this.closedIconRef = l.createRef(), t.defaultProps = {\n\t\t\t...t.defaultProps,\n\t\t\tshowMessage: v.t(\"common:showCorrectAnswer\", { lng: e.language }),\n\t\t\thideMessage: v.t(\"common:hideCorrectAnswer\", { lng: e.language })\n\t\t};\n\t}\n\tonClick() {\n\t\tthis.props.onToggle(!this.props.toggled);\n\t}\n\tonTouch(e) {\n\t\te.preventDefault(), this.props.onToggle(!this.props.toggled);\n\t}\n\tUNSAFE_componentWillReceiveProps(e) {\n\t\tthis.setState({ show: e.show }), e.language !== this.props?.language && (t.defaultProps = {\n\t\t\t...t.defaultProps,\n\t\t\tshowMessage: v.t(\"common:showCorrectAnswer\", { lng: e.language }),\n\t\t\thideMessage: v.t(\"common:hideCorrectAnswer\", { lng: e.language })\n\t\t});\n\t}\n\trender() {\n\t\tlet { className: t, toggled: i, hideMessage: a, showMessage: o } = this.props;\n\t\treturn /* @__PURE__ */ s(b, {\n\t\t\tclassName: t,\n\t\t\tchildren: /* @__PURE__ */ s(e, {\n\t\t\t\tshow: this.state.show,\n\t\t\t\tchildren: /* @__PURE__ */ c(x, {\n\t\t\t\t\ttype: \"button\",\n\t\t\t\t\t\"aria-pressed\": !!i,\n\t\t\t\t\tonClick: this.onClick.bind(this),\n\t\t\t\t\tonTouchEnd: this.onTouch.bind(this),\n\t\t\t\t\tchildren: [/* @__PURE__ */ c(w, { children: [/* @__PURE__ */ s(n, {\n\t\t\t\t\t\tnodeRef: this.openIconRef,\n\t\t\t\t\t\ttimeout: 400,\n\t\t\t\t\t\tin: i,\n\t\t\t\t\t\texit: !i,\n\t\t\t\t\t\tclassNames: {\n\t\t\t\t\t\t\tenter: \"enter\",\n\t\t\t\t\t\t\tenterActive: \"enter-active\",\n\t\t\t\t\t\t\texit: \"exit\",\n\t\t\t\t\t\t\texitActive: \"exit-active\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: /* @__PURE__ */ s(C, {\n\t\t\t\t\t\t\tref: this.openIconRef,\n\t\t\t\t\t\t\tchildren: /* @__PURE__ */ s(r, { open: i }, \"correct-open\")\n\t\t\t\t\t\t})\n\t\t\t\t\t}), /* @__PURE__ */ s(n, {\n\t\t\t\t\t\tnodeRef: this.closedIconRef,\n\t\t\t\t\t\ttimeout: 5e3,\n\t\t\t\t\t\tin: !i,\n\t\t\t\t\t\texit: i,\n\t\t\t\t\t\tclassNames: {\n\t\t\t\t\t\t\tenter: \"enter\",\n\t\t\t\t\t\t\tenterActive: \"enter-active\",\n\t\t\t\t\t\t\texit: \"exit\",\n\t\t\t\t\t\t\texitActive: \"exit-active\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: /* @__PURE__ */ s(C, {\n\t\t\t\t\t\t\tref: this.closedIconRef,\n\t\t\t\t\t\t\tchildren: /* @__PURE__ */ s(r, { open: i }, \"correct-closed\")\n\t\t\t\t\t\t})\n\t\t\t\t\t})] }), /* @__PURE__ */ s(_, {\n\t\t\t\t\t\tfalse: !0,\n\t\t\t\t\t\tchildren: /* @__PURE__ */ s(S, {\n\t\t\t\t\t\t\t\"aria-hidden\": !this.state.show,\n\t\t\t\t\t\t\tchildren: i ? a : o\n\t\t\t\t\t\t})\n\t\t\t\t\t})]\n\t\t\t\t})\n\t\t\t})\n\t\t});\n\t}\n};\n//#endregion\nexport { T as CorrectAnswerToggle, T as default };\n","// @ts-nocheck\n\nexport const ResponseTypes = {\n advanced: 'Advanced Multi',\n simple: 'Simple',\n};\n","// @ts-nocheck\n\nimport React from 'react';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport { mq } from '@pie-lib/math-input';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\nimport { color, createUniqueId } from '@pie-lib/render-ui';\n\nconst Expression: any = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n padding: theme.spacing(1),\n}));\n\nconst Static: any = styled('div', {\n shouldForwardProp: (prop) => !['isCorrect', 'isIncorrect'].includes(prop),\n})(({ theme, isCorrect, isIncorrect }) => ({\n color: color.text(),\n background: color.background(),\n border: isCorrect\n ? `2px solid ${color.correct()} !important`\n : isIncorrect\n ? `2px solid ${color.incorrect()} !important`\n : `1px solid ${color.primaryLight()}`,\n width: 'fit-content',\n fontSize: '1rem',\n padding: isCorrect || isIncorrect ? theme.spacing(1) : theme.spacing(0.5),\n letterSpacing: (isCorrect || isIncorrect) ? '0.5px' : 'normal',\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n}));\n\n// CSS for MathToolbar classNames (used as strings)\nif (typeof document !== 'undefined') {\n const styleId = 'math-inline-simple-question-styles';\n if (!document.getElementById(styleId)) {\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = `\n .response-editor {\n display: flex;\n justify-content: center;\n width: auto;\n max-width: fit-content;\n height: auto;\n text-align: left;\n padding: 8px;\n }\n .response-editor.mq-math-mode {\n border: 1px solid ${color.primaryLight()};\n }\n `;\n document.head.appendChild(style);\n }\n}\n\nexport class SimpleQuestionBlock extends React.Component {\n static propTypes = {\n onSimpleResponseChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n emptyResponse: PropTypes.bool,\n session: PropTypes.object.isRequired,\n showCorrect: PropTypes.bool,\n onSubFieldFocus: PropTypes.func.isRequired,\n showKeypad: PropTypes.bool.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n // A timestamp repeats when two items construct in the same millisecond, and the toolbar is\n // looked up in the whole document.\n this.mathToolBarId = createUniqueId('math-toolbar');\n }\n\n mathToolBarContainsTarget = (e) => document.getElementById(this.mathToolBarId).contains(e.target);\n\n handleClick: any = (e) => {\n try {\n if (!this.mathToolBarContainsTarget(e)) {\n this.setState({ showKeypad: false });\n }\n } catch (e) {\n // console.log(e.toString());\n }\n };\n\n onFocus: any = () => {\n const { onSubFieldFocus } = this.props;\n\n onSubFieldFocus(this.mathToolBarId);\n };\n\n render() {\n const { model, showCorrect, session, emptyResponse,onSimpleResponseChange, showKeypad } = this.props;\n const { config, disabled, correctness } = model || {};\n\n if (!config) {\n return;\n }\n\n const correct = correctness && correctness.correct;\n const { responses, equationEditor } = config;\n\n return (\n <Expression data-keypad={true}>\n {showCorrect || disabled ? (\n <Static\n isIncorrect={!emptyResponse && !correct && !showCorrect}\n isCorrect={!emptyResponse && (correct || showCorrect)}\n >\n <mq.Static\n latex={showCorrect ? responses && responses.length && responses[0].answer : session.response || ''}\n />\n </Static>\n ) : (\n <div id={this.mathToolBarId}>\n <MathToolbar\n classNames={{ editor: 'response-editor' }}\n latex={session.response}\n keypadMode={equationEditor}\n onChange={onSimpleResponseChange}\n onDone={() => {}}\n onFocus={this.onFocus}\n controlledKeypad={true}\n showKeypad={showKeypad}\n hideDoneButton={true}\n />\n </div>\n )}\n </Expression>\n );\n }\n}\n\nexport default SimpleQuestionBlock;\n","// @ts-nocheck\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { mq, HorizontalKeypad, updateSpans, registerEmbed, applyStaticMath } from '@pie-lib/math-input';\nimport { Feedback as FeedbackImport, Collapsible as CollapsibleImport, Readable as ReadableImport, hasText, hasMedia, PreviewPrompt as PreviewPromptImport, UiLayout as UiLayoutImport } from '@pie-lib/render-ui';\n\nfunction isRenderableReactInteropType(value: any) {\n return (\n typeof value === 'function' ||\n (typeof value === 'object' && value !== null && typeof value.$$typeof === 'symbol')\n );\n}\n\nfunction unwrapReactInteropSymbol(maybeSymbol: any, namedExport?: string) {\n if (!maybeSymbol) return maybeSymbol;\n if (isRenderableReactInteropType(maybeSymbol)) return maybeSymbol;\n if (isRenderableReactInteropType(maybeSymbol.default)) return maybeSymbol.default;\n if (namedExport && isRenderableReactInteropType(maybeSymbol[namedExport])) {\n return maybeSymbol[namedExport];\n }\n if (namedExport && isRenderableReactInteropType(maybeSymbol[namedExport]?.default)) {\n return maybeSymbol[namedExport].default;\n }\n return maybeSymbol;\n}\nimport * as RenderUiNamespace from '@pie-lib/render-ui';\nconst renderUiNamespaceAny = RenderUiNamespace as any;\nconst renderUiDefaultMaybe = renderUiNamespaceAny['default'];\nconst renderUi =\n renderUiDefaultMaybe && typeof renderUiDefaultMaybe === 'object'\n ? renderUiDefaultMaybe\n : renderUiNamespaceAny;\nconst UiLayout = unwrapReactInteropSymbol(UiLayoutImport, 'UiLayout') || unwrapReactInteropSymbol(renderUi.UiLayout, 'UiLayout');\nconst PreviewPrompt = unwrapReactInteropSymbol(PreviewPromptImport, 'PreviewPrompt') || unwrapReactInteropSymbol(renderUi.PreviewPrompt, 'PreviewPrompt');\nconst Readable = unwrapReactInteropSymbol(ReadableImport, 'Readable') || unwrapReactInteropSymbol(renderUi.Readable, 'Readable');\nconst Collapsible = unwrapReactInteropSymbol(CollapsibleImport, 'Collapsible') || unwrapReactInteropSymbol(renderUi.Collapsible, 'Collapsible');\nconst Feedback = unwrapReactInteropSymbol(FeedbackImport, 'Feedback') || unwrapReactInteropSymbol(renderUi.Feedback, 'Feedback');\nimport { renderMath } from '@pie-element/shared-math-rendering-mathjax';\nimport { styled } from '@mui/material/styles';\nimport Tooltip from '@mui/material/Tooltip';\nimport { ResponseTypes } from './utils.js';\nimport { isEmpty, isEqual } from '@pie-element/shared-lodash';\nimport SimpleQuestionBlock from './simple-question-block.js';\nimport { color, createUniqueId } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\nimport ReactDOM from 'react-dom';\nimport { sanitizeModelHtml } from '@pie-element/shared-utils';\nconst { translator } = Translator;\nlet registered = false;\n\nconst NEWLINE_LATEX = /\\\\newline/g;\nconst REGEX = /{{response}}/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction isChildOfCurrentPieElement(child, parent) {\n let node = child;\n while (node !== null) {\n if (parent && node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction prepareForStatic(model, state) {\n const { config, disabled } = model || {};\n const { expression, responses, printMode, alwaysShowCorrect } = config || {};\n\n if (config && expression) {\n const modelExpression = expression;\n\n if (state.showCorrect) {\n return responses && responses.length && responses[0].answer;\n }\n\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n return (modelExpression || '')\n .replace(REGEX, function () {\n const answer = state.session.answers[`r${answerBlocks}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\newline ';\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${blankSpace.repeat(3)}}`;\n }\n\n if (disabled) {\n return `\\\\embed{answerBlock}[r${answerBlocks++}]`;\n }\n\n return `\\\\MathQuillMathField[r${answerBlocks++}]{${(answer && answer.value) || ''}}`;\n })\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction parseAnswers(session, model) {\n const answers = {};\n\n if (model.config && model.config.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n (model.config.expression || '').replace(REGEX, () => {\n answers[`r${answerBlocks}`] = {\n value:\n (session &&\n session.answers &&\n session.answers[`r${answerBlocks}`] &&\n session.answers[`r${answerBlocks}`].value) ||\n '',\n };\n\n answerBlocks += 1;\n });\n }\n return answers;\n}\n\nexport class Main extends React.Component {\n static propTypes = {\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { model, session } = props;\n const answers = parseAnswers(session, model);\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: this.props.model.config.alwaysShowCorrect || false,\n tooltipContainerRef: React.createRef(),\n };\n this.instructionsIdPrefix = createUniqueId('math-inline-instructions');\n }\n\n UNSAFE_componentWillMount() {\n if (typeof window !== 'undefined') {\n if (!registered) {\n // The embed is registered once for every item on the page, so it marks each block by its\n // response id rather than taking it as a DOM id, which a second item would repeat.\n registerEmbed('answerBlock', (data) => {\n const classNames = getBlockClassNames();\n return {\n htmlString: `<div class=\"${classNames.blockContainer}\">\n <div class=\"${classNames.blockResponse}\" data-answer-block-index=\"${data}\">R</div>\n <div class=\"${classNames.blockMath}\">\n <span data-answer-block=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate: any = () => {\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(`[data-answer-block=\"${answerId}\"]`);\n const indexEl = this.root.querySelector(`[data-answer-block-index=\"${answerId}\"]`);\n // const correct = model.correctness && model.correctness.correct;\n\n if (el) {\n const answer = answers[answerId];\n\n applyStaticMath(el, (answer && answer.value) || '');\n\n if (!model.view) {\n // for now, we're not going to be showing individual response correctness\n // TODO re-attach the classes once we are\n // el.parentElement.parentElement.classList.add(\n // correct ? 'correct' : 'incorrect'\n // );\n } else {\n el.parentElement.parentElement.classList.remove('correct');\n el.parentElement.parentElement.classList.remove('incorrect');\n }\n\n // For now, we're not going to be indexing response blocks\n // TODO go back to indexing once we support individual response correctness\n // indexEl.textContent = `R${idx + 1}`;\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n countResponseOccurrences(expression) {\n const pattern = /\\{\\{response\\}\\}/g;\n const matches = expression?.match(pattern);\n\n return matches ? matches.length : 0;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { config } = this.props.model;\n const { config: nextConfig = {} } = nextProps.model || {};\n\n const { session } = this.props;\n const { session: nextSession = {} } = nextProps || {};\n\n // in case session props changed in parent, we need to catch this and update local state\n // example: when env is changing in pieoneer\n if (session && nextSession && !isEqual(session.answers, nextSession.answers)) {\n this.setState({\n session: { ...nextSession, answers: parseAnswers(nextSession, this.props.model) },\n });\n }\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n config.note &&\n config.language &&\n config.language !== nextConfig.language &&\n config.note === translator.t('mathInline.primaryCorrectWithAlternates', { lng: config.language })\n ) {\n config.note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: nextConfig.language });\n }\n\n if ((config.env && config.env.mode !== 'evaluate') || (nextConfig.env && nextConfig.env.mode !== 'evaluate')) {\n this.setState({ ...this.state.session, showCorrect: false });\n }\n\n if (nextConfig.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n if (this.countResponseOccurrences(config.expression) < this.countResponseOccurrences(nextConfig.expression)) {\n setTimeout(() => this.updateAria(), 100);\n }\n\n if (\n (config && config.responses && config.responses.length !== nextConfig.responses.length) ||\n (!config && nextConfig && nextConfig.responses) ||\n (config && nextConfig && config.expression !== nextConfig.expression)\n ) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n let answerBlocks = 1; // assume one at least\n\n // build out local state model using responses declared in expression\n (nextConfig.expression || '').replace(REGEX, () => {\n newAnswers[`r${answerBlocks}`] = {\n value: (answers && answers[`r${answerBlocks}`] && answers[`r${answerBlocks}`].value) || '',\n };\n answerBlocks++;\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: newAnswers,\n },\n }),\n this.handleAnswerBlockDomUpdate,\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n this.updateAria();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.handleAnswerBlockDomUpdate();\n\n const prevResponseType = prevProps.model?.config?.responseType;\n const currentResponseType = this.props.model?.config?.responseType;\n\n if (prevResponseType !== currentResponseType || prevProps.model?.language !== this.props.model?.language) {\n this.updateAria();\n }\n }\n\n updateAria: any = () => {\n if (this.root) {\n // Update aria-hidden for .mq-selectable elements\n const selectableElements = this.root.querySelectorAll('.mq-selectable');\n selectableElements.forEach((elem) => elem.setAttribute('aria-hidden', 'true'));\n\n // Describe the keypad shortcuts on each textarea; @pie-lib/math-input names it\n const instructions = translator.t('mathInline.keypadInstructions', { lng: this.props.model?.language });\n const textareaElements = this.root.querySelectorAll('textarea');\n textareaElements.forEach((elem, index) => {\n const instructionsId = `${this.instructionsIdPrefix}-${index}`;\n\n // Find the parent element that contains the textarea\n const parent = elem.closest('.mq-textarea');\n\n if (parent) {\n // Create or find the instructions element within the parent\n let instructionsElement = parent.querySelector(`#${instructionsId}`);\n\n if (!instructionsElement) {\n instructionsElement = document.createElement('span');\n instructionsElement.id = instructionsId;\n instructionsElement.className = 'sr-only';\n parent.insertBefore(instructionsElement, elem);\n }\n\n instructionsElement.textContent = instructions;\n elem.setAttribute('aria-describedby', instructionsId);\n }\n });\n }\n };\n\n focusFirstKeypadElement: any = () => {\n setTimeout(() => {\n const keypadElement = document.querySelector('[data-keypad]');\n\n if (keypadElement) {\n const firstButton = keypadElement.querySelector(\"button, [role='button']\");\n\n if (firstButton) {\n firstButton.focus();\n }\n }\n }, 0);\n };\n\n handleKeyDown: any = (event, id) => {\n const isTrigerredFromActualPieElement = isChildOfCurrentPieElement(event.target, this.root);\n const isAnswerInputFocused =\n this.mqStatic && this.mqStatic.inputRef?.current\n ? this.mqStatic.inputRef?.current.contains(document.activeElement)\n : !!document.activeElement?.closest('.mq-editable-field');\n const { key, type } = event;\n const isClickOrTouchEvent = type === 'click' || type === 'touchstart';\n\n if (isAnswerInputFocused && (key === 'ArrowDown' || isClickOrTouchEvent)) {\n if (this.state.activeAnswerBlock !== id && isTrigerredFromActualPieElement) {\n this.cleanupKeyDownListener();\n this.setState({ activeAnswerBlock: id }, () => {\n this.onSubFieldFocus(id);\n if (key === 'ArrowDown') {\n this.focusFirstKeypadElement();\n }\n });\n }\n } else if (event.key === 'Escape') {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n onSubFieldFocus: any = (id) => {\n if (!this.handleEvent) {\n this.handleEvent = (event) => {\n this.handleKeyDown(event, id);\n };\n\n document.addEventListener('keydown', this.handleEvent);\n document.addEventListener('click', this.handleEvent);\n document.addEventListener('touchstart', this.handleEvent);\n }\n };\n\n cleanupKeyDownListener: any = () => {\n if (this.handleEvent) {\n document.removeEventListener('keydown', this.handleEvent);\n document.removeEventListener('click', this.handleEvent);\n document.removeEventListener('touchstart', this.handleEvent);\n this.handleEvent = null;\n }\n };\n\n componentWillUnmount() {\n if (this.cleanupKeyDownListener) {\n this.cleanupKeyDownListener();\n }\n }\n\n onDone: any = () => {};\n\n onSimpleResponseChange: any = (response) => {\n this.setState((state) => ({ session: { ...state.session, response } }), this.callOnSessionChange);\n };\n\n toNodeData: any = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n };\n\n setInput: any = (input) => {\n this.input = input;\n };\n\n onClick: any = (data) => {\n const scrollX = window.scrollX;\n const scrollY = window.scrollY;\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach((vv) => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n requestAnimationFrame(() => {\n window.scrollTo(scrollX, scrollY);\n requestAnimationFrame(() => window.scrollTo(scrollX, scrollY));\n });\n };\n\n callOnSessionChange: any = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect: any = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged: any = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n const scrollX = window.scrollX;\n const scrollY = window.scrollY;\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n completeAnswer: this.mqStatic && this.mqStatic.mathField.latex(),\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n () => {\n this.callOnSessionChange();\n requestAnimationFrame(() => {\n window.scrollTo(scrollX, scrollY);\n });\n },\n );\n }\n };\n\n getFieldName: any = (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: any = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n // our keypad is in tooltip\n // in this way we see if event was triggered from the keypad\n const isKeypadOpen = currentTarget && currentTarget.closest('[role=tooltip]');\n\n function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n // if event was trigered from the keypad, avoid closing the keypad\n if (!isKeypadOpen) {\n this.setState({ activeAnswerBlock: '' });\n }\n }\n // else {\n // // Just for debugging purpose:\n // console.log('\\n\\nNew childWithDataKeypad', childWithDataKeypad);\n //\n // if (IS_SAFARI) {\n // // (IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.children[0]?.attributes?.['data-keypad'])\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]?.children[0]);\n // } else {\n // // (!IS_SAFARI && !relatedTarget?.offsetParent?.children[0]?.attributes?.['data-keypad']) ||\n // console.log('What was being used', relatedTarget?.offsetParent?.children[0]);\n // }\n // }\n };\n\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector(\"[role='tooltip']\");\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n render() {\n const { model } = this.props;\n const { activeAnswerBlock, showCorrect, session, tooltipContainerRef } = this.state;\n const {\n config,\n correctness,\n disabled,\n extraCSSRules,\n view,\n teacherInstructions,\n rationale,\n feedback,\n animationsDisabled,\n printMode,\n alwaysShowCorrect,\n language,\n } = model || {};\n\n if (!config) {\n return null;\n }\n\n const {\n showNote,\n note,\n prompt,\n responses,\n responseType,\n equationEditor,\n customKeys,\n env: { mode, role } = {},\n } = config || {};\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const tooltipModeEnabled = disabled && correctness;\n const additionalKeys = generateAdditionalKeys(customKeys);\n const correct = correctness && correctness.correct;\n const staticLatex = prepareForStatic(model, this.state) || '';\n const viewMode = disabled && !correctness;\n const studentPrintMode = printMode && !alwaysShowCorrect;\n const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));\n const showTeacherInstructions =\n teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const printView = (\n <PrintContainer>\n <mq.Static\n className=\"static-math\"\n ref={(mqStatic) => {\n if (mqStatic) this.mqStatic = mqStatic;\n }}\n latex={staticLatex}\n language={language}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </PrintContainer>\n );\n\n const midContent = (\n <MainContent>\n {mode === 'gather' && (\n <SrOnly>{translator.t('mathInline.mathEquationResponseQuestion', { lng: language })}</SrOnly>\n )}\n\n {viewMode &&\n showTeacherInstructions &&\n (!animationsDisabled ? (\n <StyledCollapsible labels={{ hidden: translator.t('common:showTeacherInstructions', { lng: language }), visible: translator.t('common:hideTeacherInstructions', { lng: language }) }}>\n <div dangerouslySetInnerHTML={{ __html: sanitizeModelHtml(teacherInstructions) }} />\n </StyledCollapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: sanitizeModelHtml(teacherInstructions) }} />\n ))}\n\n {prompt && (\n <PromptContainer>\n <PreviewPrompt prompt={prompt} />\n </PromptContainer>\n )}\n\n {studentPrintMode ? (\n printView\n ) : (\n <Readable false>\n <InputAndKeypadContainer>\n {responseType === ResponseTypes.simple && (\n <SimpleQuestionBlock\n onSimpleResponseChange={this.onSimpleResponseChange}\n showCorrect={showCorrect}\n emptyResponse={emptyResponse}\n model={model}\n session={session}\n onSubFieldFocus={this.onSubFieldFocus}\n showKeypad={!!activeAnswerBlock}\n />\n )}\n\n {responseType === ResponseTypes.advanced && (\n <Expression\n ref={tooltipContainerRef}\n isIncorrect={!emptyResponse && !correct && !showCorrect}\n isCorrect={!emptyResponse && (correct || showCorrect)}\n showCorrectness={!emptyResponse && disabled && correctness && !view}\n correctAnswerShown={showCorrect}\n printCorrect={printMode && alwaysShowCorrect}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={!!activeAnswerBlock}\n slotProps={{\n popper: {\n container: tooltipContainerRef?.current || undefined,\n placement: 'bottom-start',\n sx: {\n backgroundColor: 'transparent',\n width: '650px',\n opacity: 1,\n '& .MuiTooltip-arrow': {\n display: 'none',\n },\n },\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n {\n name: 'preventOverflow',\n enabled: true,\n options: {\n boundary: 'viewport',\n padding: 8,\n },\n },\n {\n name: 'computeStyles',\n options: {\n adaptive: true,\n gpuAcceleration: true,\n },\n },\n {\n name: 'flip',\n enabled: false,\n },\n ],\n },\n tooltip: {\n sx: {\n fontSize: 'initial',\n backgroundColor: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n boxShadow: 'none',\n },\n },\n }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <ResponseContainer\n data-keypad={true}\n key={answerId}\n style={{\n // marginTop: this.mqStatic && this.mqStatic.input.offsetHeight - 20,\n width: getKeyPadWidth(additionalKeys, equationEditor),\n }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </ResponseContainer>\n )) ||\n null,\n )}\n >\n <div>\n <mq.Static\n className=\"static-math\"\n ref={(mqStatic) => {\n if (mqStatic) this.mqStatic = mqStatic;\n }}\n latex={staticLatex}\n language={language}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n </div>\n </Tooltip>\n </Expression>\n )}\n </InputAndKeypadContainer>\n </Readable>\n )}\n\n {viewMode && displayNote && <Note dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${sanitizeModelHtml(note)}` }} />}\n\n {viewMode &&\n showRationale &&\n (!animationsDisabled ? (\n <Collapsible labels={{ hidden: translator.t('common:showRationale', { lng: language }), visible: translator.t('common:hideRationale', { lng: language }) }}>\n <div dangerouslySetInnerHTML={{ __html: sanitizeModelHtml(rationale) }} />\n </Collapsible>\n ) : (\n <div dangerouslySetInnerHTML={{ __html: sanitizeModelHtml(rationale) }} />\n ))}\n </MainContent>\n );\n\n if (tooltipModeEnabled && (showCorrectAnswerToggle || showTeacherInstructions || showRationale || feedback)) {\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 <StyledTooltip\n interactive\n enterTouchDelay={0}\n placement=\"bottom-start\"\n slotProps={{\n tooltip: {\n sx: (theme) => ({\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing(2),\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n }),\n },\n popper: {\n sx: {\n opacity: 1,\n },\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 2],\n },\n },\n ],\n },\n }}\n title={\n <div>\n <MainContent>\n {showCorrectAnswerToggle && (\n <StyledCorrectAnswerToggle\n language={language}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </MainContent>\n\n {showTeacherInstructions && (\n <StyledCollapsible\n key=\"collapsible-teacher-instructions\"\n labels={{\n hidden: translator.t('common:showTeacherInstructions', { lng: language }),\n visible: translator.t('common:hideTeacherInstructions', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </StyledCollapsible>\n )}\n {displayNote && hasText(note) && (\n <StyledCollapsible\n key=\"collapsible-note\"\n labels={{\n hidden: translator.t('common:showNote', { lng: language }),\n visible: translator.t('common:hideNote', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={note} />\n </StyledCollapsible>\n )}\n\n {showRationale && (\n <StyledCollapsible\n key=\"collapsible-rationale\"\n labels={{\n hidden: translator.t('common:showRationale', { lng: language }),\n visible: translator.t('common:hideRationale', { lng: language }),\n }}\n >\n <PreviewPrompt prompt={rationale} />\n </StyledCollapsible>\n )}\n\n {feedback && <Feedback correctness={correctness.correctness} feedback={feedback} />}\n </div>\n }\n >\n {midContent}\n </StyledTooltip>\n </StyledUiLayout>\n );\n }\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 {midContent}\n </StyledUiLayout>\n );\n }\n}\n\n// Helper function to get class names for HTML string generation\nconst getBlockClassNames = () => {\n return {\n blockContainer: 'block-container',\n blockResponse: 'block-response',\n blockMath: 'block-math',\n };\n};\n\n// CSS for block classes used in HTML string generation\nif (typeof document !== 'undefined') {\n const styleId = 'math-inline-block-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 color: grey;\n background: #f5f5f5;\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 flex-shrink: 0;\n flex-grow: 0;\n flex-basis: auto;\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-grow: 1;\n }\n .block-math > .mq-math-mode > .mq-hasCursor > .mq-cursor {\n display: none;\n }\n .sr-only {\n position: absolute;\n left: -10000px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n }\n .static-math > .mq-root-block > .mq-editable-field {\n border-color: ${color.text()};\n }\n `;\n document.head.appendChild(style);\n }\n}\n\nconst StyledUiLayout: any = styled(UiLayout)(() => ({\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n}));\n\nconst StyledTooltip: any = styled(Tooltip)({\n // Styles applied via slotProps.sx below\n});\n\nconst PromptContainer: any = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst MainContent: any = styled('div')({\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n});\n\nconst Note: any = styled('div')(({ theme }) => ({\n paddingBottom: theme.spacing(2),\n}));\n\nconst StyledCollapsible: any = styled(Collapsible)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst ResponseContainer: any = styled('div')(({ theme }) => ({\n zIndex: 10,\n minWidth: '400px',\n marginTop: theme.spacing(2),\n}));\n\nconst Expression: any = styled('div', {\n shouldForwardProp: (prop) =>\n !['isIncorrect', 'isCorrect', 'showCorrectness', 'correctAnswerShown', 'printCorrect'].includes(prop),\n})(({ theme, isIncorrect, isCorrect, showCorrectness, correctAnswerShown, printCorrect }) => {\n const borderColor = isIncorrect ? color.incorrect() : isCorrect ? color.correct() : undefined;\n\n return {\n maxWidth: 'fit-content',\n padding: theme.spacing(0.25),\n ...(showCorrectness && {\n border: borderColor ? `2px solid ${borderColor} !important` : '2px solid',\n }),\n ...(!showCorrectness &&\n borderColor && {\n borderColor: `${borderColor} !important`,\n }),\n ...(correctAnswerShown && {\n padding: theme.spacing(1),\n letterSpacing: '0.5px',\n }),\n ...(printCorrect && {\n border: `2px solid ${color.correct()} !important`,\n }),\n '& .mq-math-mode': {\n '& .mq-root-block': {\n paddingRight: '0 !important',\n paddingLeft: '0 !important',\n '& .mq-editable-field': {\n minWidth: '10px',\n padding: theme.spacing(0.4),\n },\n },\n '& sup': {\n top: 0,\n },\n },\n };\n});\n\nconst InputAndKeypadContainer: any = styled('div')({\n position: 'relative',\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n});\n\nconst PrintContainer: any = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n pointerEvents: 'none',\n}));\n\nconst SrOnly: any = styled('h2')({\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n});\n\nconst StyledCorrectAnswerToggle: any = styled(CorrectAnswerToggle)(({ theme }) => ({\n color: color.text(),\n marginBottom: theme.spacing(2),\n}));\n\nexport default Main;\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { o as e } from "../rolldown-runtime-DY7j01NX.js";
|
|
2
2
|
import { a as t, m as n } from "../dist-Fa1nzZ4V.js";
|
|
3
|
-
import { R as r } from "../dist-
|
|
4
|
-
import { t as i } from "../main-
|
|
3
|
+
import { R as r } from "../dist-BHHPmy0B.js";
|
|
4
|
+
import { t as i } from "../main-CjEk0ct_.js";
|
|
5
5
|
import a from "react";
|
|
6
6
|
import { createRoot as o } from "react-dom/client";
|
|
7
7
|
var s = (0, (/* @__PURE__ */ e(n(), 1)).default)("pie-element:math-inline:print"), c = (e, t) => {
|
|
@@ -46,8 +46,11 @@ var s = (0, (/* @__PURE__ */ e(n(), 1)).default)("pie-element:math-inline:print"
|
|
|
46
46
|
disconnectedCallback() {
|
|
47
47
|
this._rerender.cancel(), this._root &&= (this._root.unmount(), null);
|
|
48
48
|
}
|
|
49
|
-
}
|
|
49
|
+
}, u = Object.freeze({
|
|
50
|
+
name: "@pie-element/math-inline",
|
|
51
|
+
version: "13.0.5"
|
|
52
|
+
});
|
|
50
53
|
//#endregion
|
|
51
|
-
export { l as default };
|
|
54
|
+
export { l as default, u as piePackage };
|
|
52
55
|
|
|
53
56
|
//# sourceMappingURL=index.js.map
|
package/dist/index.iife.js
CHANGED
|
@@ -82,7 +82,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
82
82
|
color: ${ug} !important;
|
|
83
83
|
background-color: ${mg} !important;
|
|
84
84
|
}
|
|
85
|
-
`;function gg(e=document){if(e.getElementById(`PIE-MJX-explorer-styles`))return;let t=e.createElement(`style`);t.id=lg,t.textContent=hg,e.head.appendChild(t)}var _g=/[-]/g,vg={"+":`positive`,"-":`negative`,"−":`negative`,"±":`plus or minus`,"∓":`minus or plus`},yg={"(":`open parenthesis`,"[":`open bracket`,"{":`open brace`,"⟨":`open angle bracket`,"⌊":`open floor`,"⌈":`open ceiling`},bg={")":`close parenthesis`,"]":`close bracket`,"}":`close brace`,"⟩":`close angle bracket`,"⌋":`close floor`,"⌉":`close ceiling`},xg={"!":`factorial`,"%":`percent`,"°":`degrees`,"′":`prime`,"″":`double prime`},Sg={"+":`plus`,"-":`minus`,"−":`minus`,"±":`plus or minus`,"∓":`minus or plus`,"×":`times`,"⋅":`times`,"·":`times`,"*":`times`,"÷":`divided by`,"/":`divided by`,"=":`equals`,"≠":`does not equal`,"<":`is less than`,">":`is greater than`,"≤":`is less than or equal to`,"≥":`is greater than or equal to`,"≈":`is approximately equal to`,"≡":`is equivalent to`,"∝":`is proportional to`,"∈":`is an element of`,"∉":`is not an element of`,"⊂":`is a subset of`,"⊆":`is a subset of or equal to`,"∪":`union`,"∩":`intersection`,"→":`right arrow`,"←":`left arrow`,"⇒":`implies`,"⇔":`if and only if`,"∑":`sum`,"∏":`product`,"∫":`integral`,"∞":`infinity`,"∠":`angle`,"⊥":`is perpendicular to`,"∥":`is parallel to`,"∴":`therefore`,",":`comma`,";":`semicolon`,":":`colon`,"|":`vertical bar`,"‖":`double vertical bar`,...yg,...bg,...xg},Cg=new Set([`|`,`‖`]),wg=new Set([`∑`,`∏`,`∫`,`∪`,`∩`]),Tg={α:`alpha`,β:`beta`,γ:`gamma`,δ:`delta`,ε:`epsilon`,θ:`theta`,λ:`lambda`,μ:`mu`,π:`pi`,ρ:`rho`,σ:`sigma`,τ:`tau`,φ:`phi`,ω:`omega`,Δ:`capital delta`,Σ:`capital sigma`,Ω:`capital omega`,"∞":`infinity`,sin:`sine`,cos:`cosine`,tan:`tangent`,sec:`secant`,csc:`cosecant`,cot:`cotangent`,ln:`natural log`,lim:`limit`},Eg={"¯":`bar`,"‾":`bar`,"―":`bar`,"^":`hat`,ˆ:`hat`,"~":`tilde`,"˜":`tilde`,"→":`vector`,"⃗":`vector`,"˙":`dot`},Dg=e=>(e.textContent??``).replace(_g,``).replace(/\s+/g,` `).trim(),Og=e=>e.replace(/\s+/g,` `).trim(),kg=e=>[...e.children];function Ag(e){return!e||[`mn`,`mi`,`mtext`,`mo`].includes(e.localName)?!0:[`mrow`,`mstyle`].includes(e.localName)&&e.children.length===1?Ag(e.children[0]):!1}function jg(e){let t=e?Dg(e):``;return/^\d{1,3}$/.test(t)?Number(t):void 0}function Mg(e){return`${e}${e%100>=11&&e%100<=13?`th`:{1:`st`,2:`nd`,3:`rd`}[e%10]??`th`}`}function Ng(e){return Tg[e]??e}function Pg(e){return Sg[e]??e}function Fg(e){let t=[],n=!1;for(let r of e){if(r.localName!==`mo`){t.push(Wg(r)),n=!0;continue}let e=Dg(r);e&&(!n&&vg[e]?t.push(vg[e]):e in xg?t.push(xg[e]):(t.push(Pg(e)),n=e in bg||Cg.has(e)&&n))}return t.filter(Boolean).join(` `)}function Ig(e){let[t,...n]=e,r=n[n.length-1],i=e=>e?.localName===`mo`&&[`|`,`‖`].includes(Dg(e)),a=n.slice(0,-1);if(a.length&&i(t)&&i(r)&&Dg(t)===Dg(r)&&!a.some(i)){let e=Og(Fg(a));return Dg(t)===`|`?`absolute value of ${e} end absolute value`:`norm of ${e} end norm`}return Fg(e)}function Lg(e,t){let n=e?Wg(e):``,r=t?Wg(t):``;return Ag(e)&&Ag(t)?`${n} over ${r}`:`the fraction with numerator ${n} and denominator ${r}`}function Rg(e,t,n){return n?`${t} of ${e}`:`${t} of ${e} end root`}function zg(e,t){let n=t?Dg(t):``;if(t&&Ag(t)){if(n===`2`)return`${e} squared`;if(n===`3`)return`${e} cubed`;if(n in xg)return`${e} ${xg[n]}`}let r=t?Wg(t):``;return Ag(t)?`${e} to the power of ${r}`:`${e} to the power of ${r} end power`}function Bg(e,t){let n=t?Wg(t):``;return Ag(t)?`${e} sub ${n}`:`${e} sub ${n} end sub`}function Vg(e,t,n){let r=Dg(e);if(r===`lim`)return`limit as ${t?Wg(t):``} of`;if(!wg.has(r))return;let i=t?`from ${Wg(t)}`:``,a=n?`to ${Wg(n)}`:``;return`${Pg(r)} ${i} ${a} of`}function Hg(e){let t=kg(e).filter(e=>[`mtr`,`mlabeledtr`].includes(e.localName)),n=t.map(e=>kg(e).filter(e=>e.localName===`mtd`)),r=Math.max(0,...n.map(e=>e.length)),i=n.map((e,t)=>`row ${t+1}: ${e.map(e=>Og(Fg(kg(e)))).join(`, `)}`);return`table with ${t.length} ${t.length===1?`row`:`rows`} and ${r} ${r===1?`column`:`columns`}. ${i.join(`. `)}`}function Ug(e){let t=e.getAttribute(`open`)??`(`,n=e.getAttribute(`close`)??`)`,r=(e.getAttribute(`separators`)??`,`).replace(/\s+/g,``).split(``),i=kg(e).map((e,t,n)=>t<n.length-1?`${Wg(e)} ${Pg(r[Math.min(t,r.length-1)]??`,`)}`:Wg(e));return[Pg(t),...i,Pg(n)].filter(Boolean).join(` `)}function Wg(e){let t=kg(e);switch(e.localName){case`mi`:return Ng(Dg(e));case`mn`:case`mtext`:case`ms`:return Dg(e);case`mo`:return Pg(Dg(e));case`mspace`:case`mphantom`:case`annotation`:case`annotation-xml`:return``;case`semantics`:return t[0]?Wg(t[0]):``;case`mfrac`:return Lg(t[0],t[1]);case`msqrt`:return Rg(Og(Fg(t)),`square root`,t.length===1&&Ag(t[0]));case`mroot`:{let e=jg(t[1]),n=e===2?`square root`:e===3?`cube root`:e?`${Mg(e)} root`:`root with index ${t[1]?Wg(t[1]):``}`;return Rg(t[0]?Wg(t[0]):``,n,Ag(t[0]))}case`msup`:return zg(t[0]?Wg(t[0]):``,t[1]);case`msub`:return Bg(t[0]?Wg(t[0]):``,t[1]);case`msubsup`:return(t[0]?Vg(t[0],t[1],t[2]):void 0)||zg(Bg(t[0]?Wg(t[0]):``,t[1]),t[2]);case`munder`:case`mover`:case`munderover`:{let[n,r,i]=t,a=e.localName===`mover`?void 0:r,o=e.localName===`munder`?void 0:e.localName===`mover`?r:i,s=n?Vg(n,a,o):void 0;if(s)return s;let c=n?Wg(n):``,l=e.localName===`mover`&&r?Eg[Dg(r)]:void 0;return l?l===`vector`?`vector ${c}`:`${c} ${l}`:[c,a?`with ${Wg(a)} below`:``,o?`with ${Wg(o)} above`:``].filter(Boolean).join(` `)}case`mfenced`:return Ug(e);case`mtable`:return Hg(e);case`mrow`:case`math`:return Ig(t);default:return t.length?Fg(t):Dg(e)}}function Gg(e){return Og(Wg(e))}var Kg=[`a[href]`,`button`,`label`,`summary`,...[`button`,`checkbox`,`combobox`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`radio`,`switch`,`tab`,`treeitem`].map(e=>`[role="${e}"]`)].join(`, `);function qg(e){if(e.hasAttribute(`aria-label`)||!e.closest(Kg))return;let t=e.querySelector(`math`),n=t?Gg(t):``;n&&e.setAttribute(`aria-label`,n)}function Jg(e){for(let t of e.querySelectorAll(`mjx-container`))qg(t)}var Yg=Symbol.for(`@pie-element/shared-math-rendering-mathjax/speech-worker-failed`);function Xg(){let e=globalThis;e[Yg]||(e[Yg]=!0,console.warn(`[math-rendering] MathJax's speech worker did not start, so speech, braille and the explorer are off. A content security policy must allow blob: workers, and scripts and fetches from the asset root. See ${Um}`))}function Zg(e){let t=e.webworker;if(!t||t.ready)return;e.options??={};let n=e.options;n.enableSpeech=!1,n.enableBraille=!1,n.speechError=()=>{},t.Post=()=>Promise.reject(Error(`The speech worker did not start`)),t.Terminate(),Xg()}function Qg(e){let t=e?.adaptor,n=t?.createWorker;!e||!t||!n||(t.createWorker=async(r,i)=>{let a=await n.call(t,r,i);return a.addEventListener(`error`,()=>Zg(e),{once:!0}),a})}`${Km}`;var $g={parallelogram:`\\lower.2em{\\Huge\\unicode{x25B1}}`,overarc:`\\overparen`,napprox:`\\not\\approx`,longdiv:`\\enclose{longdiv}`,abs:[`\\left|#1\\right|`,1]},e_=`[math-rendering] using $ is not advisable, please use $$..$$ or \\(...\\)`,t_=/\\\(|\\\[|\$\$|\\\$|\\begin\{|\\(?:eq)?ref\{/,n_=/\\\(|\\\[|\$|\\begin\{|\\(?:eq)?ref\{/,r_=/\\embed\{newLine\}\[\]/g,i_=[[`$$`,`$$`],[`$`,`$`],[`\\[`,`\\]`],[`\\(`,`\\)`]],a_=Symbol.for(`@pie-element/shared-math-rendering-mathjax/loading`),o_=`MJX-CHTML-styles`,s_=`PIE-MJX-SVG-styles`,c_=`PIE-MathJax-Menu-Settings`,l_={'mjx-container[overflow="linebreak"][display]':{overflow:`auto clip`,"min-width":`initial !important`}},u_=200,d_=201,f_=202;function p_(e){let t=[...e.matches(`mjx-container`)?[e]:[],...e.querySelectorAll(`mjx-container`)];for(let e of t)for(let t of[e,...e.querySelectorAll(`[data-latex],[data-latex-item]`)])t.removeAttribute(`data-latex`),t.removeAttribute(`data-latex-item`)}function m_(e){for(let[t,n]of i_)if(e.startsWith(t)&&e.endsWith(n))return e.substring(t.length,e.length-n.length);return e}function h_(e){return m_(e.includes(`\\displaystyle`)?e.replace(`\\displaystyle`,``).trim():e)}var g_=`mathjax_ignore`,__=`mathjax_process`;function v_(e,t){let n=e.closest(`.${g_}, .${__}`);return n!==null&&t.contains(n)&&!n.classList.contains(__)}function y_(e){for(let t of e.querySelectorAll(`[data-latex]`)){if(t.dataset.mathHandled||t.closest(`mjx-container`)||v_(t,e))continue;let n=t.textContent;n&&(t.textContent=`\\(${h_(n)}\\)`.replace(r_,`\\newline `),t.dataset.mathHandled=`true`)}}function b_(e){for(let t of e.querySelectorAll(`math`))t.closest(`mjx-container`)||t.setAttribute(`displaystyle`,`true`)}function x_(e,t){for(let t of e.querySelectorAll(`math`))if(!t.closest(`mjx-assistive-mml`))return!0;return(t?n_:t_).test(e.textContent??``)}function S_(e){return new Promise((t,n)=>{let{useSingleDollar:r=!1,accessibility:i=!0,loadFonts:a=!0,srcUrl:o}=e,s=eh(e,{}.url),c=Xm(),l={loader:{load:i?[`a11y/assistive-mml`]:[],failed:e=>n(e),"output/svg":{ready:e=>{let t=fh();return C_(t)&&w_(t),e}}},startup:{typeset:!1,ready:()=>{let e=fh(),r=e?.startup,i=C_(e);i&&(w_(e),T_(e,s.speechLocales),th(e?._?.a11y?.sre_ts?.locales,s.speechLocales)),r?.defaultReady?.(),i&&(E_(r?.document),D_(r?.document),r?.document?.addStyles?.(l_),Qg(r?.document)),Promise.resolve(r?.promise).then(()=>t(),n)}},tex:{macros:{...$g}},output:{displayOverflow:`linebreak`},options:{enableMenu:i,menuOptions:{settings:{assistiveMml:i,enrich:!1,inTabOrder:c}},a11y:{inTabOrder:c}}};r&&l.tex&&(console.warn(e_),l.tex.inlineMath=[[`$`,`$`],[`\\(`,`\\)`]],l.tex.processEscapes=!0),a||(l.chtml={fontURL:``});let u=nh(s.speechLocales);u&&l.options&&(l.options.sre={locale:u}),mh(l,{...s,srcUrl:o}).then(e=>{e||t()},n)})}function C_(e){return!!e?.version?.startsWith(`4.`)}function w_(e){let t=e?._?.output,n=t?.chtml_ts?.CHTML;n&&(n.STYLESHEETID=gh);let r=t?.svg_ts?.SVG;r&&(r.STYLESHEETID=s_)}function T_(e,t){let n=e?._?.ui?.menu?.Menu?.Menu;if(n){n.MENU_STORAGE=c_;try{let e=localStorage.getItem(c_);if(!e)return;let{assistiveMml:n,locale:r,...i}=JSON.parse(e),a=r===void 0||!t||t.has(r);if(n===void 0&&a)return;a&&r!==void 0&&(i.locale=r),Object.keys(i).length?localStorage.setItem(c_,JSON.stringify(i)):localStorage.removeItem(c_)}catch{}}}function E_(e){if(!e)return;let t=new WeakSet,n=e=>{let n=e.typesetRoot;!n||t.has(n)||(p_(n),t.add(n))};e.addRenderAction?.(`pie-strip-latex`,d_,e=>{for(let t of e.math??[])n(t);return!1},e=>{let t=e.typesetRoot;return t&&p_(t),!1});let r=e.outputJax?.chtmlStyles;r?.id===o_&&(r.id=gh),A_()}function D_(e){let t=e=>{e.typesetRoot&&qg(e.typesetRoot)};e?.addRenderAction?.(`pie-name-math`,f_,e=>{for(let n of e.math??[])t(n);return!1},e=>(t(e),!1))}function O_(e){return e instanceof HTMLStyleElement&&_h.includes(e.id)}function k_(e){uh(`foreign-output-stylesheet`,`another MathJax added <style id="${e.id}"> to <head>`)}function A_(){let e=document.head,t=[...e.children].find(O_);if(t){k_(t);return}let n=new MutationObserver(e=>{for(let t of e){let e=[...t.addedNodes].find(O_);if(e){k_(e),n.disconnect();return}}});n.observe(e,{childList:!0})}function j_(e){let t=e?.math;if(!t?.remove)return;let n=[...t].filter(e=>(e.state?.()??0)>=u_&&e.typesetRoot?.isConnected===!1);if(n.length!==0){for(let e of[...n].reverse())e.clear?.();t.remove(...n)}}function M_(e){return new Promise((t,n)=>{let r=e.startup??{};e.startup=r;let i=r.ready;r.ready=()=>{let e=fh()?.startup;i?i.call(r):e?.defaultReady?.(),Promise.resolve(e?.promise).then(()=>t(),n)}})}function N_(e){let t=fh();return t?t.version?t.startup?.promise?Promise.resolve(t.startup.promise).then(()=>void 0):Promise.resolve():M_(t):S_(e)}function P_(e){return N_(e).then(()=>{let e=fh();e&&typeof e.typesetPromise!=`function`&&console.warn(`[mathjax-renderer] MathJax on this page has no typesetPromise; math stays untypeset.`)})}function F_(e){let t=hh,n=t[a_];return n||(n=P_(e),t[a_]=n),n}function I_(e={}){let t=e.useSingleDollar??!1;return async n=>{if(typeof window>`u`)return;let r=vh();r&&uh(`mathjax-3-global`,`window.MathJax is MathJax ${r}`),y_(n),Sh(n),b_(n),cg(n);let i=F_(e);if(!x_(n,t)){i.catch(()=>{});return}await i;let a=fh();if(await a?.startup?.promise,typeof a?.typesetPromise==`function`){gg(),j_(a.startup?.document);try{await a.typesetPromise([n])}catch(e){throw a.typesetClear?.([n]),e}p_(n),Jg(n)}}}var L_=`@pie-lib/math-rendering`,R_=`@pie-lib/math-rendering@2`,z_=`pie-print`,B_=50,V_=1e4,H_=null;function U_(){return!!window[R_]?.opts?.useSingleDollar}function W_(){return H_||=I_({useSingleDollar:U_()}),H_}function G_(){if(typeof window>`u`)return null;let e=window[L_];return typeof e?.renderMath==`function`&&e.renderMath!==Y_?e:null}function K_(e){let t=e;for(;t;){if(t instanceof Element&&t.localName===z_)return t;t=t instanceof ShadowRoot?t.host:t.parentNode}return null}function q_(){let e=window.renderMath;return typeof e==`function`?e:null}async function J_(e){let t=K_(e);if(!t)return null;let n=q_();if(n||t.mathRenderingModuleUrlImported!==!0)return n;let r=Date.now()+V_;for(;Date.now()<r;){await new Promise(e=>setTimeout(e,B_));let e=q_();if(e)return e}return null}var Y_=async e=>{if(typeof window>`u`)return;let t=typeof e==`string`,n;t?(n=document.createElement(`div`),n.innerHTML=e):n=e||document.body;let r=G_(),i=r||t?null:await J_(n);return r?(await r.renderMath?.(n),Jg(n)):i&&i!==Y_?(await i(n),Jg(n)):await W_()(n),t?n.innerHTML:void 0},X_=e=>`${e}-${Math.random().toString(36).slice(2,10)}`,Z_=e=>R.useState(()=>X_(e))[0],{translator:Q_}=Ye,$_=H(`button`)({display:`inline-block`,minHeight:`24px`,padding:0,border:0,background:`transparent`,font:`inherit`,textAlign:`inherit`,color:Bp(),cursor:`pointer`}),ev=H(`span`)({borderBottom:`1px dotted currentColor`}),tv=H(Vm)(({theme:e})=>({paddingTop:e.spacing(2)})),nv=class extends R.Component{static propTypes={className:I.string,children:I.object,labels:I.shape({visible:I.string,hidden:I.string}),language:I.string};static defaultProps={labels:{}};state={expanded:!1};panelId=X_(`pie-collapsible`);toggleExpanded=()=>{this.setState(e=>({expanded:!e.expanded}))};componentDidMount(){Y_(this.root)}componentDidUpdate(){Y_(this.root)}render(){let{labels:e,children:t,className:n,language:r}=this.props,{expanded:i}=this.state,a=i?e.visible||Q_.t(`common:hide`,{lng:r}):e.hidden||Q_.t(`common:show`,{lng:r});return(0,z.jsxs)(`div`,{className:n,ref:e=>this.root=e,children:[(0,z.jsx)(`div`,{children:(0,z.jsx)($_,{type:`button`,"aria-expanded":i,"aria-controls":this.panelId,onClick:this.toggleExpanded,children:(0,z.jsx)(ev,{children:a})})}),(0,z.jsx)(`div`,{id:this.panelId,children:(0,z.jsx)(tv,{in:i,timeout:{enter:225,exit:195},unmountOnExit:!0,children:t})})]})}};function rv(e){try{return e.matches(`:focus-visible`)}catch{}return!1}var iv=class e{static create(){return new e}static use(){let t=$c(e.create).current,[n,r]=R.useState(!1);return t.shouldMount=n,t.setShouldMount=r,R.useEffect(t.mountEffect,[n]),t}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=ov(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())};start(...e){this.mount().then(()=>this.ref.current?.start(...e))}stop(...e){this.mount().then(()=>this.ref.current?.stop(...e))}pulsate(...e){this.mount().then(()=>this.ref.current?.pulsate(...e))}};function av(){return iv.use()}function ov(){let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n}function sv(e){let{className:t,classes:n,pulsate:r=!1,rippleX:i,rippleY:a,rippleSize:o,in:s,onExited:c,timeout:l}=e,[u,d]=R.useState(!1),f=B(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),p={width:o,height:o,top:-(o/2)+a,left:-(o/2)+i},m=B(n.child,u&&n.childLeaving,r&&n.childPulsate);return!s&&!u&&d(!0),R.useEffect(()=>{if(!s&&c!=null){let e=setTimeout(c,l);return()=>{clearTimeout(e)}}},[c,s,l]),(0,z.jsx)(`span`,{className:f,style:p,children:(0,z.jsx)(`span`,{className:m})})}var cv=Zi(`MuiTouchRipple`,[`root`,`ripple`,`rippleVisible`,`ripplePulsate`,`child`,`childLeaving`,`childPulsate`]),lv=550,uv=Xn`
|
|
85
|
+
`;function gg(e=document){if(e.getElementById(`PIE-MJX-explorer-styles`))return;let t=e.createElement(`style`);t.id=lg,t.textContent=hg,e.head.appendChild(t)}var _g=/[-]/g,vg={"+":`positive`,"-":`negative`,"−":`negative`,"±":`plus or minus`,"∓":`minus or plus`},yg={"(":`open parenthesis`,"[":`open bracket`,"{":`open brace`,"⟨":`open angle bracket`,"⌊":`open floor`,"⌈":`open ceiling`},bg={")":`close parenthesis`,"]":`close bracket`,"}":`close brace`,"⟩":`close angle bracket`,"⌋":`close floor`,"⌉":`close ceiling`},xg={"!":`factorial`,"%":`percent`,"°":`degrees`,"′":`prime`,"″":`double prime`},Sg={"+":`plus`,"-":`minus`,"−":`minus`,"±":`plus or minus`,"∓":`minus or plus`,"×":`times`,"⋅":`times`,"·":`times`,"*":`times`,"÷":`divided by`,"/":`divided by`,"=":`equals`,"≠":`does not equal`,"<":`is less than`,">":`is greater than`,"≤":`is less than or equal to`,"≥":`is greater than or equal to`,"≈":`is approximately equal to`,"≡":`is equivalent to`,"∝":`is proportional to`,"∈":`is an element of`,"∉":`is not an element of`,"⊂":`is a subset of`,"⊆":`is a subset of or equal to`,"∪":`union`,"∩":`intersection`,"→":`right arrow`,"←":`left arrow`,"⇒":`implies`,"⇔":`if and only if`,"∑":`sum`,"∏":`product`,"∫":`integral`,"∞":`infinity`,"∠":`angle`,"⊥":`is perpendicular to`,"∥":`is parallel to`,"∴":`therefore`,",":`comma`,";":`semicolon`,":":`colon`,"|":`vertical bar`,"‖":`double vertical bar`,...yg,...bg,...xg},Cg=new Set([`|`,`‖`]),wg=new Set([`∑`,`∏`,`∫`,`∪`,`∩`]),Tg={α:`alpha`,β:`beta`,γ:`gamma`,δ:`delta`,ε:`epsilon`,θ:`theta`,λ:`lambda`,μ:`mu`,π:`pi`,ρ:`rho`,σ:`sigma`,τ:`tau`,φ:`phi`,ω:`omega`,Δ:`capital delta`,Σ:`capital sigma`,Ω:`capital omega`,"∞":`infinity`,sin:`sine`,cos:`cosine`,tan:`tangent`,sec:`secant`,csc:`cosecant`,cot:`cotangent`,ln:`natural log`,lim:`limit`},Eg={"¯":`bar`,"‾":`bar`,"―":`bar`,"^":`hat`,ˆ:`hat`,"~":`tilde`,"˜":`tilde`,"→":`vector`,"⃗":`vector`,"˙":`dot`},Dg=e=>(e.textContent??``).replace(_g,``).replace(/\s+/g,` `).trim(),Og=e=>e.replace(/\s+/g,` `).trim(),kg=e=>[...e.children];function Ag(e){return!e||[`mn`,`mi`,`mtext`,`mo`].includes(e.localName)?!0:[`mrow`,`mstyle`].includes(e.localName)&&e.children.length===1?Ag(e.children[0]):!1}function jg(e){let t=e?Dg(e):``;return/^\d{1,3}$/.test(t)?Number(t):void 0}function Mg(e){return`${e}${e%100>=11&&e%100<=13?`th`:{1:`st`,2:`nd`,3:`rd`}[e%10]??`th`}`}function Ng(e){return Tg[e]??e}function Pg(e){return Sg[e]??e}function Fg(e){let t=[],n=!1;for(let r of e){if(r.localName!==`mo`){t.push(Wg(r)),n=!0;continue}let e=Dg(r);e&&(!n&&vg[e]?t.push(vg[e]):e in xg?t.push(xg[e]):(t.push(Pg(e)),n=e in bg||Cg.has(e)&&n))}return t.filter(Boolean).join(` `)}function Ig(e){let[t,...n]=e,r=n[n.length-1],i=e=>e?.localName===`mo`&&[`|`,`‖`].includes(Dg(e)),a=n.slice(0,-1);if(a.length&&i(t)&&i(r)&&Dg(t)===Dg(r)&&!a.some(i)){let e=Og(Fg(a));return Dg(t)===`|`?`absolute value of ${e} end absolute value`:`norm of ${e} end norm`}return Fg(e)}function Lg(e,t){let n=e?Wg(e):``,r=t?Wg(t):``;return Ag(e)&&Ag(t)?`${n} over ${r}`:`the fraction with numerator ${n} and denominator ${r}`}function Rg(e,t,n){return n?`${t} of ${e}`:`${t} of ${e} end root`}function zg(e,t){let n=t?Dg(t):``;if(t&&Ag(t)){if(n===`2`)return`${e} squared`;if(n===`3`)return`${e} cubed`;if(n in xg)return`${e} ${xg[n]}`}let r=t?Wg(t):``;return Ag(t)?`${e} to the power of ${r}`:`${e} to the power of ${r} end power`}function Bg(e,t){let n=t?Wg(t):``;return Ag(t)?`${e} sub ${n}`:`${e} sub ${n} end sub`}function Vg(e,t,n){let r=Dg(e);if(r===`lim`)return`limit as ${t?Wg(t):``} of`;if(!wg.has(r))return;let i=t?`from ${Wg(t)}`:``,a=n?`to ${Wg(n)}`:``;return`${Pg(r)} ${i} ${a} of`}function Hg(e){let t=kg(e).filter(e=>[`mtr`,`mlabeledtr`].includes(e.localName)),n=t.map(e=>kg(e).filter(e=>e.localName===`mtd`)),r=Math.max(0,...n.map(e=>e.length)),i=n.map((e,t)=>`row ${t+1}: ${e.map(e=>Og(Fg(kg(e)))).join(`, `)}`);return`table with ${t.length} ${t.length===1?`row`:`rows`} and ${r} ${r===1?`column`:`columns`}. ${i.join(`. `)}`}function Ug(e){let t=e.getAttribute(`open`)??`(`,n=e.getAttribute(`close`)??`)`,r=(e.getAttribute(`separators`)??`,`).replace(/\s+/g,``).split(``),i=kg(e).map((e,t,n)=>t<n.length-1?`${Wg(e)} ${Pg(r[Math.min(t,r.length-1)]??`,`)}`:Wg(e));return[Pg(t),...i,Pg(n)].filter(Boolean).join(` `)}function Wg(e){let t=kg(e);switch(e.localName){case`mi`:return Ng(Dg(e));case`mn`:case`mtext`:case`ms`:return Dg(e);case`mo`:return Pg(Dg(e));case`mspace`:case`mphantom`:case`annotation`:case`annotation-xml`:return``;case`semantics`:return t[0]?Wg(t[0]):``;case`mfrac`:return Lg(t[0],t[1]);case`msqrt`:return Rg(Og(Fg(t)),`square root`,t.length===1&&Ag(t[0]));case`mroot`:{let e=jg(t[1]),n=e===2?`square root`:e===3?`cube root`:e?`${Mg(e)} root`:`root with index ${t[1]?Wg(t[1]):``}`;return Rg(t[0]?Wg(t[0]):``,n,Ag(t[0]))}case`msup`:return zg(t[0]?Wg(t[0]):``,t[1]);case`msub`:return Bg(t[0]?Wg(t[0]):``,t[1]);case`msubsup`:return(t[0]?Vg(t[0],t[1],t[2]):void 0)||zg(Bg(t[0]?Wg(t[0]):``,t[1]),t[2]);case`munder`:case`mover`:case`munderover`:{let[n,r,i]=t,a=e.localName===`mover`?void 0:r,o=e.localName===`munder`?void 0:e.localName===`mover`?r:i,s=n?Vg(n,a,o):void 0;if(s)return s;let c=n?Wg(n):``,l=e.localName===`mover`&&r?Eg[Dg(r)]:void 0;return l?l===`vector`?`vector ${c}`:`${c} ${l}`:[c,a?`with ${Wg(a)} below`:``,o?`with ${Wg(o)} above`:``].filter(Boolean).join(` `)}case`mfenced`:return Ug(e);case`mtable`:return Hg(e);case`mrow`:case`math`:return Ig(t);default:return t.length?Fg(t):Dg(e)}}function Gg(e){return Og(Wg(e))}var Kg=[`a[href]`,`button`,`label`,`summary`,...[`button`,`checkbox`,`combobox`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`radio`,`switch`,`tab`,`treeitem`].map(e=>`[role="${e}"]`)].join(`, `);function qg(e){if(e.hasAttribute(`aria-label`)||!e.closest(Kg))return;let t=e.querySelector(`math`),n=t?Gg(t):``;n&&e.setAttribute(`aria-label`,n)}function Jg(e){for(let t of e.querySelectorAll(`mjx-container`))qg(t)}var Yg=Symbol.for(`@pie-element/shared-math-rendering-mathjax/speech-worker-failed`);function Xg(){let e=globalThis;e[Yg]||(e[Yg]=!0,console.warn(`[math-rendering] MathJax's speech worker did not start, so speech, braille and the explorer are off. A content security policy must allow blob: workers, and scripts and fetches from the asset root. See ${Um}`))}function Zg(e){let t=e.webworker;if(!t||t.ready)return;e.options??={};let n=e.options;n.enableSpeech=!1,n.enableBraille=!1,n.speechError=()=>{},t.Post=()=>Promise.reject(Error(`The speech worker did not start`)),t.Terminate(),Xg()}function Qg(e){let t=e?.adaptor,n=t?.createWorker;!e||!t||!n||(t.createWorker=async(r,i)=>{let a=await n.call(t,r,i);return a.addEventListener(`error`,()=>Zg(e),{once:!0}),a})}`${Km}`;var $g={parallelogram:`\\lower.2em{\\Huge\\unicode{x25B1}}`,overarc:`\\overparen`,napprox:`\\not\\approx`,longdiv:`\\enclose{longdiv}`,abs:[`\\left|#1\\right|`,1],perpendicular:`\\perp`,divide:`\\div`},e_=`[math-rendering] using $ is not advisable, please use $$..$$ or \\(...\\)`,t_=/\\\(|\\\[|\$\$|\\\$|\\begin\{|\\(?:eq)?ref\{/,n_=/\\\(|\\\[|\$|\\begin\{|\\(?:eq)?ref\{/,r_=/\\embed\{newLine\}\[\]/g,i_=[[`$$`,`$$`],[`$`,`$`],[`\\[`,`\\]`],[`\\(`,`\\)`]],a_=Symbol.for(`@pie-element/shared-math-rendering-mathjax/loading`),o_=`MJX-CHTML-styles`,s_=`PIE-MJX-SVG-styles`,c_=`PIE-MathJax-Menu-Settings`,l_={'mjx-container[overflow="linebreak"][display]':{overflow:`auto clip`,"min-width":`initial !important`}},u_=200,d_=201,f_=202;function p_(e){let t=[...e.matches(`mjx-container`)?[e]:[],...e.querySelectorAll(`mjx-container`)];for(let e of t)for(let t of[e,...e.querySelectorAll(`[data-latex],[data-latex-item]`)])t.removeAttribute(`data-latex`),t.removeAttribute(`data-latex-item`)}function m_(e){for(let[t,n]of i_)if(e.startsWith(t)&&e.endsWith(n))return e.substring(t.length,e.length-n.length);return e}function h_(e){return m_(e.includes(`\\displaystyle`)?e.replace(`\\displaystyle`,``).trim():e)}var g_=`mathjax_ignore`,__=`mathjax_process`;function v_(e,t){let n=e.closest(`.${g_}, .${__}`);return n!==null&&t.contains(n)&&!n.classList.contains(__)}function y_(e){for(let t of e.querySelectorAll(`[data-latex]`)){if(t.dataset.mathHandled||t.closest(`mjx-container`)||v_(t,e))continue;let n=t.textContent;n&&(t.textContent=`\\(${h_(n)}\\)`.replace(r_,`\\newline `),t.dataset.mathHandled=`true`)}}function b_(e){for(let t of e.querySelectorAll(`math`))t.closest(`mjx-container`)||t.setAttribute(`displaystyle`,`true`)}function x_(e,t){for(let t of e.querySelectorAll(`math`))if(!t.closest(`mjx-assistive-mml`))return!0;return(t?n_:t_).test(e.textContent??``)}function S_(e){return new Promise((t,n)=>{let{useSingleDollar:r=!1,accessibility:i=!0,loadFonts:a=!0,srcUrl:o}=e,s=eh(e,{}.url),c=Xm(),l={loader:{load:i?[`a11y/assistive-mml`]:[],failed:e=>n(e),"output/svg":{ready:e=>{let t=fh();return C_(t)&&w_(t),e}}},startup:{typeset:!1,ready:()=>{let e=fh(),r=e?.startup,i=C_(e);i&&(w_(e),T_(e,s.speechLocales),th(e?._?.a11y?.sre_ts?.locales,s.speechLocales)),r?.defaultReady?.(),i&&(E_(r?.document),D_(r?.document),r?.document?.addStyles?.(l_),Qg(r?.document)),Promise.resolve(r?.promise).then(()=>t(),n)}},tex:{macros:{...$g}},output:{displayOverflow:`linebreak`},options:{enableMenu:i,menuOptions:{settings:{assistiveMml:i,enrich:!1,inTabOrder:c}},a11y:{inTabOrder:c}}};r&&l.tex&&(console.warn(e_),l.tex.inlineMath=[[`$`,`$`],[`\\(`,`\\)`]],l.tex.processEscapes=!0),a||(l.chtml={fontURL:``});let u=nh(s.speechLocales);u&&l.options&&(l.options.sre={locale:u}),mh(l,{...s,srcUrl:o}).then(e=>{e||t()},n)})}function C_(e){return!!e?.version?.startsWith(`4.`)}function w_(e){let t=e?._?.output,n=t?.chtml_ts?.CHTML;n&&(n.STYLESHEETID=gh);let r=t?.svg_ts?.SVG;r&&(r.STYLESHEETID=s_)}function T_(e,t){let n=e?._?.ui?.menu?.Menu?.Menu;if(n){n.MENU_STORAGE=c_;try{let e=localStorage.getItem(c_);if(!e)return;let{assistiveMml:n,locale:r,...i}=JSON.parse(e),a=r===void 0||!t||t.has(r);if(n===void 0&&a)return;a&&r!==void 0&&(i.locale=r),Object.keys(i).length?localStorage.setItem(c_,JSON.stringify(i)):localStorage.removeItem(c_)}catch{}}}function E_(e){if(!e)return;let t=new WeakSet,n=e=>{let n=e.typesetRoot;!n||t.has(n)||(p_(n),t.add(n))};e.addRenderAction?.(`pie-strip-latex`,d_,e=>{for(let t of e.math??[])n(t);return!1},e=>{let t=e.typesetRoot;return t&&p_(t),!1});let r=e.outputJax?.chtmlStyles;r?.id===o_&&(r.id=gh),A_()}function D_(e){let t=e=>{e.typesetRoot&&qg(e.typesetRoot)};e?.addRenderAction?.(`pie-name-math`,f_,e=>{for(let n of e.math??[])t(n);return!1},e=>(t(e),!1))}function O_(e){return e instanceof HTMLStyleElement&&_h.includes(e.id)}function k_(e){uh(`foreign-output-stylesheet`,`another MathJax added <style id="${e.id}"> to <head>`)}function A_(){let e=document.head,t=[...e.children].find(O_);if(t){k_(t);return}let n=new MutationObserver(e=>{for(let t of e){let e=[...t.addedNodes].find(O_);if(e){k_(e),n.disconnect();return}}});n.observe(e,{childList:!0})}function j_(e){let t=e?.math;if(!t?.remove)return;let n=[...t].filter(e=>(e.state?.()??0)>=u_&&e.typesetRoot?.isConnected===!1);if(n.length!==0){for(let e of[...n].reverse())e.clear?.();t.remove(...n)}}function M_(e){return new Promise((t,n)=>{let r=e.startup??{};e.startup=r;let i=r.ready;r.ready=()=>{let e=fh()?.startup;i?i.call(r):e?.defaultReady?.(),Promise.resolve(e?.promise).then(()=>t(),n)}})}function N_(e){let t=fh();return t?t.version?t.startup?.promise?Promise.resolve(t.startup.promise).then(()=>void 0):Promise.resolve():M_(t):S_(e)}function P_(e){return N_(e).then(()=>{let e=fh();e&&typeof e.typesetPromise!=`function`&&console.warn(`[mathjax-renderer] MathJax on this page has no typesetPromise; math stays untypeset.`)})}function F_(e){let t=hh,n=t[a_];return n||(n=P_(e),t[a_]=n),n}function I_(e={}){let t=e.useSingleDollar??!1;return async n=>{if(typeof window>`u`)return;let r=vh();r&&uh(`mathjax-3-global`,`window.MathJax is MathJax ${r}`),y_(n),Sh(n),b_(n),cg(n);let i=F_(e);if(!x_(n,t)){i.catch(()=>{});return}await i;let a=fh();if(await a?.startup?.promise,typeof a?.typesetPromise==`function`){gg(),j_(a.startup?.document);try{await a.typesetPromise([n])}catch(e){throw a.typesetClear?.([n]),e}p_(n),Jg(n)}}}var L_=`@pie-lib/math-rendering`,R_=`@pie-lib/math-rendering@2`,z_=`pie-print`,B_=50,V_=1e4,H_=null;function U_(){return!!window[R_]?.opts?.useSingleDollar}function W_(){return H_||=I_({useSingleDollar:U_()}),H_}function G_(){if(typeof window>`u`)return null;let e=window[L_];return typeof e?.renderMath==`function`&&e.renderMath!==Y_?e:null}function K_(e){let t=e;for(;t;){if(t instanceof Element&&t.localName===z_)return t;t=t instanceof ShadowRoot?t.host:t.parentNode}return null}function q_(){let e=window.renderMath;return typeof e==`function`?e:null}async function J_(e){let t=K_(e);if(!t)return null;let n=q_();if(n||t.mathRenderingModuleUrlImported!==!0)return n;let r=Date.now()+V_;for(;Date.now()<r;){await new Promise(e=>setTimeout(e,B_));let e=q_();if(e)return e}return null}var Y_=async e=>{if(typeof window>`u`)return;let t=typeof e==`string`,n;t?(n=document.createElement(`div`),n.innerHTML=e):n=e||document.body;let r=G_(),i=r||t?null:await J_(n);return r?(await r.renderMath?.(n),Jg(n)):i&&i!==Y_?(await i(n),Jg(n)):await W_()(n),t?n.innerHTML:void 0},X_=e=>`${e}-${Math.random().toString(36).slice(2,10)}`,Z_=e=>R.useState(()=>X_(e))[0],{translator:Q_}=Ye,$_=H(`button`)({display:`inline-block`,minHeight:`24px`,padding:0,border:0,background:`transparent`,font:`inherit`,textAlign:`inherit`,color:Bp(),cursor:`pointer`}),ev=H(`span`)({borderBottom:`1px dotted currentColor`}),tv=H(Vm)(({theme:e})=>({paddingTop:e.spacing(2)})),nv=class extends R.Component{static propTypes={className:I.string,children:I.object,labels:I.shape({visible:I.string,hidden:I.string}),language:I.string};static defaultProps={labels:{}};state={expanded:!1};panelId=X_(`pie-collapsible`);toggleExpanded=()=>{this.setState(e=>({expanded:!e.expanded}))};componentDidMount(){Y_(this.root)}componentDidUpdate(){Y_(this.root)}render(){let{labels:e,children:t,className:n,language:r}=this.props,{expanded:i}=this.state,a=i?e.visible||Q_.t(`common:hide`,{lng:r}):e.hidden||Q_.t(`common:show`,{lng:r});return(0,z.jsxs)(`div`,{className:n,ref:e=>this.root=e,children:[(0,z.jsx)(`div`,{children:(0,z.jsx)($_,{type:`button`,"aria-expanded":i,"aria-controls":this.panelId,onClick:this.toggleExpanded,children:(0,z.jsx)(ev,{children:a})})}),(0,z.jsx)(`div`,{id:this.panelId,children:(0,z.jsx)(tv,{in:i,timeout:{enter:225,exit:195},unmountOnExit:!0,children:t})})]})}};function rv(e){try{return e.matches(`:focus-visible`)}catch{}return!1}var iv=class e{static create(){return new e}static use(){let t=$c(e.create).current,[n,r]=R.useState(!1);return t.shouldMount=n,t.setShouldMount=r,R.useEffect(t.mountEffect,[n]),t}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=ov(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())};start(...e){this.mount().then(()=>this.ref.current?.start(...e))}stop(...e){this.mount().then(()=>this.ref.current?.stop(...e))}pulsate(...e){this.mount().then(()=>this.ref.current?.pulsate(...e))}};function av(){return iv.use()}function ov(){let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n}function sv(e){let{className:t,classes:n,pulsate:r=!1,rippleX:i,rippleY:a,rippleSize:o,in:s,onExited:c,timeout:l}=e,[u,d]=R.useState(!1),f=B(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),p={width:o,height:o,top:-(o/2)+a,left:-(o/2)+i},m=B(n.child,u&&n.childLeaving,r&&n.childPulsate);return!s&&!u&&d(!0),R.useEffect(()=>{if(!s&&c!=null){let e=setTimeout(c,l);return()=>{clearTimeout(e)}}},[c,s,l]),(0,z.jsx)(`span`,{className:f,style:p,children:(0,z.jsx)(`span`,{className:m})})}var cv=Zi(`MuiTouchRipple`,[`root`,`ripple`,`rippleVisible`,`ripplePulsate`,`child`,`childLeaving`,`childPulsate`]),lv=550,uv=Xn`
|
|
86
86
|
0% {
|
|
87
87
|
transform: scale(0);
|
|
88
88
|
opacity: 0.1;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://cdn.jsdelivr.net/npm/@pie-element/math-inline@13.0.5
|
|
3
|
+
"$id": "https://cdn.jsdelivr.net/npm/@pie-element/math-inline@13.0.5/dist/schemas/configuration.schema.json",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
6
6
|
"baseInputConfiguration": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://cdn.jsdelivr.net/npm/@pie-element/math-inline@13.0.5
|
|
3
|
+
"$id": "https://cdn.jsdelivr.net/npm/@pie-element/math-inline@13.0.5/dist/schemas/model.schema.json",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
6
6
|
"responseType": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://cdn.jsdelivr.net/npm/@pie-element/math-inline@13.0.5
|
|
3
|
+
"$id": "https://cdn.jsdelivr.net/npm/@pie-element/math-inline@13.0.5/dist/schemas/session.schema.json",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
6
6
|
"id": {
|
package/module/print.js
CHANGED
|
@@ -14901,7 +14901,9 @@ var b_ = {
|
|
|
14901
14901
|
overarc: "\\overparen",
|
|
14902
14902
|
napprox: "\\not\\approx",
|
|
14903
14903
|
longdiv: "\\enclose{longdiv}",
|
|
14904
|
-
abs: ["\\left|#1\\right|", 1]
|
|
14904
|
+
abs: ["\\left|#1\\right|", 1],
|
|
14905
|
+
perpendicular: "\\perp",
|
|
14906
|
+
divide: "\\div"
|
|
14905
14907
|
}, x_ = "[math-rendering] using $ is not advisable, please use $$..$$ or \\(...\\)", S_ = /\\\(|\\\[|\$\$|\\\$|\\begin\{|\\(?:eq)?ref\{/, C_ = /\\\(|\\\[|\$|\\begin\{|\\(?:eq)?ref\{/, w_ = /\\embed\{newLine\}\[\]/g, T_ = [
|
|
14906
14908
|
["$$", "$$"],
|
|
14907
14909
|
["$", "$"],
|