@pie-element/math-templated 3.6.7-next.2 → 3.6.7-next.23

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.
@@ -8,7 +8,7 @@
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
10
  "@pie-framework/pie-configure-events": "^1.3.0",
11
- "@pie-lib/pie-toolbox": "2.16.0",
11
+ "@pie-lib/pie-toolbox": "2.17.5",
12
12
  "debug": "^3.1.0",
13
13
  "lodash": "^4.17.15",
14
14
  "prop-types": "^15.6.2",
@@ -7,7 +7,7 @@
7
7
  "module": "src/index.js",
8
8
  "dependencies": {
9
9
  "@pie-framework/math-validation": "^1.2.3",
10
- "@pie-lib/pie-toolbox": "2.16.0",
10
+ "@pie-lib/pie-toolbox": "2.17.5",
11
11
  "debug": "^3.1.0",
12
12
  "lodash": "^4.17.15"
13
13
  },
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 teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement("div", {
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
- return rationale && (0, _renderUi.hasText)(rationale) && /*#__PURE__*/_react["default"].createElement("div", {
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"}
@@ -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@3.9.0/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@6.2.0/module/index.js";
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@3.9.0/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@6.2.0/module/index.js";
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: 515
181895
+ lineNumber: 517
181867
181896
  }
181868
181897
  });
181869
- return teacherInstructions && hasText(teacherInstructions) && React$1.createElement('div', {
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: 515
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: 515
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: 515
181927
+ lineNumber: 517
181899
181928
  }
181900
181929
  });
181901
- return rationale && hasText(rationale) && React$1.createElement('div', {
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: 515
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: 515
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: 515
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: 515
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: 515
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: 515
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: 515
182030
+ lineNumber: 517
182001
182031
  }
182002
182032
  })) || null),
182003
182033
  __self: this,
182004
182034
  __source: {
182005
182035
  fileName: _jsxFileName,
182006
- lineNumber: 515
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: 515
182043
+ lineNumber: 517
182014
182044
  }
182015
182045
  }, MQStatic) : MQStatic));
182016
182046
  },
182017
182047
  __self: this,
182018
182048
  __source: {
182019
182049
  fileName: _jsxFileName,
182020
- lineNumber: 515
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: 545
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: 551
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: 553
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: 555
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: 557
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: 570
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: 571
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: 575
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: 580
182135
+ lineNumber: 582
182106
182136
  }
182107
182137
  }), this.renderRationale()));
182108
182138
  }
@@ -4,11 +4,11 @@
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/pie-toolbox-math-rendering-module",
7
- "version": "3.9.0"
7
+ "version": "4.1.5"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/pie-toolbox-module",
11
- "version": "6.2.0"
11
+ "version": "7.0.3"
12
12
  }
13
13
  ]
14
14
  }
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@3.9.0/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@6.2.0/module/index.js";
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: 515
181858
+ lineNumber: 517
181830
181859
  }
181831
181860
  });
181832
- return teacherInstructions && hasText(teacherInstructions) && React$1.createElement('div', {
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: 515
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: 515
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: 515
181890
+ lineNumber: 517
181862
181891
  }
181863
181892
  });
181864
- return rationale && hasText(rationale) && React$1.createElement('div', {
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: 515
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: 515
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: 515
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: 515
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: 515
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: 515
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: 515
181993
+ lineNumber: 517
181964
181994
  }
181965
181995
  })) || null),
181966
181996
  __self: this,
181967
181997
  __source: {
181968
181998
  fileName: _jsxFileName,
181969
- lineNumber: 515
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: 515
182006
+ lineNumber: 517
181977
182007
  }
181978
182008
  }, MQStatic) : MQStatic));
181979
182009
  },
181980
182010
  __self: this,
181981
182011
  __source: {
181982
182012
  fileName: _jsxFileName,
181983
- lineNumber: 515
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: 545
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: 551
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: 553
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: 555
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: 557
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: 570
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: 571
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: 575
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: 580
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.2+21ecb8bdd",
7
+ "version": "3.6.7-next.23+a4f149acd",
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.16.0",
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": "21ecb8bdd2ac0d202c57aeed447dda1541723cda",
19
+ "gitHead": "a4f149acd5cd9b387b8b2bd51e348be1ea7c1201",
20
20
  "scripts": {
21
21
  "postpublish": "../../scripts/postpublish"
22
22
  },