@pie-element/extended-text-entry 10.7.1-next.39 → 10.7.1-next.43
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/defaults.js +4 -2
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/main.js +17 -2
- package/configure/lib/main.js.map +1 -1
- package/controller/lib/index.js +28 -1
- package/controller/lib/index.js.map +1 -1
- package/docs/config-schema.json +19 -4
- package/docs/config-schema.json.md +14 -2
- package/docs/pie-schema.json +7 -2
- package/docs/pie-schema.json.md +6 -2
- package/module/configure.js +38 -14
- package/module/controller.js +16 -1
- package/package.json +2 -2
|
@@ -97,7 +97,8 @@ var _default = {
|
|
|
97
97
|
image: {
|
|
98
98
|
disabled: false
|
|
99
99
|
}
|
|
100
|
-
}
|
|
100
|
+
},
|
|
101
|
+
required: false
|
|
101
102
|
},
|
|
102
103
|
teacherInstructions: {
|
|
103
104
|
settings: true,
|
|
@@ -112,7 +113,8 @@ var _default = {
|
|
|
112
113
|
image: {
|
|
113
114
|
disabled: false
|
|
114
115
|
}
|
|
115
|
-
}
|
|
116
|
+
},
|
|
117
|
+
required: false
|
|
116
118
|
},
|
|
117
119
|
maxImageWidth: {
|
|
118
120
|
teacherInstructions: 300,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","dimensions","height","width","prompt","mathInput","spanishInput","specialInput","equationEditor","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","spellCheckEnabled","playerSpellCheckDisabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","disabled","video","image","settings","label","spellCheck","enabled","playerSpellCheck","feedback","settingsPanelDisabled","multiple","studentInstructions","inputConfiguration","teacherInstructions","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","dimensions","height","width","prompt","mathInput","spanishInput","specialInput","equationEditor","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","spellCheckEnabled","playerSpellCheckDisabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","disabled","video","image","settings","label","spellCheck","enabled","playerSpellCheck","feedback","settingsPanelDisabled","multiple","studentInstructions","inputConfiguration","required","teacherInstructions","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing"],"mappings":"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","sourcesContent":["export default {\n model: {\n dimensions: {\n height: 100,\n width: 500,\n },\n prompt: 'This is the question prompt',\n mathInput: false,\n spanishInput: false,\n specialInput: false,\n equationEditor: 'Grade 8 - HS',\n feedbackEnabled: false,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n spellCheckEnabled: true,\n playerSpellCheckDisabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n dimensions: {\n settings: true,\n label: 'Text-Entry Display Size',\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n playerSpellCheck: {\n label: 'Disable Student Spellcheck',\n settings: true,\n enabled: true,\n },\n equationEditor: {\n settings: false,\n label: 'Equation Editor',\n enabled: true,\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n },\n mathInput: {\n settings: true,\n label: 'Student response can include math notation',\n enabled: false,\n },\n settingsPanelDisabled: false,\n spanishInput: {\n settings: true,\n label: 'Students can insert Spanish',\n enabled: false,\n },\n specialInput: {\n settings: true,\n label: 'Students can insert Special Characters',\n enabled: false,\n },\n multiple: {\n settings: false,\n label: 'Multiple Parts',\n enabled: false,\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n};\n"],"file":"defaults.js"}
|
package/configure/lib/main.js
CHANGED
|
@@ -148,12 +148,16 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
148
148
|
baseInputConfiguration = _ref$baseInputConfigu === void 0 ? {} : _ref$baseInputConfigu;
|
|
149
149
|
|
|
150
150
|
var _ref2 = model || {},
|
|
151
|
+
_ref2$errors = _ref2.errors,
|
|
152
|
+
errors = _ref2$errors === void 0 ? {} : _ref2$errors,
|
|
151
153
|
feedbackEnabled = _ref2.feedbackEnabled,
|
|
152
154
|
promptEnabled = _ref2.promptEnabled,
|
|
153
155
|
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
154
156
|
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
155
157
|
toolbarEditorPosition = _ref2.toolbarEditorPosition;
|
|
156
158
|
|
|
159
|
+
var promptError = errors.prompt,
|
|
160
|
+
teacherInstructionsError = errors.teacherInstructions;
|
|
157
161
|
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
158
162
|
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
159
163
|
var toolbarOpts = {
|
|
@@ -220,6 +224,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
220
224
|
onChange: this.changeTeacherInstructions,
|
|
221
225
|
imageSupport: imageSupport,
|
|
222
226
|
nonEmpty: false,
|
|
227
|
+
error: teacherInstructionsError,
|
|
223
228
|
toolbarOpts: toolbarOpts,
|
|
224
229
|
spellCheck: spellCheckEnabled,
|
|
225
230
|
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
@@ -232,7 +237,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
232
237
|
}],
|
|
233
238
|
mathMlOptions: mathMlOptions,
|
|
234
239
|
pluginProps: getPluginProps(teacherInstructions === null || teacherInstructions === void 0 ? void 0 : teacherInstructions.inputConfiguration)
|
|
235
|
-
})
|
|
240
|
+
}), teacherInstructionsError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
241
|
+
className: classes.errorText
|
|
242
|
+
}, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
236
243
|
label: prompt.label,
|
|
237
244
|
className: classes.promptContainer
|
|
238
245
|
}, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
|
|
@@ -242,6 +249,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
242
249
|
onChange: this.onPromptChange,
|
|
243
250
|
imageSupport: imageSupport,
|
|
244
251
|
nonEmpty: false,
|
|
252
|
+
error: promptError,
|
|
245
253
|
toolbarOpts: toolbarOpts,
|
|
246
254
|
spellCheck: spellCheckEnabled,
|
|
247
255
|
maxImageWidth: defaultImageMaxWidth,
|
|
@@ -254,7 +262,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
254
262
|
}],
|
|
255
263
|
mathMlOptions: mathMlOptions,
|
|
256
264
|
pluginProps: getPluginProps(prompt === null || prompt === void 0 ? void 0 : prompt.inputConfiguration)
|
|
257
|
-
})
|
|
265
|
+
}), promptError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
266
|
+
className: classes.errorText
|
|
267
|
+
}, promptError)), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
258
268
|
className: classes.header,
|
|
259
269
|
variant: "subheading"
|
|
260
270
|
}, "Feedback"), /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackSelector, {
|
|
@@ -288,6 +298,11 @@ var _default = (0, _styles.withStyles)(function (theme) {
|
|
|
288
298
|
paddingTop: theme.spacing.unit * 2,
|
|
289
299
|
marginBottom: theme.spacing.unit * 2,
|
|
290
300
|
width: '100%'
|
|
301
|
+
},
|
|
302
|
+
errorText: {
|
|
303
|
+
fontSize: theme.typography.fontSize - 2,
|
|
304
|
+
color: theme.palette.error.main,
|
|
305
|
+
paddingTop: theme.spacing.unit
|
|
291
306
|
}
|
|
292
307
|
};
|
|
293
308
|
})(Main);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","numberFields","dropdown","defaultFeedback","type","Main","props","markup","onModelChanged","model","prompt","feedback","update","teacherInstructions","state","setDimensions","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","contentDimensions","dimensions","equationEditor","playerSpellCheck","settingsPanelDisabled","spanishInput","specialInput","spellCheck","studentInstructions","mathInput","maxImageWidth","maxImageHeight","multiple","withRubric","mathMlOptions","baseInputConfiguration","feedbackEnabled","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","width","suffix","min","max","height","playerSpellCheckDisabled","panelProperties","studentInstructionsEnabled","rubricEnabled","getPluginProps","Object","assign","config","Settings","Properties","promptContainer","changeTeacherInstructions","language","inputConfiguration","ALL_PLUGINS","onPromptChange","header","changeFeedback","React","Component","PropTypes","func","isRequired","object","theme","paddingBottom","spacing","unit","paddingTop","marginBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FeedbackSelector, InputContainer, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport { EditableHtml, ALL_PLUGINS } from '@pie-lib/pie-toolbox/editable-html';\n\nconst { Panel, toggle, numberFields, dropdown } = settings;\n\nconst defaultFeedback = {\n type: 'default',\n default: 'Your answer has been submitted',\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { setDimensions: true };\n }\n\n onPromptChange = (markup) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt: markup });\n };\n\n changeFeedback = (feedback) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, feedback };\n\n onModelChanged(update);\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, teacherInstructions };\n\n onModelChanged(update);\n };\n\n render() {\n const { model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n contentDimensions = {},\n dimensions = {},\n equationEditor = {},\n feedback = {},\n playerSpellCheck = {},\n prompt = {},\n settingsPanelDisabled,\n spanishInput = {},\n specialInput = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n mathInput = {},\n maxImageWidth = {},\n maxImageHeight = {},\n multiple = {},\n withRubric = {},\n mathMlOptions = {},\n baseInputConfiguration = {},\n } = configuration || {};\n const { feedbackEnabled, promptEnabled, spellCheckEnabled, teacherInstructionsEnabled, toolbarEditorPosition } =\n model || {};\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 panelSettings = {\n mathInput: mathInput.settings && toggle(mathInput.label),\n equationEditor:\n equationEditor.enabled &&\n model.mathInput &&\n dropdown(equationEditor.label, [\n 'non-negative-integers',\n 'integers',\n 'decimals',\n 'fractions',\n 'Grade 1 - 2',\n 'Grade 3 - 5',\n 'Grade 6 - 7',\n 'Grade 8 - HS',\n 'geometry',\n 'advanced-algebra',\n 'statistics',\n 'item-authoring',\n ]),\n spanishInput: spanishInput.settings && toggle(spanishInput.label),\n specialInput: specialInput.settings && toggle(specialInput.label),\n dimensions: numberFields(dimensions.label, {\n width: { label: 'Width (px)', suffix: 'px', min: 100, max: 500 },\n height: { label: 'Height (px)', suffix: 'px', min: 100, max: 500 },\n }),\n 'multiple.enabled': multiple.settings && toggle(multiple.label, true),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n playerSpellCheckDisabled: playerSpellCheck.settings && toggle(playerSpellCheck.label),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props) => {\n return Object.assign(\n {\n ...baseInputConfiguration,\n },\n props || {},\n );\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={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\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 pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <React.Fragment>\n <Typography className={classes.header} variant=\"subheading\">\n Feedback\n </Typography>\n\n <FeedbackSelector\n label=\"When submitted, show\"\n feedback={model.feedback || defaultFeedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles((theme) => ({\n header: {\n paddingBottom: theme.spacing.unit,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n}))(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","numberFields","dropdown","defaultFeedback","type","Main","props","markup","onModelChanged","model","prompt","feedback","update","teacherInstructions","state","setDimensions","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","contentDimensions","dimensions","equationEditor","playerSpellCheck","settingsPanelDisabled","spanishInput","specialInput","spellCheck","studentInstructions","mathInput","maxImageWidth","maxImageHeight","multiple","withRubric","mathMlOptions","baseInputConfiguration","errors","feedbackEnabled","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","width","suffix","min","max","height","playerSpellCheckDisabled","panelProperties","studentInstructionsEnabled","rubricEnabled","getPluginProps","Object","assign","config","Settings","Properties","promptContainer","changeTeacherInstructions","language","inputConfiguration","errorText","ALL_PLUGINS","onPromptChange","header","changeFeedback","React","Component","PropTypes","func","isRequired","object","theme","paddingBottom","spacing","unit","paddingTop","marginBottom","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FeedbackSelector, InputContainer, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport { EditableHtml, ALL_PLUGINS } from '@pie-lib/pie-toolbox/editable-html';\n\nconst { Panel, toggle, numberFields, dropdown } = settings;\n\nconst defaultFeedback = {\n type: 'default',\n default: 'Your answer has been submitted',\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { setDimensions: true };\n }\n\n onPromptChange = (markup) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt: markup });\n };\n\n changeFeedback = (feedback) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, feedback };\n\n onModelChanged(update);\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, teacherInstructions };\n\n onModelChanged(update);\n };\n\n render() {\n const { model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n contentDimensions = {},\n dimensions = {},\n equationEditor = {},\n feedback = {},\n playerSpellCheck = {},\n prompt = {},\n settingsPanelDisabled,\n spanishInput = {},\n specialInput = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n mathInput = {},\n maxImageWidth = {},\n maxImageHeight = {},\n multiple = {},\n withRubric = {},\n mathMlOptions = {},\n baseInputConfiguration = {},\n } = configuration || {};\n const {\n errors = {},\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { prompt: promptError, teacherInstructions: teacherInstructionsError } = errors;\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 panelSettings = {\n mathInput: mathInput.settings && toggle(mathInput.label),\n equationEditor:\n equationEditor.enabled &&\n model.mathInput &&\n dropdown(equationEditor.label, [\n 'non-negative-integers',\n 'integers',\n 'decimals',\n 'fractions',\n 'Grade 1 - 2',\n 'Grade 3 - 5',\n 'Grade 6 - 7',\n 'Grade 8 - HS',\n 'geometry',\n 'advanced-algebra',\n 'statistics',\n 'item-authoring',\n ]),\n spanishInput: spanishInput.settings && toggle(spanishInput.label),\n specialInput: specialInput.settings && toggle(specialInput.label),\n dimensions: numberFields(dimensions.label, {\n width: { label: 'Width (px)', suffix: 'px', min: 100, max: 500 },\n height: { label: 'Height (px)', suffix: 'px', min: 100, max: 500 },\n }),\n 'multiple.enabled': multiple.settings && toggle(multiple.label, true),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n playerSpellCheckDisabled: playerSpellCheck.settings && toggle(playerSpellCheck.label),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props) => {\n return Object.assign(\n {\n ...baseInputConfiguration,\n },\n props || {},\n );\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={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\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 pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <React.Fragment>\n <Typography className={classes.header} variant=\"subheading\">\n Feedback\n </Typography>\n\n <FeedbackSelector\n label=\"When submitted, show\"\n feedback={model.feedback || defaultFeedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles((theme) => ({\n header: {\n paddingBottom: theme.spacing.unit,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n}))(Main);\n"],"file":"main.js"}
|
package/controller/lib/index.js
CHANGED
|
@@ -9,6 +9,7 @@ exports.createDefaultModel = createDefaultModel;
|
|
|
9
9
|
exports.model = model;
|
|
10
10
|
exports.normalize = void 0;
|
|
11
11
|
exports.outcome = outcome;
|
|
12
|
+
exports.validate = void 0;
|
|
12
13
|
|
|
13
14
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
14
15
|
|
|
@@ -145,7 +146,8 @@ function
|
|
|
145
146
|
/*question, session, env*/
|
|
146
147
|
outcome() {
|
|
147
148
|
return _outcome.apply(this, arguments);
|
|
148
|
-
}
|
|
149
|
+
} // remove all html tags
|
|
150
|
+
|
|
149
151
|
|
|
150
152
|
function _outcome() {
|
|
151
153
|
_outcome = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
@@ -168,4 +170,29 @@ function _outcome() {
|
|
|
168
170
|
}));
|
|
169
171
|
return _outcome.apply(this, arguments);
|
|
170
172
|
}
|
|
173
|
+
|
|
174
|
+
var getInnerText = function getInnerText(html) {
|
|
175
|
+
return (html || '').replaceAll(/<[^>]*>/g, '');
|
|
176
|
+
}; // remove all html tags except img and iframe
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
var getContent = function getContent(html) {
|
|
180
|
+
return (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
var validate = function validate() {
|
|
184
|
+
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
185
|
+
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
186
|
+
var errors = {};
|
|
187
|
+
['teacherInstructions', 'prompt'].forEach(function (field) {
|
|
188
|
+
var _config$field;
|
|
189
|
+
|
|
190
|
+
if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getContent(model[field])) {
|
|
191
|
+
errors[field] = 'This field is required.';
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
return errors;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
exports.validate = validate;
|
|
171
198
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","createDefaultModel","model","defaults","normalize","question","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","playerSpellCheckDisabled","session","env","normalizedQuestion","fb","mode","feedback","Promise","resolve","undefined","teacherInstructions","role","equationEditor","then","prompt","dimensions","customKeys","disabled","mathInput","spanishInput","specialInput","spellCheckEnabled","playersToolbarPosition","outcome","score","completed","note"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","createDefaultModel","model","defaults","normalize","question","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","playerSpellCheckDisabled","session","env","normalizedQuestion","fb","mode","feedback","Promise","resolve","undefined","teacherInstructions","role","equationEditor","then","prompt","dimensions","customKeys","disabled","mathInput","spanishInput","specialInput","spellCheckEnabled","playersToolbarPosition","outcome","score","completed","note","getInnerText","html","replaceAll","getContent","replace","validate","config","errors","forEach","field","required"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nconst log = debug('@pie-element:extended-text-entry:controller');\nimport { getFeedback } from '@pie-lib/pie-toolbox/feedback';\n\nimport defaults from './defaults';\n\nexport async function createDefaultModel(model = {}) {\n log('[createDefaultModel]', model);\n\n return {\n ...defaults,\n ...model,\n };\n}\n\nexport const normalize = (question) => ({\n ...defaults,\n feedbackEnabled: false,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n playerSpellCheckDisabled: true,\n ...question,\n});\n\nexport async function model(question, session, env) {\n log('[question]', question);\n const normalizedQuestion = normalize(question);\n\n const fb =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getFeedback(normalizedQuestion.feedback, 'Your answer has been submitted')\n : Promise.resolve(undefined);\n\n let teacherInstructions = null;\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n teacherInstructions = null;\n }\n\n let equationEditor = normalizedQuestion.equationEditor || 'miscellaneous';\n\n switch (normalizedQuestion.equationEditor) {\n case 'Grade 1 - 2':\n equationEditor = 1;\n break;\n case 'Grade 3 - 5':\n equationEditor = 3;\n break;\n case 'Grade 6 - 7':\n equationEditor = 6;\n break;\n case 'Grade 8 - HS':\n equationEditor = 8;\n break;\n default:\n break;\n }\n\n return fb.then((feedback) => ({\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n dimensions: normalizedQuestion.dimensions,\n customKeys: normalizedQuestion.customKeys || [],\n disabled: env.mode !== 'gather',\n feedback,\n teacherInstructions,\n mathInput: normalizedQuestion.mathInput,\n spanishInput: normalizedQuestion.spanishInput,\n specialInput: normalizedQuestion.specialInput,\n equationEditor,\n spellCheckEnabled: !normalizedQuestion.playerSpellCheckDisabled,\n playersToolbarPosition: normalizedQuestion.playersToolbarPosition || 'bottom',\n }));\n}\n\nexport async function outcome(/*question, session, env*/) {\n return {\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring',\n };\n}\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img and iframe\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n return errors;\n};\n"],"file":"index.js"}
|
package/docs/config-schema.json
CHANGED
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
}
|
|
111
111
|
},
|
|
112
112
|
"teacherInstructions": {
|
|
113
|
-
"title": "
|
|
113
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
114
114
|
"type": "object",
|
|
115
115
|
"properties": {
|
|
116
116
|
"inputConfiguration": {
|
|
@@ -163,6 +163,11 @@
|
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
},
|
|
166
|
+
"required": {
|
|
167
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
168
|
+
"type": "boolean",
|
|
169
|
+
"title": "required"
|
|
170
|
+
},
|
|
166
171
|
"settings": {
|
|
167
172
|
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
168
173
|
"type": "boolean",
|
|
@@ -176,7 +181,7 @@
|
|
|
176
181
|
}
|
|
177
182
|
},
|
|
178
183
|
"prompt": {
|
|
179
|
-
"title": "
|
|
184
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
180
185
|
"type": "object",
|
|
181
186
|
"properties": {
|
|
182
187
|
"inputConfiguration": {
|
|
@@ -229,6 +234,11 @@
|
|
|
229
234
|
}
|
|
230
235
|
}
|
|
231
236
|
},
|
|
237
|
+
"required": {
|
|
238
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
239
|
+
"type": "boolean",
|
|
240
|
+
"title": "required"
|
|
241
|
+
},
|
|
232
242
|
"settings": {
|
|
233
243
|
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
234
244
|
"type": "boolean",
|
|
@@ -519,8 +529,8 @@
|
|
|
519
529
|
}
|
|
520
530
|
}
|
|
521
531
|
},
|
|
522
|
-
"
|
|
523
|
-
"title": "
|
|
532
|
+
"EditableHtmlPluginConfigureRequired": {
|
|
533
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
524
534
|
"type": "object",
|
|
525
535
|
"properties": {
|
|
526
536
|
"inputConfiguration": {
|
|
@@ -573,6 +583,11 @@
|
|
|
573
583
|
}
|
|
574
584
|
}
|
|
575
585
|
},
|
|
586
|
+
"required": {
|
|
587
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
588
|
+
"type": "boolean",
|
|
589
|
+
"title": "required"
|
|
590
|
+
},
|
|
576
591
|
"settings": {
|
|
577
592
|
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
578
593
|
"type": "boolean",
|
|
@@ -123,6 +123,10 @@ Properties of the `image` object:
|
|
|
123
123
|
|
|
124
124
|
Indicates if the plugin is disabled or not
|
|
125
125
|
|
|
126
|
+
## `required` (boolean)
|
|
127
|
+
|
|
128
|
+
Indicates if the item is required and the value cannot be empty
|
|
129
|
+
|
|
126
130
|
## `settings` (boolean)
|
|
127
131
|
|
|
128
132
|
Indicates if the item has to be displayed in the Settings Panel
|
|
@@ -171,6 +175,10 @@ Properties of the `image` object:
|
|
|
171
175
|
|
|
172
176
|
Indicates if the plugin is disabled or not
|
|
173
177
|
|
|
178
|
+
## `required` (boolean)
|
|
179
|
+
|
|
180
|
+
Indicates if the item is required and the value cannot be empty
|
|
181
|
+
|
|
174
182
|
## `settings` (boolean)
|
|
175
183
|
|
|
176
184
|
Indicates if the item has to be displayed in the Settings Panel
|
|
@@ -401,9 +409,9 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
401
409
|
|
|
402
410
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
403
411
|
|
|
404
|
-
## `
|
|
412
|
+
## `EditableHtmlPluginConfigureRequired` (object)
|
|
405
413
|
|
|
406
|
-
Properties of the `
|
|
414
|
+
Properties of the `EditableHtmlPluginConfigureRequired` object:
|
|
407
415
|
|
|
408
416
|
### `inputConfiguration` (object)
|
|
409
417
|
|
|
@@ -441,6 +449,10 @@ Properties of the `image` object:
|
|
|
441
449
|
|
|
442
450
|
Indicates if the plugin is disabled or not
|
|
443
451
|
|
|
452
|
+
### `required` (boolean)
|
|
453
|
+
|
|
454
|
+
Indicates if the item is required and the value cannot be empty
|
|
455
|
+
|
|
444
456
|
### `settings` (boolean)
|
|
445
457
|
|
|
446
458
|
Indicates if the item has to be displayed in the Settings Panel
|
package/docs/pie-schema.json
CHANGED
|
@@ -214,8 +214,8 @@
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
},
|
|
217
|
-
"
|
|
218
|
-
"title": "
|
|
217
|
+
"EditableHtmlPluginConfigureRequired": {
|
|
218
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
219
219
|
"type": "object",
|
|
220
220
|
"properties": {
|
|
221
221
|
"inputConfiguration": {
|
|
@@ -268,6 +268,11 @@
|
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
},
|
|
271
|
+
"required": {
|
|
272
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
273
|
+
"type": "boolean",
|
|
274
|
+
"title": "required"
|
|
275
|
+
},
|
|
271
276
|
"settings": {
|
|
272
277
|
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
273
278
|
"type": "boolean",
|
package/docs/pie-schema.json.md
CHANGED
|
@@ -173,9 +173,9 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
173
173
|
|
|
174
174
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
175
175
|
|
|
176
|
-
## `
|
|
176
|
+
## `EditableHtmlPluginConfigureRequired` (object)
|
|
177
177
|
|
|
178
|
-
Properties of the `
|
|
178
|
+
Properties of the `EditableHtmlPluginConfigureRequired` object:
|
|
179
179
|
|
|
180
180
|
### `inputConfiguration` (object)
|
|
181
181
|
|
|
@@ -213,6 +213,10 @@ Properties of the `image` object:
|
|
|
213
213
|
|
|
214
214
|
Indicates if the plugin is disabled or not
|
|
215
215
|
|
|
216
|
+
### `required` (boolean)
|
|
217
|
+
|
|
218
|
+
Indicates if the item is required and the value cannot be empty
|
|
219
|
+
|
|
216
220
|
### `settings` (boolean)
|
|
217
221
|
|
|
218
222
|
Indicates if the item has to be displayed in the Settings Panel
|
package/module/configure.js
CHANGED
|
@@ -5841,7 +5841,8 @@ class Main extends React$1.Component {
|
|
|
5841
5841
|
render() {
|
|
5842
5842
|
const {model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport} = this.props;
|
|
5843
5843
|
const {contentDimensions = {}, dimensions = {}, equationEditor = {}, feedback = {}, playerSpellCheck = {}, prompt = {}, settingsPanelDisabled, spanishInput = {}, specialInput = {}, spellCheck = {}, studentInstructions = {}, teacherInstructions = {}, mathInput = {}, maxImageWidth = {}, maxImageHeight = {}, multiple = {}, withRubric = {}, mathMlOptions = {}, baseInputConfiguration = {}} = configuration || ({});
|
|
5844
|
-
const {feedbackEnabled, promptEnabled, spellCheckEnabled, teacherInstructionsEnabled, toolbarEditorPosition} = model || ({});
|
|
5844
|
+
const {errors = {}, feedbackEnabled, promptEnabled, spellCheckEnabled, teacherInstructionsEnabled, toolbarEditorPosition} = model || ({});
|
|
5845
|
+
const {prompt: promptError, teacherInstructions: teacherInstructionsError} = errors;
|
|
5845
5846
|
const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
5846
5847
|
const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
5847
5848
|
const toolbarOpts = {
|
|
@@ -5897,13 +5898,13 @@ class Main extends React$1.Component {
|
|
|
5897
5898
|
__self: this,
|
|
5898
5899
|
__source: {
|
|
5899
5900
|
fileName: _jsxFileName,
|
|
5900
|
-
lineNumber:
|
|
5901
|
+
lineNumber: 143
|
|
5901
5902
|
}
|
|
5902
5903
|
}),
|
|
5903
5904
|
__self: this,
|
|
5904
5905
|
__source: {
|
|
5905
5906
|
fileName: _jsxFileName,
|
|
5906
|
-
lineNumber:
|
|
5907
|
+
lineNumber: 139
|
|
5907
5908
|
}
|
|
5908
5909
|
}, teacherInstructionsEnabled && React$1.createElement(InputContainer, {
|
|
5909
5910
|
label: teacherInstructions.label,
|
|
@@ -5911,7 +5912,7 @@ class Main extends React$1.Component {
|
|
|
5911
5912
|
__self: this,
|
|
5912
5913
|
__source: {
|
|
5913
5914
|
fileName: _jsxFileName,
|
|
5914
|
-
lineNumber:
|
|
5915
|
+
lineNumber: 156
|
|
5915
5916
|
}
|
|
5916
5917
|
}, React$1.createElement(EditableHtml, {
|
|
5917
5918
|
className: classes.prompt,
|
|
@@ -5919,6 +5920,7 @@ class Main extends React$1.Component {
|
|
|
5919
5920
|
onChange: this.changeTeacherInstructions,
|
|
5920
5921
|
imageSupport: imageSupport,
|
|
5921
5922
|
nonEmpty: false,
|
|
5923
|
+
error: teacherInstructionsError,
|
|
5922
5924
|
toolbarOpts: toolbarOpts,
|
|
5923
5925
|
spellCheck: spellCheckEnabled,
|
|
5924
5926
|
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
@@ -5934,15 +5936,22 @@ class Main extends React$1.Component {
|
|
|
5934
5936
|
__self: this,
|
|
5935
5937
|
__source: {
|
|
5936
5938
|
fileName: _jsxFileName,
|
|
5937
|
-
lineNumber:
|
|
5939
|
+
lineNumber: 157
|
|
5938
5940
|
}
|
|
5939
|
-
})
|
|
5941
|
+
}), teacherInstructionsError && React$1.createElement('div', {
|
|
5942
|
+
className: classes.errorText,
|
|
5943
|
+
__self: this,
|
|
5944
|
+
__source: {
|
|
5945
|
+
fileName: _jsxFileName,
|
|
5946
|
+
lineNumber: 173
|
|
5947
|
+
}
|
|
5948
|
+
}, teacherInstructionsError)), promptEnabled && React$1.createElement(InputContainer, {
|
|
5940
5949
|
label: prompt.label,
|
|
5941
5950
|
className: classes.promptContainer,
|
|
5942
5951
|
__self: this,
|
|
5943
5952
|
__source: {
|
|
5944
5953
|
fileName: _jsxFileName,
|
|
5945
|
-
lineNumber:
|
|
5954
|
+
lineNumber: 178
|
|
5946
5955
|
}
|
|
5947
5956
|
}, React$1.createElement(EditableHtml, {
|
|
5948
5957
|
activePlugins: ALL_PLUGINS,
|
|
@@ -5951,6 +5960,7 @@ class Main extends React$1.Component {
|
|
|
5951
5960
|
onChange: this.onPromptChange,
|
|
5952
5961
|
imageSupport: imageSupport,
|
|
5953
5962
|
nonEmpty: false,
|
|
5963
|
+
error: promptError,
|
|
5954
5964
|
toolbarOpts: toolbarOpts,
|
|
5955
5965
|
spellCheck: spellCheckEnabled,
|
|
5956
5966
|
maxImageWidth: defaultImageMaxWidth,
|
|
@@ -5966,13 +5976,20 @@ class Main extends React$1.Component {
|
|
|
5966
5976
|
__self: this,
|
|
5967
5977
|
__source: {
|
|
5968
5978
|
fileName: _jsxFileName,
|
|
5969
|
-
lineNumber:
|
|
5979
|
+
lineNumber: 179
|
|
5970
5980
|
}
|
|
5971
|
-
})
|
|
5981
|
+
}), promptError && React$1.createElement('div', {
|
|
5982
|
+
className: classes.errorText,
|
|
5972
5983
|
__self: this,
|
|
5973
5984
|
__source: {
|
|
5974
5985
|
fileName: _jsxFileName,
|
|
5975
|
-
lineNumber:
|
|
5986
|
+
lineNumber: 196
|
|
5987
|
+
}
|
|
5988
|
+
}, promptError)), feedbackEnabled && React$1.createElement(React$1.Fragment, {
|
|
5989
|
+
__self: this,
|
|
5990
|
+
__source: {
|
|
5991
|
+
fileName: _jsxFileName,
|
|
5992
|
+
lineNumber: 201
|
|
5976
5993
|
}
|
|
5977
5994
|
}, React$1.createElement(Typography, {
|
|
5978
5995
|
className: classes.header,
|
|
@@ -5980,7 +5997,7 @@ class Main extends React$1.Component {
|
|
|
5980
5997
|
__self: this,
|
|
5981
5998
|
__source: {
|
|
5982
5999
|
fileName: _jsxFileName,
|
|
5983
|
-
lineNumber:
|
|
6000
|
+
lineNumber: 202
|
|
5984
6001
|
}
|
|
5985
6002
|
}, "Feedback"), React$1.createElement(FeedbackSelector, {
|
|
5986
6003
|
label: "When submitted, show",
|
|
@@ -5990,7 +6007,7 @@ class Main extends React$1.Component {
|
|
|
5990
6007
|
__self: this,
|
|
5991
6008
|
__source: {
|
|
5992
6009
|
fileName: _jsxFileName,
|
|
5993
|
-
lineNumber:
|
|
6010
|
+
lineNumber: 206
|
|
5994
6011
|
}
|
|
5995
6012
|
})));
|
|
5996
6013
|
}
|
|
@@ -6004,6 +6021,11 @@ var Main$1 = styles.withStyles(theme => ({
|
|
|
6004
6021
|
paddingTop: theme.spacing.unit * 2,
|
|
6005
6022
|
marginBottom: theme.spacing.unit * 2,
|
|
6006
6023
|
width: '100%'
|
|
6024
|
+
},
|
|
6025
|
+
errorText: {
|
|
6026
|
+
fontSize: theme.typography.fontSize - 2,
|
|
6027
|
+
color: theme.palette.error.main,
|
|
6028
|
+
paddingTop: theme.spacing.unit
|
|
6007
6029
|
}
|
|
6008
6030
|
}))(Main);
|
|
6009
6031
|
var defaults = {
|
|
@@ -6099,7 +6121,8 @@ var defaults = {
|
|
|
6099
6121
|
image: {
|
|
6100
6122
|
disabled: false
|
|
6101
6123
|
}
|
|
6102
|
-
}
|
|
6124
|
+
},
|
|
6125
|
+
required: false
|
|
6103
6126
|
},
|
|
6104
6127
|
teacherInstructions: {
|
|
6105
6128
|
settings: true,
|
|
@@ -6114,7 +6137,8 @@ var defaults = {
|
|
|
6114
6137
|
image: {
|
|
6115
6138
|
disabled: false
|
|
6116
6139
|
}
|
|
6117
|
-
}
|
|
6140
|
+
},
|
|
6141
|
+
required: false
|
|
6118
6142
|
},
|
|
6119
6143
|
maxImageWidth: {
|
|
6120
6144
|
teacherInstructions: 300,
|
package/module/controller.js
CHANGED
|
@@ -245,4 +245,19 @@ async function outcome(/*question, session, env*/) {
|
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
|
|
248
|
+
// remove all html tags except img and iframe
|
|
249
|
+
const getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');
|
|
250
|
+
|
|
251
|
+
const validate = (model = {}, config = {}) => {
|
|
252
|
+
const errors = {};
|
|
253
|
+
|
|
254
|
+
['teacherInstructions', 'prompt'].forEach((field) => {
|
|
255
|
+
if (config[field]?.required && !getContent(model[field])) {
|
|
256
|
+
errors[field] = 'This field is required.';
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
return errors;
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
export { createDefaultModel, model, normalize, outcome, validate };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/extended-text-entry",
|
|
3
|
-
"version": "10.7.1-next.
|
|
3
|
+
"version": "10.7.1-next.43+9e3c59b3e",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": "pie-framework/pie-elements",
|
|
6
6
|
"publishConfig": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"react": "^16.8.1",
|
|
21
21
|
"react-dom": "^16.8.1"
|
|
22
22
|
},
|
|
23
|
-
"gitHead": "
|
|
23
|
+
"gitHead": "9e3c59b3e3daacce248e754dc10bfffc09f06a0d",
|
|
24
24
|
"scripts": {
|
|
25
25
|
"postpublish": "../../scripts/postpublish"
|
|
26
26
|
},
|