@pie-element/drag-in-the-blank 5.7.1-next.2 → 5.7.1-next.39
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 +6 -3
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/main.js +17 -5
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +1 -1
- package/controller/lib/index.js +18 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/docs/config-schema.json +89 -3
- package/docs/config-schema.json.md +64 -0
- package/docs/pie-schema.json +71 -0
- package/docs/pie-schema.json.md +52 -0
- package/package.json +3 -3
|
@@ -54,7 +54,8 @@ var _default = {
|
|
|
54
54
|
image: {
|
|
55
55
|
disabled: false
|
|
56
56
|
}
|
|
57
|
-
}
|
|
57
|
+
},
|
|
58
|
+
required: false
|
|
58
59
|
},
|
|
59
60
|
addChoice: {
|
|
60
61
|
inputConfiguration: {
|
|
@@ -94,7 +95,8 @@ var _default = {
|
|
|
94
95
|
image: {
|
|
95
96
|
disabled: false
|
|
96
97
|
}
|
|
97
|
-
}
|
|
98
|
+
},
|
|
99
|
+
required: false
|
|
98
100
|
},
|
|
99
101
|
settingsPanelDisabled: false,
|
|
100
102
|
teacherInstructions: {
|
|
@@ -110,7 +112,8 @@ var _default = {
|
|
|
110
112
|
image: {
|
|
111
113
|
disabled: false
|
|
112
114
|
}
|
|
113
|
-
}
|
|
115
|
+
},
|
|
116
|
+
required: false
|
|
114
117
|
},
|
|
115
118
|
minChoices: 2,
|
|
116
119
|
maxResponseAreas: 10,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","markup","choices","choicesPosition","correctResponse","duplicates","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","video","image","spellCheck","label","settings","enabled","inputConfiguration","addChoice","lockChoiceOrder","partialScoring","rationale","settingsPanelDisabled","teacherInstructions","minChoices","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,yCAHH;AAILC,IAAAA,MAAM,EAAE,EAJH;AAKLC,IAAAA,OAAO,EAAE,EALJ;AAMLC,IAAAA,eAAe,EAAE,OANZ;AAOLC,IAAAA,eAAe,EAAE,EAPZ;AAQLC,IAAAA,UAAU,EAAE,IARP;AASLC,IAAAA,gBAAgB,EAAE,IATb;AAULC,IAAAA,aAAa,EAAE,IAVV;AAWLC,IAAAA,0BAA0B,EAAE,IAXvB;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,qBAAqB,EAAE;AAblB,GADM;AAgBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,sBAAsB,EAAE;AACtBC,MAAAA,KAAK,EAAE;AAAEf,QAAAA,QAAQ,EAAE;AAAZ,OADe;AAEtBgB,MAAAA,KAAK,EAAE;AAAEhB,QAAAA,QAAQ,EAAE;AAAZ,OAFe;AAGtBiB,MAAAA,KAAK,EAAE;AAAEjB,QAAAA,QAAQ,EAAE;AAAZ;AAHe,KADX;AAMbkB,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAE;AAHC,KANC;AAWbhB,IAAAA,eAAe,EAAE;AACfe,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KAXJ;AAebjB,IAAAA,MAAM,EAAE;AACNkB,MAAAA,QAAQ,EAAE,IADJ;AAEND,MAAAA,KAAK,EAAE,QAFD;AAGNG,MAAAA,kBAAkB,EAAE;AAClBP,QAAAA,KAAK,EAAE;AAAEf,UAAAA,QAAQ,EAAE;AAAZ,SADW;AAElBgB,QAAAA,KAAK,EAAE;AAAEhB,UAAAA,QAAQ,EAAE;AAAZ,SAFW;AAGlBiB,QAAAA,KAAK,EAAE;AAAEjB,UAAAA,QAAQ,EAAE;AAAZ;AAHW;
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","markup","choices","choicesPosition","correctResponse","duplicates","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","video","image","spellCheck","label","settings","enabled","inputConfiguration","required","addChoice","lockChoiceOrder","partialScoring","rationale","settingsPanelDisabled","teacherInstructions","minChoices","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"mappings":"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","sourcesContent":["export default {\n model: {\n disabled: false,\n mode: 'gather',\n prompt: 'Use the inputs to complete the sentence',\n markup: '',\n choices: [],\n choicesPosition: 'below',\n correctResponse: {},\n duplicates: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n choicesPosition: {\n settings: true,\n label: 'Choices Position',\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 addChoice: {\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n duplicates: {\n settings: true,\n label: 'Duplicates',\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\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 minChoices: 2,\n maxResponseAreas: 10,\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"file":"defaults.js"}
|
package/configure/lib/main.js
CHANGED
|
@@ -223,9 +223,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
223
223
|
errors = _ref2.errors;
|
|
224
224
|
|
|
225
225
|
var _ref3 = errors || {},
|
|
226
|
-
responseAreasError = _ref3.responseAreasError,
|
|
227
226
|
choicesError = _ref3.choicesError,
|
|
228
|
-
correctResponseError = _ref3.correctResponseError
|
|
227
|
+
correctResponseError = _ref3.correctResponseError,
|
|
228
|
+
promptError = _ref3.prompt,
|
|
229
|
+
rationaleError = _ref3.rationale,
|
|
230
|
+
responseAreasError = _ref3.responseAreasError,
|
|
231
|
+
teacherInstructionsError = _ref3.teacherInstructions;
|
|
229
232
|
|
|
230
233
|
var validationMessage = (0, _utils.generateValidationMessage)(configuration);
|
|
231
234
|
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
@@ -279,6 +282,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
279
282
|
onChange: this.onTeacherInstructionsChanged,
|
|
280
283
|
imageSupport: imageSupport,
|
|
281
284
|
nonEmpty: false,
|
|
285
|
+
error: teacherInstructionsError,
|
|
282
286
|
toolbarOpts: toolbarOpts,
|
|
283
287
|
pluginProps: getPluginProps(teacherInstructions === null || teacherInstructions === void 0 ? void 0 : teacherInstructions.inputConfiguration),
|
|
284
288
|
spellCheck: spellCheckEnabled,
|
|
@@ -291,7 +295,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
291
295
|
language: 'special'
|
|
292
296
|
}],
|
|
293
297
|
mathMlOptions: mathMlOptions
|
|
294
|
-
})
|
|
298
|
+
}), teacherInstructionsError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
299
|
+
className: classes.errorText
|
|
300
|
+
}, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
295
301
|
label: prompt.label,
|
|
296
302
|
className: classes.promptHolder
|
|
297
303
|
}, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
|
|
@@ -301,6 +307,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
301
307
|
imageSupport: imageSupport,
|
|
302
308
|
nonEmpty: false,
|
|
303
309
|
disableUnderline: true,
|
|
310
|
+
error: promptError,
|
|
304
311
|
toolbarOpts: toolbarOpts,
|
|
305
312
|
pluginProps: getPluginProps(prompt === null || prompt === void 0 ? void 0 : prompt.inputConfiguration),
|
|
306
313
|
spellCheck: spellCheckEnabled,
|
|
@@ -313,7 +320,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
313
320
|
language: 'special'
|
|
314
321
|
}],
|
|
315
322
|
mathMlOptions: mathMlOptions
|
|
316
|
-
})
|
|
323
|
+
}), promptError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
324
|
+
className: classes.errorText
|
|
325
|
+
}, promptError)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
317
326
|
className: classes.flexContainer
|
|
318
327
|
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
319
328
|
className: classes.text
|
|
@@ -379,6 +388,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
379
388
|
markup: model.rationale || '',
|
|
380
389
|
onChange: this.onRationaleChanged,
|
|
381
390
|
imageSupport: imageSupport,
|
|
391
|
+
error: rationaleError,
|
|
382
392
|
toolbarOpts: toolbarOpts,
|
|
383
393
|
pluginProps: getPluginProps(rationale === null || rationale === void 0 ? void 0 : rationale.inputConfiguration),
|
|
384
394
|
spellCheck: spellCheckEnabled,
|
|
@@ -391,7 +401,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
391
401
|
language: 'special'
|
|
392
402
|
}],
|
|
393
403
|
mathMlOptions: mathMlOptions
|
|
394
|
-
})
|
|
404
|
+
}), rationaleError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
405
|
+
className: classes.errorText
|
|
406
|
+
}, rationaleError)));
|
|
395
407
|
}
|
|
396
408
|
}]);
|
|
397
409
|
return Main;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["dropdown","settings","toggle","Panel","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","markup","minHeight","paddingBottom","choiceConfiguration","text","fontSize","typography","tooltip","whiteSpace","maxWidth","errorText","color","palette","error","main","flexContainer","display","alignItems","Main","newVal","props","onModelChanged","model","prompt","rationale","teacherInstructions","slateMarkup","choices","correctResponse","domNode","ReactDOM","findDOMNode","classes","configuration","onConfigurationChanged","imageSupport","uploadSoundSupport","addChoice","baseInputConfiguration","contentDimensions","duplicates","partialScoring","lockChoiceOrder","choicesPosition","spellCheck","settingsPanelDisabled","maxChoices","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","language","languageChoices","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","spellCheckEnabled","toolbarEditorPosition","errors","responseAreasError","choicesError","correctResponseError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","rubricEnabled","getPluginProps","Object","assign","onModelChange","Settings","Properties","onTeacherInstructionsChanged","inputConfiguration","onPromptChanged","marginLeft","ALL_PLUGINS","type","onMarkupChanged","onResponsesChanged","onRationaleChanged","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { EditableHtml, ALL_PLUGINS } from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer, layout, settings } from '@pie-lib/pie-toolbox/config-ui';\nimport { withDragContext } from '@pie-lib/pie-toolbox/drag';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport Choices from './choices';\nimport { createSlateMarkup } from './markupUtils';\nimport { generateValidationMessage } from '../utils';\nconst { dropdown, toggle, Panel } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n markup: {\n minHeight: '235px',\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit * 2,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '235px',\n },\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n text: {\n fontSize: theme.typography.fontSize + 2,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'end',\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.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 componentDidUpdate() {\n // eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = (newVal) => {\n this.props.onModelChanged({\n ...this.props.model,\n ...newVal,\n });\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt,\n });\n };\n\n onRationaleChanged = (rationale) => {\n this.props.onModelChanged({\n ...this.props.model,\n rationale,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onMarkupChanged = (slateMarkup) => {\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n });\n };\n\n onResponsesChanged = (choices) => {\n const {\n model: { correctResponse, markup },\n } = this.props;\n const slateMarkup = createSlateMarkup(markup, choices, correctResponse);\n\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n choices,\n });\n };\n\n render() {\n const { classes, model, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } = this.props;\n const {\n addChoice = {},\n baseInputConfiguration = {},\n contentDimensions = {},\n duplicates = {},\n prompt = {},\n partialScoring = {},\n lockChoiceOrder = {},\n rationale = {},\n teacherInstructions = {},\n choicesPosition = {},\n spellCheck = {},\n settingsPanelDisabled,\n maxChoices,\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n rationaleEnabled,\n promptEnabled,\n teacherInstructionsEnabled,\n spellCheckEnabled,\n toolbarEditorPosition,\n errors,\n } = model || {};\n\n const { responseAreasError, choicesError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\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 partialScoring: partialScoring.settings && toggle(partialScoring.label),\n duplicates: duplicates.settings && toggle(duplicates.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n choicesPosition: choicesPosition.settings && dropdown(choicesPosition.label, ['above', 'below', 'left', 'right']),\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 spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.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) => this.onModelChange(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.text}>Define Template, Choices, and Correct Responses</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'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n </div>\n\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n responseAreaProps={{\n type: 'drag-in-the-blank',\n options: {\n duplicates: model.duplicates,\n },\n maxResponseAreas: maxResponseAreas,\n }}\n className={classes.markup}\n markup={model.slateMarkup}\n onChange={this.onMarkupChanged}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n nonEmpty={false}\n disableUnderline\n error={responseAreasError || correctResponseError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n\n <Choices\n model={model}\n duplicates={model.duplicates}\n error={choicesError}\n onChange={this.onResponsesChanged}\n toolbarOpts={toolbarOpts}\n maxChoices={maxChoices}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(addChoice?.inputConfiguration)}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default withDragContext(Styled);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["dropdown","settings","toggle","Panel","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","markup","minHeight","paddingBottom","choiceConfiguration","text","fontSize","typography","tooltip","whiteSpace","maxWidth","errorText","color","palette","error","main","flexContainer","display","alignItems","Main","newVal","props","onModelChanged","model","prompt","rationale","teacherInstructions","slateMarkup","choices","correctResponse","domNode","ReactDOM","findDOMNode","classes","configuration","onConfigurationChanged","imageSupport","uploadSoundSupport","addChoice","baseInputConfiguration","contentDimensions","duplicates","partialScoring","lockChoiceOrder","choicesPosition","spellCheck","settingsPanelDisabled","maxChoices","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","language","languageChoices","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","spellCheckEnabled","toolbarEditorPosition","errors","choicesError","correctResponseError","promptError","rationaleError","responseAreasError","teacherInstructionsError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","rubricEnabled","getPluginProps","Object","assign","onModelChange","Settings","Properties","onTeacherInstructionsChanged","inputConfiguration","onPromptChanged","marginLeft","ALL_PLUGINS","type","onMarkupChanged","onResponsesChanged","onRationaleChanged","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { EditableHtml, ALL_PLUGINS } from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer, layout, settings } from '@pie-lib/pie-toolbox/config-ui';\nimport { withDragContext } from '@pie-lib/pie-toolbox/drag';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport Choices from './choices';\nimport { createSlateMarkup } from './markupUtils';\nimport { generateValidationMessage } from '../utils';\nconst { dropdown, toggle, Panel } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n markup: {\n minHeight: '235px',\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit * 2,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '235px',\n },\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n text: {\n fontSize: theme.typography.fontSize + 2,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'end',\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.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 componentDidUpdate() {\n // eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = (newVal) => {\n this.props.onModelChanged({\n ...this.props.model,\n ...newVal,\n });\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt,\n });\n };\n\n onRationaleChanged = (rationale) => {\n this.props.onModelChanged({\n ...this.props.model,\n rationale,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onMarkupChanged = (slateMarkup) => {\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n });\n };\n\n onResponsesChanged = (choices) => {\n const {\n model: { correctResponse, markup },\n } = this.props;\n const slateMarkup = createSlateMarkup(markup, choices, correctResponse);\n\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n choices,\n });\n };\n\n render() {\n const { classes, model, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } = this.props;\n const {\n addChoice = {},\n baseInputConfiguration = {},\n contentDimensions = {},\n duplicates = {},\n prompt = {},\n partialScoring = {},\n lockChoiceOrder = {},\n rationale = {},\n teacherInstructions = {},\n choicesPosition = {},\n spellCheck = {},\n settingsPanelDisabled,\n maxChoices,\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n rationaleEnabled,\n promptEnabled,\n teacherInstructionsEnabled,\n spellCheckEnabled,\n toolbarEditorPosition,\n errors,\n } = model || {};\n\n const {\n choicesError,\n correctResponseError,\n prompt: promptError,\n rationale: rationaleError,\n responseAreasError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\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 partialScoring: partialScoring.settings && toggle(partialScoring.label),\n duplicates: duplicates.settings && toggle(duplicates.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n choicesPosition: choicesPosition.settings && dropdown(choicesPosition.label, ['above', 'below', 'left', 'right']),\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 spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.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) => this.onModelChange(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.text}>Define Template, Choices, and Correct Responses</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'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n </div>\n\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n responseAreaProps={{\n type: 'drag-in-the-blank',\n options: {\n duplicates: model.duplicates,\n },\n maxResponseAreas: maxResponseAreas,\n }}\n className={classes.markup}\n markup={model.slateMarkup}\n onChange={this.onMarkupChanged}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n nonEmpty={false}\n disableUnderline\n error={responseAreasError || correctResponseError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n\n <Choices\n model={model}\n duplicates={model.duplicates}\n error={choicesError}\n onChange={this.onResponsesChanged}\n toolbarOpts={toolbarOpts}\n maxChoices={maxChoices}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(addChoice?.inputConfiguration)}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default withDragContext(Styled);\n"],"file":"main.js"}
|
package/configure/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"@material-ui/core": "^3.9.2",
|
|
9
9
|
"@material-ui/icons": "^3.0.1",
|
|
10
10
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
11
|
-
"@pie-lib/pie-toolbox": "1.12.
|
|
11
|
+
"@pie-lib/pie-toolbox": "1.12.2",
|
|
12
12
|
"debug": "^3.1.0",
|
|
13
13
|
"lodash": "^4.17.15",
|
|
14
14
|
"prop-types": "^15.6.2",
|
package/controller/lib/index.js
CHANGED
|
@@ -231,10 +231,20 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
|
|
|
231
231
|
resolve(null);
|
|
232
232
|
}
|
|
233
233
|
});
|
|
234
|
-
};
|
|
234
|
+
}; // remove all html tags
|
|
235
|
+
|
|
235
236
|
|
|
236
237
|
exports.createCorrectResponseSession = createCorrectResponseSession;
|
|
237
238
|
|
|
239
|
+
var getInnerText = function getInnerText(html) {
|
|
240
|
+
return (html || '').replaceAll(/<[^>]*>/g, '');
|
|
241
|
+
}; // remove all html tags except img and iframe
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
var getContent = function getContent(html) {
|
|
245
|
+
return (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');
|
|
246
|
+
};
|
|
247
|
+
|
|
238
248
|
var validate = function validate() {
|
|
239
249
|
var _Object$values;
|
|
240
250
|
|
|
@@ -248,6 +258,13 @@ var validate = function validate() {
|
|
|
248
258
|
maxChoices = config.maxChoices,
|
|
249
259
|
maxResponseAreas = config.maxResponseAreas;
|
|
250
260
|
var errors = {};
|
|
261
|
+
['teacherInstructions', 'prompt', 'rationale'].forEach(function (field) {
|
|
262
|
+
var _config$field;
|
|
263
|
+
|
|
264
|
+
if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getContent(model[field])) {
|
|
265
|
+
errors[field] = 'This field is required.';
|
|
266
|
+
}
|
|
267
|
+
});
|
|
251
268
|
var nbOfResponseAreas = ((markup || '').match(/\{\{(\d+)\}\}/g) || []).length;
|
|
252
269
|
var nbOfChoices = (choices || []).length;
|
|
253
270
|
var emptyResponseAreas = (_Object$values = Object.values(correctResponse)) === null || _Object$values === void 0 ? void 0 : _Object$values.filter(function (response) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["normalize","question","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","model","session","env","updateSession","Promise","resolve","normalizedQuestion","feedback","mode","responses","allCorrectResponses","possibleResponses","numberOfPossibleResponses","correctResponses","undefined","value","i","result","obj","choices","key","answer","filter","choice","lockChoiceOrder","out","prompt","disabled","responseCorrect","getScore","role","rationale","teacherInstructions","config","maxScore","Object","keys","correctResponse","length","correctCount","total","str","toFixed","parseFloat","outcome","partialScoringEnabled","partialScoring","enabled","score","empty","createCorrectResponseSession","id","validate","markup","minChoices","maxChoices","maxResponseAreas","errors","nbOfResponseAreas","match","nbOfChoices","emptyResponseAreas","values","response","correctResponseError","responseAreasError","choicesError"],"mappings":"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","sourcesContent":["import reduce from 'lodash/reduce';\nimport isEmpty from 'lodash/isEmpty';\nimport { getAllCorrectResponses, choiceIsEmpty } from './utils';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\n\nexport const normalize = (question) => ({\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport function model(question, session, env, updateSession) {\n return new Promise(async (resolve) => {\n const normalizedQuestion = normalize(question);\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n const responses = getAllCorrectResponses(normalizedQuestion) || {};\n const allCorrectResponses = responses.possibleResponses;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctResponses = undefined;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(\n allCorrectResponses,\n (obj, choices, key) => {\n const answer = (value && value[key]) || '';\n\n obj.feedback[key] = choices[i] === answer;\n\n if (obj.feedback[key]) {\n obj.correctResponses += 1;\n }\n\n return obj;\n },\n { correctResponses: 0, feedback: {} },\n );\n\n if (correctResponses === undefined || result.correctResponses > correctResponses) {\n correctResponses = result.correctResponses;\n feedback = result.feedback;\n }\n\n if (result.correctResponses === numberOfPossibleResponses) {\n break;\n }\n }\n }\n\n let choices = normalizedQuestion.choices && normalizedQuestion.choices.filter((choice) => !choiceIsEmpty(choice));\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'id');\n }\n\n const out = {\n ...normalizedQuestion,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n choices,\n feedback,\n mode: env.mode,\n disabled: env.mode !== 'gather',\n responseCorrect: env.mode === 'evaluate' ? getScore(normalizedQuestion, session) === 1 : undefined,\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const getScore = (config, session) => {\n const responses = getAllCorrectResponses(config);\n const allCorrectResponses = responses.possibleResponses;\n const maxScore = Object.keys(config.correctResponse).length;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctCount = 0;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(\n allCorrectResponses,\n (total, choices, key) => {\n const answer = (value && value[key]) || '';\n\n if (choices[i] === answer) {\n return total;\n }\n\n return total - 1;\n },\n maxScore,\n );\n\n if (result > correctCount) {\n correctCount = result;\n }\n\n if (result === maxScore) {\n break;\n }\n }\n\n const str = maxScore ? (correctCount / maxScore).toFixed(2) : 0;\n\n return parseFloat(str);\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise((resolve) => {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({\n score: partialScoringEnabled ? score : score === 1 ? 1 : 0,\n empty: !session || isEmpty(session),\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({\n value: question.correctResponse,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { choices, correctResponse, markup } = model;\n const { minChoices = 2, maxChoices, maxResponseAreas } = config;\n const errors = {};\n\n const nbOfResponseAreas = ((markup || '').match(/\\{\\{(\\d+)\\}\\}/g) || []).length;\n const nbOfChoices = (choices || []).length;\n const emptyResponseAreas = Object.values(correctResponse)?.filter((response) => !response);\n\n if (emptyResponseAreas.length) {\n errors.correctResponseError = 'There should be a choice defined for each response area.';\n }\n\n if (nbOfResponseAreas > maxResponseAreas) {\n errors.responseAreasError = `No more than ${maxResponseAreas} response areas should be defined.`;\n } else if (nbOfResponseAreas < 1) {\n errors.responseAreasError = 'There should be at least 1 response area defined.';\n }\n\n if (nbOfChoices < minChoices) {\n errors.choicesError = `There should be at least ${minChoices} tokens defined.`;\n } else if (nbOfChoices > maxChoices) {\n errors.choicesError = `No more than ${maxChoices} tokens should be defined.`;\n }\n\n return errors;\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["normalize","question","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","model","session","env","updateSession","Promise","resolve","normalizedQuestion","feedback","mode","responses","allCorrectResponses","possibleResponses","numberOfPossibleResponses","correctResponses","undefined","value","i","result","obj","choices","key","answer","filter","choice","lockChoiceOrder","out","prompt","disabled","responseCorrect","getScore","role","rationale","teacherInstructions","config","maxScore","Object","keys","correctResponse","length","correctCount","total","str","toFixed","parseFloat","outcome","partialScoringEnabled","partialScoring","enabled","score","empty","createCorrectResponseSession","id","getInnerText","html","replaceAll","getContent","replace","validate","markup","minChoices","maxChoices","maxResponseAreas","errors","forEach","field","required","nbOfResponseAreas","match","nbOfChoices","emptyResponseAreas","values","response","correctResponseError","responseAreasError","choicesError"],"mappings":"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","sourcesContent":["import reduce from 'lodash/reduce';\nimport isEmpty from 'lodash/isEmpty';\nimport { getAllCorrectResponses, choiceIsEmpty } from './utils';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\n\nexport const normalize = (question) => ({\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport function model(question, session, env, updateSession) {\n return new Promise(async (resolve) => {\n const normalizedQuestion = normalize(question);\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n const responses = getAllCorrectResponses(normalizedQuestion) || {};\n const allCorrectResponses = responses.possibleResponses;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctResponses = undefined;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(\n allCorrectResponses,\n (obj, choices, key) => {\n const answer = (value && value[key]) || '';\n\n obj.feedback[key] = choices[i] === answer;\n\n if (obj.feedback[key]) {\n obj.correctResponses += 1;\n }\n\n return obj;\n },\n { correctResponses: 0, feedback: {} },\n );\n\n if (correctResponses === undefined || result.correctResponses > correctResponses) {\n correctResponses = result.correctResponses;\n feedback = result.feedback;\n }\n\n if (result.correctResponses === numberOfPossibleResponses) {\n break;\n }\n }\n }\n\n let choices = normalizedQuestion.choices && normalizedQuestion.choices.filter((choice) => !choiceIsEmpty(choice));\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'id');\n }\n\n const out = {\n ...normalizedQuestion,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n choices,\n feedback,\n mode: env.mode,\n disabled: env.mode !== 'gather',\n responseCorrect: env.mode === 'evaluate' ? getScore(normalizedQuestion, session) === 1 : undefined,\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const getScore = (config, session) => {\n const responses = getAllCorrectResponses(config);\n const allCorrectResponses = responses.possibleResponses;\n const maxScore = Object.keys(config.correctResponse).length;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctCount = 0;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(\n allCorrectResponses,\n (total, choices, key) => {\n const answer = (value && value[key]) || '';\n\n if (choices[i] === answer) {\n return total;\n }\n\n return total - 1;\n },\n maxScore,\n );\n\n if (result > correctCount) {\n correctCount = result;\n }\n\n if (result === maxScore) {\n break;\n }\n }\n\n const str = maxScore ? (correctCount / maxScore).toFixed(2) : 0;\n\n return parseFloat(str);\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise((resolve) => {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({\n score: partialScoringEnabled ? score : score === 1 ? 1 : 0,\n empty: !session || isEmpty(session),\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({\n value: question.correctResponse,\n id: '1',\n });\n } else {\n resolve(null);\n }\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 { choices, correctResponse, markup } = model;\n const { minChoices = 2, maxChoices, maxResponseAreas } = config;\n const errors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n const nbOfResponseAreas = ((markup || '').match(/\\{\\{(\\d+)\\}\\}/g) || []).length;\n const nbOfChoices = (choices || []).length;\n const emptyResponseAreas = Object.values(correctResponse)?.filter((response) => !response);\n\n if (emptyResponseAreas.length) {\n errors.correctResponseError = 'There should be a choice defined for each response area.';\n }\n\n if (nbOfResponseAreas > maxResponseAreas) {\n errors.responseAreasError = `No more than ${maxResponseAreas} response areas should be defined.`;\n } else if (nbOfResponseAreas < 1) {\n errors.responseAreasError = 'There should be at least 1 response area defined.';\n }\n\n if (nbOfChoices < minChoices) {\n errors.choicesError = `There should be at least ${minChoices} tokens defined.`;\n } else if (nbOfChoices > maxChoices) {\n errors.choicesError = `No more than ${maxChoices} tokens should be defined.`;\n }\n\n return errors;\n};\n"],"file":"index.js"}
|
package/controller/package.json
CHANGED
package/docs/config-schema.json
CHANGED
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
}
|
|
87
87
|
},
|
|
88
88
|
"prompt": {
|
|
89
|
-
"title": "
|
|
89
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
90
90
|
"type": "object",
|
|
91
91
|
"properties": {
|
|
92
92
|
"inputConfiguration": {
|
|
@@ -139,6 +139,11 @@
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
},
|
|
142
|
+
"required": {
|
|
143
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
144
|
+
"type": "boolean",
|
|
145
|
+
"title": "required"
|
|
146
|
+
},
|
|
142
147
|
"settings": {
|
|
143
148
|
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
144
149
|
"type": "boolean",
|
|
@@ -173,7 +178,7 @@
|
|
|
173
178
|
}
|
|
174
179
|
},
|
|
175
180
|
"rationale": {
|
|
176
|
-
"title": "
|
|
181
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
177
182
|
"type": "object",
|
|
178
183
|
"properties": {
|
|
179
184
|
"inputConfiguration": {
|
|
@@ -226,6 +231,11 @@
|
|
|
226
231
|
}
|
|
227
232
|
}
|
|
228
233
|
},
|
|
234
|
+
"required": {
|
|
235
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
236
|
+
"type": "boolean",
|
|
237
|
+
"title": "required"
|
|
238
|
+
},
|
|
229
239
|
"settings": {
|
|
230
240
|
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
231
241
|
"type": "boolean",
|
|
@@ -255,7 +265,7 @@
|
|
|
255
265
|
}
|
|
256
266
|
},
|
|
257
267
|
"teacherInstructions": {
|
|
258
|
-
"title": "
|
|
268
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
259
269
|
"type": "object",
|
|
260
270
|
"properties": {
|
|
261
271
|
"inputConfiguration": {
|
|
@@ -308,6 +318,11 @@
|
|
|
308
318
|
}
|
|
309
319
|
}
|
|
310
320
|
},
|
|
321
|
+
"required": {
|
|
322
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
323
|
+
"type": "boolean",
|
|
324
|
+
"title": "required"
|
|
325
|
+
},
|
|
311
326
|
"settings": {
|
|
312
327
|
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
313
328
|
"type": "boolean",
|
|
@@ -692,6 +707,77 @@
|
|
|
692
707
|
}
|
|
693
708
|
}
|
|
694
709
|
},
|
|
710
|
+
"EditableHtmlPluginConfigureRequired": {
|
|
711
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
712
|
+
"type": "object",
|
|
713
|
+
"properties": {
|
|
714
|
+
"inputConfiguration": {
|
|
715
|
+
"title": "EditableHtmlConfigureProp",
|
|
716
|
+
"type": "object",
|
|
717
|
+
"properties": {
|
|
718
|
+
"math": {
|
|
719
|
+
"title": "EditableHtmlButtonConfigure",
|
|
720
|
+
"type": "object",
|
|
721
|
+
"properties": {
|
|
722
|
+
"disabled": {
|
|
723
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
724
|
+
"type": "boolean",
|
|
725
|
+
"title": "disabled"
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
"audio": {
|
|
730
|
+
"title": "EditableHtmlButtonConfigure",
|
|
731
|
+
"type": "object",
|
|
732
|
+
"properties": {
|
|
733
|
+
"disabled": {
|
|
734
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
735
|
+
"type": "boolean",
|
|
736
|
+
"title": "disabled"
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
},
|
|
740
|
+
"video": {
|
|
741
|
+
"title": "EditableHtmlButtonConfigure",
|
|
742
|
+
"type": "object",
|
|
743
|
+
"properties": {
|
|
744
|
+
"disabled": {
|
|
745
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
746
|
+
"type": "boolean",
|
|
747
|
+
"title": "disabled"
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
},
|
|
751
|
+
"image": {
|
|
752
|
+
"title": "EditableHtmlButtonConfigure",
|
|
753
|
+
"type": "object",
|
|
754
|
+
"properties": {
|
|
755
|
+
"disabled": {
|
|
756
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
757
|
+
"type": "boolean",
|
|
758
|
+
"title": "disabled"
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
},
|
|
764
|
+
"required": {
|
|
765
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
766
|
+
"type": "boolean",
|
|
767
|
+
"title": "required"
|
|
768
|
+
},
|
|
769
|
+
"settings": {
|
|
770
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
771
|
+
"type": "boolean",
|
|
772
|
+
"title": "settings"
|
|
773
|
+
},
|
|
774
|
+
"label": {
|
|
775
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel",
|
|
776
|
+
"type": "string",
|
|
777
|
+
"title": "label"
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
},
|
|
695
781
|
"EditableHtmlPluginConfigure": {
|
|
696
782
|
"title": "EditableHtmlPluginConfigure",
|
|
697
783
|
"type": "object",
|
|
@@ -102,6 +102,10 @@ Properties of the `image` object:
|
|
|
102
102
|
|
|
103
103
|
Indicates if the plugin is disabled or not
|
|
104
104
|
|
|
105
|
+
## `required` (boolean)
|
|
106
|
+
|
|
107
|
+
Indicates if the item is required and the value cannot be empty
|
|
108
|
+
|
|
105
109
|
## `settings` (boolean)
|
|
106
110
|
|
|
107
111
|
Indicates if the item has to be displayed in the Settings Panel
|
|
@@ -166,6 +170,10 @@ Properties of the `image` object:
|
|
|
166
170
|
|
|
167
171
|
Indicates if the plugin is disabled or not
|
|
168
172
|
|
|
173
|
+
## `required` (boolean)
|
|
174
|
+
|
|
175
|
+
Indicates if the item is required and the value cannot be empty
|
|
176
|
+
|
|
169
177
|
## `settings` (boolean)
|
|
170
178
|
|
|
171
179
|
Indicates if the item has to be displayed in the Settings Panel
|
|
@@ -226,6 +234,10 @@ Properties of the `image` object:
|
|
|
226
234
|
|
|
227
235
|
Indicates if the plugin is disabled or not
|
|
228
236
|
|
|
237
|
+
## `required` (boolean)
|
|
238
|
+
|
|
239
|
+
Indicates if the item is required and the value cannot be empty
|
|
240
|
+
|
|
229
241
|
## `settings` (boolean)
|
|
230
242
|
|
|
231
243
|
Indicates if the item has to be displayed in the Settings Panel
|
|
@@ -516,6 +528,58 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
516
528
|
|
|
517
529
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
518
530
|
|
|
531
|
+
## `EditableHtmlPluginConfigureRequired` (object)
|
|
532
|
+
|
|
533
|
+
Properties of the `EditableHtmlPluginConfigureRequired` object:
|
|
534
|
+
|
|
535
|
+
### `inputConfiguration` (object)
|
|
536
|
+
|
|
537
|
+
Properties of the `inputConfiguration` object:
|
|
538
|
+
|
|
539
|
+
#### `math` (object)
|
|
540
|
+
|
|
541
|
+
Properties of the `math` object:
|
|
542
|
+
|
|
543
|
+
##### `disabled` (boolean)
|
|
544
|
+
|
|
545
|
+
Indicates if the plugin is disabled or not
|
|
546
|
+
|
|
547
|
+
#### `audio` (object)
|
|
548
|
+
|
|
549
|
+
Properties of the `audio` object:
|
|
550
|
+
|
|
551
|
+
##### `disabled` (boolean)
|
|
552
|
+
|
|
553
|
+
Indicates if the plugin is disabled or not
|
|
554
|
+
|
|
555
|
+
#### `video` (object)
|
|
556
|
+
|
|
557
|
+
Properties of the `video` object:
|
|
558
|
+
|
|
559
|
+
##### `disabled` (boolean)
|
|
560
|
+
|
|
561
|
+
Indicates if the plugin is disabled or not
|
|
562
|
+
|
|
563
|
+
#### `image` (object)
|
|
564
|
+
|
|
565
|
+
Properties of the `image` object:
|
|
566
|
+
|
|
567
|
+
##### `disabled` (boolean)
|
|
568
|
+
|
|
569
|
+
Indicates if the plugin is disabled or not
|
|
570
|
+
|
|
571
|
+
### `required` (boolean)
|
|
572
|
+
|
|
573
|
+
Indicates if the item is required and the value cannot be empty
|
|
574
|
+
|
|
575
|
+
### `settings` (boolean)
|
|
576
|
+
|
|
577
|
+
Indicates if the item has to be displayed in the Settings Panel
|
|
578
|
+
|
|
579
|
+
### `label` (string)
|
|
580
|
+
|
|
581
|
+
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
582
|
+
|
|
519
583
|
## `EditableHtmlPluginConfigure` (object)
|
|
520
584
|
|
|
521
585
|
Properties of the `EditableHtmlPluginConfigure` object:
|
package/docs/pie-schema.json
CHANGED
|
@@ -254,6 +254,77 @@
|
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
256
|
},
|
|
257
|
+
"EditableHtmlPluginConfigureRequired": {
|
|
258
|
+
"title": "EditableHtmlPluginConfigureRequired",
|
|
259
|
+
"type": "object",
|
|
260
|
+
"properties": {
|
|
261
|
+
"inputConfiguration": {
|
|
262
|
+
"title": "EditableHtmlConfigureProp",
|
|
263
|
+
"type": "object",
|
|
264
|
+
"properties": {
|
|
265
|
+
"math": {
|
|
266
|
+
"title": "EditableHtmlButtonConfigure",
|
|
267
|
+
"type": "object",
|
|
268
|
+
"properties": {
|
|
269
|
+
"disabled": {
|
|
270
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
271
|
+
"type": "boolean",
|
|
272
|
+
"title": "disabled"
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"audio": {
|
|
277
|
+
"title": "EditableHtmlButtonConfigure",
|
|
278
|
+
"type": "object",
|
|
279
|
+
"properties": {
|
|
280
|
+
"disabled": {
|
|
281
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
282
|
+
"type": "boolean",
|
|
283
|
+
"title": "disabled"
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
"video": {
|
|
288
|
+
"title": "EditableHtmlButtonConfigure",
|
|
289
|
+
"type": "object",
|
|
290
|
+
"properties": {
|
|
291
|
+
"disabled": {
|
|
292
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
293
|
+
"type": "boolean",
|
|
294
|
+
"title": "disabled"
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"image": {
|
|
299
|
+
"title": "EditableHtmlButtonConfigure",
|
|
300
|
+
"type": "object",
|
|
301
|
+
"properties": {
|
|
302
|
+
"disabled": {
|
|
303
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
304
|
+
"type": "boolean",
|
|
305
|
+
"title": "disabled"
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"required": {
|
|
312
|
+
"description": "Indicates if the item is required and the value cannot be empty",
|
|
313
|
+
"type": "boolean",
|
|
314
|
+
"title": "required"
|
|
315
|
+
},
|
|
316
|
+
"settings": {
|
|
317
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
318
|
+
"type": "boolean",
|
|
319
|
+
"title": "settings"
|
|
320
|
+
},
|
|
321
|
+
"label": {
|
|
322
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel",
|
|
323
|
+
"type": "string",
|
|
324
|
+
"title": "label"
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
},
|
|
257
328
|
"EditableHtmlPluginConfigure": {
|
|
258
329
|
"title": "EditableHtmlPluginConfigure",
|
|
259
330
|
"type": "object",
|
package/docs/pie-schema.json.md
CHANGED
|
@@ -183,6 +183,58 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
183
183
|
|
|
184
184
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
185
185
|
|
|
186
|
+
## `EditableHtmlPluginConfigureRequired` (object)
|
|
187
|
+
|
|
188
|
+
Properties of the `EditableHtmlPluginConfigureRequired` object:
|
|
189
|
+
|
|
190
|
+
### `inputConfiguration` (object)
|
|
191
|
+
|
|
192
|
+
Properties of the `inputConfiguration` object:
|
|
193
|
+
|
|
194
|
+
#### `math` (object)
|
|
195
|
+
|
|
196
|
+
Properties of the `math` object:
|
|
197
|
+
|
|
198
|
+
##### `disabled` (boolean)
|
|
199
|
+
|
|
200
|
+
Indicates if the plugin is disabled or not
|
|
201
|
+
|
|
202
|
+
#### `audio` (object)
|
|
203
|
+
|
|
204
|
+
Properties of the `audio` object:
|
|
205
|
+
|
|
206
|
+
##### `disabled` (boolean)
|
|
207
|
+
|
|
208
|
+
Indicates if the plugin is disabled or not
|
|
209
|
+
|
|
210
|
+
#### `video` (object)
|
|
211
|
+
|
|
212
|
+
Properties of the `video` object:
|
|
213
|
+
|
|
214
|
+
##### `disabled` (boolean)
|
|
215
|
+
|
|
216
|
+
Indicates if the plugin is disabled or not
|
|
217
|
+
|
|
218
|
+
#### `image` (object)
|
|
219
|
+
|
|
220
|
+
Properties of the `image` object:
|
|
221
|
+
|
|
222
|
+
##### `disabled` (boolean)
|
|
223
|
+
|
|
224
|
+
Indicates if the plugin is disabled or not
|
|
225
|
+
|
|
226
|
+
### `required` (boolean)
|
|
227
|
+
|
|
228
|
+
Indicates if the item is required and the value cannot be empty
|
|
229
|
+
|
|
230
|
+
### `settings` (boolean)
|
|
231
|
+
|
|
232
|
+
Indicates if the item has to be displayed in the Settings Panel
|
|
233
|
+
|
|
234
|
+
### `label` (string)
|
|
235
|
+
|
|
236
|
+
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
237
|
+
|
|
186
238
|
## `EditableHtmlPluginConfigure` (object)
|
|
187
239
|
|
|
188
240
|
Properties of the `EditableHtmlPluginConfigure` object:
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "5.7.1-next.
|
|
7
|
+
"version": "5.7.1-next.39+072ef11f3",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"postpublish": "../../scripts/postpublish"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@material-ui/core": "^3.9.2",
|
|
14
14
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
15
|
-
"@pie-lib/pie-toolbox": "1.12.
|
|
15
|
+
"@pie-lib/pie-toolbox": "1.12.2",
|
|
16
16
|
"classnames": "^2.2.5",
|
|
17
17
|
"lodash": "^4.17.10",
|
|
18
18
|
"prop-types": "^15.6.1",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "ISC",
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "072ef11f320de229433e4373b83fe2828ea7cf06",
|
|
25
25
|
"main": "lib/index.js",
|
|
26
26
|
"module": "src/index.js"
|
|
27
27
|
}
|