@pie-element/math-templated 6.0.0-next.42 → 6.1.0-next.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/configure/lib/design.js +7 -9
- package/configure/lib/design.js.map +1 -1
- package/configure/lib/index.js +6 -7
- package/configure/lib/index.js.map +1 -1
- package/configure/package.json +8 -8
- package/controller/lib/index.js +5 -5
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +4 -7
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/main.js +6 -7
- package/lib/main.js.map +1 -1
- package/lib/print.js +2 -2
- package/lib/print.js.map +1 -1
- package/module/configure.js +1 -1
- package/module/controller.js +334 -1761
- package/module/element.js +1 -1
- package/module/index.html +1 -1
- package/module/manifest.json +7 -7
- package/module/print.html +1 -1
- package/module/print.js +1 -0
- package/package.json +18 -11
package/configure/lib/design.js
CHANGED
|
@@ -14,9 +14,7 @@ var _Select = _interopRequireDefault(require("@mui/material/Select"));
|
|
|
14
14
|
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
15
15
|
var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
|
|
16
16
|
var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
|
|
17
|
-
var
|
|
18
|
-
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
19
|
-
var _throttle = _interopRequireDefault(require("lodash/throttle"));
|
|
17
|
+
var _lodashEs = require("lodash-es");
|
|
20
18
|
var _configUi = require("@pie-lib/config-ui");
|
|
21
19
|
var _editableHtmlTipTap = _interopRequireWildcard(require("@pie-lib/editable-html-tip-tap"));
|
|
22
20
|
var _response = _interopRequireDefault(require("./response"));
|
|
@@ -108,7 +106,7 @@ class Design extends _react.default.Component {
|
|
|
108
106
|
onModelChanged,
|
|
109
107
|
model
|
|
110
108
|
} = this.props;
|
|
111
|
-
const updatedModel = (0,
|
|
109
|
+
const updatedModel = (0, _lodashEs.cloneDeep)(model);
|
|
112
110
|
updatedModel[key] = value;
|
|
113
111
|
onModelChanged(updatedModel);
|
|
114
112
|
});
|
|
@@ -203,7 +201,7 @@ class Design extends _react.default.Component {
|
|
|
203
201
|
cachedResponses: undefined
|
|
204
202
|
}, callback);
|
|
205
203
|
});
|
|
206
|
-
(0, _defineProperty2.default)(this, "onHandleAreaChange", (0,
|
|
204
|
+
(0, _defineProperty2.default)(this, "onHandleAreaChange", (0, _lodashEs.throttle)(nodes => {
|
|
207
205
|
const {
|
|
208
206
|
model: {
|
|
209
207
|
responses
|
|
@@ -216,17 +214,17 @@ class Design extends _react.default.Component {
|
|
|
216
214
|
if (!nodes) {
|
|
217
215
|
return;
|
|
218
216
|
}
|
|
219
|
-
const newChoices = responses ? (0,
|
|
220
|
-
const newCachedResponses = cachedResponses ? (0,
|
|
217
|
+
const newChoices = responses ? (0, _lodashEs.cloneDeep)(responses) : {};
|
|
218
|
+
const newCachedResponses = cachedResponses ? (0, _lodashEs.cloneDeep)(cachedResponses) : {};
|
|
221
219
|
nodes.forEach(node => {
|
|
222
220
|
const keyForNode = node.data.get('index');
|
|
223
221
|
if (!newChoices[keyForNode] && newCachedResponses[keyForNode]) {
|
|
224
|
-
Object.assign(newChoices, (0,
|
|
222
|
+
Object.assign(newChoices, (0, _lodashEs.pick)(newCachedResponses, keyForNode));
|
|
225
223
|
if (Object.prototype.hasOwnProperty.call(newCachedResponses, keyForNode)) {
|
|
226
224
|
delete newCachedResponses[keyForNode];
|
|
227
225
|
}
|
|
228
226
|
} else {
|
|
229
|
-
Object.assign(newCachedResponses, (0,
|
|
227
|
+
Object.assign(newCachedResponses, (0, _lodashEs.pick)(newChoices, keyForNode));
|
|
230
228
|
if (Object.prototype.hasOwnProperty.call(newChoices, keyForNode)) {
|
|
231
229
|
delete newChoices[keyForNode];
|
|
232
230
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Typography","_Select","_MenuItem","_Info","_Tooltip","_cloneDeep","_pick","_throttle","_configUi","_editableHtmlTipTap","_interopRequireWildcard","_response","_markupUtils","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","dropdown","settings","Panel","toggle","StyledInputContainer","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","StyledEditableHtml","EditableHtml","ErrorText","color","palette","error","main","fontSize","marginTop","ResponseAreaError","StyledMarkup","StyledSelectContainer","StyledSelect","Select","StyledTitle","Typography","typography","fontWeight","TooltipContainer","display","alignItems","gap","StyledTooltip","Tooltip","whiteSpace","maxWidth","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","Design","React","Component","constructor","args","_defineProperty2","key","value","onModelChanged","model","props","updatedModel","cloneDeep","response","index","newModel","responses","slateMarkup","createSlateMarkup","markup","newVal","answer","id","allowSpaces","validationDefault","allowTrailingZerosDefault","ignoreOrderDefault","newResponses","domMarkup","responseAreas","querySelectorAll","forEach","element","dataIndex","dataset","validation","allowTrailingZeros","ignoreOrder","alternates","toString","processedMarkup","processMarkup","callback","setState","cachedResponses","undefined","throttle","nodes","state","newChoices","newCachedResponses","node","keyForNode","data","assign","pick","prototype","trailing","leading","relatedTarget","currentTarget","getParentWithRoleTooltip","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","activeAnswerBlock","componentDidMount","render","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","contentDimensions","prompt","rationale","settingsPanelDisabled","teacherInstructions","language","languageChoices","spellCheck","playerSpellCheck","maxImageWidth","maxImageHeight","mathMlOptions","template","editSource","cIgnoreOrder","cAllowTrailingZeros","partialScoring","maxResponseAreas","errors","extraCSSRules","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","equationEditor","promptError","rationaleError","responseAreasError","teacherInstructionsError","responsesErrors","validationMessage","generateValidationMessage","panelSettings","label","enabled","options","panelProperties","playerSpellCheckEnabled","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","getPluginProps","layout","ConfigLayout","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","onChange","handleChange","nonEmpty","pluginProps","inputConfiguration","languageCharactersProps","disableUnderline","component","disableFocusListener","disableTouchListener","placement","title","activePlugins","ALL_PLUGINS","responseAreaProps","type","respAreaToolbar","onHandleAreaChange","disableImageAlignmentButtons","onBlur","disabled","highlightShape","MenuProps","transitionDuration","enter","exit","event","target","keys","map","responseKey","idx","mode","onResponseChange","onResponseDone","math","controlledKeypadMode","exports","PropTypes","object","isRequired","func","shape","add","delete","_default"],"sources":["../src/design.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/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-tip-tap';\nconst { dropdown } = settings;\n\nimport Response from './response';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle } = settings;\n\nconst StyledInputContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledEditableHtml = styled(EditableHtml)({\n width: '100%',\n});\n\nconst ErrorText = styled('div')(({ theme }) => ({\n color: theme.palette.error.main,\n fontSize: '0.75rem',\n marginTop: theme.spacing(1),\n}));\n\nconst ResponseAreaError = styled('div')(({ theme }) => ({\n color: theme.palette.error.main,\n fontSize: '0.75rem',\n marginBottom: theme.spacing(1),\n}));\n\nconst StyledMarkup = styled(EditableHtml)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(3),\n}));\n\nconst StyledSelectContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(2),\n '& > *:not(label)': {\n marginTop: theme.spacing(1),\n },\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledSelect = styled(Select)({\n width: '100%',\n});\n\nconst StyledTitle = styled(Typography)(({ theme }) => ({\n fontSize: theme.typography.fontSize * 1.25,\n fontWeight: 'bold',\n}));\n\nconst TooltipContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n});\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\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 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 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 (Object.prototype.hasOwnProperty.call(newCachedResponses, keyForNode)) {\n delete newCachedResponses[keyForNode];\n }\n } else {\n Object.assign(newCachedResponses, pick(newChoices, keyForNode));\n\n if (Object.prototype.hasOwnProperty.call(newChoices, 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 { 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 <StyledInputContainer label={teacherInstructions.label}>\n <StyledEditableHtml\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 && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {promptEnabled && (\n <StyledInputContainer label={prompt.label}>\n <StyledEditableHtml\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 && <ErrorText>{promptError}</ErrorText>}\n </StyledInputContainer>\n )}\n <TooltipContainer>\n <StyledTitle component={'div'}>\n Response Template\n </StyledTitle>\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} />\n </StyledTooltip>\n </TooltipContainer>\n <StyledMarkup\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 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 && <ResponseAreaError>{responseAreasError}</ResponseAreaError>}\n\n <StyledTitle>Define Response</StyledTitle>\n\n <StyledSelectContainer label=\"Response Template Equation Editor\">\n <StyledSelect\n MenuProps={{transitionDuration: { enter: 225, exit: 195 } }}\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 </StyledSelect>\n </StyledSelectContainer>\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 <StyledInputContainer label={rationale.label}>\n <StyledEditableHtml\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 && <ErrorText>{rationaleError}</ErrorText>}\n </StyledInputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Design;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"design.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Typography","_Select","_MenuItem","_Info","_Tooltip","_lodashEs","_configUi","_editableHtmlTipTap","_interopRequireWildcard","_response","_markupUtils","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","dropdown","settings","Panel","toggle","StyledInputContainer","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","StyledEditableHtml","EditableHtml","ErrorText","color","palette","error","main","fontSize","marginTop","ResponseAreaError","StyledMarkup","StyledSelectContainer","StyledSelect","Select","StyledTitle","Typography","typography","fontWeight","TooltipContainer","display","alignItems","gap","StyledTooltip","Tooltip","whiteSpace","maxWidth","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","Design","React","Component","constructor","args","_defineProperty2","key","value","onModelChanged","model","props","updatedModel","cloneDeep","response","index","newModel","responses","slateMarkup","createSlateMarkup","markup","newVal","answer","id","allowSpaces","validationDefault","allowTrailingZerosDefault","ignoreOrderDefault","newResponses","domMarkup","responseAreas","querySelectorAll","forEach","element","dataIndex","dataset","validation","allowTrailingZeros","ignoreOrder","alternates","toString","processedMarkup","processMarkup","callback","setState","cachedResponses","undefined","throttle","nodes","state","newChoices","newCachedResponses","node","keyForNode","data","assign","pick","prototype","trailing","leading","relatedTarget","currentTarget","getParentWithRoleTooltip","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","activeAnswerBlock","componentDidMount","render","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","contentDimensions","prompt","rationale","settingsPanelDisabled","teacherInstructions","language","languageChoices","spellCheck","playerSpellCheck","maxImageWidth","maxImageHeight","mathMlOptions","template","editSource","cIgnoreOrder","cAllowTrailingZeros","partialScoring","maxResponseAreas","errors","extraCSSRules","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","equationEditor","promptError","rationaleError","responseAreasError","teacherInstructionsError","responsesErrors","validationMessage","generateValidationMessage","panelSettings","label","enabled","options","panelProperties","playerSpellCheckEnabled","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","getPluginProps","layout","ConfigLayout","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","onChange","handleChange","nonEmpty","pluginProps","inputConfiguration","languageCharactersProps","disableUnderline","component","disableFocusListener","disableTouchListener","placement","title","activePlugins","ALL_PLUGINS","responseAreaProps","type","respAreaToolbar","onHandleAreaChange","disableImageAlignmentButtons","onBlur","disabled","highlightShape","MenuProps","transitionDuration","enter","exit","event","target","keys","map","responseKey","idx","mode","onResponseChange","onResponseDone","math","controlledKeypadMode","exports","PropTypes","object","isRequired","func","shape","add","delete","_default"],"sources":["../src/design.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\nimport { cloneDeep, pick, throttle } from 'lodash-es';\nimport { InputContainer, settings, layout } from '@pie-lib/config-ui';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html-tip-tap';\nconst { dropdown } = settings;\n\nimport Response from './response';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle } = settings;\n\nconst StyledInputContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledEditableHtml = styled(EditableHtml)({\n width: '100%',\n});\n\nconst ErrorText = styled('div')(({ theme }) => ({\n color: theme.palette.error.main,\n fontSize: '0.75rem',\n marginTop: theme.spacing(1),\n}));\n\nconst ResponseAreaError = styled('div')(({ theme }) => ({\n color: theme.palette.error.main,\n fontSize: '0.75rem',\n marginBottom: theme.spacing(1),\n}));\n\nconst StyledMarkup = styled(EditableHtml)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(3),\n}));\n\nconst StyledSelectContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(2),\n '& > *:not(label)': {\n marginTop: theme.spacing(1),\n },\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledSelect = styled(Select)({\n width: '100%',\n});\n\nconst StyledTitle = styled(Typography)(({ theme }) => ({\n fontSize: theme.typography.fontSize * 1.25,\n fontWeight: 'bold',\n}));\n\nconst TooltipContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n});\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\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 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 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 (Object.prototype.hasOwnProperty.call(newCachedResponses, keyForNode)) {\n delete newCachedResponses[keyForNode];\n }\n } else {\n Object.assign(newCachedResponses, pick(newChoices, keyForNode));\n\n if (Object.prototype.hasOwnProperty.call(newChoices, 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 { 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 <StyledInputContainer label={teacherInstructions.label}>\n <StyledEditableHtml\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 && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {promptEnabled && (\n <StyledInputContainer label={prompt.label}>\n <StyledEditableHtml\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 && <ErrorText>{promptError}</ErrorText>}\n </StyledInputContainer>\n )}\n <TooltipContainer>\n <StyledTitle component={'div'}>Response Template</StyledTitle>\n <StyledTooltip disableFocusListener disableTouchListener placement={'right'} title={validationMessage}>\n <Info fontSize={'small'} color={'primary'} />\n </StyledTooltip>\n </TooltipContainer>\n <StyledMarkup\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 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 && <ResponseAreaError>{responseAreasError}</ResponseAreaError>}\n\n <StyledTitle>Define Response</StyledTitle>\n\n <StyledSelectContainer label=\"Response Template Equation Editor\">\n <StyledSelect\n MenuProps={{ transitionDuration: { enter: 225, exit: 195 } }}\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 </StyledSelect>\n </StyledSelectContainer>\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 <StyledInputContainer label={rationale.label}>\n <StyledEditableHtml\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 && <ErrorText>{rationaleError}</ErrorText>}\n </StyledInputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Design;\n"],"mappings":"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","ignoreList":[]}
|
package/configure/lib/index.js
CHANGED
|
@@ -9,11 +9,10 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _client = require("react-dom/client");
|
|
11
11
|
var _debug = _interopRequireDefault(require("debug"));
|
|
12
|
-
var
|
|
13
|
-
var _isArray = _interopRequireDefault(require("lodash/isArray"));
|
|
12
|
+
var _lodashEs = require("lodash-es");
|
|
14
13
|
var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
|
|
15
14
|
var _design = _interopRequireDefault(require("./design"));
|
|
16
|
-
var
|
|
15
|
+
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
17
16
|
var _markupUtils = require("./markupUtils");
|
|
18
17
|
const log = (0, _debug.default)('math-templated:configure');
|
|
19
18
|
class MathTemplateConfigure extends HTMLElement {
|
|
@@ -21,7 +20,7 @@ class MathTemplateConfigure extends HTMLElement {
|
|
|
21
20
|
super();
|
|
22
21
|
this._root = null;
|
|
23
22
|
this._model = MathTemplateConfigure.prepareModel();
|
|
24
|
-
this._configuration =
|
|
23
|
+
this._configuration = _defaults.default.configuration;
|
|
25
24
|
this.onModelChanged = this.onModelChanged.bind(this);
|
|
26
25
|
this.onConfigurationChanged = this.onConfigurationChanged.bind(this);
|
|
27
26
|
}
|
|
@@ -30,7 +29,7 @@ class MathTemplateConfigure extends HTMLElement {
|
|
|
30
29
|
this._render();
|
|
31
30
|
}
|
|
32
31
|
set configuration(c) {
|
|
33
|
-
this._configuration = (0,
|
|
32
|
+
this._configuration = (0, _lodashEs.defaults)(c, _defaults.default.configuration);
|
|
34
33
|
|
|
35
34
|
// if language:enabled is true, then the corresponding default item model should include a language value;
|
|
36
35
|
// if it is false, then the language field should be omitted from the item model.
|
|
@@ -137,7 +136,7 @@ exports.default = MathTemplateConfigure;
|
|
|
137
136
|
return acc;
|
|
138
137
|
}, {});
|
|
139
138
|
const joinedObj = {
|
|
140
|
-
...
|
|
139
|
+
..._defaults.default.model,
|
|
141
140
|
...model,
|
|
142
141
|
responses: updatedResponses
|
|
143
142
|
};
|
|
@@ -147,7 +146,7 @@ exports.default = MathTemplateConfigure;
|
|
|
147
146
|
// this was added to treat an exception, when the model has responses without the "answer" property
|
|
148
147
|
if (joinedObj.responses) {
|
|
149
148
|
Object.keys(joinedObj.responses).forEach(key => {
|
|
150
|
-
if ((0,
|
|
149
|
+
if ((0, _lodashEs.isArray)(joinedObj.responses[key])) {
|
|
151
150
|
joinedObj.responses[key] = (joinedObj.responses[key] || []).map((item, index) => {
|
|
152
151
|
if (!item.answer) {
|
|
153
152
|
log('Choice does not contain "answer" property, which is required.', item);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_debug","_defaults","_isArray","_pieConfigureEvents","_design","_defaults2","_markupUtils","log","debug","MathTemplateConfigure","HTMLElement","constructor","_root","_model","prepareModel","_configuration","sensibleDefaults","configuration","onModelChanged","bind","onConfigurationChanged","model","s","_render","c","defaults","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","disableSidePanel","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","createRoot","render","disconnectedCallback","unmount","exports","default","_defineProperty2","validationDefault","allowTrailingZerosDefault","ignoreOrderDefault","responses","updatedResponses","Object","keys","reduce","acc","responseId","correctResponse","validation","allowTrailingZeros","ignoreOrder","joinedObj","slateMarkup","createSlateMarkup","markup","processedMarkup","processMarkup","forEach","key","isArray","map","item","index","answer"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\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._root = null;\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 if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_debug","_lodashEs","_pieConfigureEvents","_design","_defaults","_markupUtils","log","debug","MathTemplateConfigure","HTMLElement","constructor","_root","_model","prepareModel","_configuration","sensibleDefaults","configuration","onModelChanged","bind","onConfigurationChanged","model","s","_render","c","defaults","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","disableSidePanel","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","createRoot","render","disconnectedCallback","unmount","exports","default","_defineProperty2","validationDefault","allowTrailingZerosDefault","ignoreOrderDefault","responses","updatedResponses","Object","keys","reduce","acc","responseId","correctResponse","validation","allowTrailingZeros","ignoreOrder","joinedObj","slateMarkup","createSlateMarkup","markup","processedMarkup","processMarkup","forEach","key","isArray","map","item","index","answer"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\nimport { defaults, isArray } from 'lodash-es';\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._root = null;\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 if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/configure/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/math-templated-configure",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.1.0-next.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
"@mui/icons-material": "^7.3.4",
|
|
12
12
|
"@mui/material": "^7.3.4",
|
|
13
13
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
14
|
-
"@pie-lib/config-ui": "12.1.1-next.
|
|
15
|
-
"@pie-lib/editable-html-tip-tap": "1.1.1-next.
|
|
16
|
-
"@pie-lib/math-toolbar": "2.1.1-next.
|
|
17
|
-
"@pie-lib/render-ui": "5.1.1-next.
|
|
14
|
+
"@pie-lib/config-ui": "12.1.1-next.3",
|
|
15
|
+
"@pie-lib/editable-html-tip-tap": "1.1.1-next.3",
|
|
16
|
+
"@pie-lib/math-toolbar": "2.1.1-next.1",
|
|
17
|
+
"@pie-lib/render-ui": "5.1.1-next.1",
|
|
18
18
|
"debug": "^4.1.1",
|
|
19
|
-
"lodash": "^4.17.
|
|
19
|
+
"lodash-es": "^4.17.23",
|
|
20
20
|
"prop-types": "^15.8.1",
|
|
21
|
-
"react": "18.
|
|
22
|
-
"react-dom": "18.
|
|
21
|
+
"react": "18.3.1",
|
|
22
|
+
"react-dom": "18.3.1"
|
|
23
23
|
},
|
|
24
24
|
"author": "",
|
|
25
25
|
"license": "ISC"
|
package/controller/lib/index.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.validate = exports.prepareVal = exports.outcome = exports.normalizeSession = exports.model = exports.getPartialScore = exports.getCorrectness = exports.createDefaultModel = exports.createCorrectResponseSession = void 0;
|
|
8
8
|
var _debug = _interopRequireDefault(require("debug"));
|
|
9
|
-
var
|
|
9
|
+
var _lodashEs = require("lodash-es");
|
|
10
10
|
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
11
11
|
var mv = _interopRequireWildcard(require("@pie-framework/math-validation"));
|
|
12
12
|
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
@@ -82,14 +82,14 @@ const getCorrectness = (question, env, session) => {
|
|
|
82
82
|
};
|
|
83
83
|
exports.getCorrectness = getCorrectness;
|
|
84
84
|
const getPartialScore = (question, session) => {
|
|
85
|
-
if (!session || (0,
|
|
85
|
+
if (!session || (0, _lodashEs.isEmpty)(session)) {
|
|
86
86
|
return 0;
|
|
87
87
|
}
|
|
88
88
|
return 1;
|
|
89
89
|
};
|
|
90
90
|
exports.getPartialScore = getPartialScore;
|
|
91
91
|
const outcome = (question, session, env) => new Promise(resolve => {
|
|
92
|
-
if (!session || (0,
|
|
92
|
+
if (!session || (0, _lodashEs.isEmpty)(session)) {
|
|
93
93
|
resolve({
|
|
94
94
|
score: 0,
|
|
95
95
|
empty: true
|
|
@@ -267,7 +267,7 @@ const validate = (model = {}, config = {}) => {
|
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
269
|
});
|
|
270
|
-
if (!(0,
|
|
270
|
+
if (!(0, _lodashEs.isEmpty)(responseError) || !(0, _lodashEs.isEmpty)(alternatesErrors)) {
|
|
271
271
|
responsesErrors[index] = {
|
|
272
272
|
...responseError,
|
|
273
273
|
...alternatesErrors
|
|
@@ -280,7 +280,7 @@ const validate = (model = {}, config = {}) => {
|
|
|
280
280
|
} else if (nbOfResponseAreas < 1) {
|
|
281
281
|
errors.responseAreas = 'There should be at least 1 response area defined.';
|
|
282
282
|
}
|
|
283
|
-
if (!(0,
|
|
283
|
+
if (!(0, _lodashEs.isEmpty)(responsesErrors)) {
|
|
284
284
|
errors.responses = responsesErrors;
|
|
285
285
|
}
|
|
286
286
|
return errors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_debug","_interopRequireDefault","require","_isEmpty","_translator","mv","_interopRequireWildcard","_defaults","_controllerUtils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","translator","Translator","log","debug","getFeedback","value","getContent","html","replace","getIsAnswerCorrect","correctResponse","answerItem","answerCorrect","opts","mode","validation","defaults","validationDefault","literal","allowTrailingZeros","ignoreOrder","acceptedValues","answer","values","alternates","latexEqual","getResponseCorrectness","question","sessionResponse","correctResponses","responses","correctness","score","correct","correctAnswers","correctResponsesCount","keys","length","forEach","responseId","fullyCorrect","Number","toFixed","getCorrectness","env","session","answers","exports","getPartialScore","isEmpty","outcome","Promise","resolve","empty","partialScoringEnabled","partialScoring","enabled","normalizeSession","undefined","completed","createDefaultModel","model","allowTrailingZerosDefault","ignoreOrderDefault","updatedResponses","reduce","acc","s","getTextFromHTML","prepareVal","trim","normalizedQuestion","language","note","showNote","lng","out","prompt","promptEnabled","markup","equationEditor","customKeys","disabled","view","extraCSSRules","feedback","role","rationale","rationaleEnabled","teacherInstructions","teacherInstructionsEnabled","createCorrectResponseSession","id","validate","config","maxResponseAreas","responsesErrors","errors","field","required","entries","key","response","index","reversedAlternates","reverse","alternatesErrors","responseError","identicalAnswer","slice","some","val","nbOfResponseAreas","match","responseAreas"],"sources":["../src/index.js"],"sourcesContent":["import debug from 'debug';\nimport isEmpty from 'lodash/isEmpty';\nimport Translator from '@pie-lib/translator';\nimport * as mv from '@pie-framework/math-validation';\n\nimport defaults from './defaults';\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst { translator } = Translator;\nconst log = debug('@pie-element:math-templated:controller');\n\nconst getFeedback = (value) => (value ? 'correct' : 'incorrect');\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nconst getIsAnswerCorrect = (correctResponse, answerItem) => {\n let answerCorrect = false;\n\n const opts = {\n mode: correctResponse.validation || defaults.validationDefault,\n ...(correctResponse.validation === 'literal' && {\n literal: {\n allowTrailingZeros: correctResponse.allowTrailingZeros || false,\n ignoreOrder: correctResponse.ignoreOrder || false,\n },\n }),\n };\n\n if (!answerCorrect) {\n const acceptedValues = [correctResponse.answer, ...Object.values(correctResponse.alternates || {})];\n\n try {\n for (const value of acceptedValues) {\n answerCorrect = mv.latexEqual(answerItem.value, value, opts);\n if (answerCorrect) break;\n }\n } catch (e) {\n log('Parse failure when evaluating math', e, correctResponse, answerItem);\n answerCorrect = false;\n }\n }\n\n return answerCorrect;\n};\n\nconst getResponseCorrectness = (question, sessionResponse) => {\n const correctResponses = question.responses;\n\n if (!sessionResponse) {\n return {\n correctness: 'unanswered',\n score: 0,\n correct: false,\n };\n } else {\n let correctAnswers = 0;\n let score = 0;\n const correctResponsesCount = Object.keys(correctResponses || {}).length;\n\n Object.keys(correctResponses).forEach((responseId) => {\n const answerItem = sessionResponse['r' + responseId];\n const correctResponse = correctResponses[responseId] || {};\n\n const answerCorrect = getIsAnswerCorrect(correctResponse, answerItem);\n if (answerCorrect) {\n correctAnswers++;\n }\n });\n\n const fullyCorrect = correctAnswers === correctResponsesCount;\n\n // partial credit scoring: each correct answer is worth 1 / total answers point\n // dichotomous scoring: for credit to be awarded, a correct answer must be entered for every response area\n score = Number((correctAnswers / Object.keys(correctResponses).length).toFixed(2));\n\n return {\n correctness: getFeedback(fullyCorrect),\n score: correctAnswers > 0 ? score : 0,\n correct: fullyCorrect,\n };\n }\n};\n\nexport const getCorrectness = (question, env, session) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(question, session && session.answers);\n }\n};\n\nexport const getPartialScore = (question, session) => {\n if (!session || isEmpty(session)) {\n return 0;\n }\n\n return 1;\n};\n\nexport const outcome = (question, session, env) =>\n new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n const partialScoringEnabled = partialScoring.enabled(question, env);\n session = normalizeSession(session);\n\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n const correctness = getCorrectness(question, env, session, true);\n const score = correctness.score;\n\n resolve({ score: partialScoringEnabled ? score : score === 1 ? 1 : 0 });\n }\n });\n\nexport const createDefaultModel = (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 return {\n ...defaults.model,\n ...model,\n responses: updatedResponses,\n };\n};\n\nexport const normalizeSession = (s) => ({ ...s });\n\nconst getTextFromHTML = (html) => (html || '').replace(/<\\/?[^>]+(>|$)/g, '');\n\nexport const prepareVal = (html) => getTextFromHTML(html).trim();\n\nexport const model = (question, session, env) => {\n return new Promise((resolve) => {\n session = session || {};\n const normalizedQuestion = createDefaultModel(question);\n const correctness = getCorrectness(normalizedQuestion, env, session);\n const { responses, language } = normalizedQuestion;\n let { note } = normalizedQuestion;\n let showNote = false;\n\n // check if there is at least one alternate response or if the validation for at least one response is not literal\n Object.keys(responses).forEach((responseId) => {\n const correctResponse = responses[responseId] || {};\n if (correctResponse.alternates && Object.keys(correctResponse.alternates).length > 0) {\n showNote = true;\n } else if (correctResponse.validation !== 'literal') {\n showNote = true;\n }\n });\n\n if (!note) {\n note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: language });\n }\n\n const out = {\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n markup: normalizedQuestion.markup,\n responses: env.mode === 'gather' ? null : normalizedQuestion.responses,\n language: normalizedQuestion.language,\n equationEditor: normalizedQuestion.equationEditor,\n customKeys: normalizedQuestion.customKeys,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n correctness,\n env,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n };\n\n const { answers = {} } = session || {};\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n Object.keys(responses).forEach((responseId) => {\n const answerItem = answers['r' + responseId];\n const correctResponse = responses[responseId];\n feedback[responseId] = getIsAnswerCorrect(correctResponse, answerItem);\n });\n }\n\n if (env.mode === 'evaluate') {\n out.correctResponse = {};\n out.showNote = showNote;\n out.note = note;\n out.feedback = feedback;\n } else {\n out.responses = {};\n out.showNote = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n log('out: ', out);\n resolve(out);\n });\n};\n\nexport const createCorrectResponseSession = (question, env) =>\n new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const correctResponse = Object.keys(question.responses).reduce((acc, responseId) => {\n acc['r' + responseId] = { value: question.responses[responseId].answer };\n return acc;\n }, {});\n\n resolve({ id: '1', answers: correctResponse });\n } else {\n resolve(null);\n }\n });\n\nexport const validate = (model = {}, config = {}) => {\n const { responses, markup } = model;\n const { maxResponseAreas } = config;\n const responsesErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n Object.entries(responses || {}).forEach(([key, response], index) => {\n const { answer } = response;\n const reversedAlternates = [...Object.entries(response.alternates || {})].reverse();\n const alternatesErrors = {};\n const responseError = {};\n\n if (answer === '') {\n responseError.answer = 'Content should not be empty.';\n }\n\n reversedAlternates.forEach(([key, value], index) => {\n if (value === '') {\n alternatesErrors[key] = 'Content should not be empty.';\n } else {\n const identicalAnswer =\n answer === value || reversedAlternates.slice(index + 1).some(([, val]) => val === value);\n\n if (identicalAnswer) {\n alternatesErrors[key] = 'Content should be unique.';\n }\n }\n });\n\n if (!isEmpty(responseError) || !isEmpty(alternatesErrors)) {\n responsesErrors[index] = { ...responseError, ...alternatesErrors };\n }\n });\n\n const nbOfResponseAreas = (markup.match(/\\{\\{(\\d+)\\}\\}/g) || []).length;\n\n if (nbOfResponseAreas > maxResponseAreas) {\n errors.responseAreas = `No more than ${maxResponseAreas} response areas should be defined.`;\n } else if (nbOfResponseAreas < 1) {\n errors.responseAreas = 'There should be at least 1 response area defined.';\n }\n\n if (!isEmpty(responsesErrors)) {\n errors.responses = responsesErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_debug","_interopRequireDefault","require","_lodashEs","_translator","mv","_interopRequireWildcard","_defaults","_controllerUtils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","translator","Translator","log","debug","getFeedback","value","getContent","html","replace","getIsAnswerCorrect","correctResponse","answerItem","answerCorrect","opts","mode","validation","defaults","validationDefault","literal","allowTrailingZeros","ignoreOrder","acceptedValues","answer","values","alternates","latexEqual","getResponseCorrectness","question","sessionResponse","correctResponses","responses","correctness","score","correct","correctAnswers","correctResponsesCount","keys","length","forEach","responseId","fullyCorrect","Number","toFixed","getCorrectness","env","session","answers","exports","getPartialScore","isEmpty","outcome","Promise","resolve","empty","partialScoringEnabled","partialScoring","enabled","normalizeSession","undefined","completed","createDefaultModel","model","allowTrailingZerosDefault","ignoreOrderDefault","updatedResponses","reduce","acc","s","getTextFromHTML","prepareVal","trim","normalizedQuestion","language","note","showNote","lng","out","prompt","promptEnabled","markup","equationEditor","customKeys","disabled","view","extraCSSRules","feedback","role","rationale","rationaleEnabled","teacherInstructions","teacherInstructionsEnabled","createCorrectResponseSession","id","validate","config","maxResponseAreas","responsesErrors","errors","field","required","entries","key","response","index","reversedAlternates","reverse","alternatesErrors","responseError","identicalAnswer","slice","some","val","nbOfResponseAreas","match","responseAreas"],"sources":["../src/index.js"],"sourcesContent":["import debug from 'debug';\nimport { isEmpty } from 'lodash-es';\nimport Translator from '@pie-lib/translator';\nimport * as mv from '@pie-framework/math-validation';\n\nimport defaults from './defaults';\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst { translator } = Translator;\nconst log = debug('@pie-element:math-templated:controller');\n\nconst getFeedback = (value) => (value ? 'correct' : 'incorrect');\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nconst getIsAnswerCorrect = (correctResponse, answerItem) => {\n let answerCorrect = false;\n\n const opts = {\n mode: correctResponse.validation || defaults.validationDefault,\n ...(correctResponse.validation === 'literal' && {\n literal: {\n allowTrailingZeros: correctResponse.allowTrailingZeros || false,\n ignoreOrder: correctResponse.ignoreOrder || false,\n },\n }),\n };\n\n if (!answerCorrect) {\n const acceptedValues = [correctResponse.answer, ...Object.values(correctResponse.alternates || {})];\n\n try {\n for (const value of acceptedValues) {\n answerCorrect = mv.latexEqual(answerItem.value, value, opts);\n if (answerCorrect) break;\n }\n } catch (e) {\n log('Parse failure when evaluating math', e, correctResponse, answerItem);\n answerCorrect = false;\n }\n }\n\n return answerCorrect;\n};\n\nconst getResponseCorrectness = (question, sessionResponse) => {\n const correctResponses = question.responses;\n\n if (!sessionResponse) {\n return {\n correctness: 'unanswered',\n score: 0,\n correct: false,\n };\n } else {\n let correctAnswers = 0;\n let score = 0;\n const correctResponsesCount = Object.keys(correctResponses || {}).length;\n\n Object.keys(correctResponses).forEach((responseId) => {\n const answerItem = sessionResponse['r' + responseId];\n const correctResponse = correctResponses[responseId] || {};\n\n const answerCorrect = getIsAnswerCorrect(correctResponse, answerItem);\n if (answerCorrect) {\n correctAnswers++;\n }\n });\n\n const fullyCorrect = correctAnswers === correctResponsesCount;\n\n // partial credit scoring: each correct answer is worth 1 / total answers point\n // dichotomous scoring: for credit to be awarded, a correct answer must be entered for every response area\n score = Number((correctAnswers / Object.keys(correctResponses).length).toFixed(2));\n\n return {\n correctness: getFeedback(fullyCorrect),\n score: correctAnswers > 0 ? score : 0,\n correct: fullyCorrect,\n };\n }\n};\n\nexport const getCorrectness = (question, env, session) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(question, session && session.answers);\n }\n};\n\nexport const getPartialScore = (question, session) => {\n if (!session || isEmpty(session)) {\n return 0;\n }\n\n return 1;\n};\n\nexport const outcome = (question, session, env) =>\n new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n const partialScoringEnabled = partialScoring.enabled(question, env);\n session = normalizeSession(session);\n\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n const correctness = getCorrectness(question, env, session, true);\n const score = correctness.score;\n\n resolve({ score: partialScoringEnabled ? score : score === 1 ? 1 : 0 });\n }\n });\n\nexport const createDefaultModel = (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 return {\n ...defaults.model,\n ...model,\n responses: updatedResponses,\n };\n};\n\nexport const normalizeSession = (s) => ({ ...s });\n\nconst getTextFromHTML = (html) => (html || '').replace(/<\\/?[^>]+(>|$)/g, '');\n\nexport const prepareVal = (html) => getTextFromHTML(html).trim();\n\nexport const model = (question, session, env) => {\n return new Promise((resolve) => {\n session = session || {};\n const normalizedQuestion = createDefaultModel(question);\n const correctness = getCorrectness(normalizedQuestion, env, session);\n const { responses, language } = normalizedQuestion;\n let { note } = normalizedQuestion;\n let showNote = false;\n\n // check if there is at least one alternate response or if the validation for at least one response is not literal\n Object.keys(responses).forEach((responseId) => {\n const correctResponse = responses[responseId] || {};\n if (correctResponse.alternates && Object.keys(correctResponse.alternates).length > 0) {\n showNote = true;\n } else if (correctResponse.validation !== 'literal') {\n showNote = true;\n }\n });\n\n if (!note) {\n note = translator.t('mathInline.primaryCorrectWithAlternates', { lng: language });\n }\n\n const out = {\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n markup: normalizedQuestion.markup,\n responses: env.mode === 'gather' ? null : normalizedQuestion.responses,\n language: normalizedQuestion.language,\n equationEditor: normalizedQuestion.equationEditor,\n customKeys: normalizedQuestion.customKeys,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n correctness,\n env,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n };\n\n const { answers = {} } = session || {};\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n Object.keys(responses).forEach((responseId) => {\n const answerItem = answers['r' + responseId];\n const correctResponse = responses[responseId];\n feedback[responseId] = getIsAnswerCorrect(correctResponse, answerItem);\n });\n }\n\n if (env.mode === 'evaluate') {\n out.correctResponse = {};\n out.showNote = showNote;\n out.note = note;\n out.feedback = feedback;\n } else {\n out.responses = {};\n out.showNote = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n log('out: ', out);\n resolve(out);\n });\n};\n\nexport const createCorrectResponseSession = (question, env) =>\n new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const correctResponse = Object.keys(question.responses).reduce((acc, responseId) => {\n acc['r' + responseId] = { value: question.responses[responseId].answer };\n return acc;\n }, {});\n\n resolve({ id: '1', answers: correctResponse });\n } else {\n resolve(null);\n }\n });\n\nexport const validate = (model = {}, config = {}) => {\n const { responses, markup } = model;\n const { maxResponseAreas } = config;\n const responsesErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n Object.entries(responses || {}).forEach(([key, response], index) => {\n const { answer } = response;\n const reversedAlternates = [...Object.entries(response.alternates || {})].reverse();\n const alternatesErrors = {};\n const responseError = {};\n\n if (answer === '') {\n responseError.answer = 'Content should not be empty.';\n }\n\n reversedAlternates.forEach(([key, value], index) => {\n if (value === '') {\n alternatesErrors[key] = 'Content should not be empty.';\n } else {\n const identicalAnswer =\n answer === value || reversedAlternates.slice(index + 1).some(([, val]) => val === value);\n\n if (identicalAnswer) {\n alternatesErrors[key] = 'Content should be unique.';\n }\n }\n });\n\n if (!isEmpty(responseError) || !isEmpty(alternatesErrors)) {\n responsesErrors[index] = { ...responseError, ...alternatesErrors };\n }\n });\n\n const nbOfResponseAreas = (markup.match(/\\{\\{(\\d+)\\}\\}/g) || []).length;\n\n if (nbOfResponseAreas > maxResponseAreas) {\n errors.responseAreas = `No more than ${maxResponseAreas} response areas should be defined.`;\n } else if (nbOfResponseAreas < 1) {\n errors.responseAreas = 'There should be at least 1 response area defined.';\n }\n\n if (!isEmpty(responsesErrors)) {\n errors.responses = responsesErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/controller/package.json
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/math-templated-controller",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.1.0-next.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@pie-framework/math-validation": "^1.4.2",
|
|
10
|
-
"@pie-lib/controller-utils": "1.1.1-next.
|
|
11
|
-
"@pie-lib/translator": "3.1.1-next.
|
|
10
|
+
"@pie-lib/controller-utils": "1.1.1-next.1",
|
|
11
|
+
"@pie-lib/translator": "3.1.1-next.1",
|
|
12
12
|
"debug": "^4.1.1",
|
|
13
|
-
"lodash": "^4.17.23"
|
|
14
|
-
},
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"lodash": "^4.17.15"
|
|
13
|
+
"lodash-es": "^4.17.23"
|
|
17
14
|
},
|
|
18
15
|
"author": "",
|
|
19
16
|
"license": "ISC"
|
package/lib/index.js
CHANGED
|
@@ -9,12 +9,12 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
var _client = require("react-dom/client");
|
|
10
10
|
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
11
11
|
var _main = _interopRequireDefault(require("./main"));
|
|
12
|
-
var
|
|
12
|
+
var _lodashEs = require("lodash-es");
|
|
13
13
|
class MathTemplated extends HTMLElement {
|
|
14
14
|
constructor() {
|
|
15
15
|
super();
|
|
16
16
|
this._root = null;
|
|
17
|
-
this.sessionChangedEventCaller =
|
|
17
|
+
this.sessionChangedEventCaller = (0, _lodashEs.debounce)(() => {
|
|
18
18
|
this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), true));
|
|
19
19
|
}, 1000);
|
|
20
20
|
}
|