@pie-element/math-templated 5.0.2-esm.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/configure/CHANGELOG.md +19 -0
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +25 -0
- package/controller/lib/index.js +1 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +3 -3
- package/module/configure.js +1 -1
- package/module/controller.js +40 -39
- package/module/element.js +1 -1
- package/module/index.html +1 -1
- package/module/manifest.json +5 -5
- package/module/print.html +1 -1
- package/module/print.js +1 -1
- package/package.json +9 -27
- package/esm/configure.css +0 -847
- package/esm/configure.js +0 -1342
- package/esm/configure.js.map +0 -1
- package/esm/controller.css +0 -847
- package/esm/controller.js +0 -335
- package/esm/controller.js.map +0 -1
- package/esm/element.css +0 -847
- package/esm/element.js +0 -900
- package/esm/element.js.map +0 -1
- package/esm/print.css +0 -847
- package/esm/print.js +0 -905
- package/esm/print.js.map +0 -1
package/esm/configure.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sources":["../configure/src/response.jsx","../configure/src/markupUtils.js","../configure/src/utils.js","../configure/src/design.jsx","../configure/src/defaults.js","../configure/src/index.js"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Typography from '@material-ui/core/Typography';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\nimport IconButton from '@material-ui/core/IconButton';\nimport Delete from '@material-ui/icons/Delete';\nimport { color } from '@pie-lib/render-ui';\n\nexport class Response extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n defaultResponse: PropTypes.bool,\n error: PropTypes.object,\n mode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onResponseChange: PropTypes.func.isRequired,\n onResponseDone: PropTypes.func.isRequired,\n response: PropTypes.object.isRequired,\n cIgnoreOrder: PropTypes.object.isRequired,\n cAllowTrailingZeros: PropTypes.object.isRequired,\n responseKey: PropTypes.number.isRequired,\n };\n\n static defaultProps = {\n defaultResponse: false,\n mode: '8',\n };\n\n constructor(props) {\n super(props);\n\n const { response: { alternates } = {} } = props || {};\n const alternatesLength = Object.keys(alternates || {}).length;\n\n this.state = {\n alternateIdCounter: alternatesLength + 1,\n showKeypad: {\n openCount: 0,\n main: false,\n },\n };\n }\n\n onChange = (name) => (evt) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.value;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onConfigChanged = (name) => (evt) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.checked;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onLiteralOptionsChange = (name) => () => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = !response[name];\n\n onResponseChange(newResponse, responseKey);\n };\n\n onAnswerChange = (answer) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse.answer = answer;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onAlternateAnswerChange = (alternateId) => (answer) => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n newResponse.alternates[alternateId] = answer;\n\n onResponseChange(newResponse, responseKey);\n };\n\n onAddAlternate = () => {\n const { response, onResponseChange, responseKey } = this.props;\n const { alternateIdCounter } = this.state;\n const newResponse = { ...response };\n\n if (!newResponse.alternates) {\n newResponse.alternates = {};\n }\n\n newResponse.alternates[alternateIdCounter] = '';\n\n onResponseChange(newResponse, responseKey);\n\n this.setState({\n alternateIdCounter: alternateIdCounter + 1,\n });\n };\n\n onRemoveAlternate = (alternateId) => () => {\n const { response, onResponseChange, responseKey } = this.props;\n const newResponse = { ...response };\n\n delete newResponse.alternates[alternateId];\n\n onResponseChange(newResponse, responseKey);\n\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount : state.showKeypad.openCount - 1,\n },\n }));\n };\n\n onDone = () => {\n const { onResponseDone } = this.props;\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n main: false,\n },\n }));\n\n onResponseDone();\n };\n\n onFocus = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad.main ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,\n main: true,\n },\n }));\n };\n\n onAlternateFocus = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,\n [alternateId]: true,\n },\n }));\n };\n\n onAlternateDone = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n [alternateId]: false,\n },\n }));\n };\n\n render() {\n const { classes, mode, responseKey, response, cAllowTrailingZeros, cIgnoreOrder, error } = this.props;\n const { showKeypad } = this.state;\n const { validation, answer, alternates, ignoreOrder, allowTrailingZeros } = response;\n const hasAlternates = Object.keys(alternates || {}).length > 0;\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n const styles = {\n minHeight: `${showKeypad.openCount > 0 ? 430 : 230}px`,\n };\n // add 1 to index to display R 1 instead of R 0\n const keyToDisplay = `R ${parseInt(responseKey) + 1}`;\n\n return (\n <Card className={classes.responseContainer} style={styles}>\n <CardContent className={classes.cardContent}>\n <div className={classes.titleBar}>\n <Typography className={classes.title} component=\"div\">\n Response for <div className={classes.responseBox}>{keyToDisplay}</div>\n </Typography>\n\n <InputContainer label=\"Validation\" className={classes.selectContainer}>\n <Select className={classes.select} onChange={this.onChange('validation')} value={validation || 'literal'}>\n <MenuItem value=\"literal\">Literal Validation</MenuItem>\n <MenuItem value=\"symbolic\">Symbolic Validation</MenuItem>\n </Select>\n </InputContainer>\n </div>\n\n {validation === 'literal' && (\n <div className={classes.flexContainer}>\n {cAllowTrailingZeros.enabled && (\n <FormControlLabel\n label={cAllowTrailingZeros.label}\n control={\n <Checkbox\n className={classes.customColor}\n checked={allowTrailingZeros}\n onChange={this.onLiteralOptionsChange('allowTrailingZeros')}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={\n <Checkbox\n className={classes.customColor}\n checked={ignoreOrder}\n onChange={this.onLiteralOptionsChange('ignoreOrder')}\n />\n }\n />\n )}\n </div>\n )}\n\n <div className={classes.inputContainer}>\n <InputLabel>Correct Answer</InputLabel>\n <MathToolbar\n keypadMode={mode}\n classNames={classNames}\n controlledKeypad\n showKeypad={showKeypad.main}\n latex={answer || ''}\n onChange={this.onAnswerChange}\n onFocus={this.onFocus}\n onDone={this.onDone}\n error={error && error.answer}\n />\n {error && error.answer ? <div className={classes.errorText}>{error.answer}</div> : null}\n </div>\n\n {hasAlternates &&\n Object.keys(alternates).map((alternateId, altIdx) => (\n <div className={classes.inputContainer} key={alternateId}>\n <InputLabel>\n Alternate\n {Object.keys(alternates).length > 1 ? ` ${altIdx + 1}` : ''}\n </InputLabel>\n <div className={classes.alternateBar}>\n <MathToolbar\n classNames={classNames}\n controlledKeypad\n keypadMode={mode}\n showKeypad={showKeypad[alternateId] || false}\n latex={alternates[alternateId] || ''}\n onChange={this.onAlternateAnswerChange(alternateId)}\n onFocus={this.onAlternateFocus(alternateId)}\n onDone={this.onAlternateDone(alternateId)}\n error={error && error[alternateId]}\n />\n <IconButton className={classes.removeAlternateButton} onClick={this.onRemoveAlternate(alternateId)}>\n <Delete />\n </IconButton>\n </div>\n {error && error[alternateId] ? <div className={classes.errorText}>{error[alternateId]}</div> : null}\n </div>\n ))}\n\n <Button className={classes.alternateButton} type=\"primary\" onClick={this.onAddAlternate}>\n ADD ALTERNATE\n </Button>\n </CardContent>\n </Card>\n );\n }\n}\n\nconst styles = (theme) => ({\n responseContainer: {\n marginBottom: theme.spacing.unit * 2.5,\n width: '100%',\n minWidth: '548px',\n border: `1px solid ${theme.palette.grey[700]}`,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n cardContent: {\n paddingBottom: `${theme.spacing.unit * 2}px !important`,\n },\n title: {\n fontWeight: 700,\n fontSize: '1.2rem',\n flex: 3,\n },\n selectContainer: {\n flex: 2,\n },\n inputContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n responseEditor: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: '900px',\n height: 'auto',\n minHeight: '40px',\n },\n mathToolbar: {\n width: '100%',\n },\n alternateButton: {\n border: `1px solid ${theme.palette.grey['A100']}`,\n },\n removeAlternateButton: {\n marginLeft: theme.spacing.unit,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n responseBox: {\n background: theme.palette.grey['A100'],\n color: theme.palette.grey['A700'],\n display: 'inline',\n minWidth: '50px',\n padding: '8px',\n border: '1px solid #C0C3CF',\n },\n alternateBar: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n customColor: {\n color: `${color.tertiary()} !important`,\n },\n});\n\nexport default withStyles(styles)(Response);\n","// do not remove \\t from \\times, \\triangle, \\tan, \\theta or \\therefore\nconst tSymbols = 'imes|riangle|an|heta|herefore';\n// do not remove \\n from \\nthroot, \\nparallel, \\ncong, \\napprox, \\neq, \\ne or \\nsim\nconst nSymbols = 'throot|parallel|cong|approx|eq|e|sim';\n// match all \\t and \\n that are not part of math symbols that starts with \\t or \\n\nconst matchTabAndNewLine = new RegExp(\n `(\\\\t(?!${tSymbols}))|(\\\\n(?!${nSymbols}))|(\\\\\\\\t(?!${tSymbols}))|(\\\\\\\\n(?!${nSymbols}))`,\n 'g'\n);\n\nexport const removeUnwantedCharacters = (markup) =>\n markup.replace(matchTabAndNewLine, '').replace(/\\\\\"/g, '\"').replace(/\\\\\\//g, '/');\n\nconst createElementFromHTML = (htmlString = '') => {\n const div = document.createElement('div');\n\n div.innerHTML = htmlString.trim();\n\n return div;\n};\n\nexport const processMarkup = (markup) => {\n const newMarkup = removeUnwantedCharacters(markup || '');\n const slateMarkup = createElementFromHTML(newMarkup || '');\n\n slateMarkup.querySelectorAll('[data-type=\"math_templated\"]')\n .forEach((s) => s.replaceWith(`{{${s.dataset.index}}}`));\n\n return slateMarkup.innerHTML;\n};\n\nconst REGEX = /\\{\\{(\\d+)\\}\\}/g;\n\nexport const createSlateMarkup = (markup, responses) => {\n if (!markup) {\n return '';\n }\n\n const newMarkup = removeUnwantedCharacters(markup);\n\n return newMarkup.replace(REGEX, (match, groupIndex) => {\n const responseValue = responses[groupIndex]?.answer || '';\n return `<span data-type=\"math_templated\" data-index=\"${groupIndex}\" data-value=\"${responseValue}\"></span>`;\n });\n};\n","export const generateValidationMessage = (config) => {\n const { maxResponseAreas } = config;\n\n const responseAreasMessage =\n '\\nCorrect answers should not be blank.' +\n '\\nEach answer defined for a response area should be unique.' +\n '\\nThere should be at least 1 ' +\n (maxResponseAreas ? `and at most ${maxResponseAreas} ` : '') +\n 'response area' +\n (maxResponseAreas ? 's' : '') +\n ' defined.';\n\n return 'Validation requirements:' + responseAreasMessage;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport cloneDeep from 'lodash/cloneDeep';\nimport pick from 'lodash/pick';\nimport throttle from 'lodash/throttle';\nimport { InputContainer, settings, layout } from '@pie-lib/config-ui';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\nimport { dropdown } from '@pie-lib/config-ui';\n\nimport Response from './response';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle } = settings;\n\nconst createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n\n return div;\n};\n\nexport class Design extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.object,\n };\n\n state = {};\n\n componentDidMount() {\n const {\n model: { slateMarkup },\n } = this.props;\n\n this.setState({ markup: slateMarkup });\n }\n\n handleChange = (key, value) => {\n const { onModelChanged, model } = this.props;\n const updatedModel = cloneDeep(model);\n updatedModel[key] = value;\n onModelChanged(updatedModel);\n };\n\n onResponseChange = (response, index) => {\n const { model, onModelChanged } = this.props;\n const newModel = { ...model };\n\n newModel.responses[index] = response;\n onModelChanged(newModel);\n };\n\n onResponseDone = () => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n slateMarkup: createSlateMarkup(model.markup, model.responses),\n });\n };\n\n onChangeResponse = (index, newVal) => {\n const { model, onModelChanged } = this.props;\n const { responses } = model;\n\n if (!responses[index]) {\n responses[index] = [{ answer: newVal || '', id: 'response' + index, allowSpaces: true }];\n } else {\n responses[index][0].answer = newVal || '';\n }\n\n onModelChanged({ ...model, responses });\n };\n\n onResponsesChanged = (responses) => {\n this.props.onModelChanged({ ...this.props.model, responses });\n };\n\n onChange = (markup) => {\n const {\n model: { responses, validationDefault, allowTrailingZerosDefault, ignoreOrderDefault },\n onModelChanged,\n } = this.props;\n const newResponses = {};\n const domMarkup = createElementFromHTML(markup);\n const responseAreas = domMarkup.querySelectorAll('[data-type=\"math_templated\"]');\n\n responseAreas.forEach((element, index) => {\n const { value, index: dataIndex } = element.dataset;\n\n if (!value) {\n element.dataset.value = '';\n }\n\n newResponses[index] = responses[dataIndex] || {\n allowSpaces: true,\n validation: validationDefault || 'symbolic',\n allowTrailingZeros: allowTrailingZerosDefault || false,\n ignoreOrder: ignoreOrderDefault || false,\n answer: '',\n alternates: {},\n };\n\n element.dataset.index = index.toString();\n });\n\n console.log('newResponses', newResponses);\n\n const processedMarkup = processMarkup(markup);\n\n const callback = () =>\n onModelChanged({\n ...this.props.model,\n slateMarkup: domMarkup.innerHTML,\n responses: newResponses,\n markup: processedMarkup,\n });\n\n this.setState({ cachedResponses: undefined }, callback);\n };\n\n onHandleAreaChange = throttle(\n (nodes) => {\n const {\n model: { responses },\n onModelChanged,\n } = this.props;\n const { cachedResponses } = this.state;\n\n if (!nodes) {\n return;\n }\n\n const newChoices = responses ? cloneDeep(responses) : {};\n const newCachedResponses = cachedResponses ? cloneDeep(cachedResponses) : {};\n\n nodes.forEach((node) => {\n const keyForNode = node.data.get('index');\n\n if (!newChoices[keyForNode] && newCachedResponses[keyForNode]) {\n Object.assign(newChoices, pick(newCachedResponses, keyForNode));\n\n if (newCachedResponses.hasOwnProperty(keyForNode)) {\n delete newCachedResponses[keyForNode];\n }\n } else {\n Object.assign(newCachedResponses, pick(newChoices, keyForNode));\n\n if (newChoices.hasOwnProperty(keyForNode)) {\n delete newChoices[keyForNode];\n }\n }\n });\n\n const callback = () => onModelChanged({ ...this.props.model, responses: newChoices });\n\n this.setState({ cachedResponses: newCachedResponses }, callback);\n },\n 500,\n { trailing: false, leading: true },\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 render() {\n const { classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n prompt = {},\n rationale = {},\n settingsPanelDisabled,\n teacherInstructions = {},\n language = {},\n languageChoices = {},\n spellCheck = {},\n playerSpellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n template = {},\n editSource = {},\n ignoreOrder: cIgnoreOrder = {},\n allowTrailingZeros: cAllowTrailingZeros = {},\n partialScoring = {},\n maxResponseAreas,\n } = configuration || {};\n\n const {\n errors,\n extraCSSRules,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n responses,\n equationEditor,\n } = model || {};\n\n const {\n prompt: promptError,\n rationale: rationaleError,\n responseAreas: responseAreasError,\n teacherInstructions: teacherInstructionsError,\n responses: responsesErrors = {},\n } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const panelSettings = {\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n playerSpellCheckEnabled: playerSpellCheck.settings && toggle(playerSpellCheck.label),\n 'editSource.enabled': editSource?.settings && toggle(editSource.label, true),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const getPluginProps = (props = {}, baseInputConfiguration = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(updatedModel) => onModelChanged(updatedModel)}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={(value) => this.handleChange('teacherInstructions', value)}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={(value) => this.handleChange('prompt', value)}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n <div className={classes.tooltipContainer}>\n <Typography className={classes.title} component={'div'}>\n Response Template\n </Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} />\n </Tooltip>\n </div>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n toolbarOpts={{ position: 'top' }}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(template?.inputConfiguration, baseInputConfiguration)}\n responseAreaProps={{\n type: 'math-templated',\n respAreaToolbar: null,\n error: () => responsesErrors,\n onHandleAreaChange: this.onHandleAreaChange,\n maxResponseAreas: maxResponseAreas,\n }}\n className={classes.markup}\n markup={model.slateMarkup}\n onChange={this.onChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n onBlur={this.onBlur}\n disabled={false}\n highlightShape={false}\n error={responseAreasError}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {responseAreasError && <div className={classes.responseAreaError}>{responseAreasError}</div>}\n\n <Typography className={classes.title}>Define Response</Typography>\n\n <InputContainer label=\"Response Template Equation Editor\" className={classes.selectContainer}>\n <Select\n className={classes.select}\n onChange={(event) => this.handleChange('equationEditor', event.target.value)}\n value={equationEditor}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>\n\n {Object.keys(responses || {}).map((responseKey, idx) => {\n const response = responses[idx];\n\n if (response) {\n return (\n <Response\n key={idx}\n responseKey={idx}\n mode={equationEditor}\n response={response}\n onResponseChange={this.onResponseChange}\n onResponseDone={this.onResponseDone}\n index={idx}\n cIgnoreOrder={cIgnoreOrder}\n cAllowTrailingZeros={cAllowTrailingZeros}\n error={responsesErrors && responsesErrors[idx]}\n />\n );\n }\n\n return null;\n })}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={(value) => this.handleChange('rationale', value)}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rationale?.inputConfiguration, {\n ...baseInputConfiguration,\n math: {\n controlledKeypadMode: false,\n },\n })}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles((theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n prompt: {\n width: '100%',\n },\n errorText: {\n color: theme.palette.error.main,\n fontSize: '0.75rem',\n marginTop: theme.spacing.unit,\n },\n responseAreaError: {\n color: theme.palette.error.main,\n fontSize: '0.75rem',\n marginBottom: theme.spacing.unit,\n },\n markup: {\n width: '100%',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 3,\n },\n selectContainer: {\n width: '100%',\n marginTop: theme.spacing.unit * 2,\n },\n select: {\n width: '100%',\n },\n title: {\n fontSize: theme.typography.fontSize * 1.25,\n fontWeight: 'bold',\n },\n tooltipContainer: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}))(Design);\n","// Should be exactly the same as controller/defaults.js\nexport default {\n model: {\n allowTrailingZerosDefault: false,\n equationEditor: '8',\n ignoreOrderDefault: false,\n markup: '',\n playerSpellCheckEnabled: true,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n responses: {},\n spellCheckEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n validationDefault: 'literal',\n },\n configuration: {\n ignoreOrder: {\n settings: false,\n label: 'Ignore Order',\n enabled: true,\n },\n allowTrailingZeros: {\n settings: false,\n label: 'Allow Trailing Zeros',\n enabled: true,\n },\n partialScoring: {\n settings: true,\n label: 'Allow Partial Scoring',\n },\n baseInputConfiguration: {\n html: { disabled: true },\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n h3: { disabled: true },\n blockquote: { disabled: true },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n prompt: {\n label: 'Prompt',\n settings: true,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n editSource: {\n label: 'Edit Source',\n settings: false,\n enabled: false,\n },\n playerSpellCheck: {\n label: 'Student Spellcheck',\n settings: true,\n enabled: true,\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n template: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n maxResponseAreas: 10,\n },\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport defaults from 'lodash/defaults';\nimport isArray from 'lodash/isArray';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './design';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('math-templated:configure');\n\nexport default class MathTemplateConfigure extends HTMLElement {\n static prepareModel = (model = {}) => {\n const { validationDefault, allowTrailingZerosDefault, ignoreOrderDefault, responses = {} } = model;\n\n const updatedResponses = Object.keys(responses).reduce((acc, responseId) => {\n const correctResponse = responses[responseId];\n\n acc[responseId] = {\n ...correctResponse,\n validation: correctResponse.validation || validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || ignoreOrderDefault,\n };\n\n return acc;\n }, {});\n\n const joinedObj = {\n ...sensibleDefaults.model,\n ...model,\n responses: updatedResponses\n };\n\n const slateMarkup = joinedObj.slateMarkup || createSlateMarkup(joinedObj.markup, joinedObj.responses);\n const processedMarkup = processMarkup(slateMarkup);\n\n // this was added to treat an exception, when the model has responses without the \"answer\" property\n if (joinedObj.responses) {\n Object.keys(joinedObj.responses).forEach((key) => {\n if (isArray(joinedObj.responses[key])) {\n joinedObj.responses[key] = (joinedObj.responses[key] || []).map((item, index) => {\n if (!item.answer) {\n log('Choice does not contain \"answer\" property, which is required.', item);\n return { answer: `${index}`, ...item };\n }\n\n return item;\n });\n }\n });\n }\n\n return {\n ...joinedObj,\n slateMarkup,\n markup: processedMarkup,\n };\n };\n\n constructor() {\n super();\n this._model = MathTemplateConfigure.prepareModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(s) {\n this._model = MathTemplateConfigure.prepareModel(s);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = defaults(c, sensibleDefaults.configuration);\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (c.language?.enabled) {\n if (c.languageChoices?.options?.length) {\n this._model.language = c.languageChoices.options[0].value;\n }\n } else if (c.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n set disableSidePanel(s) {\n this._disableSidePanel = s;\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged(m, reset) {\n this._model = MathTemplateConfigure.prepareModel(m);\n this._render();\n this.dispatchModelUpdated(reset);\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n this._render();\n }\n\n /** @param {done, progress, file} handler */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n disableSidePanel: this._disableSidePanel,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"names":["Response","React","Component","constructor","props","onChange","name","evt","response","onResponseChange","responseKey","newResponse","target","value","onConfigChanged","checked","onLiteralOptionsChange","onAnswerChange","answer","onAlternateAnswerChange","alternateId","alternates","onAddAlternate","alternateIdCounter","state","setState","onRemoveAlternate","showKeypad","openCount","onDone","onResponseDone","main","onFocus","onAlternateFocus","onAlternateDone","alternatesLength","Object","keys","length","render","classes","mode","cAllowTrailingZeros","cIgnoreOrder","error","validation","ignoreOrder","allowTrailingZeros","hasAlternates","classNames","editor","responseEditor","mathToolbar","styles","minHeight","keyToDisplay","parseInt","responseContainer","cardContent","titleBar","title","responseBox","selectContainer","select","flexContainer","enabled","label","customColor","inputContainer","errorText","map","altIdx","alternateBar","removeAlternateButton","alternateButton","propTypes","PropTypes","object","isRequired","defaultResponse","bool","oneOfType","string","number","func","defaultProps","theme","marginBottom","spacing","unit","width","minWidth","border","palette","grey","display","flexDirection","justifyContent","paddingBottom","fontWeight","fontSize","flex","alignItems","maxWidth","height","marginLeft","typography","color","paddingTop","background","padding","tertiary","withStyles","tSymbols","nSymbols","matchTabAndNewLine","RegExp","removeUnwantedCharacters","markup","replace","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","processMarkup","newMarkup","slateMarkup","querySelectorAll","forEach","s","replaceWith","dataset","index","REGEX","createSlateMarkup","responses","match","groupIndex","responseValue","generateValidationMessage","config","maxResponseAreas","responseAreasMessage","Panel","toggle","settings","Design","handleChange","key","onModelChanged","model","updatedModel","cloneDeep","newModel","onChangeResponse","newVal","id","allowSpaces","onResponsesChanged","validationDefault","allowTrailingZerosDefault","ignoreOrderDefault","newResponses","domMarkup","responseAreas","element","dataIndex","toString","console","log","processedMarkup","callback","cachedResponses","undefined","onHandleAreaChange","throttle","nodes","newChoices","newCachedResponses","node","keyForNode","data","get","assign","pick","hasOwnProperty","trailing","leading","onBlur","e","relatedTarget","currentTarget","getParentWithRoleTooltip","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","activeAnswerBlock","componentDidMount","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","contentDimensions","prompt","rationale","settingsPanelDisabled","teacherInstructions","language","languageChoices","spellCheck","playerSpellCheck","maxImageWidth","maxImageHeight","mathMlOptions","template","editSource","partialScoring","errors","extraCSSRules","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","equationEditor","promptError","rationaleError","responseAreasError","teacherInstructionsError","responsesErrors","validationMessage","panelSettings","dropdown","options","panelProperties","playerSpellCheckEnabled","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","getPluginProps","Settings","Properties","promptHolder","inputConfiguration","tooltipContainer","tooltip","ALL_PLUGINS","type","respAreaToolbar","responseAreaError","event","idx","math","controlledKeypadMode","shape","add","delete","marginTop","gap","whiteSpace","html","disabled","audio","video","image","h3","blockquote","textAlign","showParagraphs","separateParagraphs","required","mmlOutput","mmlEditing","debug","MathTemplateConfigure","HTMLElement","_model","prepareModel","_configuration","sensibleDefaults","bind","_render","c","defaults","find","option","push","disableSidePanel","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","Main","ReactDOM","updatedResponses","reduce","acc","responseId","correctResponse","joinedObj","isArray","item"],"mappings":"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"}
|