@pie-element/math-templated 2.15.1-next.8 → 2.16.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 +19 -0
- package/configure/CHANGELOG.md +18 -0
- package/configure/lib/design.js +29 -20
- package/configure/lib/design.js.map +1 -1
- package/configure/lib/markupUtils.js +6 -3
- package/configure/lib/markupUtils.js.map +1 -1
- package/configure/lib/response.js +5 -0
- package/configure/lib/response.js.map +1 -1
- package/configure/package.json +2 -2
- package/controller/CHANGELOG.md +16 -0
- package/controller/package.json +2 -2
- package/lib/main.js +0 -1
- package/lib/main.js.map +1 -1
- package/module/configure.js +121 -79
- package/module/element.js +17 -12
- package/module/manifest.json +1 -1
- package/module/print.js +17 -12
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.16.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated@2.15.0...@pie-element/math-templated@2.16.0) (2024-06-19)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update pie-lib/pie-toolbox fix build ([75777e1](https://github.com/pie-framework/pie-elements/commit/75777e189786cb9041bd0d2f843c023a1ea5b8b1))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* update pie-lib/pie-toolbox PD-3179, PD-3206, PD-3186, PD-1311, PD-3771, PD-3772, PD-3817 ([14e175c](https://github.com/pie-framework/pie-elements/commit/14e175cd62770ab4d7ba8bf83e6d0c9ad683f595))
|
|
17
|
+
* **math-templated:** display correct answers in response areas PD-3817 ([a91bbc3](https://github.com/pie-framework/pie-elements/commit/a91bbc3a228c30bf19239b6076f882c4b0ff1c3d))
|
|
18
|
+
* update slate markup when responses get changed PD-3817 ([46baf68](https://github.com/pie-framework/pie-elements/commit/46baf68c6b83f95ff2f1e667ab15ac0a65aa96f1))
|
|
19
|
+
* **math-templated:** remove spacing between response area and adjacent text PD-3815 ([a05eca8](https://github.com/pie-framework/pie-elements/commit/a05eca882e4037aa99c8c5a72e494f5fa7f7808b))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
# [2.15.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated@2.14.2...@pie-element/math-templated@2.15.0) (2024-06-13)
|
|
7
26
|
|
|
8
27
|
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.5.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-configure@1.4.0...@pie-element/math-templated-configure@1.5.0) (2024-06-19)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update pie-lib/pie-toolbox fix build ([75777e1](https://github.com/pie-framework/pie-elements/commit/75777e189786cb9041bd0d2f843c023a1ea5b8b1))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* update pie-lib/pie-toolbox PD-3179, PD-3206, PD-3186, PD-1311, PD-3771, PD-3772, PD-3817 ([14e175c](https://github.com/pie-framework/pie-elements/commit/14e175cd62770ab4d7ba8bf83e6d0c9ad683f595))
|
|
17
|
+
* **math-templated:** display correct answers in response areas PD-3817 ([a91bbc3](https://github.com/pie-framework/pie-elements/commit/a91bbc3a228c30bf19239b6076f882c4b0ff1c3d))
|
|
18
|
+
* update slate markup when responses get changed PD-3817 ([46baf68](https://github.com/pie-framework/pie-elements/commit/46baf68c6b83f95ff2f1e667ab15ac0a65aa96f1))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
6
24
|
# [1.4.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-configure@1.3.2...@pie-element/math-templated-configure@1.4.0) (2024-06-13)
|
|
7
25
|
|
|
8
26
|
|
package/configure/lib/design.js
CHANGED
|
@@ -106,10 +106,18 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
106
106
|
newModel.responses[index] = response;
|
|
107
107
|
onModelChanged(newModel);
|
|
108
108
|
});
|
|
109
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "
|
|
109
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onResponseDone", function () {
|
|
110
110
|
var _this$props3 = _this.props,
|
|
111
111
|
model = _this$props3.model,
|
|
112
112
|
onModelChanged = _this$props3.onModelChanged;
|
|
113
|
+
onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
|
|
114
|
+
slateMarkup: (0, _markupUtils.createSlateMarkup)(model.markup, model.responses)
|
|
115
|
+
}));
|
|
116
|
+
});
|
|
117
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChangeResponse", function (index, newVal) {
|
|
118
|
+
var _this$props4 = _this.props,
|
|
119
|
+
model = _this$props4.model,
|
|
120
|
+
onModelChanged = _this$props4.onModelChanged;
|
|
113
121
|
var responses = model.responses;
|
|
114
122
|
|
|
115
123
|
if (!responses[index]) {
|
|
@@ -132,13 +140,13 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
132
140
|
}));
|
|
133
141
|
});
|
|
134
142
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (markup) {
|
|
135
|
-
var _this$
|
|
136
|
-
_this$
|
|
137
|
-
responses = _this$
|
|
138
|
-
validationDefault = _this$
|
|
139
|
-
allowTrailingZerosDefault = _this$
|
|
140
|
-
ignoreOrderDefault = _this$
|
|
141
|
-
onModelChanged = _this$
|
|
143
|
+
var _this$props5 = _this.props,
|
|
144
|
+
_this$props5$model = _this$props5.model,
|
|
145
|
+
responses = _this$props5$model.responses,
|
|
146
|
+
validationDefault = _this$props5$model.validationDefault,
|
|
147
|
+
allowTrailingZerosDefault = _this$props5$model.allowTrailingZerosDefault,
|
|
148
|
+
ignoreOrderDefault = _this$props5$model.ignoreOrderDefault,
|
|
149
|
+
onModelChanged = _this$props5.onModelChanged;
|
|
142
150
|
var newResponses = {};
|
|
143
151
|
var domMarkup = createElementFromHTML(markup);
|
|
144
152
|
var responseAreas = domMarkup.querySelectorAll('[data-type="math_templated"]');
|
|
@@ -148,7 +156,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
148
156
|
dataIndex = _element$dataset.index;
|
|
149
157
|
|
|
150
158
|
if (!value) {
|
|
151
|
-
element.dataset.value =
|
|
159
|
+
element.dataset.value = '';
|
|
152
160
|
}
|
|
153
161
|
|
|
154
162
|
newResponses[dataIndex] = responses[dataIndex] || {
|
|
@@ -176,9 +184,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
176
184
|
}, callback);
|
|
177
185
|
});
|
|
178
186
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onHandleAreaChange", (0, _throttle["default"])(function (nodes) {
|
|
179
|
-
var _this$
|
|
180
|
-
responses = _this$
|
|
181
|
-
onModelChanged = _this$
|
|
187
|
+
var _this$props6 = _this.props,
|
|
188
|
+
responses = _this$props6.model.responses,
|
|
189
|
+
onModelChanged = _this$props6.onModelChanged;
|
|
182
190
|
var cachedResponses = _this.state.cachedResponses;
|
|
183
191
|
|
|
184
192
|
if (!nodes) {
|
|
@@ -278,14 +286,14 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
278
286
|
value: function render() {
|
|
279
287
|
var _this2 = this;
|
|
280
288
|
|
|
281
|
-
var _this$
|
|
282
|
-
classes = _this$
|
|
283
|
-
configuration = _this$
|
|
284
|
-
imageSupport = _this$
|
|
285
|
-
model = _this$
|
|
286
|
-
onConfigurationChanged = _this$
|
|
287
|
-
onModelChanged = _this$
|
|
288
|
-
uploadSoundSupport = _this$
|
|
289
|
+
var _this$props7 = this.props,
|
|
290
|
+
classes = _this$props7.classes,
|
|
291
|
+
configuration = _this$props7.configuration,
|
|
292
|
+
imageSupport = _this$props7.imageSupport,
|
|
293
|
+
model = _this$props7.model,
|
|
294
|
+
onConfigurationChanged = _this$props7.onConfigurationChanged,
|
|
295
|
+
onModelChanged = _this$props7.onModelChanged,
|
|
296
|
+
uploadSoundSupport = _this$props7.uploadSoundSupport;
|
|
289
297
|
|
|
290
298
|
var _ref2 = configuration || {},
|
|
291
299
|
_ref2$baseInputConfig = _ref2.baseInputConfiguration,
|
|
@@ -531,6 +539,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
531
539
|
mode: equationEditor,
|
|
532
540
|
response: response,
|
|
533
541
|
onResponseChange: _this2.onResponseChange,
|
|
542
|
+
onResponseDone: _this2.onResponseDone,
|
|
534
543
|
index: idx,
|
|
535
544
|
cIgnoreOrder: cIgnoreOrder,
|
|
536
545
|
cAllowTrailingZeros: cAllowTrailingZeros,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","Design","key","value","props","onModelChanged","model","updatedModel","response","index","newModel","responses","newVal","answer","id","allowSpaces","markup","validationDefault","allowTrailingZerosDefault","ignoreOrderDefault","newResponses","domMarkup","responseAreas","querySelectorAll","forEach","element","dataset","dataIndex","validation","allowTrailingZeros","ignoreOrder","alternates","processedMarkup","callback","slateMarkup","setState","cachedChoices","undefined","nodes","cachedResponses","state","newChoices","newCachedResponses","node","keyForNode","data","get","Object","assign","hasOwnProperty","trailing","leading","e","relatedTarget","currentTarget","getParentWithRoleTooltip","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","activeAnswerBlock","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","contentDimensions","prompt","rationale","settingsPanelDisabled","teacherInstructions","language","languageChoices","spellCheck","playerSpellCheck","maxImageWidth","maxImageHeight","mathMlOptions","template","editSource","cIgnoreOrder","cAllowTrailingZeros","partialScoring","maxResponseAreas","errors","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","equationEditor","promptError","rationaleError","responseAreasError","teacherInstructionsError","responsesErrors","validationMessage","panelSettings","label","enabled","options","panelProperties","playerSpellCheckEnabled","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","getPluginProps","Settings","Properties","promptHolder","handleChange","inputConfiguration","errorText","tooltipContainer","title","tooltip","ALL_PLUGINS","type","respAreaToolbar","error","onHandleAreaChange","onChange","onBlur","responseAreaError","selectContainer","select","event","target","keys","map","responseKey","idx","onResponseChange","math","controlledKeypadMode","React","Component","PropTypes","object","isRequired","func","shape","add","theme","width","paddingTop","spacing","unit","marginBottom","color","palette","main","fontSize","marginTop","typography","fontWeight","display","alignItems","gap","whiteSpace","maxWidth"],"mappings":"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","sourcesContent":["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 {\n InputContainer,\n settings,\n layout,\n} from '@pie-lib/pie-toolbox/config-ui';\nimport {\n ALL_PLUGINS,\n EditableHtml,\n} from '@pie-lib/pie-toolbox/editable-html';\nimport { dropdown } from '@pie-lib/pie-toolbox/code/config-ui/settings';\n\nimport Response from './response';\nimport { processMarkup } 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\nclass 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 { model: { slateMarkup } } = this.props;\n\n this.setState({ markup: slateMarkup });\n\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 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) => {\n const { value, index: dataIndex } = element.dataset;\n\n if (!value) {\n element.dataset.value = `R ${dataIndex}`;\n }\n\n newResponses[dataIndex] = 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 = dataIndex;\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({ cachedChoices: 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 {\n classes,\n configuration,\n imageSupport,\n model,\n onConfigurationChanged,\n onModelChanged,\n 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 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 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\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\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(\n teacherInstructions?.inputConfiguration,\n baseInputConfiguration\n )}\n spellCheck={spellCheckEnabled}\n maxImageWidth={\n (maxImageWidth && maxImageWidth.teacherInstructions) ||\n defaultImageMaxWidth\n }\n maxImageHeight={\n (maxImageHeight && maxImageHeight.teacherInstructions) ||\n defaultImageMaxHeight\n }\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && (\n <div className={classes.errorText}>{teacherInstructionsError}</div>\n )}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\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(\n teacherInstructions?.inputConfiguration,\n baseInputConfiguration\n )}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && (\n <div className={classes.errorText}>{promptError}</div>\n )}\n </InputContainer>\n )}\n <div className={classes.tooltipContainer}>\n <Typography className={classes.title}>Response Template</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(\n template?.inputConfiguration,\n baseInputConfiguration\n )}\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={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n mathMlOptions={mathMlOptions}\n />\n {responseAreasError && (\n <div className={classes.responseAreaError}>{responseAreasError}</div>\n )}\n\n <Typography className={classes.title}>Define Response</Typography>\n\n <InputContainer\n label=\"Response Template Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={(event) =>\n this.handleChange('equationEditor', event.target.value)\n }\n value={equationEditor}\n >\n <MenuItem value=\"non-negative-integers\">\n Numeric - Non-Negative Integers\n </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'}>\n Advanced Algebra\n </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[responseKey];\n\n if (response) {\n return (\n <Response\n key={responseKey}\n responseKey={responseKey}\n mode={equationEditor}\n response={response}\n onResponseChange={this.onResponseChange}\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\n label={rationale.label}\n className={classes.promptHolder}\n >\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={\n (maxImageWidth && maxImageWidth.rationale) ||\n defaultImageMaxWidth\n }\n maxImageHeight={\n (maxImageHeight && maxImageHeight.rationale) ||\n defaultImageMaxHeight\n }\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && (\n <div className={classes.errorText}>{rationaleError}</div>\n )}\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"],"file":"design.js"}
|
|
1
|
+
{"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","Design","key","value","props","onModelChanged","model","updatedModel","response","index","newModel","responses","slateMarkup","markup","newVal","answer","id","allowSpaces","validationDefault","allowTrailingZerosDefault","ignoreOrderDefault","newResponses","domMarkup","responseAreas","querySelectorAll","forEach","element","dataset","dataIndex","validation","allowTrailingZeros","ignoreOrder","alternates","processedMarkup","callback","setState","cachedChoices","undefined","nodes","cachedResponses","state","newChoices","newCachedResponses","node","keyForNode","data","get","Object","assign","hasOwnProperty","trailing","leading","e","relatedTarget","currentTarget","getParentWithRoleTooltip","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","activeAnswerBlock","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","contentDimensions","prompt","rationale","settingsPanelDisabled","teacherInstructions","language","languageChoices","spellCheck","playerSpellCheck","maxImageWidth","maxImageHeight","mathMlOptions","template","editSource","cIgnoreOrder","cAllowTrailingZeros","partialScoring","maxResponseAreas","errors","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","equationEditor","promptError","rationaleError","responseAreasError","teacherInstructionsError","responsesErrors","validationMessage","panelSettings","label","enabled","options","panelProperties","playerSpellCheckEnabled","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","getPluginProps","Settings","Properties","promptHolder","handleChange","inputConfiguration","errorText","tooltipContainer","title","tooltip","ALL_PLUGINS","type","respAreaToolbar","error","onHandleAreaChange","onChange","onBlur","responseAreaError","selectContainer","select","event","target","keys","map","responseKey","idx","onResponseChange","onResponseDone","math","controlledKeypadMode","React","Component","PropTypes","object","isRequired","func","shape","add","theme","width","paddingTop","spacing","unit","marginBottom","color","palette","main","fontSize","marginTop","typography","fontWeight","display","alignItems","gap","whiteSpace","maxWidth"],"mappings":"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","sourcesContent":["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 {\n InputContainer,\n settings,\n layout,\n} from '@pie-lib/pie-toolbox/config-ui';\nimport {\n ALL_PLUGINS,\n EditableHtml,\n} from '@pie-lib/pie-toolbox/editable-html';\nimport { dropdown } from '@pie-lib/pie-toolbox/code/config-ui/settings';\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\nclass 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 { model: { slateMarkup } } = this.props;\n\n this.setState({ markup: slateMarkup });\n\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) => {\n const { value, index: dataIndex } = element.dataset;\n\n if (!value) {\n element.dataset.value = '';\n }\n\n newResponses[dataIndex] = 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 = dataIndex;\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({ cachedChoices: 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 {\n classes,\n configuration,\n imageSupport,\n model,\n onConfigurationChanged,\n onModelChanged,\n 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 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 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\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\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(\n teacherInstructions?.inputConfiguration,\n baseInputConfiguration\n )}\n spellCheck={spellCheckEnabled}\n maxImageWidth={\n (maxImageWidth && maxImageWidth.teacherInstructions) ||\n defaultImageMaxWidth\n }\n maxImageHeight={\n (maxImageHeight && maxImageHeight.teacherInstructions) ||\n defaultImageMaxHeight\n }\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && (\n <div className={classes.errorText}>{teacherInstructionsError}</div>\n )}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\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(\n teacherInstructions?.inputConfiguration,\n baseInputConfiguration\n )}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && (\n <div className={classes.errorText}>{promptError}</div>\n )}\n </InputContainer>\n )}\n <div className={classes.tooltipContainer}>\n <Typography className={classes.title}>Response Template</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(\n template?.inputConfiguration,\n baseInputConfiguration\n )}\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={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n mathMlOptions={mathMlOptions}\n />\n {responseAreasError && (\n <div className={classes.responseAreaError}>{responseAreasError}</div>\n )}\n\n <Typography className={classes.title}>Define Response</Typography>\n\n <InputContainer\n label=\"Response Template Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={(event) =>\n this.handleChange('equationEditor', event.target.value)\n }\n value={equationEditor}\n >\n <MenuItem value=\"non-negative-integers\">\n Numeric - Non-Negative Integers\n </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'}>\n Advanced Algebra\n </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[responseKey];\n\n if (response) {\n return (\n <Response\n key={responseKey}\n responseKey={responseKey}\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\n label={rationale.label}\n className={classes.promptHolder}\n >\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={\n (maxImageWidth && maxImageWidth.rationale) ||\n defaultImageMaxWidth\n }\n maxImageHeight={\n (maxImageHeight && maxImageHeight.rationale) ||\n defaultImageMaxHeight\n }\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && (\n <div className={classes.errorText}>{rationaleError}</div>\n )}\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"],"file":"design.js"}
|
|
@@ -36,14 +36,17 @@ var processMarkup = function processMarkup(markup) {
|
|
|
36
36
|
exports.processMarkup = processMarkup;
|
|
37
37
|
var REGEX = /\{\{(\d+)\}\}/g;
|
|
38
38
|
|
|
39
|
-
var createSlateMarkup = function createSlateMarkup(markup) {
|
|
39
|
+
var createSlateMarkup = function createSlateMarkup(markup, responses) {
|
|
40
40
|
if (!markup) {
|
|
41
41
|
return '';
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
var newMarkup = removeUnwantedCharacters(markup);
|
|
45
|
-
return newMarkup.replace(REGEX, function (match,
|
|
46
|
-
|
|
45
|
+
return newMarkup.replace(REGEX, function (match, groupIndex) {
|
|
46
|
+
var _responses$groupIndex;
|
|
47
|
+
|
|
48
|
+
var responseValue = ((_responses$groupIndex = responses[groupIndex]) === null || _responses$groupIndex === void 0 ? void 0 : _responses$groupIndex.answer) || '';
|
|
49
|
+
return "<span data-type=\"math_templated\" data-index=\"".concat(groupIndex, "\" data-value=\"").concat(responseValue, "\"></span>");
|
|
47
50
|
});
|
|
48
51
|
};
|
|
49
52
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/markupUtils.js"],"names":["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","match","
|
|
1
|
+
{"version":3,"sources":["../src/markupUtils.js"],"names":["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","answer"],"mappings":";;;;;;AAAA;AACA,IAAMA,QAAQ,GAAG,+BAAjB,C,CACA;;AACA,IAAMC,QAAQ,GAAG,sCAAjB,C,CACA;;AACA,IAAMC,kBAAkB,GAAG,IAAIC,MAAJ,kBACfH,QADe,uBACMC,QADN,yBAC6BD,QAD7B,yBACoDC,QADpD,SAEzB,GAFyB,CAA3B;;AAKO,IAAMG,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,MAAD;AAAA,SACtCA,MAAM,CAACC,OAAP,CAAeJ,kBAAf,EAAmC,EAAnC,EAAuCI,OAAvC,CAA+C,MAA/C,EAAuD,GAAvD,EAA4DA,OAA5D,CAAoE,OAApE,EAA6E,GAA7E,CADsC;AAAA,CAAjC;;;;AAGP,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAqB;AAAA,MAApBC,UAAoB,uEAAP,EAAO;AACjD,MAAMC,GAAG,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAZ;AAEAF,EAAAA,GAAG,CAACG,SAAJ,GAAgBJ,UAAU,CAACK,IAAX,EAAhB;AAEA,SAAOJ,GAAP;AACD,CAND;;AAQO,IAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAACT,MAAD,EAAY;AACvC,MAAMU,SAAS,GAAGX,wBAAwB,CAACC,MAAM,IAAI,EAAX,CAA1C;AACA,MAAMW,WAAW,GAAGT,qBAAqB,CAACQ,SAAS,IAAI,EAAd,CAAzC;AAEAC,EAAAA,WAAW,CAACC,gBAAZ,CAA6B,8BAA7B,EACGC,OADH,CACW,UAACC,CAAD;AAAA,WAAOA,CAAC,CAACC,WAAF,aAAmBD,CAAC,CAACE,OAAF,CAAUC,KAA7B,QAAP;AAAA,GADX;AAGA,SAAON,WAAW,CAACJ,SAAnB;AACD,CARM;;;AAUP,IAAMW,KAAK,GAAG,gBAAd;;AAEO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACnB,MAAD,EAASoB,SAAT,EAAuB;AACtD,MAAI,CAACpB,MAAL,EAAa;AACX,WAAO,EAAP;AACD;;AAED,MAAMU,SAAS,GAAGX,wBAAwB,CAACC,MAAD,CAA1C;AAEA,SAAOU,SAAS,CAACT,OAAV,CAAkBiB,KAAlB,EAAyB,UAACG,KAAD,EAAQC,UAAR,EAAuB;AAAA;;AACrD,QAAMC,aAAa,GAAG,0BAAAH,SAAS,CAACE,UAAD,CAAT,gFAAuBE,MAAvB,KAAiC,EAAvD;AACA,qEAAuDF,UAAvD,6BAAkFC,aAAlF;AACD,GAHM,CAAP;AAID,CAXM","sourcesContent":["// 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"],"file":"markupUtils.js"}
|
|
@@ -182,6 +182,8 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
182
182
|
};
|
|
183
183
|
});
|
|
184
184
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDone", function () {
|
|
185
|
+
var onResponseDone = _this.props.onResponseDone;
|
|
186
|
+
|
|
185
187
|
_this.setState(function (state) {
|
|
186
188
|
return {
|
|
187
189
|
showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, {
|
|
@@ -190,6 +192,8 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
190
192
|
})
|
|
191
193
|
};
|
|
192
194
|
});
|
|
195
|
+
|
|
196
|
+
onResponseDone();
|
|
193
197
|
});
|
|
194
198
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFocus", function () {
|
|
195
199
|
_this.setState(function (state) {
|
|
@@ -356,6 +360,7 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
356
360
|
error: _propTypes["default"].object,
|
|
357
361
|
mode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
358
362
|
onResponseChange: _propTypes["default"].func.isRequired,
|
|
363
|
+
onResponseDone: _propTypes["default"].func.isRequired,
|
|
359
364
|
response: _propTypes["default"].object.isRequired,
|
|
360
365
|
cIgnoreOrder: _propTypes["default"].object.isRequired,
|
|
361
366
|
cAllowTrailingZeros: _propTypes["default"].object.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/response.jsx"],"names":["Response","props","name","evt","response","onResponseChange","responseKey","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","main","alternatesLength","Object","keys","length","classes","mode","cAllowTrailingZeros","cIgnoreOrder","error","validation","ignoreOrder","allowTrailingZeros","hasAlternates","classNames","editor","responseEditor","mathToolbar","styles","minHeight","responseContainer","cardContent","titleBar","title","responseBox","selectContainer","select","onChange","flexContainer","enabled","label","onLiteralOptionsChange","inputContainer","onAnswerChange","onFocus","onDone","errorText","map","altIdx","alternateBar","onAlternateAnswerChange","onAlternateFocus","onAlternateDone","removeAlternateButton","onRemoveAlternate","alternateButton","onAddAlternate","React","Component","PropTypes","object","isRequired","defaultResponse","bool","oneOfType","string","number","func","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"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport { MathToolbar } from '@pie-lib/pie-toolbox/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';\n\nclass 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 response: PropTypes.object.isRequired,\n cIgnoreOrder: PropTypes.object.isRequired,\n cAllowTrailingZeros: PropTypes.object.isRequired,\n responseKey: PropTypes.string.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 this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n main: false,\n },\n }));\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\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\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}>R {responseKey}</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 checked={allowTrailingZeros}\n onChange={this.onLiteralOptionsChange('allowTrailingZeros')}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={<Checkbox checked={ignoreOrder} onChange={this.onLiteralOptionsChange('ignoreOrder')}/>}\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\n className={classes.removeAlternateButton}\n onClick={this.onRemoveAlternate(alternateId)}\n >\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});\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
|
|
1
|
+
{"version":3,"sources":["../src/response.jsx"],"names":["Response","props","name","evt","response","onResponseChange","responseKey","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","onResponseDone","main","alternatesLength","Object","keys","length","classes","mode","cAllowTrailingZeros","cIgnoreOrder","error","validation","ignoreOrder","allowTrailingZeros","hasAlternates","classNames","editor","responseEditor","mathToolbar","styles","minHeight","responseContainer","cardContent","titleBar","title","responseBox","selectContainer","select","onChange","flexContainer","enabled","label","onLiteralOptionsChange","inputContainer","onAnswerChange","onFocus","onDone","errorText","map","altIdx","alternateBar","onAlternateAnswerChange","onAlternateFocus","onAlternateDone","removeAlternateButton","onRemoveAlternate","alternateButton","onAddAlternate","React","Component","PropTypes","object","isRequired","defaultResponse","bool","oneOfType","string","number","func","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"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport { MathToolbar } from '@pie-lib/pie-toolbox/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';\n\nclass 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.string.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\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}>R {responseKey}</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 checked={allowTrailingZeros}\n onChange={this.onLiteralOptionsChange('allowTrailingZeros')}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={<Checkbox checked={ignoreOrder} onChange={this.onLiteralOptionsChange('ignoreOrder')}/>}\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\n className={classes.removeAlternateButton}\n onClick={this.onRemoveAlternate(alternateId)}\n >\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});\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
|
package/configure/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/math-templated-configure",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.5.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@material-ui/core": "^3.9.2",
|
|
10
10
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
11
|
-
"@pie-lib/pie-toolbox": "1.
|
|
11
|
+
"@pie-lib/pie-toolbox": "1.23.1",
|
|
12
12
|
"debug": "^3.1.0",
|
|
13
13
|
"lodash": "^4.17.15",
|
|
14
14
|
"prop-types": "^15.6.2",
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.13.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-controller@2.12.0...@pie-element/math-templated-controller@2.13.0) (2024-06-19)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update pie-lib/pie-toolbox fix build ([75777e1](https://github.com/pie-framework/pie-elements/commit/75777e189786cb9041bd0d2f843c023a1ea5b8b1))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* update pie-lib/pie-toolbox PD-3179, PD-3206, PD-3186, PD-1311, PD-3771, PD-3772, PD-3817 ([14e175c](https://github.com/pie-framework/pie-elements/commit/14e175cd62770ab4d7ba8bf83e6d0c9ad683f595))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
# [2.12.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-controller@2.11.3...@pie-element/math-templated-controller@2.12.0) (2024-06-13)
|
|
7
23
|
|
|
8
24
|
|
package/controller/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/math-templated-controller",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.13.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.2.2",
|
|
10
|
-
"@pie-lib/pie-toolbox": "1.
|
|
10
|
+
"@pie-lib/pie-toolbox": "1.23.1",
|
|
11
11
|
"debug": "^3.1.0",
|
|
12
12
|
"lodash": "^4.17.15"
|
|
13
13
|
},
|