@pie-element/math-templated 3.6.7-next.2 → 3.6.7-next.20
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/configure/package.json +1 -1
- package/controller/package.json +1 -1
- package/lib/main.js +5 -2
- package/lib/main.js.map +1 -1
- package/module/configure.js +25 -4
- package/module/element.js +59 -29
- package/module/manifest.json +2 -2
- package/module/print.js +59 -29
- package/package.json +3 -3
package/configure/package.json
CHANGED
package/controller/package.json
CHANGED
package/lib/main.js
CHANGED
|
@@ -321,12 +321,14 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
321
321
|
teacherInstructions = _ref3.teacherInstructions,
|
|
322
322
|
animationsDisabled = _ref3.animationsDisabled;
|
|
323
323
|
|
|
324
|
+
var showTeacherInstructions = teacherInstructions && ((0, _renderUi.hasText)(teacherInstructions) || (0, _renderUi.hasMedia)(teacherInstructions));
|
|
325
|
+
|
|
324
326
|
var teacherInstructionsDiv = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
325
327
|
defaultClassName: "teacher-instructions",
|
|
326
328
|
prompt: teacherInstructions
|
|
327
329
|
});
|
|
328
330
|
|
|
329
|
-
return
|
|
331
|
+
return showTeacherInstructions && /*#__PURE__*/_react["default"].createElement("div", {
|
|
330
332
|
className: classes.collapsible
|
|
331
333
|
}, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
332
334
|
labels: {
|
|
@@ -348,7 +350,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
348
350
|
prompt: rationale
|
|
349
351
|
});
|
|
350
352
|
|
|
351
|
-
|
|
353
|
+
var showRationale = rationale && ((0, _renderUi.hasText)(rationale) || (0, _renderUi.hasMedia)(rationale));
|
|
354
|
+
return showRationale && /*#__PURE__*/_react["default"].createElement("div", {
|
|
352
355
|
className: classes.collapsible
|
|
353
356
|
}, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
354
357
|
labels: {
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["registered","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","splitByParts","text","parts","split","filter","part","prepareForStatic","model","state","responses","disabled","markup","printMode","alwaysShowCorrect","showCorrect","Object","keys","reduce","acc","responseKey","answer","splitted","match","Main","getResponseKey","session","answers","blankSpace","repeat","value","props","classes","root","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","id","setState","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","callOnSessionChange","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","teacherInstructions","animationsDisabled","teacherInstructionsDiv","collapsible","hidden","visible","rationale","rationaleDiv","correctness","customKeys","feedback","env","mode","emptyResponse","statics","studentPrintMode","inputAndKeypadContainer","responseIsCorrect","MQStatic","mqStatic","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","expression","showCorrectness","correctAnswerShown","ref","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","printContainer","sessionAnswers","replace","response","sessionAnswerForResponse","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","nextProps","nextModel","nextMarkup","nextEnv","nextAlwaysShowCorrect","isEvaluateMode","prevState","matches","nextMatches","newAnswers","nextMatch","nextState","sameModel","sameState","setTimeout","div","document","firstChild","setAttribute","prompt","role","extraCSSRules","language","showNote","note","showCorrectAnswerToggle","displayNote","mainContainer","r","domNode","ReactDOM","findDOMNode","main","srOnly","toggle","toggleShowCorrect","renderTeacherInstructions","promptContainer","renderPlayerContent","__html","renderRationale","React","Component","replaceAll","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","tooltipPopper","opacity","marginTop","paddingTop","marginBottom","position","title","zIndex","minWidth","maxWidth","top","borderColor","alignItems","flexWrap","lineHeight","left","right","borderTop","letterSpacing","margin","flex","palette","grey","justifyContent","borderRight","pointerEvents","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport { color, Collapsible, Readable, hasText, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering';\nimport MathQuill from '@pie-framework/mathquill';\nimport { Customizable } from '@pie-lib/pie-toolbox/mask-markup';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport ReactDOM from 'react-dom';\n\nlet registered = false;\n\n// Define a regex pattern to match {{number}}\nconst REGEX = /(\\{\\{\\d+\\}\\})/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction splitByParts(text) {\n // Use the regex pattern to split the text\n const parts = text.split(REGEX);\n // Filter out empty strings that might result from splitting\n return parts.filter(part => part);\n}\n\nfunction prepareForStatic(model, state) {\n const { responses, disabled, markup, printMode, alwaysShowCorrect } = model || {};\n\n if (markup) {\n if (state.showCorrect) {\n return Object.keys(responses || {}).reduce((acc, responseKey) => {\n acc[responseKey] = responses?.[responseKey]?.answer;\n\n return acc;\n }, {});\n }\n\n const splitted = splitByParts(markup);\n\n\n return splitted.reduce((acc, split) => {\n if (split.match(REGEX)) {\n const responseKey = Main.getResponseKey(split);\n const answer = state.session.answers[`r${responseKey}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\embed{newLine}[] ';\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${blankSpace.repeat(3)}}`\n };\n }\n\n if (disabled) {\n return {\n ...acc,\n [responseKey]: `\\\\embed{answerBlock}[r${responseKey}]`\n };\n }\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${(answer && answer.value) || ''}}`\n };\n\n }\n\n return acc;\n }, {});\n }\n}\n\nexport class Main extends React.Component {\n // removes {{ and }} and returns only key response. Eg: {{0}} => 0\n static getResponseKey = response => (response || '').replaceAll('{{', '').replaceAll('}}', '');\n\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n const { model, session } = props || {};\n const { markup, alwaysShowCorrect } = model || {};\n const { answers: sessionAnswers } = session || {};\n\n if (markup) {\n // build out local state model using responses declared in markup\n (markup || '').replace(REGEX, (response) => {\n const responseKey = Main.getResponseKey(response);\n const sessionAnswerForResponse = sessionAnswers && sessionAnswers[`r${responseKey}`];\n\n answers[`r${responseKey}`] = { value: (sessionAnswerForResponse?.value) || '' };\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: alwaysShowCorrect || false,\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => ({\n htmlString: `<div class=\"${classes.blockContainer}\">\n <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n <div class=\"${classes.blockMath}\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n }));\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (model.view) {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel = {} } = nextProps || {};\n const { markup = '', env = {} } = model || {};\n const { markup: nextMarkup = '', env: nextEnv = {}, alwaysShowCorrect: nextAlwaysShowCorrect = false } = nextModel;\n\n const isEvaluateMode = (env) => env && env.mode === 'evaluate';\n\n if (!isEvaluateMode(env) || !isEvaluateMode(nextEnv)) {\n this.setState((prevState) => ({ ...prevState.session, showCorrect: false }));\n }\n\n if (nextAlwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n const matches = markup.match(REGEX);\n const nextMatches = nextMarkup.match(REGEX);\n\n // If markup changed, and we no longer have the same response area, the session needs to be updated\n if (!isEqual(matches, nextMatches)) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n (nextMatches || []).forEach(nextMatch => {\n const responseKey = Main.getResponseKey(nextMatch);\n const sessionAnswerForResponse = answers && answers[`r${responseKey}`];\n\n // build out local state model using responses declared in markup\n newAnswers[`r${responseKey}`] = { value: (sessionAnswerForResponse?.value) || '' };\n\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: newAnswers,\n },\n }),\n () => {\n this.props.onSessionChange(this.state.session);\n this.handleAnswerBlockDomUpdate();\n },\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\n };\n\n toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') return data;\n\n if (type === 'answer') return { type: 'answer', ...data };\n\n if (value === 'clear') return { type: 'clear' };\n\n return { type: 'write', value };\n };\n\n setInput = (input) => {\n this.input = input;\n };\n\n onClick = (data) => {\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach((vv) => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n };\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n getFieldName = (changeField, fields) => {\n const { answers } = this.state.session;\n\n if (Object.keys(answers || {}).length) {\n const keys = Object.keys(answers);\n\n return keys.find((k) => {\n const tf = fields[k];\n\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n // function for tooltip\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector('[role=\\'tooltip\\']');\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n renderTeacherInstructions = () => {\n const { model, classes } = this.props;\n const { teacherInstructions, animationsDisabled } = model || {};\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions}/>\n );\n\n return teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n );\n };\n\n renderRationale = () => {\n const { model, classes } = this.props;\n const { rationale, animationsDisabled } = model || {};\n const rationaleDiv = <PreviewPrompt prompt={rationale}/>;\n\n return rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n );\n }\n\n renderPlayerContent = () => {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n correctness,\n disabled,\n view,\n responses,\n equationEditor,\n customKeys,\n feedback,\n env: { mode } = {},\n printMode,\n alwaysShowCorrect,\n } = model || {};\n\n const emptyResponse = isEmpty(responses);\n const additionalKeys = generateAdditionalKeys(customKeys);\n const statics = prepareForStatic(model, this.state) || '';\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n return (<div className={classes.inputAndKeypadContainer}>\n <Customizable\n disabled={disabled}\n markup={model.markup}\n // TODO remove the need of value?\n value={{}}\n customMarkMarkupComponent={(id) => {\n const responseIsCorrect = mode === 'evaluate' && feedback && feedback[id];\n\n const MQStatic = <mq.Static\n className={classes.static}\n ref={(mqStatic) => {\n this.mqStatic = mqStatic || this.mqStatic;\n }}\n latex={statics[id]}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />;\n\n return (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !responseIsCorrect && !showCorrect,\n [classes.correct]: !emptyResponse && (responseIsCorrect || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={activeAnswerBlock === `r${id}`}\n classes={{ tooltip: classes.keypadTooltip, popper: classes.keypadTooltipPopper }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{ width: getKeyPadWidth(additionalKeys, equationEditor) }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n {studentPrintMode\n ? (<div className={classes.printContainer}>\n {MQStatic}\n </div>)\n : MQStatic}\n </Tooltip>\n </div>\n )\n }}\n />\n </div>);\n }\n\n render() {\n const { model, classes } = this.props;\n const { showCorrect } = this.state;\n const {\n prompt,\n env: { mode, role } = {},\n extraCSSRules,\n correctness,\n responses,\n language,\n showNote,\n note,\n } = model || {};\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={classes.mainContainer} 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 <div className={classes.main}>\n {/* what is srOnly ? */}\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {this.renderTeacherInstructions()}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt}/>\n </div>\n )}\n\n <Readable false>\n {this.renderPlayerContent()}\n </Readable>\n\n {displayNote && (\n <div\n className={cx(classes.note, 'note')}\n dangerouslySetInnerHTML={{ __html: note }}\n />\n )}\n\n {this.renderRationale()}\n </div>\n </UiLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 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 tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& > div > div': {\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap'\n },\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 8,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["registered","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","splitByParts","text","parts","split","filter","part","prepareForStatic","model","state","responses","disabled","markup","printMode","alwaysShowCorrect","showCorrect","Object","keys","reduce","acc","responseKey","answer","splitted","match","Main","getResponseKey","session","answers","blankSpace","repeat","value","props","classes","root","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","id","setState","activeAnswerBlock","data","type","input","c","toNodeData","clear","Array","isArray","vv","cmd","keystroke","focus","onSessionChange","show","handleAnswerBlockDomUpdate","subfieldValue","callOnSessionChange","changeField","fields","find","k","tf","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","teacherInstructions","animationsDisabled","showTeacherInstructions","teacherInstructionsDiv","collapsible","hidden","visible","rationale","rationaleDiv","showRationale","correctness","customKeys","feedback","env","mode","emptyResponse","statics","studentPrintMode","inputAndKeypadContainer","responseIsCorrect","MQStatic","mqStatic","subFieldChanged","getFieldName","setInput","onSubFieldFocus","onBlur","expression","showCorrectness","correctAnswerShown","ref","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","onClick","printContainer","sessionAnswers","replace","response","sessionAnswerForResponse","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","nextProps","nextModel","nextMarkup","nextEnv","nextAlwaysShowCorrect","isEvaluateMode","prevState","matches","nextMatches","newAnswers","nextMatch","nextState","sameModel","sameState","setTimeout","div","document","firstChild","setAttribute","prompt","role","extraCSSRules","language","showNote","note","showCorrectAnswerToggle","displayNote","mainContainer","r","domNode","ReactDOM","findDOMNode","main","srOnly","toggle","toggleShowCorrect","renderTeacherInstructions","promptContainer","renderPlayerContent","__html","renderRationale","React","Component","replaceAll","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","tooltipPopper","opacity","marginTop","paddingTop","marginBottom","position","title","zIndex","minWidth","maxWidth","top","borderColor","alignItems","flexWrap","lineHeight","left","right","borderTop","letterSpacing","margin","flex","palette","grey","justifyContent","borderRight","pointerEvents","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/pie-toolbox/math-input';\nimport {color, Collapsible, Readable, hasText, hasMedia, PreviewPrompt, UiLayout} from '@pie-lib/pie-toolbox/render-ui';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering';\nimport MathQuill from '@pie-framework/mathquill';\nimport { Customizable } from '@pie-lib/pie-toolbox/mask-markup';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport ReactDOM from 'react-dom';\n\nlet registered = false;\n\n// Define a regex pattern to match {{number}}\nconst REGEX = /(\\{\\{\\d+\\}\\})/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction splitByParts(text) {\n // Use the regex pattern to split the text\n const parts = text.split(REGEX);\n // Filter out empty strings that might result from splitting\n return parts.filter(part => part);\n}\n\nfunction prepareForStatic(model, state) {\n const { responses, disabled, markup, printMode, alwaysShowCorrect } = model || {};\n\n if (markup) {\n if (state.showCorrect) {\n return Object.keys(responses || {}).reduce((acc, responseKey) => {\n acc[responseKey] = responses?.[responseKey]?.answer;\n\n return acc;\n }, {});\n }\n\n const splitted = splitByParts(markup);\n\n\n return splitted.reduce((acc, split) => {\n if (split.match(REGEX)) {\n const responseKey = Main.getResponseKey(split);\n const answer = state.session.answers[`r${responseKey}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\embed{newLine}[] ';\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${blankSpace.repeat(3)}}`\n };\n }\n\n if (disabled) {\n return {\n ...acc,\n [responseKey]: `\\\\embed{answerBlock}[r${responseKey}]`\n };\n }\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${(answer && answer.value) || ''}}`\n };\n\n }\n\n return acc;\n }, {});\n }\n}\n\nexport class Main extends React.Component {\n // removes {{ and }} and returns only key response. Eg: {{0}} => 0\n static getResponseKey = response => (response || '').replaceAll('{{', '').replaceAll('}}', '');\n\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n const { model, session } = props || {};\n const { markup, alwaysShowCorrect } = model || {};\n const { answers: sessionAnswers } = session || {};\n\n if (markup) {\n // build out local state model using responses declared in markup\n (markup || '').replace(REGEX, (response) => {\n const responseKey = Main.getResponseKey(response);\n const sessionAnswerForResponse = sessionAnswers && sessionAnswers[`r${responseKey}`];\n\n answers[`r${responseKey}`] = { value: (sessionAnswerForResponse?.value) || '' };\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: alwaysShowCorrect || false,\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => ({\n htmlString: `<div class=\"${classes.blockContainer}\">\n <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n <div class=\"${classes.blockMath}\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n }));\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (model.view) {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel = {} } = nextProps || {};\n const { markup = '', env = {} } = model || {};\n const { markup: nextMarkup = '', env: nextEnv = {}, alwaysShowCorrect: nextAlwaysShowCorrect = false } = nextModel;\n\n const isEvaluateMode = (env) => env && env.mode === 'evaluate';\n\n if (!isEvaluateMode(env) || !isEvaluateMode(nextEnv)) {\n this.setState((prevState) => ({ ...prevState.session, showCorrect: false }));\n }\n\n if (nextAlwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n const matches = markup.match(REGEX);\n const nextMatches = nextMarkup.match(REGEX);\n\n // If markup changed, and we no longer have the same response area, the session needs to be updated\n if (!isEqual(matches, nextMatches)) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n (nextMatches || []).forEach(nextMatch => {\n const responseKey = Main.getResponseKey(nextMatch);\n const sessionAnswerForResponse = answers && answers[`r${responseKey}`];\n\n // build out local state model using responses declared in markup\n newAnswers[`r${responseKey}`] = { value: (sessionAnswerForResponse?.value) || '' };\n\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: newAnswers,\n },\n }),\n () => {\n this.props.onSessionChange(this.state.session);\n this.handleAnswerBlockDomUpdate();\n },\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\n };\n\n toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') return data;\n\n if (type === 'answer') return { type: 'answer', ...data };\n\n if (value === 'clear') return { type: 'clear' };\n\n return { type: 'write', value };\n };\n\n setInput = (input) => {\n this.input = input;\n };\n\n onClick = (data) => {\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach((vv) => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n };\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n getFieldName = (changeField, fields) => {\n const { answers } = this.state.session;\n\n if (Object.keys(answers || {}).length) {\n const keys = Object.keys(answers);\n\n return keys.find((k) => {\n const tf = fields[k];\n\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n // function for tooltip\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector('[role=\\'tooltip\\']');\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n renderTeacherInstructions = () => {\n const { model, classes } = this.props;\n const { teacherInstructions, animationsDisabled } = model || {};\n const showTeacherInstructions = teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions}/>\n );\n\n return showTeacherInstructions && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n );\n };\n\n renderRationale = () => {\n const { model, classes } = this.props;\n const { rationale, animationsDisabled } = model || {};\n const rationaleDiv = <PreviewPrompt prompt={rationale}/>;\n const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));\n\n return showRationale && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n );\n }\n\n renderPlayerContent = () => {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n correctness,\n disabled,\n view,\n responses,\n equationEditor,\n customKeys,\n feedback,\n env: { mode } = {},\n printMode,\n alwaysShowCorrect,\n } = model || {};\n\n const emptyResponse = isEmpty(responses);\n const additionalKeys = generateAdditionalKeys(customKeys);\n const statics = prepareForStatic(model, this.state) || '';\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n return (<div className={classes.inputAndKeypadContainer}>\n <Customizable\n disabled={disabled}\n markup={model.markup}\n // TODO remove the need of value?\n value={{}}\n customMarkMarkupComponent={(id) => {\n const responseIsCorrect = mode === 'evaluate' && feedback && feedback[id];\n\n const MQStatic = <mq.Static\n className={classes.static}\n ref={(mqStatic) => {\n this.mqStatic = mqStatic || this.mqStatic;\n }}\n latex={statics[id]}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />;\n\n return (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !responseIsCorrect && !showCorrect,\n [classes.correct]: !emptyResponse && (responseIsCorrect || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={activeAnswerBlock === `r${id}`}\n classes={{ tooltip: classes.keypadTooltip, popper: classes.keypadTooltipPopper }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{ width: getKeyPadWidth(additionalKeys, equationEditor) }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n {studentPrintMode\n ? (<div className={classes.printContainer}>\n {MQStatic}\n </div>)\n : MQStatic}\n </Tooltip>\n </div>\n )\n }}\n />\n </div>);\n }\n\n render() {\n const { model, classes } = this.props;\n const { showCorrect } = this.state;\n const {\n prompt,\n env: { mode, role } = {},\n extraCSSRules,\n correctness,\n responses,\n language,\n showNote,\n note,\n } = model || {};\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={classes.mainContainer} 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 <div className={classes.main}>\n {/* what is srOnly ? */}\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {this.renderTeacherInstructions()}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt}/>\n </div>\n )}\n\n <Readable false>\n {this.renderPlayerContent()}\n </Readable>\n\n {displayNote && (\n <div\n className={cx(classes.note, 'note')}\n dangerouslySetInnerHTML={{ __html: note }}\n />\n )}\n\n {this.renderRationale()}\n </div>\n </UiLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 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 tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& > div > div': {\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap'\n },\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 8,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
package/module/configure.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash} from "../../../@pie-lib/pie-toolbox-math-rendering-module@
|
|
2
|
-
import {_dll_pie_lib__pie_toolbox_config_ui, _dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_editable_html} from "../../../@pie-lib/pie-toolbox-module@
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash} from "../../../@pie-lib/pie-toolbox-math-rendering-module@4.1.5/module/index.js";
|
|
2
|
+
import {_dll_pie_lib__pie_toolbox_config_ui, _dll_pie_lib__pie_toolbox_math_toolbar, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_editable_html} from "../../../@pie-lib/pie-toolbox-module@7.0.3/module/index.js";
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
function getDefaultExportFromCjs(x) {
|
|
5
5
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
@@ -126489,9 +126489,9 @@ Object.defineProperty(hasText$1, "__esModule", {
|
|
|
126489
126489
|
value: true
|
|
126490
126490
|
});
|
|
126491
126491
|
hasText$1.hasText = void 0;
|
|
126492
|
-
var dp = new DOMParser();
|
|
126492
|
+
var dp$1 = new DOMParser();
|
|
126493
126493
|
var markupToText = function markupToText(s) {
|
|
126494
|
-
var root = dp.parseFromString(s, 'text/html');
|
|
126494
|
+
var root = dp$1.parseFromString(s, 'text/html');
|
|
126495
126495
|
return root.body.textContent;
|
|
126496
126496
|
};
|
|
126497
126497
|
var hasText = function hasText(s) {
|
|
@@ -126502,6 +126502,20 @@ var hasText = function hasText(s) {
|
|
|
126502
126502
|
return !!(tc && tc.trim());
|
|
126503
126503
|
};
|
|
126504
126504
|
hasText$1.hasText = hasText;
|
|
126505
|
+
var hasMedia$1 = {};
|
|
126506
|
+
Object.defineProperty(hasMedia$1, "__esModule", {
|
|
126507
|
+
value: true
|
|
126508
|
+
});
|
|
126509
|
+
hasMedia$1.hasMedia = void 0;
|
|
126510
|
+
var dp = new DOMParser();
|
|
126511
|
+
var hasMedia = function hasMedia(s) {
|
|
126512
|
+
if (!s) {
|
|
126513
|
+
return false;
|
|
126514
|
+
}
|
|
126515
|
+
var root = dp.parseFromString(s, 'text/html');
|
|
126516
|
+
return !!root.body.querySelector('img') || !!root.body.querySelector('video') || !!root.body.querySelector('audio');
|
|
126517
|
+
};
|
|
126518
|
+
hasMedia$1.hasMedia = hasMedia;
|
|
126505
126519
|
var enableAudioAutoplayImage = {};
|
|
126506
126520
|
(function (exports) {
|
|
126507
126521
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -126579,6 +126593,12 @@ getDefaultExportFromCjs(enableAudioAutoplayImage);
|
|
|
126579
126593
|
}
|
|
126580
126594
|
});
|
|
126581
126595
|
exports.color = void 0;
|
|
126596
|
+
Object.defineProperty(exports, "hasMedia", {
|
|
126597
|
+
enumerable: true,
|
|
126598
|
+
get: function get() {
|
|
126599
|
+
return _hasMedia.hasMedia;
|
|
126600
|
+
}
|
|
126601
|
+
});
|
|
126582
126602
|
Object.defineProperty(exports, "hasText", {
|
|
126583
126603
|
enumerable: true,
|
|
126584
126604
|
get: function get() {
|
|
@@ -126607,6 +126627,7 @@ getDefaultExportFromCjs(enableAudioAutoplayImage);
|
|
|
126607
126627
|
var color = _interopRequireWildcard(color$1);
|
|
126608
126628
|
exports.color = color;
|
|
126609
126629
|
var _hasText = hasText$1;
|
|
126630
|
+
var _hasMedia = hasMedia$1;
|
|
126610
126631
|
var _enableAudioAutoplayImage = _interopRequireDefault(enableAudioAutoplayImage);
|
|
126611
126632
|
function _getRequireWildcardCache(nodeInterop) {
|
|
126612
126633
|
if (typeof WeakMap !== "function") return null;
|
package/module/element.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@
|
|
2
|
-
import {_dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@4.1.5/module/index.js";
|
|
2
|
+
import {_dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@7.0.3/module/index.js";
|
|
3
3
|
function _mergeNamespaces(n, m) {
|
|
4
4
|
m.forEach(function (e) {
|
|
5
5
|
e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
|
|
@@ -142618,9 +142618,9 @@ Object.defineProperty(hasText$2, "__esModule", {
|
|
|
142618
142618
|
value: true
|
|
142619
142619
|
});
|
|
142620
142620
|
hasText$2.hasText = void 0;
|
|
142621
|
-
var dp = new DOMParser();
|
|
142621
|
+
var dp$1 = new DOMParser();
|
|
142622
142622
|
var markupToText = function markupToText(s) {
|
|
142623
|
-
var root = dp.parseFromString(s, 'text/html');
|
|
142623
|
+
var root = dp$1.parseFromString(s, 'text/html');
|
|
142624
142624
|
return root.body.textContent;
|
|
142625
142625
|
};
|
|
142626
142626
|
var hasText$1 = function hasText(s) {
|
|
@@ -142631,6 +142631,20 @@ var hasText$1 = function hasText(s) {
|
|
|
142631
142631
|
return !!(tc && tc.trim());
|
|
142632
142632
|
};
|
|
142633
142633
|
hasText$2.hasText = hasText$1;
|
|
142634
|
+
var hasMedia$2 = {};
|
|
142635
|
+
Object.defineProperty(hasMedia$2, "__esModule", {
|
|
142636
|
+
value: true
|
|
142637
|
+
});
|
|
142638
|
+
hasMedia$2.hasMedia = void 0;
|
|
142639
|
+
var dp = new DOMParser();
|
|
142640
|
+
var hasMedia$1 = function hasMedia(s) {
|
|
142641
|
+
if (!s) {
|
|
142642
|
+
return false;
|
|
142643
|
+
}
|
|
142644
|
+
var root = dp.parseFromString(s, 'text/html');
|
|
142645
|
+
return !!root.body.querySelector('img') || !!root.body.querySelector('video') || !!root.body.querySelector('audio');
|
|
142646
|
+
};
|
|
142647
|
+
hasMedia$2.hasMedia = hasMedia$1;
|
|
142634
142648
|
var enableAudioAutoplayImage = {};
|
|
142635
142649
|
(function (exports) {
|
|
142636
142650
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -142708,6 +142722,12 @@ getDefaultExportFromCjs(enableAudioAutoplayImage);
|
|
|
142708
142722
|
}
|
|
142709
142723
|
});
|
|
142710
142724
|
exports.color = void 0;
|
|
142725
|
+
Object.defineProperty(exports, "hasMedia", {
|
|
142726
|
+
enumerable: true,
|
|
142727
|
+
get: function get() {
|
|
142728
|
+
return _hasMedia.hasMedia;
|
|
142729
|
+
}
|
|
142730
|
+
});
|
|
142711
142731
|
Object.defineProperty(exports, "hasText", {
|
|
142712
142732
|
enumerable: true,
|
|
142713
142733
|
get: function get() {
|
|
@@ -142736,6 +142756,7 @@ getDefaultExportFromCjs(enableAudioAutoplayImage);
|
|
|
142736
142756
|
var color = _interopRequireWildcard(color$1);
|
|
142737
142757
|
exports.color = color;
|
|
142738
142758
|
var _hasText = hasText$2;
|
|
142759
|
+
var _hasMedia = hasMedia$2;
|
|
142739
142760
|
var _enableAudioAutoplayImage = _interopRequireDefault(enableAudioAutoplayImage);
|
|
142740
142761
|
function _getRequireWildcardCache(nodeInterop) {
|
|
142741
142762
|
if (typeof WeakMap !== "function") return null;
|
|
@@ -147323,6 +147344,12 @@ var renderUi = {};
|
|
|
147323
147344
|
return _renderUi.color;
|
|
147324
147345
|
}
|
|
147325
147346
|
});
|
|
147347
|
+
Object.defineProperty(exports, "hasMedia", {
|
|
147348
|
+
enumerable: true,
|
|
147349
|
+
get: function get() {
|
|
147350
|
+
return _renderUi.hasMedia;
|
|
147351
|
+
}
|
|
147352
|
+
});
|
|
147326
147353
|
Object.defineProperty(exports, "hasText", {
|
|
147327
147354
|
enumerable: true,
|
|
147328
147355
|
get: function get() {
|
|
@@ -181489,6 +181516,7 @@ const {color: color} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
|
181489
181516
|
const {Collapsible: Collapsible} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181490
181517
|
const {Readable: Readable} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181491
181518
|
const {hasText: hasText} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181519
|
+
const {hasMedia: hasMedia} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181492
181520
|
const {PreviewPrompt: PreviewPrompt} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181493
181521
|
const {UiLayout: UiLayout} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181494
181522
|
const {CorrectAnswerToggle: CorrectAnswerToggle} = _dll_pie_lib__pie_toolbox_correct_answer_toggle;
|
|
@@ -181857,21 +181885,22 @@ class Main extends React$1.Component {
|
|
|
181857
181885
|
this.renderTeacherInstructions = () => {
|
|
181858
181886
|
const {model, classes} = this.props;
|
|
181859
181887
|
const {teacherInstructions, animationsDisabled} = model || ({});
|
|
181888
|
+
const showTeacherInstructions = teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));
|
|
181860
181889
|
const teacherInstructionsDiv = React$1.createElement(PreviewPrompt, {
|
|
181861
181890
|
defaultClassName: "teacher-instructions",
|
|
181862
181891
|
prompt: teacherInstructions,
|
|
181863
181892
|
__self: this,
|
|
181864
181893
|
__source: {
|
|
181865
181894
|
fileName: _jsxFileName,
|
|
181866
|
-
lineNumber:
|
|
181895
|
+
lineNumber: 517
|
|
181867
181896
|
}
|
|
181868
181897
|
});
|
|
181869
|
-
return
|
|
181898
|
+
return showTeacherInstructions && React$1.createElement('div', {
|
|
181870
181899
|
className: classes.collapsible,
|
|
181871
181900
|
__self: this,
|
|
181872
181901
|
__source: {
|
|
181873
181902
|
fileName: _jsxFileName,
|
|
181874
|
-
lineNumber:
|
|
181903
|
+
lineNumber: 517
|
|
181875
181904
|
}
|
|
181876
181905
|
}, !animationsDisabled ? React$1.createElement(Collapsible, {
|
|
181877
181906
|
labels: {
|
|
@@ -181881,7 +181910,7 @@ class Main extends React$1.Component {
|
|
|
181881
181910
|
__self: this,
|
|
181882
181911
|
__source: {
|
|
181883
181912
|
fileName: _jsxFileName,
|
|
181884
|
-
lineNumber:
|
|
181913
|
+
lineNumber: 517
|
|
181885
181914
|
}
|
|
181886
181915
|
}, teacherInstructionsDiv) : teacherInstructionsDiv);
|
|
181887
181916
|
};
|
|
@@ -181895,15 +181924,16 @@ class Main extends React$1.Component {
|
|
|
181895
181924
|
__self: this,
|
|
181896
181925
|
__source: {
|
|
181897
181926
|
fileName: _jsxFileName,
|
|
181898
|
-
lineNumber:
|
|
181927
|
+
lineNumber: 517
|
|
181899
181928
|
}
|
|
181900
181929
|
});
|
|
181901
|
-
|
|
181930
|
+
const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));
|
|
181931
|
+
return showRationale && React$1.createElement('div', {
|
|
181902
181932
|
className: classes.collapsible,
|
|
181903
181933
|
__self: this,
|
|
181904
181934
|
__source: {
|
|
181905
181935
|
fileName: _jsxFileName,
|
|
181906
|
-
lineNumber:
|
|
181936
|
+
lineNumber: 517
|
|
181907
181937
|
}
|
|
181908
181938
|
}, !animationsDisabled ? React$1.createElement(Collapsible, {
|
|
181909
181939
|
labels: {
|
|
@@ -181913,7 +181943,7 @@ class Main extends React$1.Component {
|
|
|
181913
181943
|
__self: this,
|
|
181914
181944
|
__source: {
|
|
181915
181945
|
fileName: _jsxFileName,
|
|
181916
|
-
lineNumber:
|
|
181946
|
+
lineNumber: 517
|
|
181917
181947
|
}
|
|
181918
181948
|
}, rationaleDiv) : rationaleDiv);
|
|
181919
181949
|
};
|
|
@@ -181932,7 +181962,7 @@ class Main extends React$1.Component {
|
|
|
181932
181962
|
__self: this,
|
|
181933
181963
|
__source: {
|
|
181934
181964
|
fileName: _jsxFileName,
|
|
181935
|
-
lineNumber:
|
|
181965
|
+
lineNumber: 517
|
|
181936
181966
|
}
|
|
181937
181967
|
}, React$1.createElement(maskMarkup$1.Customizable, {
|
|
181938
181968
|
disabled: disabled,
|
|
@@ -181954,7 +181984,7 @@ class Main extends React$1.Component {
|
|
|
181954
181984
|
__self: this,
|
|
181955
181985
|
__source: {
|
|
181956
181986
|
fileName: _jsxFileName,
|
|
181957
|
-
lineNumber:
|
|
181987
|
+
lineNumber: 517
|
|
181958
181988
|
}
|
|
181959
181989
|
});
|
|
181960
181990
|
return React$1.createElement('div', {
|
|
@@ -181967,7 +181997,7 @@ class Main extends React$1.Component {
|
|
|
181967
181997
|
__self: this,
|
|
181968
181998
|
__source: {
|
|
181969
181999
|
fileName: _jsxFileName,
|
|
181970
|
-
lineNumber:
|
|
182000
|
+
lineNumber: 517
|
|
181971
182001
|
}
|
|
181972
182002
|
}, React$1.createElement(Tooltip, {
|
|
181973
182003
|
ref: ref => this.setTooltipRef(ref),
|
|
@@ -181988,7 +182018,7 @@ class Main extends React$1.Component {
|
|
|
181988
182018
|
__self: this,
|
|
181989
182019
|
__source: {
|
|
181990
182020
|
fileName: _jsxFileName,
|
|
181991
|
-
lineNumber:
|
|
182021
|
+
lineNumber: 517
|
|
181992
182022
|
}
|
|
181993
182023
|
}, React$1.createElement(HorizontalKeypad, {
|
|
181994
182024
|
additionalKeys: additionalKeys,
|
|
@@ -181997,27 +182027,27 @@ class Main extends React$1.Component {
|
|
|
181997
182027
|
__self: this,
|
|
181998
182028
|
__source: {
|
|
181999
182029
|
fileName: _jsxFileName,
|
|
182000
|
-
lineNumber:
|
|
182030
|
+
lineNumber: 517
|
|
182001
182031
|
}
|
|
182002
182032
|
})) || null),
|
|
182003
182033
|
__self: this,
|
|
182004
182034
|
__source: {
|
|
182005
182035
|
fileName: _jsxFileName,
|
|
182006
|
-
lineNumber:
|
|
182036
|
+
lineNumber: 517
|
|
182007
182037
|
}
|
|
182008
182038
|
}, studentPrintMode ? React$1.createElement('div', {
|
|
182009
182039
|
className: classes.printContainer,
|
|
182010
182040
|
__self: this,
|
|
182011
182041
|
__source: {
|
|
182012
182042
|
fileName: _jsxFileName,
|
|
182013
|
-
lineNumber:
|
|
182043
|
+
lineNumber: 517
|
|
182014
182044
|
}
|
|
182015
182045
|
}, MQStatic) : MQStatic));
|
|
182016
182046
|
},
|
|
182017
182047
|
__self: this,
|
|
182018
182048
|
__source: {
|
|
182019
182049
|
fileName: _jsxFileName,
|
|
182020
|
-
lineNumber:
|
|
182050
|
+
lineNumber: 517
|
|
182021
182051
|
}
|
|
182022
182052
|
}));
|
|
182023
182053
|
};
|
|
@@ -182039,28 +182069,28 @@ class Main extends React$1.Component {
|
|
|
182039
182069
|
__self: this,
|
|
182040
182070
|
__source: {
|
|
182041
182071
|
fileName: _jsxFileName,
|
|
182042
|
-
lineNumber:
|
|
182072
|
+
lineNumber: 547
|
|
182043
182073
|
}
|
|
182044
182074
|
}, React$1.createElement('div', {
|
|
182045
182075
|
className: classes.main,
|
|
182046
182076
|
__self: this,
|
|
182047
182077
|
__source: {
|
|
182048
182078
|
fileName: _jsxFileName,
|
|
182049
|
-
lineNumber:
|
|
182079
|
+
lineNumber: 553
|
|
182050
182080
|
}
|
|
182051
182081
|
}, mode === 'gather' && React$1.createElement('h2', {
|
|
182052
182082
|
className: classes.srOnly,
|
|
182053
182083
|
__self: this,
|
|
182054
182084
|
__source: {
|
|
182055
182085
|
fileName: _jsxFileName,
|
|
182056
|
-
lineNumber:
|
|
182086
|
+
lineNumber: 555
|
|
182057
182087
|
}
|
|
182058
182088
|
}, "Math Equation Response Question"), React$1.createElement('div', {
|
|
182059
182089
|
className: classes.main,
|
|
182060
182090
|
__self: this,
|
|
182061
182091
|
__source: {
|
|
182062
182092
|
fileName: _jsxFileName,
|
|
182063
|
-
lineNumber:
|
|
182093
|
+
lineNumber: 557
|
|
182064
182094
|
}
|
|
182065
182095
|
}, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
|
|
182066
182096
|
language: language,
|
|
@@ -182071,28 +182101,28 @@ class Main extends React$1.Component {
|
|
|
182071
182101
|
__self: this,
|
|
182072
182102
|
__source: {
|
|
182073
182103
|
fileName: _jsxFileName,
|
|
182074
|
-
lineNumber:
|
|
182104
|
+
lineNumber: 559
|
|
182075
182105
|
}
|
|
182076
182106
|
})), this.renderTeacherInstructions(), prompt && React$1.createElement('div', {
|
|
182077
182107
|
className: classes.promptContainer,
|
|
182078
182108
|
__self: this,
|
|
182079
182109
|
__source: {
|
|
182080
182110
|
fileName: _jsxFileName,
|
|
182081
|
-
lineNumber:
|
|
182111
|
+
lineNumber: 572
|
|
182082
182112
|
}
|
|
182083
182113
|
}, React$1.createElement(PreviewPrompt, {
|
|
182084
182114
|
prompt: prompt,
|
|
182085
182115
|
__self: this,
|
|
182086
182116
|
__source: {
|
|
182087
182117
|
fileName: _jsxFileName,
|
|
182088
|
-
lineNumber:
|
|
182118
|
+
lineNumber: 573
|
|
182089
182119
|
}
|
|
182090
182120
|
})), React$1.createElement(Readable, {
|
|
182091
182121
|
false: true,
|
|
182092
182122
|
__self: this,
|
|
182093
182123
|
__source: {
|
|
182094
182124
|
fileName: _jsxFileName,
|
|
182095
|
-
lineNumber:
|
|
182125
|
+
lineNumber: 577
|
|
182096
182126
|
}
|
|
182097
182127
|
}, this.renderPlayerContent()), displayNote && React$1.createElement('div', {
|
|
182098
182128
|
className: cx(classes.note, 'note'),
|
|
@@ -182102,7 +182132,7 @@ class Main extends React$1.Component {
|
|
|
182102
182132
|
__self: this,
|
|
182103
182133
|
__source: {
|
|
182104
182134
|
fileName: _jsxFileName,
|
|
182105
|
-
lineNumber:
|
|
182135
|
+
lineNumber: 582
|
|
182106
182136
|
}
|
|
182107
182137
|
}), this.renderRationale()));
|
|
182108
182138
|
}
|
package/module/manifest.json
CHANGED
package/module/print.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@
|
|
2
|
-
import {_dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@4.1.5/module/index.js";
|
|
2
|
+
import {_dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@7.0.3/module/index.js";
|
|
3
3
|
function _mergeNamespaces(n, m) {
|
|
4
4
|
m.forEach(function (e) {
|
|
5
5
|
e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
|
|
@@ -142581,9 +142581,9 @@ Object.defineProperty(hasText$2, "__esModule", {
|
|
|
142581
142581
|
value: true
|
|
142582
142582
|
});
|
|
142583
142583
|
hasText$2.hasText = void 0;
|
|
142584
|
-
var dp = new DOMParser();
|
|
142584
|
+
var dp$1 = new DOMParser();
|
|
142585
142585
|
var markupToText = function markupToText(s) {
|
|
142586
|
-
var root = dp.parseFromString(s, 'text/html');
|
|
142586
|
+
var root = dp$1.parseFromString(s, 'text/html');
|
|
142587
142587
|
return root.body.textContent;
|
|
142588
142588
|
};
|
|
142589
142589
|
var hasText$1 = function hasText(s) {
|
|
@@ -142594,6 +142594,20 @@ var hasText$1 = function hasText(s) {
|
|
|
142594
142594
|
return !!(tc && tc.trim());
|
|
142595
142595
|
};
|
|
142596
142596
|
hasText$2.hasText = hasText$1;
|
|
142597
|
+
var hasMedia$2 = {};
|
|
142598
|
+
Object.defineProperty(hasMedia$2, "__esModule", {
|
|
142599
|
+
value: true
|
|
142600
|
+
});
|
|
142601
|
+
hasMedia$2.hasMedia = void 0;
|
|
142602
|
+
var dp = new DOMParser();
|
|
142603
|
+
var hasMedia$1 = function hasMedia(s) {
|
|
142604
|
+
if (!s) {
|
|
142605
|
+
return false;
|
|
142606
|
+
}
|
|
142607
|
+
var root = dp.parseFromString(s, 'text/html');
|
|
142608
|
+
return !!root.body.querySelector('img') || !!root.body.querySelector('video') || !!root.body.querySelector('audio');
|
|
142609
|
+
};
|
|
142610
|
+
hasMedia$2.hasMedia = hasMedia$1;
|
|
142597
142611
|
var enableAudioAutoplayImage = {};
|
|
142598
142612
|
(function (exports) {
|
|
142599
142613
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -142671,6 +142685,12 @@ getDefaultExportFromCjs(enableAudioAutoplayImage);
|
|
|
142671
142685
|
}
|
|
142672
142686
|
});
|
|
142673
142687
|
exports.color = void 0;
|
|
142688
|
+
Object.defineProperty(exports, "hasMedia", {
|
|
142689
|
+
enumerable: true,
|
|
142690
|
+
get: function get() {
|
|
142691
|
+
return _hasMedia.hasMedia;
|
|
142692
|
+
}
|
|
142693
|
+
});
|
|
142674
142694
|
Object.defineProperty(exports, "hasText", {
|
|
142675
142695
|
enumerable: true,
|
|
142676
142696
|
get: function get() {
|
|
@@ -142699,6 +142719,7 @@ getDefaultExportFromCjs(enableAudioAutoplayImage);
|
|
|
142699
142719
|
var color = _interopRequireWildcard(color$1);
|
|
142700
142720
|
exports.color = color;
|
|
142701
142721
|
var _hasText = hasText$2;
|
|
142722
|
+
var _hasMedia = hasMedia$2;
|
|
142702
142723
|
var _enableAudioAutoplayImage = _interopRequireDefault(enableAudioAutoplayImage);
|
|
142703
142724
|
function _getRequireWildcardCache(nodeInterop) {
|
|
142704
142725
|
if (typeof WeakMap !== "function") return null;
|
|
@@ -147286,6 +147307,12 @@ var renderUi = {};
|
|
|
147286
147307
|
return _renderUi.color;
|
|
147287
147308
|
}
|
|
147288
147309
|
});
|
|
147310
|
+
Object.defineProperty(exports, "hasMedia", {
|
|
147311
|
+
enumerable: true,
|
|
147312
|
+
get: function get() {
|
|
147313
|
+
return _renderUi.hasMedia;
|
|
147314
|
+
}
|
|
147315
|
+
});
|
|
147289
147316
|
Object.defineProperty(exports, "hasText", {
|
|
147290
147317
|
enumerable: true,
|
|
147291
147318
|
get: function get() {
|
|
@@ -181452,6 +181479,7 @@ const {color: color} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
|
181452
181479
|
const {Collapsible: Collapsible} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181453
181480
|
const {Readable: Readable} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181454
181481
|
const {hasText: hasText} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181482
|
+
const {hasMedia: hasMedia} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181455
181483
|
const {PreviewPrompt: PreviewPrompt} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181456
181484
|
const {UiLayout: UiLayout} = _dll_pie_lib__pie_toolbox_render_ui;
|
|
181457
181485
|
const {CorrectAnswerToggle: CorrectAnswerToggle} = _dll_pie_lib__pie_toolbox_correct_answer_toggle;
|
|
@@ -181820,21 +181848,22 @@ class Main extends React$1.Component {
|
|
|
181820
181848
|
this.renderTeacherInstructions = () => {
|
|
181821
181849
|
const {model, classes} = this.props;
|
|
181822
181850
|
const {teacherInstructions, animationsDisabled} = model || ({});
|
|
181851
|
+
const showTeacherInstructions = teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));
|
|
181823
181852
|
const teacherInstructionsDiv = React$1.createElement(PreviewPrompt, {
|
|
181824
181853
|
defaultClassName: "teacher-instructions",
|
|
181825
181854
|
prompt: teacherInstructions,
|
|
181826
181855
|
__self: this,
|
|
181827
181856
|
__source: {
|
|
181828
181857
|
fileName: _jsxFileName,
|
|
181829
|
-
lineNumber:
|
|
181858
|
+
lineNumber: 517
|
|
181830
181859
|
}
|
|
181831
181860
|
});
|
|
181832
|
-
return
|
|
181861
|
+
return showTeacherInstructions && React$1.createElement('div', {
|
|
181833
181862
|
className: classes.collapsible,
|
|
181834
181863
|
__self: this,
|
|
181835
181864
|
__source: {
|
|
181836
181865
|
fileName: _jsxFileName,
|
|
181837
|
-
lineNumber:
|
|
181866
|
+
lineNumber: 517
|
|
181838
181867
|
}
|
|
181839
181868
|
}, !animationsDisabled ? React$1.createElement(Collapsible, {
|
|
181840
181869
|
labels: {
|
|
@@ -181844,7 +181873,7 @@ class Main extends React$1.Component {
|
|
|
181844
181873
|
__self: this,
|
|
181845
181874
|
__source: {
|
|
181846
181875
|
fileName: _jsxFileName,
|
|
181847
|
-
lineNumber:
|
|
181876
|
+
lineNumber: 517
|
|
181848
181877
|
}
|
|
181849
181878
|
}, teacherInstructionsDiv) : teacherInstructionsDiv);
|
|
181850
181879
|
};
|
|
@@ -181858,15 +181887,16 @@ class Main extends React$1.Component {
|
|
|
181858
181887
|
__self: this,
|
|
181859
181888
|
__source: {
|
|
181860
181889
|
fileName: _jsxFileName,
|
|
181861
|
-
lineNumber:
|
|
181890
|
+
lineNumber: 517
|
|
181862
181891
|
}
|
|
181863
181892
|
});
|
|
181864
|
-
|
|
181893
|
+
const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));
|
|
181894
|
+
return showRationale && React$1.createElement('div', {
|
|
181865
181895
|
className: classes.collapsible,
|
|
181866
181896
|
__self: this,
|
|
181867
181897
|
__source: {
|
|
181868
181898
|
fileName: _jsxFileName,
|
|
181869
|
-
lineNumber:
|
|
181899
|
+
lineNumber: 517
|
|
181870
181900
|
}
|
|
181871
181901
|
}, !animationsDisabled ? React$1.createElement(Collapsible, {
|
|
181872
181902
|
labels: {
|
|
@@ -181876,7 +181906,7 @@ class Main extends React$1.Component {
|
|
|
181876
181906
|
__self: this,
|
|
181877
181907
|
__source: {
|
|
181878
181908
|
fileName: _jsxFileName,
|
|
181879
|
-
lineNumber:
|
|
181909
|
+
lineNumber: 517
|
|
181880
181910
|
}
|
|
181881
181911
|
}, rationaleDiv) : rationaleDiv);
|
|
181882
181912
|
};
|
|
@@ -181895,7 +181925,7 @@ class Main extends React$1.Component {
|
|
|
181895
181925
|
__self: this,
|
|
181896
181926
|
__source: {
|
|
181897
181927
|
fileName: _jsxFileName,
|
|
181898
|
-
lineNumber:
|
|
181928
|
+
lineNumber: 517
|
|
181899
181929
|
}
|
|
181900
181930
|
}, React$1.createElement(maskMarkup$1.Customizable, {
|
|
181901
181931
|
disabled: disabled,
|
|
@@ -181917,7 +181947,7 @@ class Main extends React$1.Component {
|
|
|
181917
181947
|
__self: this,
|
|
181918
181948
|
__source: {
|
|
181919
181949
|
fileName: _jsxFileName,
|
|
181920
|
-
lineNumber:
|
|
181950
|
+
lineNumber: 517
|
|
181921
181951
|
}
|
|
181922
181952
|
});
|
|
181923
181953
|
return React$1.createElement('div', {
|
|
@@ -181930,7 +181960,7 @@ class Main extends React$1.Component {
|
|
|
181930
181960
|
__self: this,
|
|
181931
181961
|
__source: {
|
|
181932
181962
|
fileName: _jsxFileName,
|
|
181933
|
-
lineNumber:
|
|
181963
|
+
lineNumber: 517
|
|
181934
181964
|
}
|
|
181935
181965
|
}, React$1.createElement(Tooltip, {
|
|
181936
181966
|
ref: ref => this.setTooltipRef(ref),
|
|
@@ -181951,7 +181981,7 @@ class Main extends React$1.Component {
|
|
|
181951
181981
|
__self: this,
|
|
181952
181982
|
__source: {
|
|
181953
181983
|
fileName: _jsxFileName,
|
|
181954
|
-
lineNumber:
|
|
181984
|
+
lineNumber: 517
|
|
181955
181985
|
}
|
|
181956
181986
|
}, React$1.createElement(HorizontalKeypad, {
|
|
181957
181987
|
additionalKeys: additionalKeys,
|
|
@@ -181960,27 +181990,27 @@ class Main extends React$1.Component {
|
|
|
181960
181990
|
__self: this,
|
|
181961
181991
|
__source: {
|
|
181962
181992
|
fileName: _jsxFileName,
|
|
181963
|
-
lineNumber:
|
|
181993
|
+
lineNumber: 517
|
|
181964
181994
|
}
|
|
181965
181995
|
})) || null),
|
|
181966
181996
|
__self: this,
|
|
181967
181997
|
__source: {
|
|
181968
181998
|
fileName: _jsxFileName,
|
|
181969
|
-
lineNumber:
|
|
181999
|
+
lineNumber: 517
|
|
181970
182000
|
}
|
|
181971
182001
|
}, studentPrintMode ? React$1.createElement('div', {
|
|
181972
182002
|
className: classes.printContainer,
|
|
181973
182003
|
__self: this,
|
|
181974
182004
|
__source: {
|
|
181975
182005
|
fileName: _jsxFileName,
|
|
181976
|
-
lineNumber:
|
|
182006
|
+
lineNumber: 517
|
|
181977
182007
|
}
|
|
181978
182008
|
}, MQStatic) : MQStatic));
|
|
181979
182009
|
},
|
|
181980
182010
|
__self: this,
|
|
181981
182011
|
__source: {
|
|
181982
182012
|
fileName: _jsxFileName,
|
|
181983
|
-
lineNumber:
|
|
182013
|
+
lineNumber: 517
|
|
181984
182014
|
}
|
|
181985
182015
|
}));
|
|
181986
182016
|
};
|
|
@@ -182002,28 +182032,28 @@ class Main extends React$1.Component {
|
|
|
182002
182032
|
__self: this,
|
|
182003
182033
|
__source: {
|
|
182004
182034
|
fileName: _jsxFileName,
|
|
182005
|
-
lineNumber:
|
|
182035
|
+
lineNumber: 547
|
|
182006
182036
|
}
|
|
182007
182037
|
}, React$1.createElement('div', {
|
|
182008
182038
|
className: classes.main,
|
|
182009
182039
|
__self: this,
|
|
182010
182040
|
__source: {
|
|
182011
182041
|
fileName: _jsxFileName,
|
|
182012
|
-
lineNumber:
|
|
182042
|
+
lineNumber: 553
|
|
182013
182043
|
}
|
|
182014
182044
|
}, mode === 'gather' && React$1.createElement('h2', {
|
|
182015
182045
|
className: classes.srOnly,
|
|
182016
182046
|
__self: this,
|
|
182017
182047
|
__source: {
|
|
182018
182048
|
fileName: _jsxFileName,
|
|
182019
|
-
lineNumber:
|
|
182049
|
+
lineNumber: 555
|
|
182020
182050
|
}
|
|
182021
182051
|
}, "Math Equation Response Question"), React$1.createElement('div', {
|
|
182022
182052
|
className: classes.main,
|
|
182023
182053
|
__self: this,
|
|
182024
182054
|
__source: {
|
|
182025
182055
|
fileName: _jsxFileName,
|
|
182026
|
-
lineNumber:
|
|
182056
|
+
lineNumber: 557
|
|
182027
182057
|
}
|
|
182028
182058
|
}, showCorrectAnswerToggle && React$1.createElement(CorrectAnswerToggle, {
|
|
182029
182059
|
language: language,
|
|
@@ -182034,28 +182064,28 @@ class Main extends React$1.Component {
|
|
|
182034
182064
|
__self: this,
|
|
182035
182065
|
__source: {
|
|
182036
182066
|
fileName: _jsxFileName,
|
|
182037
|
-
lineNumber:
|
|
182067
|
+
lineNumber: 559
|
|
182038
182068
|
}
|
|
182039
182069
|
})), this.renderTeacherInstructions(), prompt && React$1.createElement('div', {
|
|
182040
182070
|
className: classes.promptContainer,
|
|
182041
182071
|
__self: this,
|
|
182042
182072
|
__source: {
|
|
182043
182073
|
fileName: _jsxFileName,
|
|
182044
|
-
lineNumber:
|
|
182074
|
+
lineNumber: 572
|
|
182045
182075
|
}
|
|
182046
182076
|
}, React$1.createElement(PreviewPrompt, {
|
|
182047
182077
|
prompt: prompt,
|
|
182048
182078
|
__self: this,
|
|
182049
182079
|
__source: {
|
|
182050
182080
|
fileName: _jsxFileName,
|
|
182051
|
-
lineNumber:
|
|
182081
|
+
lineNumber: 573
|
|
182052
182082
|
}
|
|
182053
182083
|
})), React$1.createElement(Readable, {
|
|
182054
182084
|
false: true,
|
|
182055
182085
|
__self: this,
|
|
182056
182086
|
__source: {
|
|
182057
182087
|
fileName: _jsxFileName,
|
|
182058
|
-
lineNumber:
|
|
182088
|
+
lineNumber: 577
|
|
182059
182089
|
}
|
|
182060
182090
|
}, this.renderPlayerContent()), displayNote && React$1.createElement('div', {
|
|
182061
182091
|
className: cx(classes.note, 'note'),
|
|
@@ -182065,7 +182095,7 @@ class Main extends React$1.Component {
|
|
|
182065
182095
|
__self: this,
|
|
182066
182096
|
__source: {
|
|
182067
182097
|
fileName: _jsxFileName,
|
|
182068
|
-
lineNumber:
|
|
182098
|
+
lineNumber: 582
|
|
182069
182099
|
}
|
|
182070
182100
|
}), this.renderRationale()));
|
|
182071
182101
|
}
|
package/package.json
CHANGED
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "3.6.7-next.
|
|
7
|
+
"version": "3.6.7-next.20+8645a526e",
|
|
8
8
|
"description": "",
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.2",
|
|
11
11
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
12
|
-
"@pie-lib/pie-toolbox": "2.
|
|
12
|
+
"@pie-lib/pie-toolbox": "2.17.5",
|
|
13
13
|
"prop-types": "^15.6.1",
|
|
14
14
|
"react": "^16.8.1",
|
|
15
15
|
"react-dom": "^16.8.1"
|
|
16
16
|
},
|
|
17
17
|
"author": "",
|
|
18
18
|
"license": "ISC",
|
|
19
|
-
"gitHead": "
|
|
19
|
+
"gitHead": "8645a526eb8d93c6f42ec1b4e088c4865ed2a0a7",
|
|
20
20
|
"scripts": {
|
|
21
21
|
"postpublish": "../../scripts/postpublish"
|
|
22
22
|
},
|