@pie-element/charting 6.0.1-next.9 → 6.1.1-next.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/configure/CHANGELOG.md +21 -0
- package/configure/lib/charting-config.js +5 -2
- package/configure/lib/charting-config.js.map +1 -1
- package/configure/lib/configure.js +22 -8
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/correct-response.js +5 -2
- package/configure/lib/correct-response.js.map +1 -1
- package/configure/lib/defaults.js +13 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +11 -0
- package/controller/lib/index.js +4 -2
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +3 -3
- package/docs/config-schema.json +112 -0
- package/docs/config-schema.json.md +77 -1
- package/docs/pie-schema.json +41 -0
- package/docs/pie-schema.json.md +29 -0
- package/lib/main.js +6 -3
- package/lib/main.js.map +1 -1
- package/package.json +7 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@6.0.0...@pie-element/charting@6.1.0) (2023-06-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* tests ([e1772ef](https://github.com/pie-framework/pie-elements/commit/e1772effca2d0cfc870c6cf15185f4bf11e746e7))
|
|
12
|
+
* update docs ([bc716ee](https://github.com/pie-framework/pie-elements/commit/bc716ee68f0673b391375df9d68904af4110c37a))
|
|
13
|
+
* update libs PD-2722, PD-2827, PD-2832 ([834ecf9](https://github.com/pie-framework/pie-elements/commit/834ecf92cc7204c851c68f0945ad5d52e453c9d0))
|
|
14
|
+
* update pie-libs ([649fb8f](https://github.com/pie-framework/pie-elements/commit/649fb8f535172d76b3ffc676ec53b2726432808c))
|
|
15
|
+
* update pie-libs PD-2150, PD-2795 ([ff6f64a](https://github.com/pie-framework/pie-elements/commit/ff6f64afa6ccaa8a060c986b1637c680e68c62b6))
|
|
16
|
+
* updated snapshots ([5cc0c23](https://github.com/pie-framework/pie-elements/commit/5cc0c23e41565160b7ffed3053d1d08aca637a88))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* **charting:** add translator PD-2795 ([fa738e0](https://github.com/pie-framework/pie-elements/commit/fa738e03256d22ccdce0649cf5f9ac08ea73b4dd))
|
|
22
|
+
* add mathMlOptions PD-2150 ([0c6984c](https://github.com/pie-framework/pie-elements/commit/0c6984cf042141eac36badfbab1c46d8d42f71ee))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
# [6.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@5.11.3...@pie-element/charting@6.0.0) (2023-05-23)
|
|
7
29
|
|
|
8
30
|
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@6.0.0...@pie-element/charting-configure@6.1.0) (2023-06-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* tests ([e1772ef](https://github.com/pie-framework/pie-elements/commit/e1772effca2d0cfc870c6cf15185f4bf11e746e7))
|
|
12
|
+
* update libs PD-2722, PD-2827, PD-2832 ([834ecf9](https://github.com/pie-framework/pie-elements/commit/834ecf92cc7204c851c68f0945ad5d52e453c9d0))
|
|
13
|
+
* update pie-libs ([649fb8f](https://github.com/pie-framework/pie-elements/commit/649fb8f535172d76b3ffc676ec53b2726432808c))
|
|
14
|
+
* update pie-libs PD-2150, PD-2795 ([ff6f64a](https://github.com/pie-framework/pie-elements/commit/ff6f64afa6ccaa8a060c986b1637c680e68c62b6))
|
|
15
|
+
* updated snapshots ([5cc0c23](https://github.com/pie-framework/pie-elements/commit/5cc0c23e41565160b7ffed3053d1d08aca637a88))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **charting:** add translator PD-2795 ([fa738e0](https://github.com/pie-framework/pie-elements/commit/fa738e03256d22ccdce0649cf5f9ac08ea73b4dd))
|
|
21
|
+
* add mathMlOptions PD-2150 ([0c6984c](https://github.com/pie-framework/pie-elements/commit/0c6984cf042141eac36badfbab1c46d8d42f71ee))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
6
27
|
# [6.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@5.8.3...@pie-element/charting-configure@6.0.0) (2023-05-23)
|
|
7
28
|
|
|
8
29
|
|
|
@@ -171,7 +171,9 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
|
|
|
171
171
|
titlePlaceholder = _this$props.titlePlaceholder,
|
|
172
172
|
showPixelGuides = _this$props.showPixelGuides,
|
|
173
173
|
authorNewCategoryDefaults = _this$props.authorNewCategoryDefaults,
|
|
174
|
-
chartingOptions = _this$props.chartingOptions
|
|
174
|
+
chartingOptions = _this$props.chartingOptions,
|
|
175
|
+
_this$props$mathMlOpt = _this$props.mathMlOptions,
|
|
176
|
+
mathMlOptions = _this$props$mathMlOpt === void 0 ? {} : _this$props$mathMlOpt;
|
|
175
177
|
var dialog = this.state.dialog;
|
|
176
178
|
|
|
177
179
|
var _ref = model || {},
|
|
@@ -215,7 +217,8 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
|
|
|
215
217
|
categoryDefaultLabel: authorNewCategoryDefaults === null || authorNewCategoryDefaults === void 0 ? void 0 : authorNewCategoryDefaults.label,
|
|
216
218
|
categoryDefaults: authorNewCategoryDefaults,
|
|
217
219
|
labelsPlaceholders: labelsPlaceholders,
|
|
218
|
-
titlePlaceholder: titlePlaceholder === null || titlePlaceholder === void 0 ? void 0 : titlePlaceholder.label
|
|
220
|
+
titlePlaceholder: titlePlaceholder === null || titlePlaceholder === void 0 ? void 0 : titlePlaceholder.label,
|
|
221
|
+
mathMlOptions: mathMlOptions
|
|
219
222
|
}), model.changeAddCategoryEnabled && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_Checkbox["default"], {
|
|
220
223
|
checked: model.addCategoryEnabled,
|
|
221
224
|
onChange: function onChange(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charting-config.jsx"],"names":["styles","theme","container","marginBottom","spacing","unit","display","flex","title","column","restoreCorrectAnswer","correctAnswer","data","correctResponseDefinition","forEach","category","currentIndex","editable","interactive","label","value","ChartingConfig","props","open","callback","setState","dialog","onChange","model","text","onConfirm","handleAlertDialog","addCategoryEnabled","onClose","type","state","classes","charts","labelsPlaceholders","titlePlaceholder","showPixelGuides","authorNewCategoryDefaults","chartingOptions","domain","range","chartType","graph","map","index","changeData","changeTitle","changeLabel","changeInteractiveEnabled","changeEditableEnabled","changeAddCategoryEnabled","e","changeAddRemoveEnabled","target","checked","addCategory","authoringLabel","React","Component","PropTypes","object","isRequired","func","array","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Chart } from '@pie-lib/charting';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = (theme) => ({\n container: {\n marginBottom: theme.spacing.unit * 2.5,\n display: 'flex',\n flex: 1,\n },\n title: {\n marginBottom: theme.spacing.unit,\n },\n column: {\n flex: 1,\n },\n});\n\nconst restoreCorrectAnswer = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n let correctResponseDefinition = [];\n\n (data || []).forEach((category, currentIndex) => {\n const { editable, interactive } = category;\n\n const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;\n\n const value =\n interactive && correctAnswer[currentIndex]?.value ? correctAnswer[currentIndex].value : category.value;\n\n correctResponseDefinition[currentIndex] = {\n label: label,\n value: value,\n editable: category.editable,\n interactive: category.interactive,\n };\n });\n\n return correctResponseDefinition;\n};\n\nexport class ChartingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array,\n labelsPlaceholders: PropTypes.object,\n titlePlaceholder: PropTypes.object,\n showPixelGuides: PropTypes.bool,\n authorNewCategoryDefaults: PropTypes.object,\n chartingOptions: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false,\n },\n };\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n changeData = (data) => this.props.onChange({ ...this.props.model, data });\n\n changeAddRemoveEnabled = (value) => {\n const { model } = this.props;\n const correctAnswer = restoreCorrectAnswer(model.correctAnswer.data, model.data);\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'This change will remove any correct answer categories that are not part of the initial item configuration.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n this.props.onChange({\n ...this.props.model,\n addCategoryEnabled: value,\n correctAnswer: { data: correctAnswer },\n }),\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n this.props.onChange({ ...this.props.model, addCategoryEnabled: value });\n }\n };\n\n changeTitle = (title) => this.props.onChange({ ...this.props.model, title });\n\n changeLabel = (type, label) =>\n this.props.onChange({\n ...this.props.model,\n [type]: {\n ...this.props.model[type],\n label,\n },\n });\n\n render() {\n const { classes, model, charts, labelsPlaceholders, titlePlaceholder, showPixelGuides, authorNewCategoryDefaults, chartingOptions } = this.props;\n const { dialog } = this.state;\n const { domain = {}, range = {} } = model || {};\n\n return (\n <div>\n <div className={classes.title}>Define Initial Chart Attributes</div>\n <div className={classes.container}>\n <div className={classes.column} key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to set up the chart as it will initially appear to students.</span>\n </Typography>\n\n <Chart\n defineChart={true}\n chartingOptions={chartingOptions}\n showPixelGuides={showPixelGuides}\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n // index is a property used for setting the correct answer data; it's needed in order to remove categories from other data sets from the same index it was removed from the initial data\n data={model.data.map((category, index) => ({\n ...category,\n index: index,\n }))}\n title={model.title}\n onDataChange={this.changeData}\n onChangeTitle={this.changeTitle}\n onChangeLabels={this.changeLabel}\n addCategoryEnabled={true}\n changeInteractiveEnabled={model.changeInteractiveEnabled}\n changeEditableEnabled={model.changeEditableEnabled}\n categoryDefaultLabel={authorNewCategoryDefaults?.label}\n categoryDefaults={authorNewCategoryDefaults}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder?.label}\n />\n {model.changeAddCategoryEnabled && (\n <div>\n <Checkbox\n checked={model.addCategoryEnabled}\n onChange={(e) => {\n this.changeAddRemoveEnabled(e.target.checked);\n }}\n />\n {chartingOptions?.addCategory?.authoringLabel}\n </div>\n )}\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(ChartingConfig);\n"],"file":"charting-config.js"}
|
|
1
|
+
{"version":3,"sources":["../src/charting-config.jsx"],"names":["styles","theme","container","marginBottom","spacing","unit","display","flex","title","column","restoreCorrectAnswer","correctAnswer","data","correctResponseDefinition","forEach","category","currentIndex","editable","interactive","label","value","ChartingConfig","props","open","callback","setState","dialog","onChange","model","text","onConfirm","handleAlertDialog","addCategoryEnabled","onClose","type","state","classes","charts","labelsPlaceholders","titlePlaceholder","showPixelGuides","authorNewCategoryDefaults","chartingOptions","mathMlOptions","domain","range","chartType","graph","map","index","changeData","changeTitle","changeLabel","changeInteractiveEnabled","changeEditableEnabled","changeAddCategoryEnabled","e","changeAddRemoveEnabled","target","checked","addCategory","authoringLabel","React","Component","PropTypes","object","isRequired","func","array","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Chart } from '@pie-lib/charting';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = (theme) => ({\n container: {\n marginBottom: theme.spacing.unit * 2.5,\n display: 'flex',\n flex: 1,\n },\n title: {\n marginBottom: theme.spacing.unit,\n },\n column: {\n flex: 1,\n },\n});\n\nconst restoreCorrectAnswer = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n let correctResponseDefinition = [];\n\n (data || []).forEach((category, currentIndex) => {\n const { editable, interactive } = category;\n\n const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;\n\n const value =\n interactive && correctAnswer[currentIndex]?.value ? correctAnswer[currentIndex].value : category.value;\n\n correctResponseDefinition[currentIndex] = {\n label: label,\n value: value,\n editable: category.editable,\n interactive: category.interactive,\n };\n });\n\n return correctResponseDefinition;\n};\n\nexport class ChartingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array,\n labelsPlaceholders: PropTypes.object,\n titlePlaceholder: PropTypes.object,\n showPixelGuides: PropTypes.bool,\n authorNewCategoryDefaults: PropTypes.object,\n chartingOptions: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false,\n },\n };\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n changeData = (data) => this.props.onChange({ ...this.props.model, data });\n\n changeAddRemoveEnabled = (value) => {\n const { model } = this.props;\n const correctAnswer = restoreCorrectAnswer(model.correctAnswer.data, model.data);\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'This change will remove any correct answer categories that are not part of the initial item configuration.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n this.props.onChange({\n ...this.props.model,\n addCategoryEnabled: value,\n correctAnswer: { data: correctAnswer },\n }),\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n this.props.onChange({ ...this.props.model, addCategoryEnabled: value });\n }\n };\n\n changeTitle = (title) => this.props.onChange({ ...this.props.model, title });\n\n changeLabel = (type, label) =>\n this.props.onChange({\n ...this.props.model,\n [type]: {\n ...this.props.model[type],\n label,\n },\n });\n\n render() {\n const { classes, model, charts, labelsPlaceholders, titlePlaceholder, showPixelGuides, authorNewCategoryDefaults, chartingOptions, mathMlOptions = {} } = this.props;\n const { dialog } = this.state;\n const { domain = {}, range = {} } = model || {};\n\n return (\n <div>\n <div className={classes.title}>Define Initial Chart Attributes</div>\n <div className={classes.container}>\n <div className={classes.column} key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to set up the chart as it will initially appear to students.</span>\n </Typography>\n\n <Chart\n defineChart={true}\n chartingOptions={chartingOptions}\n showPixelGuides={showPixelGuides}\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n // index is a property used for setting the correct answer data; it's needed in order to remove categories from other data sets from the same index it was removed from the initial data\n data={model.data.map((category, index) => ({\n ...category,\n index: index,\n }))}\n title={model.title}\n onDataChange={this.changeData}\n onChangeTitle={this.changeTitle}\n onChangeLabels={this.changeLabel}\n addCategoryEnabled={true}\n changeInteractiveEnabled={model.changeInteractiveEnabled}\n changeEditableEnabled={model.changeEditableEnabled}\n categoryDefaultLabel={authorNewCategoryDefaults?.label}\n categoryDefaults={authorNewCategoryDefaults}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder?.label}\n mathMlOptions={mathMlOptions}\n />\n {model.changeAddCategoryEnabled && (\n <div>\n <Checkbox\n checked={model.addCategoryEnabled}\n onChange={(e) => {\n this.changeAddRemoveEnabled(e.target.checked);\n }}\n />\n {chartingOptions?.addCategory?.authoringLabel}\n </div>\n )}\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(ChartingConfig);\n"],"file":"charting-config.js"}
|
|
@@ -54,7 +54,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
54
54
|
var log = (0, _debug["default"])('@pie-element:graphing:configure');
|
|
55
55
|
var Panel = _configUi.settings.Panel,
|
|
56
56
|
toggle = _configUi.settings.toggle,
|
|
57
|
-
radio = _configUi.settings.radio
|
|
57
|
+
radio = _configUi.settings.radio,
|
|
58
|
+
dropdown = _configUi.settings.dropdown;
|
|
58
59
|
|
|
59
60
|
var styles = function styles(theme) {
|
|
60
61
|
return {
|
|
@@ -201,7 +202,13 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
201
202
|
chartingOptions = _ref2$chartingOptions === void 0 ? {} : _ref2$chartingOptions,
|
|
202
203
|
_ref2$availableChartT = _ref2.availableChartTypes,
|
|
203
204
|
availableChartTypes = _ref2$availableChartT === void 0 ? {} : _ref2$availableChartT,
|
|
204
|
-
|
|
205
|
+
_ref2$mathMlOptions = _ref2.mathMlOptions,
|
|
206
|
+
mathMlOptions = _ref2$mathMlOptions === void 0 ? {} : _ref2$mathMlOptions,
|
|
207
|
+
chartTypeLabel = _ref2.chartTypeLabel,
|
|
208
|
+
_ref2$language = _ref2.language,
|
|
209
|
+
language = _ref2$language === void 0 ? {} : _ref2$language,
|
|
210
|
+
_ref2$languageChoices = _ref2.languageChoices,
|
|
211
|
+
languageChoices = _ref2$languageChoices === void 0 ? {} : _ref2$languageChoices;
|
|
205
212
|
|
|
206
213
|
var _ref3 = model || {},
|
|
207
214
|
errors = _ref3.errors,
|
|
@@ -233,7 +240,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
233
240
|
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
234
241
|
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
235
242
|
scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring']),
|
|
236
|
-
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
|
|
243
|
+
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label),
|
|
244
|
+
'language.enabled': language.settings && toggle(language.label, true),
|
|
245
|
+
language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options)
|
|
237
246
|
};
|
|
238
247
|
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
239
248
|
dimensions: contentDimensions,
|
|
@@ -269,7 +278,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
269
278
|
language: 'spanish'
|
|
270
279
|
}, {
|
|
271
280
|
language: 'special'
|
|
272
|
-
}]
|
|
281
|
+
}],
|
|
282
|
+
mathMlOptions: mathMlOptions
|
|
273
283
|
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
274
284
|
label: prompt.label,
|
|
275
285
|
className: classes.promptHolder
|
|
@@ -288,7 +298,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
288
298
|
language: 'spanish'
|
|
289
299
|
}, {
|
|
290
300
|
language: 'special'
|
|
291
|
-
}]
|
|
301
|
+
}],
|
|
302
|
+
mathMlOptions: mathMlOptions
|
|
292
303
|
})), /*#__PURE__*/_react["default"].createElement(_charting.ConfigureChartPanel, {
|
|
293
304
|
model: model,
|
|
294
305
|
onChange: this.onConfigChange,
|
|
@@ -307,7 +318,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
307
318
|
titlePlaceholder: titlePlaceholder,
|
|
308
319
|
showPixelGuides: showPixeGuides,
|
|
309
320
|
authorNewCategoryDefaults: authorNewCategoryDefaults,
|
|
310
|
-
chartingOptions: chartingOptions
|
|
321
|
+
chartingOptions: chartingOptions,
|
|
322
|
+
mathMlOptions: mathMlOptions
|
|
311
323
|
}), /*#__PURE__*/_react["default"].createElement(_correctResponse["default"], {
|
|
312
324
|
config: graph,
|
|
313
325
|
model: model,
|
|
@@ -315,7 +327,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
315
327
|
charts: charts,
|
|
316
328
|
error: categoryErrors,
|
|
317
329
|
correctAnswerErrors: correctAnswerErrors,
|
|
318
|
-
studentNewCategoryDefaultLabel: studentNewCategoryDefaultLabel
|
|
330
|
+
studentNewCategoryDefaultLabel: studentNewCategoryDefaultLabel,
|
|
331
|
+
mathMlOptions: mathMlOptions
|
|
319
332
|
}), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
320
333
|
label: rationale.label || 'Rationale',
|
|
321
334
|
className: classes.promptHolder
|
|
@@ -332,7 +345,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
332
345
|
language: 'spanish'
|
|
333
346
|
}, {
|
|
334
347
|
language: 'special'
|
|
335
|
-
}]
|
|
348
|
+
}],
|
|
349
|
+
mathMlOptions: mathMlOptions
|
|
336
350
|
})));
|
|
337
351
|
}
|
|
338
352
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","promptHolder","width","paddingTop","description","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","Configure","props","rationale","onModelChanged","model","prompt","teacherInstructions","chartType","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","graph","range","rangeConstraints","height","setState","step","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","contentDimensions","chartDimensions","authorNewCategoryDefaults","labelsPlaceholders","maxImageWidth","maxImageHeight","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","titlePlaceholder","withRubric","chartingOptions","availableChartTypes","chartTypeLabel","errors","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","studentNewCategoryDefaultLabel","categoryErrors","correctAnswerErrors","showPixeGuides","showInConfigPanel","defaultImageMaxWidth","defaultImageMaxHeight","panelItemType","changeInteractiveEnabled","changeInteractive","settingsLabel","changeEditableEnabled","changeEditable","changeAddCategoryEnabled","addCategory","panelProperties","label","studentInstructionsEnabled","rubricEnabled","Settings","Properties","onTeacherInstructionsChange","language","onPromptChange","onConfigChange","onRationaleChange","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { chartTypes, ConfigureChartPanel } from '@pie-lib/charting';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport EditableHtml from '@pie-lib/editable-html';\n\nimport ChartingConfig from './charting-config';\nimport CorrectResponse from './correct-response';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\nconst log = debug('@pie-element:graphing:configure');\nconst { Panel, toggle, radio } = settings;\n\nconst styles = (theme) => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n description: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n});\n\nconst charts = [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n];\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n chartingOptions: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n const { range = {}, graph } = props.model || {};\n const gridValues = { range: getGridValues(range, graph.height, true) };\n const labelValues = { range: getLabelValues(range.step || 1) };\n\n this.state = { gridValues, labelValues };\n }\n\n static defaultProps = { classes: {} };\n\n onRationaleChange = (rationale) => this.props.onModelChanged({ ...this.props.model, rationale });\n\n onPromptChange = (prompt) => this.props.onModelChanged({ ...this.props.model, prompt });\n\n onTeacherInstructionsChange = (teacherInstructions) =>\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n\n onChartTypeChange = (chartType) => this.props.onModelChanged({ ...this.props.model, chartType });\n\n onConfigChange = (config) => {\n const { model, onModelChanged } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { graph, range } = updatedModel;\n const gridValues = {};\n const labelValues = {};\n\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues;\n labelValues.range = rangeConstraints.labelValues;\n\n this.setState({ gridValues, labelValues });\n onModelChanged(updatedModel);\n };\n\n render() {\n const { classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n\n log('[render] model', model);\n\n const { graph } = model;\n const {\n contentDimensions = {},\n chartDimensions = {},\n authorNewCategoryDefaults = {},\n labelsPlaceholders = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n titlePlaceholder = {},\n withRubric = {},\n chartingOptions = {},\n availableChartTypes = {},\n chartTypeLabel,\n } = configuration || {};\n const { errors, promptEnabled, rationaleEnabled, spellCheckEnabled, teacherInstructionsEnabled, studentNewCategoryDefaultLabel } = model || {};\n const { categoryErrors, correctAnswerErrors } = errors || {};\n const { gridValues, labelValues } = this.state;\n const showPixeGuides = chartDimensions.showInConfigPanel || true;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelItemType = {\n changeInteractiveEnabled:\n chartingOptions.changeInteractive?.settings && toggle(chartingOptions.changeInteractive.settingsLabel),\n changeEditableEnabled:\n chartingOptions.changeEditable?.settings && toggle(chartingOptions.changeEditable.settingsLabel),\n changeAddCategoryEnabled:\n chartingOptions.addCategory?.settings && toggle(chartingOptions.addCategory.settingsLabel),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\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={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelItemType,\n Properties: panelProperties,\n }}\n />\n }\n >\n <Typography component=\"div\" type=\"body1\" className={classes.description}>\n This item type provides various types of interactive charts. Depending upon how an item is configured,\n students can change the heights of bars (or other similar chart elements) created by the author; relabel bars\n created by the author; and/or add new bars, label them, and set their heights.\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\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 />\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.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n disableUnderline\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <ConfigureChartPanel\n model={model}\n onChange={this.onConfigChange}\n gridValues={gridValues}\n labelValues={labelValues}\n chartDimensions={chartDimensions}\n charts={charts}\n studentNewCategoryDefaultLabel={studentNewCategoryDefaultLabel}\n availableChartTypes={availableChartTypes}\n chartTypeLabel={chartTypeLabel}\n />\n\n <ChartingConfig\n model={model}\n onChange={onModelChanged}\n charts={charts}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder}\n showPixelGuides={showPixeGuides}\n authorNewCategoryDefaults={authorNewCategoryDefaults}\n chartingOptions={chartingOptions}\n />\n\n <CorrectResponse\n config={graph}\n model={model}\n onChange={onModelChanged}\n charts={charts}\n error={categoryErrors}\n correctAnswerErrors={correctAnswerErrors}\n studentNewCategoryDefaultLabel={studentNewCategoryDefaultLabel}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label || 'Rationale'} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\n imageSupport={imageSupport}\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 />\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
|
|
1
|
+
{"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","dropdown","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","promptHolder","width","paddingTop","description","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","Configure","props","rationale","onModelChanged","model","prompt","teacherInstructions","chartType","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","graph","range","rangeConstraints","height","setState","step","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","contentDimensions","chartDimensions","authorNewCategoryDefaults","labelsPlaceholders","maxImageWidth","maxImageHeight","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","titlePlaceholder","withRubric","chartingOptions","availableChartTypes","mathMlOptions","chartTypeLabel","language","languageChoices","errors","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","studentNewCategoryDefaultLabel","categoryErrors","correctAnswerErrors","showPixeGuides","showInConfigPanel","defaultImageMaxWidth","defaultImageMaxHeight","panelItemType","changeInteractiveEnabled","changeInteractive","settingsLabel","changeEditableEnabled","changeEditable","changeAddCategoryEnabled","addCategory","panelProperties","label","studentInstructionsEnabled","rubricEnabled","enabled","options","Settings","Properties","onTeacherInstructionsChange","onPromptChange","onConfigChange","onRationaleChange","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { chartTypes, ConfigureChartPanel } from '@pie-lib/charting';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport EditableHtml from '@pie-lib/editable-html';\n\nimport ChartingConfig from './charting-config';\nimport CorrectResponse from './correct-response';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\nconst log = debug('@pie-element:graphing:configure');\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst styles = (theme) => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n description: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n});\n\nconst charts = [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n];\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n chartingOptions: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n const { range = {}, graph } = props.model || {};\n const gridValues = { range: getGridValues(range, graph.height, true) };\n const labelValues = { range: getLabelValues(range.step || 1) };\n\n this.state = { gridValues, labelValues };\n }\n\n static defaultProps = { classes: {} };\n\n onRationaleChange = (rationale) => this.props.onModelChanged({ ...this.props.model, rationale });\n\n onPromptChange = (prompt) => this.props.onModelChanged({ ...this.props.model, prompt });\n\n onTeacherInstructionsChange = (teacherInstructions) =>\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n\n onChartTypeChange = (chartType) => this.props.onModelChanged({ ...this.props.model, chartType });\n\n onConfigChange = (config) => {\n const { model, onModelChanged } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { graph, range } = updatedModel;\n const gridValues = {};\n const labelValues = {};\n\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues;\n labelValues.range = rangeConstraints.labelValues;\n\n this.setState({ gridValues, labelValues });\n onModelChanged(updatedModel);\n };\n\n render() {\n const { classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n\n log('[render] model', model);\n\n const { graph } = model;\n const {\n contentDimensions = {},\n chartDimensions = {},\n authorNewCategoryDefaults = {},\n labelsPlaceholders = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n titlePlaceholder = {},\n withRubric = {},\n chartingOptions = {},\n availableChartTypes = {},\n mathMlOptions = {},\n chartTypeLabel,\n language = {},\n languageChoices = {},\n } = configuration || {};\n const { errors, promptEnabled, rationaleEnabled, spellCheckEnabled, teacherInstructionsEnabled, studentNewCategoryDefaultLabel } = model || {};\n const { categoryErrors, correctAnswerErrors } = errors || {};\n const { gridValues, labelValues } = this.state;\n const showPixeGuides = chartDimensions.showInConfigPanel || true;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelItemType = {\n changeInteractiveEnabled:\n chartingOptions.changeInteractive?.settings && toggle(chartingOptions.changeInteractive.settingsLabel),\n changeEditableEnabled:\n chartingOptions.changeEditable?.settings && toggle(chartingOptions.changeEditable.settingsLabel),\n changeAddCategoryEnabled:\n chartingOptions.addCategory?.settings && toggle(chartingOptions.addCategory.settingsLabel),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\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={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelItemType,\n Properties: panelProperties,\n }}\n />\n }\n >\n <Typography component=\"div\" type=\"body1\" className={classes.description}>\n This item type provides various types of interactive charts. Depending upon how an item is configured,\n students can change the heights of bars (or other similar chart elements) created by the author; relabel bars\n created by the author; and/or add new bars, label them, and set their heights.\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\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.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n disableUnderline\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <ConfigureChartPanel\n model={model}\n onChange={this.onConfigChange}\n gridValues={gridValues}\n labelValues={labelValues}\n chartDimensions={chartDimensions}\n charts={charts}\n studentNewCategoryDefaultLabel={studentNewCategoryDefaultLabel}\n availableChartTypes={availableChartTypes}\n chartTypeLabel={chartTypeLabel}\n />\n\n <ChartingConfig\n model={model}\n onChange={onModelChanged}\n charts={charts}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder}\n showPixelGuides={showPixeGuides}\n authorNewCategoryDefaults={authorNewCategoryDefaults}\n chartingOptions={chartingOptions}\n mathMlOptions={mathMlOptions}\n />\n\n <CorrectResponse\n config={graph}\n model={model}\n onChange={onModelChanged}\n charts={charts}\n error={categoryErrors}\n correctAnswerErrors={correctAnswerErrors}\n studentNewCategoryDefaultLabel={studentNewCategoryDefaultLabel}\n mathMlOptions={mathMlOptions}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label || 'Rationale'} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\n imageSupport={imageSupport}\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\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
|
|
@@ -289,7 +289,9 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
|
|
|
289
289
|
charts = _this$props2.charts,
|
|
290
290
|
error = _this$props2.error,
|
|
291
291
|
studentNewCategoryDefaultLabel = _this$props2.studentNewCategoryDefaultLabel,
|
|
292
|
-
correctAnswerErrors = _this$props2.correctAnswerErrors
|
|
292
|
+
correctAnswerErrors = _this$props2.correctAnswerErrors,
|
|
293
|
+
_this$props2$mathMlOp = _this$props2.mathMlOptions,
|
|
294
|
+
mathMlOptions = _this$props2$mathMlOp === void 0 ? {} : _this$props2$mathMlOp;
|
|
293
295
|
var categories = this.state.categories;
|
|
294
296
|
|
|
295
297
|
var _ref3 = model || {},
|
|
@@ -328,7 +330,8 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
|
|
|
328
330
|
},
|
|
329
331
|
addCategoryEnabled: model.addCategoryEnabled,
|
|
330
332
|
categoryDefaultLabel: studentNewCategoryDefaultLabel,
|
|
331
|
-
error: error
|
|
333
|
+
error: error,
|
|
334
|
+
mathMlOptions: mathMlOptions
|
|
332
335
|
})), (identicalError || categoriesError) && /*#__PURE__*/React.createElement(_Typography["default"], {
|
|
333
336
|
component: "div",
|
|
334
337
|
type: "body1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/correct-response.jsx"],"names":["styles","theme","container","marginBottom","spacing","unit","display","flex","button","marginTop","cursor","background","palette","grey","padding","width","borderRadius","column","chartError","border","error","main","errorText","fontSize","typography","color","paddingTop","title","addCategoryProps","correctAnswer","data","map","correct","index","editable","length","interactive","deletable","updateCorrectResponseData","correctAnswerData","correctResponseDefinition","forEach","category","currentIndex","label","value","missingCategories","slice","concat","insertCategory","positionToInsert","categoryToInsert","splice","removeCategory","positionToRemove","CorrectResponse","props","model","onChange","keepAttrs","state","categories","nextProps","prevProps","prevState","nextData","nextCorrectAnswerData","nextCategories","removedIndex","answer","dataExists","initialCategories","getUpdatedCategories","setState","changeData","classes","charts","studentNewCategoryDefaultLabel","correctAnswerErrors","domain","range","identicalError","categoriesError","name","chartType","graph","addCategoryEnabled","React","Component","PropTypes","object","isRequired","string","func","array"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Chart } from '@pie-lib/charting';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = (theme) => ({\n container: {\n marginBottom: theme.spacing.unit * 2.5,\n display: 'flex',\n flex: 1,\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: theme.palette.grey[200],\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px',\n },\n column: {\n flex: 1,\n },\n chartError: {\n border: `2px solid ${theme.palette.error.main}`,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n title: {\n marginBottom: theme.spacing.unit,\n },\n});\n\nconst addCategoryProps = (correctAnswer, data) =>\n correctAnswer.map((correct, index) => ({\n ...correct,\n editable: index < data.length ? data[index].editable : true,\n interactive: index < data.length ? data[index].interactive : true,\n deletable: index >= data.length ? true : false,\n }));\n\nconst updateCorrectResponseData = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n const correctAnswerData = [...correctAnswer];\n let correctResponseDefinition = [];\n\n (data || []).forEach((category, currentIndex) => {\n const editable = category.editable;\n const interactive = category.interactive;\n const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;\n const value =\n (interactive && correctAnswer[currentIndex]?.value) || (interactive && correctAnswer[currentIndex]?.value == 0)\n ? correctAnswer[currentIndex].value\n : category.value;\n\n correctResponseDefinition[currentIndex] = {\n label: label,\n value: value,\n editable: category.editable,\n interactive: category.interactive,\n };\n });\n\n if (correctResponseDefinition.length < correctAnswer.length) {\n const missingCategories = (correctAnswerData || []).slice(correctResponseDefinition.length, correctAnswer.length);\n\n return addCategoryProps((correctResponseDefinition || []).concat(missingCategories), data);\n }\n\n return correctResponseDefinition;\n};\n\nconst insertCategory = (correctAnswer, data) => {\n const positionToInsert = data.length - 1;\n // eslint-disable-next-line no-unused-vars\n const { editable, interactive, deletable, ...categoryToInsert } = data[data.length - 1];\n\n (correctAnswer || []).splice(positionToInsert, 0, categoryToInsert);\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\n};\n\nconst removeCategory = (correctAnswer, data, positionToRemove) => {\n (correctAnswer || []).splice(positionToRemove, 1);\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n correctAnswerErrors: PropTypes.object,\n studentNewCategoryDefaultLabel: PropTypes.string,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array,\n error: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n categories: [],\n };\n }\n\n changeData = (data) => {\n const { model, onChange } = this.props;\n const { correctAnswer } = model || {};\n\n onChange({\n ...model,\n correctAnswer: {\n ...correctAnswer,\n // eslint-disable-next-line no-unused-vars\n data: data.map(({ interactive, editable, index, ...keepAttrs }) => keepAttrs),\n },\n });\n };\n\n getUpdatedCategories(nextProps, prevProps = this.props, prevState = this.state) {\n const nextData = nextProps.model.data || [];\n const data = prevProps.model.data || [];\n const nextCorrectAnswerData = nextProps.model.correctAnswer.data || [];\n const categories = prevState ? prevState.categories : [];\n\n let nextCategories = [];\n if (nextData.length > data.length) {\n nextCategories = insertCategory(nextCorrectAnswerData, nextData);\n }\n\n if (nextData.length < data.length) {\n let removedIndex = nextData.length;\n\n // we need to remove the category from the correct answer data and categories, from the same index it was removed from the data\n // index is a property of the nextData category\n for (let index = 0; index < nextData.length; index++) {\n if (nextData[index].index !== index) {\n removedIndex = index;\n break;\n }\n }\n\n (this.props.model.correctAnswer.data || []).splice(removedIndex, 1);\n nextCategories = removeCategory(categories, nextData, removedIndex);\n return nextCategories;\n }\n\n if (nextCorrectAnswerData.length > 0 && !isEqual(nextCorrectAnswerData, this.props.model.correctAnswer.data)) {\n nextCategories = nextCorrectAnswerData.map((correct, index) => ({\n ...correct,\n editable: index < data.length ? data[index].editable : true,\n interactive: index < data.length ? data[index].interactive : true,\n }));\n } else if (isEmpty(nextCategories)) {\n nextCategories = updateCorrectResponseData(nextCorrectAnswerData, nextData);\n\n nextCorrectAnswerData.map((answer, currentIndex) => {\n const dataExists = currentIndex < nextData.length;\n let label;\n let value;\n\n if (dataExists) {\n label = nextData[currentIndex].editable ? answer.label : nextData[currentIndex].label;\n value = nextData[currentIndex].interactive ? answer.value : nextData[currentIndex].value;\n } else {\n label = answer.label;\n value = answer.value;\n }\n\n nextCorrectAnswerData[currentIndex] = {\n label: label,\n value: value,\n };\n });\n }\n\n if (\n !isEqual(nextCategories, data) ||\n !isEqual(nextCorrectAnswerData, prevProps.model.correctAnswer.data) ||\n !isEqual(nextCategories, categories) ||\n (isEmpty(nextCategories) && isEmpty(data))\n ) {\n return nextCategories;\n }\n\n return null;\n }\n\n componentDidMount() {\n const initialCategories = this.getUpdatedCategories(this.props, this.props, null);\n\n this.setState({\n categories:\n initialCategories || updateCorrectResponseData(this.props.model.correctAnswer.data, this.props.model.data),\n });\n }\n\n componentDidUpdate(prevProps, prevState) {\n const nextCategories = this.getUpdatedCategories(this.props, prevProps, prevState);\n\n // this check is needed when all the categories are removed from Chart1\n if (nextCategories?.length === 0 && this.state.categories?.length === 0 && prevProps.model.data.length > 0) {\n this.setState({ categories: nextCategories });\n }\n\n if (nextCategories && !isEqual(nextCategories, this.state.categories)) {\n this.changeData(nextCategories);\n this.setState({ categories: nextCategories });\n }\n }\n\n render() {\n const { classes, model, charts, error, studentNewCategoryDefaultLabel, correctAnswerErrors } = this.props;\n const { categories } = this.state;\n const { domain = {}, range = {} } = model || {};\n const { identicalError, categoriesError } = correctAnswerErrors || {};\n\n return (\n <div>\n <div className={classes.title}>Define Correct Response</div>\n <div className={classes.container}>\n <div className={classes.column} key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to define the correct answer.</span>\n </Typography>\n\n <div\n key={`correct-response-graph-${model.correctAnswer.name}`}\n className={identicalError || categoriesError ? classes.chartError : ''}\n >\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n data={categories}\n title={model.title}\n onDataChange={(data) => this.changeData(data)}\n addCategoryEnabled={model.addCategoryEnabled}\n categoryDefaultLabel={studentNewCategoryDefaultLabel}\n error={error}\n />\n </div>\n\n {(identicalError || categoriesError) && (\n <Typography component=\"div\" type=\"body1\" className={classes.errorText}>\n <span>{identicalError || categoriesError}</span>\n </Typography>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
|
|
1
|
+
{"version":3,"sources":["../src/correct-response.jsx"],"names":["styles","theme","container","marginBottom","spacing","unit","display","flex","button","marginTop","cursor","background","palette","grey","padding","width","borderRadius","column","chartError","border","error","main","errorText","fontSize","typography","color","paddingTop","title","addCategoryProps","correctAnswer","data","map","correct","index","editable","length","interactive","deletable","updateCorrectResponseData","correctAnswerData","correctResponseDefinition","forEach","category","currentIndex","label","value","missingCategories","slice","concat","insertCategory","positionToInsert","categoryToInsert","splice","removeCategory","positionToRemove","CorrectResponse","props","model","onChange","keepAttrs","state","categories","nextProps","prevProps","prevState","nextData","nextCorrectAnswerData","nextCategories","removedIndex","answer","dataExists","initialCategories","getUpdatedCategories","setState","changeData","classes","charts","studentNewCategoryDefaultLabel","correctAnswerErrors","mathMlOptions","domain","range","identicalError","categoriesError","name","chartType","graph","addCategoryEnabled","React","Component","PropTypes","object","isRequired","string","func","array"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Chart } from '@pie-lib/charting';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = (theme) => ({\n container: {\n marginBottom: theme.spacing.unit * 2.5,\n display: 'flex',\n flex: 1,\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: theme.palette.grey[200],\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px',\n },\n column: {\n flex: 1,\n },\n chartError: {\n border: `2px solid ${theme.palette.error.main}`,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n title: {\n marginBottom: theme.spacing.unit,\n },\n});\n\nconst addCategoryProps = (correctAnswer, data) =>\n correctAnswer.map((correct, index) => ({\n ...correct,\n editable: index < data.length ? data[index].editable : true,\n interactive: index < data.length ? data[index].interactive : true,\n deletable: index >= data.length ? true : false,\n }));\n\nconst updateCorrectResponseData = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n const correctAnswerData = [...correctAnswer];\n let correctResponseDefinition = [];\n\n (data || []).forEach((category, currentIndex) => {\n const editable = category.editable;\n const interactive = category.interactive;\n const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;\n const value =\n (interactive && correctAnswer[currentIndex]?.value) || (interactive && correctAnswer[currentIndex]?.value == 0)\n ? correctAnswer[currentIndex].value\n : category.value;\n\n correctResponseDefinition[currentIndex] = {\n label: label,\n value: value,\n editable: category.editable,\n interactive: category.interactive,\n };\n });\n\n if (correctResponseDefinition.length < correctAnswer.length) {\n const missingCategories = (correctAnswerData || []).slice(correctResponseDefinition.length, correctAnswer.length);\n\n return addCategoryProps((correctResponseDefinition || []).concat(missingCategories), data);\n }\n\n return correctResponseDefinition;\n};\n\nconst insertCategory = (correctAnswer, data) => {\n const positionToInsert = data.length - 1;\n // eslint-disable-next-line no-unused-vars\n const { editable, interactive, deletable, ...categoryToInsert } = data[data.length - 1];\n\n (correctAnswer || []).splice(positionToInsert, 0, categoryToInsert);\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\n};\n\nconst removeCategory = (correctAnswer, data, positionToRemove) => {\n (correctAnswer || []).splice(positionToRemove, 1);\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n correctAnswerErrors: PropTypes.object,\n studentNewCategoryDefaultLabel: PropTypes.string,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array,\n error: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n categories: [],\n };\n }\n\n changeData = (data) => {\n const { model, onChange } = this.props;\n const { correctAnswer } = model || {};\n\n onChange({\n ...model,\n correctAnswer: {\n ...correctAnswer,\n // eslint-disable-next-line no-unused-vars\n data: data.map(({ interactive, editable, index, ...keepAttrs }) => keepAttrs),\n },\n });\n };\n\n getUpdatedCategories(nextProps, prevProps = this.props, prevState = this.state) {\n const nextData = nextProps.model.data || [];\n const data = prevProps.model.data || [];\n const nextCorrectAnswerData = nextProps.model.correctAnswer.data || [];\n const categories = prevState ? prevState.categories : [];\n\n let nextCategories = [];\n if (nextData.length > data.length) {\n nextCategories = insertCategory(nextCorrectAnswerData, nextData);\n }\n\n if (nextData.length < data.length) {\n let removedIndex = nextData.length;\n\n // we need to remove the category from the correct answer data and categories, from the same index it was removed from the data\n // index is a property of the nextData category\n for (let index = 0; index < nextData.length; index++) {\n if (nextData[index].index !== index) {\n removedIndex = index;\n break;\n }\n }\n\n (this.props.model.correctAnswer.data || []).splice(removedIndex, 1);\n nextCategories = removeCategory(categories, nextData, removedIndex);\n return nextCategories;\n }\n\n if (nextCorrectAnswerData.length > 0 && !isEqual(nextCorrectAnswerData, this.props.model.correctAnswer.data)) {\n nextCategories = nextCorrectAnswerData.map((correct, index) => ({\n ...correct,\n editable: index < data.length ? data[index].editable : true,\n interactive: index < data.length ? data[index].interactive : true,\n }));\n } else if (isEmpty(nextCategories)) {\n nextCategories = updateCorrectResponseData(nextCorrectAnswerData, nextData);\n\n nextCorrectAnswerData.map((answer, currentIndex) => {\n const dataExists = currentIndex < nextData.length;\n let label;\n let value;\n\n if (dataExists) {\n label = nextData[currentIndex].editable ? answer.label : nextData[currentIndex].label;\n value = nextData[currentIndex].interactive ? answer.value : nextData[currentIndex].value;\n } else {\n label = answer.label;\n value = answer.value;\n }\n\n nextCorrectAnswerData[currentIndex] = {\n label: label,\n value: value,\n };\n });\n }\n\n if (\n !isEqual(nextCategories, data) ||\n !isEqual(nextCorrectAnswerData, prevProps.model.correctAnswer.data) ||\n !isEqual(nextCategories, categories) ||\n (isEmpty(nextCategories) && isEmpty(data))\n ) {\n return nextCategories;\n }\n\n return null;\n }\n\n componentDidMount() {\n const initialCategories = this.getUpdatedCategories(this.props, this.props, null);\n\n this.setState({\n categories:\n initialCategories || updateCorrectResponseData(this.props.model.correctAnswer.data, this.props.model.data),\n });\n }\n\n componentDidUpdate(prevProps, prevState) {\n const nextCategories = this.getUpdatedCategories(this.props, prevProps, prevState);\n\n // this check is needed when all the categories are removed from Chart1\n if (nextCategories?.length === 0 && this.state.categories?.length === 0 && prevProps.model.data.length > 0) {\n this.setState({ categories: nextCategories });\n }\n\n if (nextCategories && !isEqual(nextCategories, this.state.categories)) {\n this.changeData(nextCategories);\n this.setState({ categories: nextCategories });\n }\n }\n\n render() {\n const { classes, model, charts, error, studentNewCategoryDefaultLabel, correctAnswerErrors, mathMlOptions = {} } = this.props;\n const { categories } = this.state;\n const { domain = {}, range = {} } = model || {};\n const { identicalError, categoriesError } = correctAnswerErrors || {};\n\n return (\n <div>\n <div className={classes.title}>Define Correct Response</div>\n <div className={classes.container}>\n <div className={classes.column} key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to define the correct answer.</span>\n </Typography>\n\n <div\n key={`correct-response-graph-${model.correctAnswer.name}`}\n className={identicalError || categoriesError ? classes.chartError : ''}\n >\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n data={categories}\n title={model.title}\n onDataChange={(data) => this.changeData(data)}\n addCategoryEnabled={model.addCategoryEnabled}\n categoryDefaultLabel={studentNewCategoryDefaultLabel}\n error={error}\n mathMlOptions={mathMlOptions}\n />\n </div>\n\n {(identicalError || categoriesError) && (\n <Typography component=\"div\" type=\"body1\" className={classes.errorText}>\n <span>{identicalError || categoriesError}</span>\n </Typography>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
|
|
@@ -134,6 +134,15 @@ var _default = {
|
|
|
134
134
|
settings: false,
|
|
135
135
|
label: 'Add Rubric'
|
|
136
136
|
},
|
|
137
|
+
language: {
|
|
138
|
+
settings: false,
|
|
139
|
+
label: 'Specify Language',
|
|
140
|
+
enabled: false
|
|
141
|
+
},
|
|
142
|
+
languageChoices: {
|
|
143
|
+
label: 'Language Choices',
|
|
144
|
+
options: []
|
|
145
|
+
},
|
|
137
146
|
chartingOptions: {
|
|
138
147
|
changeInteractive: {
|
|
139
148
|
settings: false,
|
|
@@ -149,6 +158,10 @@ var _default = {
|
|
|
149
158
|
settings: false,
|
|
150
159
|
authoringLabel: 'Student can add categories',
|
|
151
160
|
settingsLabel: 'Allow changes to whether students can add categories'
|
|
161
|
+
},
|
|
162
|
+
mathMlOptions: {
|
|
163
|
+
mmlOutput: false,
|
|
164
|
+
mmlEditing: false
|
|
152
165
|
}
|
|
153
166
|
}
|
|
154
167
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","addCategoryEnabled","chartType","correctAnswer","data","domain","graph","width","height","prompt","promptEnabled","rationale","range","label","max","min","scoringType","title","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","studentNewCategoryDefaultLabel","changeInteractiveEnabled","changeEditableEnabled","changeAddCategoryEnabled","configuration","spellCheck","settings","enabled","chartDimensions","showInConfigPanel","step","authorNewCategoryDefaults","interactive","editable","availableChartTypes","bar","histogram","lineDot","lineCross","dotPlot","linePlot","chartTypeLabel","settingsPanelDisabled","studentInstructions","teacherInstructions","titlePlaceholder","labelsPlaceholders","left","right","top","bottom","maxImageWidth","maxImageHeight","withRubric","chartingOptions","changeInteractive","authoringLabel","settingsLabel","changeEditable","addCategory"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","addCategoryEnabled","chartType","correctAnswer","data","domain","graph","width","height","prompt","promptEnabled","rationale","range","label","max","min","scoringType","title","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","studentNewCategoryDefaultLabel","changeInteractiveEnabled","changeEditableEnabled","changeAddCategoryEnabled","configuration","spellCheck","settings","enabled","chartDimensions","showInConfigPanel","step","authorNewCategoryDefaults","interactive","editable","availableChartTypes","bar","histogram","lineDot","lineCross","dotPlot","linePlot","chartTypeLabel","settingsPanelDisabled","studentInstructions","teacherInstructions","titlePlaceholder","labelsPlaceholders","left","right","top","bottom","maxImageWidth","maxImageHeight","withRubric","language","languageChoices","options","chartingOptions","changeInteractive","authoringLabel","settingsLabel","changeEditable","addCategory","mathMlOptions","mmlOutput","mmlEditing"],"mappings":"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","sourcesContent":["/**\n * NOTE: There's no functionality described for graphTitle,\n * rationale, scoringType, studentInstructions, teacherInstructions\n * so there's no implementation (they are only added in model)\n */\n\n// const createCategory = (label, value) => ({\n// label,\n// value,\n// interactive: true,\n// editable: true\n// });\n\nexport default {\n model: {\n addCategoryEnabled: true,\n chartType: 'lineCross',\n correctAnswer: {},\n data: [],\n domain: {},\n graph: {\n width: 480,\n height: 480,\n },\n prompt: '',\n promptEnabled: true,\n rationale: '',\n range: {\n label: '',\n max: 1,\n min: 0,\n },\n scoringType: 'all or nothing',\n title: '',\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n studentNewCategoryDefaultLabel: 'New Category',\n changeInteractiveEnabled: true,\n changeEditableEnabled: true,\n changeAddCategoryEnabled: true,\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n chartDimensions: {\n settings: false,\n label: 'Chart Dimensions',\n showInConfigPanel: true,\n width: {\n min: 50,\n max: 700,\n step: 20,\n },\n height: {\n min: 400,\n max: 700,\n step: 20,\n },\n },\n authorNewCategoryDefaults: {\n settings: false,\n label: 'Category',\n interactive: true,\n editable: false,\n },\n availableChartTypes: {\n bar: 'Bar Chart',\n histogram: 'Histogram',\n lineDot: 'Line Chart ●',\n lineCross: 'Line Chart x',\n dotPlot: 'Dot/Line Plot ⬤',\n linePlot: 'Dot/Line Plot X',\n },\n chartTypeLabel: 'ChartType',\n studentNewCategoryDefaultLabel: {\n settings: false,\n label: 'Category',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n settingsPanelDisabled: false,\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n title: {\n settings: false,\n label: 'Chart Title',\n },\n titlePlaceholder: {\n settings: false,\n label: 'Click here to add a title',\n },\n labelsPlaceholders: {\n left: 'Click here to add a label for this axis',\n right: '',\n top: '',\n bottom: 'Click here to add a label for this axis',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n chartingOptions: {\n changeInteractive: {\n settings: false,\n authoringLabel: 'Student can set value',\n settingsLabel: 'Allow non-interactive categories',\n },\n changeEditable: {\n settings: false,\n authoringLabel: 'Student can edit name',\n settingsLabel: 'Allow editable category names',\n },\n addCategory: {\n settings: false,\n authoringLabel: 'Student can add categories',\n settingsLabel: 'Allow changes to whether students can add categories',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n },\n};\n"],"file":"defaults.js"}
|
package/configure/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/charting-configure",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.1.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.2",
|
|
11
11
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
12
|
-
"@pie-lib/charting": "^5.
|
|
13
|
-
"@pie-lib/config-ui": "^11.
|
|
14
|
-
"@pie-lib/editable-html": "^9.
|
|
15
|
-
"@pie-lib/math-rendering": "^2.5.
|
|
12
|
+
"@pie-lib/charting": "^5.14.1",
|
|
13
|
+
"@pie-lib/config-ui": "^11.8.4",
|
|
14
|
+
"@pie-lib/editable-html": "^9.7.1",
|
|
15
|
+
"@pie-lib/math-rendering": "^2.5.17",
|
|
16
16
|
"classnames": "^2.2.5",
|
|
17
17
|
"debug": "^4.1.1",
|
|
18
18
|
"prop-types": "^15.6.2",
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-controller@3.0.0...@pie-element/charting-controller@3.1.0) (2023-06-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **charting:** add translator PD-2795 ([fa738e0](https://github.com/pie-framework/pie-elements/commit/fa738e03256d22ccdce0649cf5f9ac08ea73b4dd))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [3.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-controller@2.4.2...@pie-element/charting-controller@3.0.0) (2023-05-23)
|
|
7
18
|
|
|
8
19
|
|
package/controller/lib/index.js
CHANGED
|
@@ -215,7 +215,8 @@ function model(question, session, env) {
|
|
|
215
215
|
teacherInstructionsEnabled = normalizedQuestion.teacherInstructionsEnabled,
|
|
216
216
|
correctAnswer = normalizedQuestion.correctAnswer,
|
|
217
217
|
scoringType = normalizedQuestion.scoringType,
|
|
218
|
-
studentNewCategoryDefaultLabel = normalizedQuestion.studentNewCategoryDefaultLabel
|
|
218
|
+
studentNewCategoryDefaultLabel = normalizedQuestion.studentNewCategoryDefaultLabel,
|
|
219
|
+
language = normalizedQuestion.language;
|
|
219
220
|
var correctInfo = {
|
|
220
221
|
correctness: 'incorrect',
|
|
221
222
|
score: '0%'
|
|
@@ -234,7 +235,8 @@ function model(question, session, env) {
|
|
|
234
235
|
correctness: correctInfo,
|
|
235
236
|
disabled: env.mode !== 'gather',
|
|
236
237
|
scoringType: scoringType,
|
|
237
|
-
studentNewCategoryDefaultLabel: studentNewCategoryDefaultLabel
|
|
238
|
+
studentNewCategoryDefaultLabel: studentNewCategoryDefaultLabel,
|
|
239
|
+
language: language
|
|
238
240
|
};
|
|
239
241
|
var answers = filterCategories(getScore(normalizedQuestion, session, env).answers);
|
|
240
242
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","lowerCase","string","toLowerCase","checkLabelsEquality","givenAnswerLabel","correctAnswerLabel","setCorrectness","answers","partialScoring","map","answer","correctness","value","label","normalize","question","addCategoryEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","getScore","session","env","correctAnswer","data","initialData","scoringType","isPartialScoring","enabled","undefined","correctAnswers","defaultAnswers","filterCategories","result","maxScore","score","scoreForLabelAndValueEditable","corrAnswer","forEach","index","defaultAnswer","editable","interactive","length","slice","parseFloat","toFixed","categories","deletable","rest","model","Promise","resolve","normalizedQuestion","chartType","domain","graph","prompt","range","rationale","title","teacherInstructions","studentNewCategoryDefaultLabel","correctInfo","base","size","disabled","mode","correctedAnswer","role","outcome","empty","createCorrectResponseSession","id","validate","correctData","errors","correctAnswerErrors","categoryErrors","category","identicalAnswer","some","c","categoriesError","identicalError"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport pick from 'lodash/pick';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst lowerCase = (string) => (string || '').toLowerCase();\n\nexport const checkLabelsEquality = (givenAnswerLabel, correctAnswerLabel) =>\n lowerCase(givenAnswerLabel) === lowerCase(correctAnswerLabel);\n\nexport const setCorrectness = (answers, partialScoring) =>\n answers\n ? answers.map((answer) => ({\n ...answer,\n correctness: {\n value: partialScoring ? 'incorrect' : 'correct',\n label: partialScoring ? 'incorrect' : 'correct',\n },\n }))\n : [];\n\nexport const normalize = (question) => ({\n addCategoryEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\nexport const getScore = (question, session, env = {}) => {\n const { correctAnswer, data: initialData = [], scoringType } = question;\n\n const isPartialScoring = partialScoring.enabled(\n { partialScoring: scoringType !== undefined ? scoringType === 'partial scoring' : scoringType },\n env,\n );\n\n const { data: correctAnswers = [] } = correctAnswer || {};\n const defaultAnswers = filterCategories(initialData);\n\n let answers = setCorrectness((session && session.answer) || defaultAnswers, isPartialScoring);\n\n let result = 0;\n\n if (isPartialScoring) {\n // if score type is \"partial scoring\"\n // maxScore is calculated based on the correct response\n // score is calculated based on the given response\n let maxScore = 0;\n let score = 0;\n\n const scoreForLabelAndValueEditable = (answer, corrAnswer) => {\n const { value, label } = answer;\n\n maxScore += 2;\n\n if (value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n\n if (checkLabelsEquality(label, corrAnswer.label)) {\n score += 1;\n answer.correctness.label = 'correct';\n }\n };\n\n // if given answer has more categories than the correct answers, the \"extra\" will be ignored\n correctAnswers.forEach((corrAnswer, index) => {\n const defaultAnswer = defaultAnswers[index];\n const answer = answers[index];\n\n // if there is a corresponding category at the same position in the given answer\n if (answer) {\n // if there is a corresponding category at the same position in the default answer\n if (defaultAnswer) {\n // if category's label (in default answer) was not editable\n // it means that this category values only one point (only the value can be changed)\n if (!defaultAnswer.editable && answer.interactive) {\n maxScore += 1;\n\n if (answer.value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n answer.correctness.label = 'correct';\n\n // if category's label (in default answer) was editable\n // it means that this category values 2 points (both label and value can be changed)\n } else if (defaultAnswer.editable && answer.interactive) {\n scoreForLabelAndValueEditable(answer, corrAnswer);\n } else if (!answer.interactive) {\n answer.correctness.value = 'correct';\n answer.correctness.label = 'correct';\n }\n } else {\n // if there is not a corresponding category at the same position in the default answer\n scoreForLabelAndValueEditable(answer, corrAnswer);\n }\n } else {\n // if there is not a corresponding category at the same position in the given answer\n // it means that the given answer has less categories than the correct answer\n maxScore += 2;\n }\n });\n\n result = maxScore ? score / maxScore : 0;\n } else {\n // if scoring type is \"all or nothing\"\n // the length on correct answers and length of given answer have to match\n result = correctAnswers.length === answers.length ? 1 : 0;\n\n if (result) {\n // if there is at least one difference between the correct answer and the given answer\n // the result will be incorrect\n correctAnswers.forEach((corrAnswer, index) => {\n const { value, label } = answers[index];\n\n if (value !== corrAnswer.value) {\n result = 0;\n answers[index].correctness.value = 'incorrect';\n }\n if (lowerCase(label) !== lowerCase(corrAnswer.label)) {\n result = 0;\n answers[index].correctness.label = 'incorrect';\n }\n });\n } else {\n answers = [\n ...answers.slice(0, correctAnswers.length),\n ...setCorrectness(answers.slice(correctAnswers.length), true),\n ];\n }\n }\n\n return {\n score: parseFloat(result.toFixed(2)),\n answers,\n };\n};\n\n// eslint-disable-next-line no-unused-vars\nexport const filterCategories = (categories) => (categories ? categories.map(({ deletable, ...rest }) => rest) : []);\n\nexport function model(question, session, env) {\n return new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n const {\n addCategoryEnabled,\n chartType,\n data,\n domain,\n graph,\n prompt,\n promptEnabled,\n range,\n rationale,\n title,\n rationaleEnabled,\n teacherInstructions,\n teacherInstructionsEnabled,\n correctAnswer,\n scoringType,\n studentNewCategoryDefaultLabel,\n } = normalizedQuestion;\n\n const correctInfo = { correctness: 'incorrect', score: '0%' };\n\n const base = {\n addCategoryEnabled,\n chartType,\n data: filterCategories(data),\n domain,\n graph,\n prompt: promptEnabled ? prompt : null,\n range,\n rationale,\n title,\n size: graph,\n correctness: correctInfo,\n disabled: env.mode !== 'gather',\n scoringType,\n studentNewCategoryDefaultLabel,\n };\n\n const answers = filterCategories(getScore(normalizedQuestion, session, env).answers);\n\n if (env.mode === 'view') {\n // eslint-disable-next-line no-unused-vars\n base.correctedAnswer = answers.map(({ correctness, ...rest }) => {\n return { ...rest, interactive: false };\n });\n\n base.addCategoryEnabled = false;\n }\n\n if (env.mode === 'evaluate') {\n base.correctedAnswer = answers;\n base.correctAnswer = correctAnswer;\n base.addCategoryEnabled = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n } else {\n base.rationale = null;\n base.teacherInstructions = null;\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n resolve({\n score: getScore(model, session, env).score,\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 const { correctAnswer } = question;\n\n let answers = correctAnswer && correctAnswer.data;\n\n // for IBX preview mode\n if (env.mode === 'gather') {\n const { data } = question;\n\n answers = ((correctAnswer && correctAnswer.data) || []).map((answer, index) => {\n return {\n ...data[index],\n ...answer,\n };\n });\n }\n\n resolve({\n answer: answers,\n id: '1',\n });\n } else {\n return resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}) => {\n const { correctAnswer, data } = model || {};\n const { data: correctData } = correctAnswer || {};\n const categories = correctData || [];\n\n const errors = {};\n const correctAnswerErrors = {};\n const categoryErrors = {};\n\n categories.forEach((category, index) => {\n const { label } = category;\n\n if (label === '' || label === '<div></div>') {\n categoryErrors[index] = 'Content should not be empty.';\n } else {\n const identicalAnswer = categories.slice(index + 1).some((c) => c.label === label);\n\n if (identicalAnswer) {\n categoryErrors[index + 1] = 'Content should be unique.';\n }\n }\n });\n\n if (categories.length < 1 || categories.length > 20) {\n correctAnswerErrors.categoriesError = 'The correct answer should include between 1 and 20 categories.';\n } else if (\n isEqual(\n data.map((category) => pick(category, 'value', 'label')),\n correctData.map((category) => pick(category, 'value', 'label')),\n )\n ) {\n correctAnswerErrors.identicalError = 'Correct answer should not be identical to the chart’s initial state';\n }\n\n if (!isEmpty(categoryErrors)) {\n errors.categoryErrors = categoryErrors;\n }\n\n if (!isEmpty(correctAnswerErrors)) {\n errors.correctAnswerErrors = correctAnswerErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","lowerCase","string","toLowerCase","checkLabelsEquality","givenAnswerLabel","correctAnswerLabel","setCorrectness","answers","partialScoring","map","answer","correctness","value","label","normalize","question","addCategoryEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","getScore","session","env","correctAnswer","data","initialData","scoringType","isPartialScoring","enabled","undefined","correctAnswers","defaultAnswers","filterCategories","result","maxScore","score","scoreForLabelAndValueEditable","corrAnswer","forEach","index","defaultAnswer","editable","interactive","length","slice","parseFloat","toFixed","categories","deletable","rest","model","Promise","resolve","normalizedQuestion","chartType","domain","graph","prompt","range","rationale","title","teacherInstructions","studentNewCategoryDefaultLabel","language","correctInfo","base","size","disabled","mode","correctedAnswer","role","outcome","empty","createCorrectResponseSession","id","validate","correctData","errors","correctAnswerErrors","categoryErrors","category","identicalAnswer","some","c","categoriesError","identicalError"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,kCAAN,CAAZ;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,MAAD;AAAA,SAAY,CAACA,MAAM,IAAI,EAAX,EAAeC,WAAf,EAAZ;AAAA,CAAlB;;AAEO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,gBAAD,EAAmBC,kBAAnB;AAAA,SACjCL,SAAS,CAACI,gBAAD,CAAT,KAAgCJ,SAAS,CAACK,kBAAD,CADR;AAAA,CAA5B;;;;AAGA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,OAAD,EAAUC,cAAV;AAAA,SAC5BD,OAAO,GACHA,OAAO,CAACE,GAAR,CAAY,UAACC,MAAD;AAAA,2CACPA,MADO;AAEVC,MAAAA,WAAW,EAAE;AACXC,QAAAA,KAAK,EAAEJ,cAAc,GAAG,WAAH,GAAiB,SAD3B;AAEXK,QAAAA,KAAK,EAAEL,cAAc,GAAG,WAAH,GAAiB;AAF3B;AAFH;AAAA,GAAZ,CADG,GAQH,EATwB;AAAA,CAAvB;;;;AAWA,IAAMM,SAAS,GAAG,SAAZA,SAAY,CAACC,QAAD;AAAA;AACvBC,IAAAA,kBAAkB,EAAE,IADG;AAEvBC,IAAAA,aAAa,EAAE,IAFQ;AAGvBC,IAAAA,gBAAgB,EAAE,IAHK;AAIvBC,IAAAA,0BAA0B,EAAE,IAJL;AAKvBC,IAAAA,0BAA0B,EAAE;AALL,KAMpBL,QANoB;AAAA,CAAlB;;;;AASA,IAAMM,QAAQ,GAAG,SAAXA,QAAW,CAACN,QAAD,EAAWO,OAAX,EAAiC;AAAA,MAAbC,GAAa,uEAAP,EAAO;AACvD,MAAQC,aAAR,GAA+DT,QAA/D,CAAQS,aAAR;AAAA,uBAA+DT,QAA/D,CAAuBU,IAAvB;AAAA,MAA6BC,WAA7B,+BAA2C,EAA3C;AAAA,MAA+CC,WAA/C,GAA+DZ,QAA/D,CAA+CY,WAA/C;;AAEA,MAAMC,gBAAgB,GAAGpB,gCAAeqB,OAAf,CACvB;AAAErB,IAAAA,cAAc,EAAEmB,WAAW,KAAKG,SAAhB,GAA4BH,WAAW,KAAK,iBAA5C,GAAgEA;AAAlF,GADuB,EAEvBJ,GAFuB,CAAzB;;AAKA,aAAsCC,aAAa,IAAI,EAAvD;AAAA,uBAAQC,IAAR;AAAA,MAAcM,cAAd,0BAA+B,EAA/B;;AACA,MAAMC,cAAc,GAAGC,gBAAgB,CAACP,WAAD,CAAvC;AAEA,MAAInB,OAAO,GAAGD,cAAc,CAAEgB,OAAO,IAAIA,OAAO,CAACZ,MAApB,IAA+BsB,cAAhC,EAAgDJ,gBAAhD,CAA5B;AAEA,MAAIM,MAAM,GAAG,CAAb;;AAEA,MAAIN,gBAAJ,EAAsB;AACpB;AACA;AACA;AACA,QAAIO,QAAQ,GAAG,CAAf;AACA,QAAIC,KAAK,GAAG,CAAZ;;AAEA,QAAMC,6BAA6B,GAAG,SAAhCA,6BAAgC,CAAC3B,MAAD,EAAS4B,UAAT,EAAwB;AAC5D,UAAQ1B,KAAR,GAAyBF,MAAzB,CAAQE,KAAR;AAAA,UAAeC,KAAf,GAAyBH,MAAzB,CAAeG,KAAf;AAEAsB,MAAAA,QAAQ,IAAI,CAAZ;;AAEA,UAAIvB,KAAK,KAAK0B,UAAU,CAAC1B,KAAzB,EAAgC;AAC9BwB,QAAAA,KAAK,IAAI,CAAT;AACA1B,QAAAA,MAAM,CAACC,WAAP,CAAmBC,KAAnB,GAA2B,SAA3B;AACD;;AAED,UAAIT,mBAAmB,CAACU,KAAD,EAAQyB,UAAU,CAACzB,KAAnB,CAAvB,EAAkD;AAChDuB,QAAAA,KAAK,IAAI,CAAT;AACA1B,QAAAA,MAAM,CAACC,WAAP,CAAmBE,KAAnB,GAA2B,SAA3B;AACD;AACF,KAdD,CAPoB,CAuBpB;;;AACAkB,IAAAA,cAAc,CAACQ,OAAf,CAAuB,UAACD,UAAD,EAAaE,KAAb,EAAuB;AAC5C,UAAMC,aAAa,GAAGT,cAAc,CAACQ,KAAD,CAApC;AACA,UAAM9B,MAAM,GAAGH,OAAO,CAACiC,KAAD,CAAtB,CAF4C,CAI5C;;AACA,UAAI9B,MAAJ,EAAY;AACV;AACA,YAAI+B,aAAJ,EAAmB;AACjB;AACA;AACA,cAAI,CAACA,aAAa,CAACC,QAAf,IAA2BhC,MAAM,CAACiC,WAAtC,EAAmD;AACjDR,YAAAA,QAAQ,IAAI,CAAZ;;AAEA,gBAAIzB,MAAM,CAACE,KAAP,KAAiB0B,UAAU,CAAC1B,KAAhC,EAAuC;AACrCwB,cAAAA,KAAK,IAAI,CAAT;AACA1B,cAAAA,MAAM,CAACC,WAAP,CAAmBC,KAAnB,GAA2B,SAA3B;AACD;;AACDF,YAAAA,MAAM,CAACC,WAAP,CAAmBE,KAAnB,GAA2B,SAA3B,CAPiD,CASjD;AACA;AACD,WAXD,MAWO,IAAI4B,aAAa,CAACC,QAAd,IAA0BhC,MAAM,CAACiC,WAArC,EAAkD;AACvDN,YAAAA,6BAA6B,CAAC3B,MAAD,EAAS4B,UAAT,CAA7B;AACD,WAFM,MAEA,IAAI,CAAC5B,MAAM,CAACiC,WAAZ,EAAyB;AAC9BjC,YAAAA,MAAM,CAACC,WAAP,CAAmBC,KAAnB,GAA2B,SAA3B;AACAF,YAAAA,MAAM,CAACC,WAAP,CAAmBE,KAAnB,GAA2B,SAA3B;AACD;AACF,SApBD,MAoBO;AACL;AACAwB,UAAAA,6BAA6B,CAAC3B,MAAD,EAAS4B,UAAT,CAA7B;AACD;AACF,OA1BD,MA0BO;AACL;AACA;AACAH,QAAAA,QAAQ,IAAI,CAAZ;AACD;AACF,KApCD;AAsCAD,IAAAA,MAAM,GAAGC,QAAQ,GAAGC,KAAK,GAAGD,QAAX,GAAsB,CAAvC;AACD,GA/DD,MA+DO;AACL;AACA;AACAD,IAAAA,MAAM,GAAGH,cAAc,CAACa,MAAf,KAA0BrC,OAAO,CAACqC,MAAlC,GAA2C,CAA3C,GAA+C,CAAxD;;AAEA,QAAIV,MAAJ,EAAY;AACV;AACA;AACAH,MAAAA,cAAc,CAACQ,OAAf,CAAuB,UAACD,UAAD,EAAaE,KAAb,EAAuB;AAC5C,6BAAyBjC,OAAO,CAACiC,KAAD,CAAhC;AAAA,YAAQ5B,KAAR,kBAAQA,KAAR;AAAA,YAAeC,KAAf,kBAAeA,KAAf;;AAEA,YAAID,KAAK,KAAK0B,UAAU,CAAC1B,KAAzB,EAAgC;AAC9BsB,UAAAA,MAAM,GAAG,CAAT;AACA3B,UAAAA,OAAO,CAACiC,KAAD,CAAP,CAAe7B,WAAf,CAA2BC,KAA3B,GAAmC,WAAnC;AACD;;AACD,YAAIZ,SAAS,CAACa,KAAD,CAAT,KAAqBb,SAAS,CAACsC,UAAU,CAACzB,KAAZ,CAAlC,EAAsD;AACpDqB,UAAAA,MAAM,GAAG,CAAT;AACA3B,UAAAA,OAAO,CAACiC,KAAD,CAAP,CAAe7B,WAAf,CAA2BE,KAA3B,GAAmC,WAAnC;AACD;AACF,OAXD;AAYD,KAfD,MAeO;AACLN,MAAAA,OAAO,iDACFA,OAAO,CAACsC,KAAR,CAAc,CAAd,EAAiBd,cAAc,CAACa,MAAhC,CADE,uCAEFtC,cAAc,CAACC,OAAO,CAACsC,KAAR,CAAcd,cAAc,CAACa,MAA7B,CAAD,EAAuC,IAAvC,CAFZ,EAAP;AAID;AACF;;AAED,SAAO;AACLR,IAAAA,KAAK,EAAEU,UAAU,CAACZ,MAAM,CAACa,OAAP,CAAe,CAAf,CAAD,CADZ;AAELxC,IAAAA,OAAO,EAAPA;AAFK,GAAP;AAID,CA9GM,C,CAgHP;;;;;AACO,IAAM0B,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACe,UAAD;AAAA,SAAiBA,UAAU,GAAGA,UAAU,CAACvC,GAAX,CAAe;AAAA,QAAGwC,SAAH,SAAGA,SAAH;AAAA,QAAiBC,IAAjB;AAAA,WAA4BA,IAA5B;AAAA,GAAf,CAAH,GAAsD,EAAjF;AAAA,CAAzB;;;;AAEA,SAASC,KAAT,CAAepC,QAAf,EAAyBO,OAAzB,EAAkCC,GAAlC,EAAuC;AAC5C,SAAO,IAAI6B,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAMC,kBAAkB,GAAGxC,SAAS,CAACC,QAAD,CAApC;AACA,QACEC,kBADF,GAkBIsC,kBAlBJ,CACEtC,kBADF;AAAA,QAEEuC,SAFF,GAkBID,kBAlBJ,CAEEC,SAFF;AAAA,QAGE9B,IAHF,GAkBI6B,kBAlBJ,CAGE7B,IAHF;AAAA,QAIE+B,MAJF,GAkBIF,kBAlBJ,CAIEE,MAJF;AAAA,QAKEC,KALF,GAkBIH,kBAlBJ,CAKEG,KALF;AAAA,QAMEC,MANF,GAkBIJ,kBAlBJ,CAMEI,MANF;AAAA,QAOEzC,aAPF,GAkBIqC,kBAlBJ,CAOErC,aAPF;AAAA,QAQE0C,KARF,GAkBIL,kBAlBJ,CAQEK,KARF;AAAA,QASEC,SATF,GAkBIN,kBAlBJ,CASEM,SATF;AAAA,QAUEC,KAVF,GAkBIP,kBAlBJ,CAUEO,KAVF;AAAA,QAWE3C,gBAXF,GAkBIoC,kBAlBJ,CAWEpC,gBAXF;AAAA,QAYE4C,mBAZF,GAkBIR,kBAlBJ,CAYEQ,mBAZF;AAAA,QAaE3C,0BAbF,GAkBImC,kBAlBJ,CAaEnC,0BAbF;AAAA,QAcEK,aAdF,GAkBI8B,kBAlBJ,CAcE9B,aAdF;AAAA,QAeEG,WAfF,GAkBI2B,kBAlBJ,CAeE3B,WAfF;AAAA,QAgBEoC,8BAhBF,GAkBIT,kBAlBJ,CAgBES,8BAhBF;AAAA,QAiBEC,QAjBF,GAkBIV,kBAlBJ,CAiBEU,QAjBF;AAoBA,QAAMC,WAAW,GAAG;AAAEtD,MAAAA,WAAW,EAAE,WAAf;AAA4ByB,MAAAA,KAAK,EAAE;AAAnC,KAApB;AAEA,QAAM8B,IAAI,GAAG;AACXlD,MAAAA,kBAAkB,EAAlBA,kBADW;AAEXuC,MAAAA,SAAS,EAATA,SAFW;AAGX9B,MAAAA,IAAI,EAAEQ,gBAAgB,CAACR,IAAD,CAHX;AAIX+B,MAAAA,MAAM,EAANA,MAJW;AAKXC,MAAAA,KAAK,EAALA,KALW;AAMXC,MAAAA,MAAM,EAAEzC,aAAa,GAAGyC,MAAH,GAAY,IANtB;AAOXC,MAAAA,KAAK,EAALA,KAPW;AAQXC,MAAAA,SAAS,EAATA,SARW;AASXC,MAAAA,KAAK,EAALA,KATW;AAUXM,MAAAA,IAAI,EAAEV,KAVK;AAWX9C,MAAAA,WAAW,EAAEsD,WAXF;AAYXG,MAAAA,QAAQ,EAAE7C,GAAG,CAAC8C,IAAJ,KAAa,QAZZ;AAaX1C,MAAAA,WAAW,EAAXA,WAbW;AAcXoC,MAAAA,8BAA8B,EAA9BA,8BAdW;AAeXC,MAAAA,QAAQ,EAARA;AAfW,KAAb;AAkBA,QAAMzD,OAAO,GAAG0B,gBAAgB,CAACZ,QAAQ,CAACiC,kBAAD,EAAqBhC,OAArB,EAA8BC,GAA9B,CAAR,CAA2ChB,OAA5C,CAAhC;;AAEA,QAAIgB,GAAG,CAAC8C,IAAJ,KAAa,MAAjB,EAAyB;AACvB;AACAH,MAAAA,IAAI,CAACI,eAAL,GAAuB/D,OAAO,CAACE,GAAR,CAAY,iBAA8B;AAAA,YAA3BE,WAA2B,SAA3BA,WAA2B;AAAA,YAAXuC,IAAW;AAC/D,+CAAYA,IAAZ;AAAkBP,UAAAA,WAAW,EAAE;AAA/B;AACD,OAFsB,CAAvB;AAIAuB,MAAAA,IAAI,CAAClD,kBAAL,GAA0B,KAA1B;AACD;;AAED,QAAIO,GAAG,CAAC8C,IAAJ,KAAa,UAAjB,EAA6B;AAC3BH,MAAAA,IAAI,CAACI,eAAL,GAAuB/D,OAAvB;AACA2D,MAAAA,IAAI,CAAC1C,aAAL,GAAqBA,aAArB;AACA0C,MAAAA,IAAI,CAAClD,kBAAL,GAA0B,KAA1B;AACD;;AAED,QAAIO,GAAG,CAACgD,IAAJ,KAAa,YAAb,KAA8BhD,GAAG,CAAC8C,IAAJ,KAAa,MAAb,IAAuB9C,GAAG,CAAC8C,IAAJ,KAAa,UAAlE,CAAJ,EAAmF;AACjFH,MAAAA,IAAI,CAACN,SAAL,GAAiB1C,gBAAgB,GAAG0C,SAAH,GAAe,IAAhD;AACAM,MAAAA,IAAI,CAACJ,mBAAL,GAA2B3C,0BAA0B,GAAG2C,mBAAH,GAAyB,IAA9E;AACD,KAHD,MAGO;AACLI,MAAAA,IAAI,CAACN,SAAL,GAAiB,IAAjB;AACAM,MAAAA,IAAI,CAACJ,mBAAL,GAA2B,IAA3B;AACD;;AAED/D,IAAAA,GAAG,CAAC,QAAD,EAAWmE,IAAX,CAAH;AACAb,IAAAA,OAAO,CAACa,IAAD,CAAP;AACD,GArEM,CAAP;AAsED;;AAEM,SAASM,OAAT,CAAiBrB,KAAjB,EAAwB7B,OAAxB,EAAiCC,GAAjC,EAAsC;AAC3C,SAAO,IAAI6B,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9BA,IAAAA,OAAO,CAAC;AACNjB,MAAAA,KAAK,EAAEf,QAAQ,CAAC8B,KAAD,EAAQ7B,OAAR,EAAiBC,GAAjB,CAAR,CAA8Ba,KAD/B;AAENqC,MAAAA,KAAK,EAAE,CAACnD,OAAD,IAAY,yBAAQA,OAAR;AAFb,KAAD,CAAP;AAID,GALM,CAAP;AAMD;;AAEM,IAAMoD,4BAA4B,GAAG,SAA/BA,4BAA+B,CAAC3D,QAAD,EAAWQ,GAAX,EAAmB;AAC7D,SAAO,IAAI6B,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAI9B,GAAG,CAAC8C,IAAJ,KAAa,UAAb,IAA2B9C,GAAG,CAACgD,IAAJ,KAAa,YAA5C,EAA0D;AACxD,UAAQ/C,aAAR,GAA0BT,QAA1B,CAAQS,aAAR;AAEA,UAAIjB,OAAO,GAAGiB,aAAa,IAAIA,aAAa,CAACC,IAA7C,CAHwD,CAKxD;;AACA,UAAIF,GAAG,CAAC8C,IAAJ,KAAa,QAAjB,EAA2B;AACzB,YAAQ5C,IAAR,GAAiBV,QAAjB,CAAQU,IAAR;AAEAlB,QAAAA,OAAO,GAAG,CAAEiB,aAAa,IAAIA,aAAa,CAACC,IAAhC,IAAyC,EAA1C,EAA8ChB,GAA9C,CAAkD,UAACC,MAAD,EAAS8B,KAAT,EAAmB;AAC7E,iDACKf,IAAI,CAACe,KAAD,CADT,GAEK9B,MAFL;AAID,SALS,CAAV;AAMD;;AAED2C,MAAAA,OAAO,CAAC;AACN3C,QAAAA,MAAM,EAAEH,OADF;AAENoE,QAAAA,EAAE,EAAE;AAFE,OAAD,CAAP;AAID,KArBD,MAqBO;AACL,aAAOtB,OAAO,CAAC,IAAD,CAAd;AACD;AACF,GAzBM,CAAP;AA0BD,CA3BM;;;;AA6BA,IAAMuB,QAAQ,GAAG,SAAXA,QAAW,GAAgB;AAAA,MAAfzB,KAAe,uEAAP,EAAO;;AACtC,cAAgCA,KAAK,IAAI,EAAzC;AAAA,MAAQ3B,aAAR,SAAQA,aAAR;AAAA,MAAuBC,IAAvB,SAAuBA,IAAvB;;AACA,cAA8BD,aAAa,IAAI,EAA/C;AAAA,MAAcqD,WAAd,SAAQpD,IAAR;;AACA,MAAMuB,UAAU,GAAG6B,WAAW,IAAI,EAAlC;AAEA,MAAMC,MAAM,GAAG,EAAf;AACA,MAAMC,mBAAmB,GAAG,EAA5B;AACA,MAAMC,cAAc,GAAG,EAAvB;AAEAhC,EAAAA,UAAU,CAACT,OAAX,CAAmB,UAAC0C,QAAD,EAAWzC,KAAX,EAAqB;AACtC,QAAQ3B,KAAR,GAAkBoE,QAAlB,CAAQpE,KAAR;;AAEA,QAAIA,KAAK,KAAK,EAAV,IAAgBA,KAAK,KAAK,aAA9B,EAA6C;AAC3CmE,MAAAA,cAAc,CAACxC,KAAD,CAAd,GAAwB,8BAAxB;AACD,KAFD,MAEO;AACL,UAAM0C,eAAe,GAAGlC,UAAU,CAACH,KAAX,CAAiBL,KAAK,GAAG,CAAzB,EAA4B2C,IAA5B,CAAiC,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACvE,KAAF,KAAYA,KAAnB;AAAA,OAAjC,CAAxB;;AAEA,UAAIqE,eAAJ,EAAqB;AACnBF,QAAAA,cAAc,CAACxC,KAAK,GAAG,CAAT,CAAd,GAA4B,2BAA5B;AACD;AACF;AACF,GAZD;;AAcA,MAAIQ,UAAU,CAACJ,MAAX,GAAoB,CAApB,IAAyBI,UAAU,CAACJ,MAAX,GAAoB,EAAjD,EAAqD;AACnDmC,IAAAA,mBAAmB,CAACM,eAApB,GAAsC,gEAAtC;AACD,GAFD,MAEO,IACL,yBACE5D,IAAI,CAAChB,GAAL,CAAS,UAACwE,QAAD;AAAA,WAAc,sBAAKA,QAAL,EAAe,OAAf,EAAwB,OAAxB,CAAd;AAAA,GAAT,CADF,EAEEJ,WAAW,CAACpE,GAAZ,CAAgB,UAACwE,QAAD;AAAA,WAAc,sBAAKA,QAAL,EAAe,OAAf,EAAwB,OAAxB,CAAd;AAAA,GAAhB,CAFF,CADK,EAKL;AACAF,IAAAA,mBAAmB,CAACO,cAApB,GAAqC,qEAArC;AACD;;AAED,MAAI,CAAC,yBAAQN,cAAR,CAAL,EAA8B;AAC5BF,IAAAA,MAAM,CAACE,cAAP,GAAwBA,cAAxB;AACD;;AAED,MAAI,CAAC,yBAAQD,mBAAR,CAAL,EAAmC;AACjCD,IAAAA,MAAM,CAACC,mBAAP,GAA6BA,mBAA7B;AACD;;AAED,SAAOD,MAAP;AACD,CA3CM","sourcesContent":["import debug from 'debug';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport pick from 'lodash/pick';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst lowerCase = (string) => (string || '').toLowerCase();\n\nexport const checkLabelsEquality = (givenAnswerLabel, correctAnswerLabel) =>\n lowerCase(givenAnswerLabel) === lowerCase(correctAnswerLabel);\n\nexport const setCorrectness = (answers, partialScoring) =>\n answers\n ? answers.map((answer) => ({\n ...answer,\n correctness: {\n value: partialScoring ? 'incorrect' : 'correct',\n label: partialScoring ? 'incorrect' : 'correct',\n },\n }))\n : [];\n\nexport const normalize = (question) => ({\n addCategoryEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\nexport const getScore = (question, session, env = {}) => {\n const { correctAnswer, data: initialData = [], scoringType } = question;\n\n const isPartialScoring = partialScoring.enabled(\n { partialScoring: scoringType !== undefined ? scoringType === 'partial scoring' : scoringType },\n env,\n );\n\n const { data: correctAnswers = [] } = correctAnswer || {};\n const defaultAnswers = filterCategories(initialData);\n\n let answers = setCorrectness((session && session.answer) || defaultAnswers, isPartialScoring);\n\n let result = 0;\n\n if (isPartialScoring) {\n // if score type is \"partial scoring\"\n // maxScore is calculated based on the correct response\n // score is calculated based on the given response\n let maxScore = 0;\n let score = 0;\n\n const scoreForLabelAndValueEditable = (answer, corrAnswer) => {\n const { value, label } = answer;\n\n maxScore += 2;\n\n if (value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n\n if (checkLabelsEquality(label, corrAnswer.label)) {\n score += 1;\n answer.correctness.label = 'correct';\n }\n };\n\n // if given answer has more categories than the correct answers, the \"extra\" will be ignored\n correctAnswers.forEach((corrAnswer, index) => {\n const defaultAnswer = defaultAnswers[index];\n const answer = answers[index];\n\n // if there is a corresponding category at the same position in the given answer\n if (answer) {\n // if there is a corresponding category at the same position in the default answer\n if (defaultAnswer) {\n // if category's label (in default answer) was not editable\n // it means that this category values only one point (only the value can be changed)\n if (!defaultAnswer.editable && answer.interactive) {\n maxScore += 1;\n\n if (answer.value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n answer.correctness.label = 'correct';\n\n // if category's label (in default answer) was editable\n // it means that this category values 2 points (both label and value can be changed)\n } else if (defaultAnswer.editable && answer.interactive) {\n scoreForLabelAndValueEditable(answer, corrAnswer);\n } else if (!answer.interactive) {\n answer.correctness.value = 'correct';\n answer.correctness.label = 'correct';\n }\n } else {\n // if there is not a corresponding category at the same position in the default answer\n scoreForLabelAndValueEditable(answer, corrAnswer);\n }\n } else {\n // if there is not a corresponding category at the same position in the given answer\n // it means that the given answer has less categories than the correct answer\n maxScore += 2;\n }\n });\n\n result = maxScore ? score / maxScore : 0;\n } else {\n // if scoring type is \"all or nothing\"\n // the length on correct answers and length of given answer have to match\n result = correctAnswers.length === answers.length ? 1 : 0;\n\n if (result) {\n // if there is at least one difference between the correct answer and the given answer\n // the result will be incorrect\n correctAnswers.forEach((corrAnswer, index) => {\n const { value, label } = answers[index];\n\n if (value !== corrAnswer.value) {\n result = 0;\n answers[index].correctness.value = 'incorrect';\n }\n if (lowerCase(label) !== lowerCase(corrAnswer.label)) {\n result = 0;\n answers[index].correctness.label = 'incorrect';\n }\n });\n } else {\n answers = [\n ...answers.slice(0, correctAnswers.length),\n ...setCorrectness(answers.slice(correctAnswers.length), true),\n ];\n }\n }\n\n return {\n score: parseFloat(result.toFixed(2)),\n answers,\n };\n};\n\n// eslint-disable-next-line no-unused-vars\nexport const filterCategories = (categories) => (categories ? categories.map(({ deletable, ...rest }) => rest) : []);\n\nexport function model(question, session, env) {\n return new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n const {\n addCategoryEnabled,\n chartType,\n data,\n domain,\n graph,\n prompt,\n promptEnabled,\n range,\n rationale,\n title,\n rationaleEnabled,\n teacherInstructions,\n teacherInstructionsEnabled,\n correctAnswer,\n scoringType,\n studentNewCategoryDefaultLabel,\n language\n } = normalizedQuestion;\n\n const correctInfo = { correctness: 'incorrect', score: '0%' };\n\n const base = {\n addCategoryEnabled,\n chartType,\n data: filterCategories(data),\n domain,\n graph,\n prompt: promptEnabled ? prompt : null,\n range,\n rationale,\n title,\n size: graph,\n correctness: correctInfo,\n disabled: env.mode !== 'gather',\n scoringType,\n studentNewCategoryDefaultLabel,\n language\n };\n\n const answers = filterCategories(getScore(normalizedQuestion, session, env).answers);\n\n if (env.mode === 'view') {\n // eslint-disable-next-line no-unused-vars\n base.correctedAnswer = answers.map(({ correctness, ...rest }) => {\n return { ...rest, interactive: false };\n });\n\n base.addCategoryEnabled = false;\n }\n\n if (env.mode === 'evaluate') {\n base.correctedAnswer = answers;\n base.correctAnswer = correctAnswer;\n base.addCategoryEnabled = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n } else {\n base.rationale = null;\n base.teacherInstructions = null;\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n resolve({\n score: getScore(model, session, env).score,\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 const { correctAnswer } = question;\n\n let answers = correctAnswer && correctAnswer.data;\n\n // for IBX preview mode\n if (env.mode === 'gather') {\n const { data } = question;\n\n answers = ((correctAnswer && correctAnswer.data) || []).map((answer, index) => {\n return {\n ...data[index],\n ...answer,\n };\n });\n }\n\n resolve({\n answer: answers,\n id: '1',\n });\n } else {\n return resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}) => {\n const { correctAnswer, data } = model || {};\n const { data: correctData } = correctAnswer || {};\n const categories = correctData || [];\n\n const errors = {};\n const correctAnswerErrors = {};\n const categoryErrors = {};\n\n categories.forEach((category, index) => {\n const { label } = category;\n\n if (label === '' || label === '<div></div>') {\n categoryErrors[index] = 'Content should not be empty.';\n } else {\n const identicalAnswer = categories.slice(index + 1).some((c) => c.label === label);\n\n if (identicalAnswer) {\n categoryErrors[index + 1] = 'Content should be unique.';\n }\n }\n });\n\n if (categories.length < 1 || categories.length > 20) {\n correctAnswerErrors.categoriesError = 'The correct answer should include between 1 and 20 categories.';\n } else if (\n isEqual(\n data.map((category) => pick(category, 'value', 'label')),\n correctData.map((category) => pick(category, 'value', 'label')),\n )\n ) {\n correctAnswerErrors.identicalError = 'Correct answer should not be identical to the chart’s initial state';\n }\n\n if (!isEmpty(categoryErrors)) {\n errors.categoryErrors = categoryErrors;\n }\n\n if (!isEmpty(correctAnswerErrors)) {\n errors.correctAnswerErrors = correctAnswerErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
|
package/controller/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/charting-controller",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.1.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"test": "./node_modules/.bin/jest"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@pie-lib/controller-utils": "^0.2.
|
|
13
|
-
"@pie-lib/feedback": "^0.4.
|
|
12
|
+
"@pie-lib/controller-utils": "^0.2.44",
|
|
13
|
+
"@pie-lib/feedback": "^0.4.43",
|
|
14
14
|
"debug": "^4.1.1",
|
|
15
15
|
"lodash": "^4.17.15"
|
|
16
16
|
},
|
package/docs/config-schema.json
CHANGED
|
@@ -208,6 +208,22 @@
|
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
},
|
|
211
|
+
"mathMlOptions": {
|
|
212
|
+
"title": "ConfigureMathMLProp",
|
|
213
|
+
"type": "object",
|
|
214
|
+
"properties": {
|
|
215
|
+
"mmlOutput": {
|
|
216
|
+
"description": "Indicates if model should have mathML output instead of latex",
|
|
217
|
+
"type": "number",
|
|
218
|
+
"title": "mmlOutput"
|
|
219
|
+
},
|
|
220
|
+
"mmlEditing": {
|
|
221
|
+
"description": "Indicates if mathML that's already in model should be editable",
|
|
222
|
+
"type": "number",
|
|
223
|
+
"title": "mmlEditing"
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
},
|
|
211
227
|
"maxImageWidth": {
|
|
212
228
|
"title": "ConfigureMaxImageDimensionsProp",
|
|
213
229
|
"type": "object",
|
|
@@ -384,6 +400,66 @@
|
|
|
384
400
|
"type": "string",
|
|
385
401
|
"title": "chartTypeLabel"
|
|
386
402
|
},
|
|
403
|
+
"language": {
|
|
404
|
+
"title": "ConfigurePropWithEnabled",
|
|
405
|
+
"type": "object",
|
|
406
|
+
"properties": {
|
|
407
|
+
"settings": {
|
|
408
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
409
|
+
"type": "boolean",
|
|
410
|
+
"title": "settings"
|
|
411
|
+
},
|
|
412
|
+
"label": {
|
|
413
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel",
|
|
414
|
+
"type": "string",
|
|
415
|
+
"title": "label"
|
|
416
|
+
},
|
|
417
|
+
"enabled": {
|
|
418
|
+
"description": "Indicates the value of the item if it affects config-ui\n(eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)",
|
|
419
|
+
"type": "boolean",
|
|
420
|
+
"title": "enabled"
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
"languageChoices": {
|
|
425
|
+
"description": "Language choices configuration\nOnly available if language is enabled",
|
|
426
|
+
"type": "object",
|
|
427
|
+
"properties": {
|
|
428
|
+
"label": {
|
|
429
|
+
"type": "string",
|
|
430
|
+
"title": "label"
|
|
431
|
+
},
|
|
432
|
+
"options": {
|
|
433
|
+
"type": "array",
|
|
434
|
+
"items": {
|
|
435
|
+
"title": "ConfigureLanguageOptionsProp",
|
|
436
|
+
"type": "object",
|
|
437
|
+
"properties": {
|
|
438
|
+
"value": {
|
|
439
|
+
"description": "Value of the language option",
|
|
440
|
+
"type": "string",
|
|
441
|
+
"title": "value"
|
|
442
|
+
},
|
|
443
|
+
"label": {
|
|
444
|
+
"description": "Label of the language option",
|
|
445
|
+
"type": "string",
|
|
446
|
+
"title": "label"
|
|
447
|
+
}
|
|
448
|
+
},
|
|
449
|
+
"required": [
|
|
450
|
+
"label",
|
|
451
|
+
"value"
|
|
452
|
+
]
|
|
453
|
+
},
|
|
454
|
+
"title": "options"
|
|
455
|
+
}
|
|
456
|
+
},
|
|
457
|
+
"required": [
|
|
458
|
+
"label",
|
|
459
|
+
"options"
|
|
460
|
+
],
|
|
461
|
+
"title": "languageChoices"
|
|
462
|
+
},
|
|
387
463
|
"showPrompt": {
|
|
388
464
|
"description": "Determines whether prompt field will be displayed or not",
|
|
389
465
|
"default": true,
|
|
@@ -556,6 +632,22 @@
|
|
|
556
632
|
}
|
|
557
633
|
}
|
|
558
634
|
},
|
|
635
|
+
"ConfigureMathMLProp": {
|
|
636
|
+
"title": "ConfigureMathMLProp",
|
|
637
|
+
"type": "object",
|
|
638
|
+
"properties": {
|
|
639
|
+
"mmlOutput": {
|
|
640
|
+
"description": "Indicates if model should have mathML output instead of latex",
|
|
641
|
+
"type": "number",
|
|
642
|
+
"title": "mmlOutput"
|
|
643
|
+
},
|
|
644
|
+
"mmlEditing": {
|
|
645
|
+
"description": "Indicates if mathML that's already in model should be editable",
|
|
646
|
+
"type": "number",
|
|
647
|
+
"title": "mmlEditing"
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
},
|
|
559
651
|
"ConfigureMaxImageDimensionsProp": {
|
|
560
652
|
"title": "ConfigureMaxImageDimensionsProp",
|
|
561
653
|
"type": "object",
|
|
@@ -710,6 +802,26 @@
|
|
|
710
802
|
"lineDot",
|
|
711
803
|
"linePlot"
|
|
712
804
|
]
|
|
805
|
+
},
|
|
806
|
+
"ConfigureLanguageOptionsProp": {
|
|
807
|
+
"title": "ConfigureLanguageOptionsProp",
|
|
808
|
+
"type": "object",
|
|
809
|
+
"properties": {
|
|
810
|
+
"value": {
|
|
811
|
+
"description": "Value of the language option",
|
|
812
|
+
"type": "string",
|
|
813
|
+
"title": "value"
|
|
814
|
+
},
|
|
815
|
+
"label": {
|
|
816
|
+
"description": "Label of the language option",
|
|
817
|
+
"type": "string",
|
|
818
|
+
"title": "label"
|
|
819
|
+
}
|
|
820
|
+
},
|
|
821
|
+
"required": [
|
|
822
|
+
"label",
|
|
823
|
+
"value"
|
|
824
|
+
]
|
|
713
825
|
}
|
|
714
826
|
},
|
|
715
827
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
@@ -160,6 +160,18 @@ Indicates if new category is interactive
|
|
|
160
160
|
|
|
161
161
|
Indicates if new category is editable
|
|
162
162
|
|
|
163
|
+
# `mathMlOptions` (object)
|
|
164
|
+
|
|
165
|
+
Properties of the `mathMlOptions` object:
|
|
166
|
+
|
|
167
|
+
## `mmlOutput` (number)
|
|
168
|
+
|
|
169
|
+
Indicates if model should have mathML output instead of latex
|
|
170
|
+
|
|
171
|
+
## `mmlEditing` (number)
|
|
172
|
+
|
|
173
|
+
Indicates if mathML that's already in model should be editable
|
|
174
|
+
|
|
163
175
|
# `maxImageWidth` (object)
|
|
164
176
|
|
|
165
177
|
Properties of the `maxImageWidth` object:
|
|
@@ -288,6 +300,46 @@ Indicates if line plot is available and the label used for it.
|
|
|
288
300
|
|
|
289
301
|
Indicates the label for the chart type
|
|
290
302
|
|
|
303
|
+
# `language` (object)
|
|
304
|
+
|
|
305
|
+
Properties of the `language` object:
|
|
306
|
+
|
|
307
|
+
## `settings` (boolean)
|
|
308
|
+
|
|
309
|
+
Indicates if the item has to be displayed in the Settings Panel
|
|
310
|
+
|
|
311
|
+
## `label` (string)
|
|
312
|
+
|
|
313
|
+
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
314
|
+
|
|
315
|
+
## `enabled` (boolean)
|
|
316
|
+
|
|
317
|
+
Indicates the value of the item if it affects config-ui
|
|
318
|
+
(eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
|
|
319
|
+
|
|
320
|
+
# `languageChoices` (object)
|
|
321
|
+
|
|
322
|
+
Language choices configuration
|
|
323
|
+
Only available if language is enabled
|
|
324
|
+
|
|
325
|
+
Properties of the `languageChoices` object:
|
|
326
|
+
|
|
327
|
+
## `label` (string, required)
|
|
328
|
+
|
|
329
|
+
## `options` (array, required)
|
|
330
|
+
|
|
331
|
+
The object is an array with all elements of the type `object`.
|
|
332
|
+
|
|
333
|
+
The array object has the following properties:
|
|
334
|
+
|
|
335
|
+
### `value` (string, required)
|
|
336
|
+
|
|
337
|
+
Value of the language option
|
|
338
|
+
|
|
339
|
+
### `label` (string, required)
|
|
340
|
+
|
|
341
|
+
Label of the language option
|
|
342
|
+
|
|
291
343
|
# `showPrompt` (boolean)
|
|
292
344
|
|
|
293
345
|
Determines whether prompt field will be displayed or not
|
|
@@ -428,6 +480,18 @@ Indicates if new category is interactive
|
|
|
428
480
|
|
|
429
481
|
Indicates if new category is editable
|
|
430
482
|
|
|
483
|
+
## `ConfigureMathMLProp` (object)
|
|
484
|
+
|
|
485
|
+
Properties of the `ConfigureMathMLProp` object:
|
|
486
|
+
|
|
487
|
+
### `mmlOutput` (number)
|
|
488
|
+
|
|
489
|
+
Indicates if model should have mathML output instead of latex
|
|
490
|
+
|
|
491
|
+
### `mmlEditing` (number)
|
|
492
|
+
|
|
493
|
+
Indicates if mathML that's already in model should be editable
|
|
494
|
+
|
|
431
495
|
## `ConfigureMaxImageDimensionsProp` (object)
|
|
432
496
|
|
|
433
497
|
Properties of the `ConfigureMaxImageDimensionsProp` object:
|
|
@@ -538,4 +602,16 @@ Indicates if dot plot is available and the label used for it.
|
|
|
538
602
|
|
|
539
603
|
### `linePlot` (string, required)
|
|
540
604
|
|
|
541
|
-
Indicates if line plot is available and the label used for it.
|
|
605
|
+
Indicates if line plot is available and the label used for it.
|
|
606
|
+
|
|
607
|
+
## `ConfigureLanguageOptionsProp` (object)
|
|
608
|
+
|
|
609
|
+
Properties of the `ConfigureLanguageOptionsProp` object:
|
|
610
|
+
|
|
611
|
+
### `value` (string, required)
|
|
612
|
+
|
|
613
|
+
Value of the language option
|
|
614
|
+
|
|
615
|
+
### `label` (string, required)
|
|
616
|
+
|
|
617
|
+
Label of the language option
|
package/docs/pie-schema.json
CHANGED
|
@@ -523,6 +523,11 @@
|
|
|
523
523
|
"type": "string",
|
|
524
524
|
"title": "studentNewCategoryDefaultLabel"
|
|
525
525
|
},
|
|
526
|
+
"language": {
|
|
527
|
+
"description": "Indicates the language of the component\nSupported options: en, es, en_US, en-US, es_ES, es-ES, es_MX, es-MX",
|
|
528
|
+
"type": "string",
|
|
529
|
+
"title": "language"
|
|
530
|
+
},
|
|
526
531
|
"id": {
|
|
527
532
|
"description": "Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.",
|
|
528
533
|
"type": "string",
|
|
@@ -659,6 +664,22 @@
|
|
|
659
664
|
}
|
|
660
665
|
}
|
|
661
666
|
},
|
|
667
|
+
"ConfigureMathMLProp": {
|
|
668
|
+
"title": "ConfigureMathMLProp",
|
|
669
|
+
"type": "object",
|
|
670
|
+
"properties": {
|
|
671
|
+
"mmlOutput": {
|
|
672
|
+
"description": "Indicates if model should have mathML output instead of latex",
|
|
673
|
+
"type": "number",
|
|
674
|
+
"title": "mmlOutput"
|
|
675
|
+
},
|
|
676
|
+
"mmlEditing": {
|
|
677
|
+
"description": "Indicates if mathML that's already in model should be editable",
|
|
678
|
+
"type": "number",
|
|
679
|
+
"title": "mmlEditing"
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
},
|
|
662
683
|
"ConfigureMaxImageDimensionsProp": {
|
|
663
684
|
"title": "ConfigureMaxImageDimensionsProp",
|
|
664
685
|
"type": "object",
|
|
@@ -814,6 +835,26 @@
|
|
|
814
835
|
"linePlot"
|
|
815
836
|
]
|
|
816
837
|
},
|
|
838
|
+
"ConfigureLanguageOptionsProp": {
|
|
839
|
+
"title": "ConfigureLanguageOptionsProp",
|
|
840
|
+
"type": "object",
|
|
841
|
+
"properties": {
|
|
842
|
+
"value": {
|
|
843
|
+
"description": "Value of the language option",
|
|
844
|
+
"type": "string",
|
|
845
|
+
"title": "value"
|
|
846
|
+
},
|
|
847
|
+
"label": {
|
|
848
|
+
"description": "Label of the language option",
|
|
849
|
+
"type": "string",
|
|
850
|
+
"title": "label"
|
|
851
|
+
}
|
|
852
|
+
},
|
|
853
|
+
"required": [
|
|
854
|
+
"label",
|
|
855
|
+
"value"
|
|
856
|
+
]
|
|
857
|
+
},
|
|
817
858
|
"Answer": {
|
|
818
859
|
"title": "Answer",
|
|
819
860
|
"type": "object",
|
package/docs/pie-schema.json.md
CHANGED
|
@@ -182,6 +182,11 @@ Indicates if teacher can enable/disable addCategoryEnabled
|
|
|
182
182
|
|
|
183
183
|
Label for new category in correct response and player's chart
|
|
184
184
|
|
|
185
|
+
# `language` (string)
|
|
186
|
+
|
|
187
|
+
Indicates the language of the component
|
|
188
|
+
Supported options: en, es, en_US, en-US, es_ES, es-ES, es_MX, es-MX
|
|
189
|
+
|
|
185
190
|
# `id` (string, required)
|
|
186
191
|
|
|
187
192
|
Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.
|
|
@@ -278,6 +283,18 @@ Indicates if new category is interactive
|
|
|
278
283
|
|
|
279
284
|
Indicates if new category is editable
|
|
280
285
|
|
|
286
|
+
## `ConfigureMathMLProp` (object)
|
|
287
|
+
|
|
288
|
+
Properties of the `ConfigureMathMLProp` object:
|
|
289
|
+
|
|
290
|
+
### `mmlOutput` (number)
|
|
291
|
+
|
|
292
|
+
Indicates if model should have mathML output instead of latex
|
|
293
|
+
|
|
294
|
+
### `mmlEditing` (number)
|
|
295
|
+
|
|
296
|
+
Indicates if mathML that's already in model should be editable
|
|
297
|
+
|
|
281
298
|
## `ConfigureMaxImageDimensionsProp` (object)
|
|
282
299
|
|
|
283
300
|
Properties of the `ConfigureMaxImageDimensionsProp` object:
|
|
@@ -390,6 +407,18 @@ Indicates if dot plot is available and the label used for it.
|
|
|
390
407
|
|
|
391
408
|
Indicates if line plot is available and the label used for it.
|
|
392
409
|
|
|
410
|
+
## `ConfigureLanguageOptionsProp` (object)
|
|
411
|
+
|
|
412
|
+
Properties of the `ConfigureLanguageOptionsProp` object:
|
|
413
|
+
|
|
414
|
+
### `value` (string, required)
|
|
415
|
+
|
|
416
|
+
Value of the language option
|
|
417
|
+
|
|
418
|
+
### `label` (string, required)
|
|
419
|
+
|
|
420
|
+
Label of the language option
|
|
421
|
+
|
|
393
422
|
## `Answer` (object)
|
|
394
423
|
|
|
395
424
|
Properties of the `Answer` object:
|
package/lib/main.js
CHANGED
|
@@ -94,7 +94,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
94
94
|
studentNewCategoryDefaultLabel = model.studentNewCategoryDefaultLabel,
|
|
95
95
|
rationale = model.rationale,
|
|
96
96
|
correctedAnswer = model.correctedAnswer,
|
|
97
|
-
correctAnswer = model.correctAnswer
|
|
97
|
+
correctAnswer = model.correctAnswer,
|
|
98
|
+
language = model.language;
|
|
98
99
|
var correctData = correctAnswer && correctAnswer.data ? correctAnswer.data.map(function (data) {
|
|
99
100
|
return _objectSpread(_objectSpread({}, data), {}, {
|
|
100
101
|
interactive: false,
|
|
@@ -130,7 +131,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
130
131
|
title: title,
|
|
131
132
|
onDataChange: this.changeData,
|
|
132
133
|
addCategoryEnabled: false,
|
|
133
|
-
categoryDefaultLabel: studentNewCategoryDefaultLabel
|
|
134
|
+
categoryDefaultLabel: studentNewCategoryDefaultLabel,
|
|
135
|
+
language: language
|
|
134
136
|
}) : /*#__PURE__*/_react["default"].createElement(_charting.Chart, {
|
|
135
137
|
className: classes.chart,
|
|
136
138
|
chartType: chartType,
|
|
@@ -142,7 +144,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
142
144
|
title: title,
|
|
143
145
|
onDataChange: this.changeData,
|
|
144
146
|
addCategoryEnabled: addCategoryEnabled,
|
|
145
|
-
categoryDefaultLabel: studentNewCategoryDefaultLabel
|
|
147
|
+
categoryDefaultLabel: studentNewCategoryDefaultLabel,
|
|
148
|
+
language: language
|
|
146
149
|
}), rationale && (0, _renderUi.hasText)(rationale) && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
147
150
|
labels: {
|
|
148
151
|
hidden: 'Show Rationale',
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["Main","props","data","setState","categories","onAnswersChange","showingCorrect","state","model","classes","teacherInstructions","prompt","chartType","size","domain","range","title","addCategoryEnabled","studentNewCategoryDefaultLabel","rationale","correctedAnswer","correctAnswer","correctData","map","interactive","editable","showToggle","length","mainContainer","collapsible","hidden","visible","toggleCorrect","chart","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","changeData","nextProps","prevState","newCategories","defaultCategories","nextCategories","React","Component","PropTypes","object","isRequired","func","array","styles","theme","color","text","backgroundColor","background","overflowX","overflowY","marginTop","spacing","unit","marginBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport { Chart, chartTypes } from '@pie-lib/charting';\nimport isArray from 'lodash/isArray';\nimport isEqual from 'lodash/isEqual';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n categories: PropTypes.array,\n };\n\n static defaultProps = { classes: {} };\n\n constructor(props) {\n super(props);\n\n this.state = {\n categories: props.categories || props.model.data,\n showingCorrect: false,\n };\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { categories: newCategories, model: { data: defaultCategories = [] } = {} } = nextProps;\n const { categories } = prevState;\n const nextCategories = isArray(newCategories) ? newCategories : defaultCategories;\n\n if (!isEqual(nextCategories, categories)) {\n return { categories: nextCategories };\n }\n\n return null;\n }\n\n changeData = (data) =>\n this.setState(\n {\n categories: data,\n },\n () => this.props.onAnswersChange(data),\n );\n\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n render() {\n const { categories, showingCorrect } = this.state;\n const { model, classes } = this.props;\n const {\n teacherInstructions,\n prompt,\n chartType,\n size,\n domain,\n range,\n title,\n addCategoryEnabled,\n studentNewCategoryDefaultLabel,\n rationale,\n correctedAnswer,\n correctAnswer,\n } = model;\n\n const correctData =\n correctAnswer && correctAnswer.data\n ? correctAnswer.data.map((data) => {\n return {\n ...data,\n interactive: false,\n editable: false,\n };\n })\n : [];\n\n const showToggle = correctData && correctData.length > 0;\n\n return (\n <div className={classes.mainContainer}>\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n\n {prompt && <PreviewPrompt className=\"prompt\" prompt={prompt} />}\n\n <CorrectAnswerToggle show={showToggle} toggled={showingCorrect} onToggle={this.toggleCorrect} />\n\n {showingCorrect && showToggle ? (\n <Chart\n className={classes.chart}\n chartType={chartType}\n size={size}\n domain={domain}\n range={range}\n charts={[\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ]}\n data={correctData || categories}\n title={title}\n onDataChange={this.changeData}\n addCategoryEnabled={false}\n categoryDefaultLabel={studentNewCategoryDefaultLabel}\n />\n ) : (\n <Chart\n className={classes.chart}\n chartType={chartType}\n size={size}\n domain={domain}\n range={range}\n charts={[\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ]}\n data={correctedAnswer || categories}\n title={title}\n onDataChange={this.changeData}\n addCategoryEnabled={addCategoryEnabled}\n categoryDefaultLabel={studentNewCategoryDefaultLabel}\n />\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n overflowX: 'scroll',\n overflowY: 'hidden',\n },\n chart: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["Main","props","data","setState","categories","onAnswersChange","showingCorrect","state","model","classes","teacherInstructions","prompt","chartType","size","domain","range","title","addCategoryEnabled","studentNewCategoryDefaultLabel","rationale","correctedAnswer","correctAnswer","language","correctData","map","interactive","editable","showToggle","length","mainContainer","collapsible","hidden","visible","toggleCorrect","chart","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","changeData","nextProps","prevState","newCategories","defaultCategories","nextCategories","React","Component","PropTypes","object","isRequired","func","array","styles","theme","color","text","backgroundColor","background","overflowX","overflowY","marginTop","spacing","unit","marginBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport { Chart, chartTypes } from '@pie-lib/charting';\nimport isArray from 'lodash/isArray';\nimport isEqual from 'lodash/isEqual';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n categories: PropTypes.array,\n };\n\n static defaultProps = { classes: {} };\n\n constructor(props) {\n super(props);\n\n this.state = {\n categories: props.categories || props.model.data,\n showingCorrect: false,\n };\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { categories: newCategories, model: { data: defaultCategories = [] } = {} } = nextProps;\n const { categories } = prevState;\n const nextCategories = isArray(newCategories) ? newCategories : defaultCategories;\n\n if (!isEqual(nextCategories, categories)) {\n return { categories: nextCategories };\n }\n\n return null;\n }\n\n changeData = (data) =>\n this.setState(\n {\n categories: data,\n },\n () => this.props.onAnswersChange(data),\n );\n\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n render() {\n const { categories, showingCorrect } = this.state;\n const { model, classes } = this.props;\n const {\n teacherInstructions,\n prompt,\n chartType,\n size,\n domain,\n range,\n title,\n addCategoryEnabled,\n studentNewCategoryDefaultLabel,\n rationale,\n correctedAnswer,\n correctAnswer,\n language\n } = model;\n\n const correctData =\n correctAnswer && correctAnswer.data\n ? correctAnswer.data.map((data) => {\n return {\n ...data,\n interactive: false,\n editable: false,\n };\n })\n : [];\n\n const showToggle = correctData && correctData.length > 0;\n\n return (\n <div className={classes.mainContainer}>\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n\n {prompt && <PreviewPrompt className=\"prompt\" prompt={prompt} />}\n\n <CorrectAnswerToggle show={showToggle} toggled={showingCorrect} onToggle={this.toggleCorrect} />\n\n {showingCorrect && showToggle ? (\n <Chart\n className={classes.chart}\n chartType={chartType}\n size={size}\n domain={domain}\n range={range}\n charts={[\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ]}\n data={correctData || categories}\n title={title}\n onDataChange={this.changeData}\n addCategoryEnabled={false}\n categoryDefaultLabel={studentNewCategoryDefaultLabel}\n language={language}\n />\n ) : (\n <Chart\n className={classes.chart}\n chartType={chartType}\n size={size}\n domain={domain}\n range={range}\n charts={[\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ]}\n data={correctedAnswer || categories}\n title={title}\n onDataChange={this.changeData}\n addCategoryEnabled={addCategoryEnabled}\n categoryDefaultLabel={studentNewCategoryDefaultLabel}\n language={language}\n />\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n overflowX: 'scroll',\n overflowY: 'hidden',\n },\n chart: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "6.
|
|
7
|
+
"version": "6.1.1-next.13+c3304b1da",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@material-ui/core": "^3.9.2",
|
|
15
15
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
16
|
-
"@pie-lib/charting": "^5.
|
|
17
|
-
"@pie-lib/correct-answer-toggle": "^2.3.
|
|
18
|
-
"@pie-lib/math-rendering": "^2.5.
|
|
19
|
-
"@pie-lib/render-ui": "^4.14.
|
|
16
|
+
"@pie-lib/charting": "^5.14.1",
|
|
17
|
+
"@pie-lib/correct-answer-toggle": "^2.3.78",
|
|
18
|
+
"@pie-lib/math-rendering": "^2.5.17",
|
|
19
|
+
"@pie-lib/render-ui": "^4.14.28",
|
|
20
|
+
"@pie-lib/translator": "^2.1.1",
|
|
20
21
|
"classnames": "^2.2.5",
|
|
21
22
|
"debug": "^4.1.1",
|
|
22
23
|
"lodash": "^4.17.15",
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
},
|
|
26
27
|
"author": "",
|
|
27
28
|
"license": "ISC",
|
|
28
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "c3304b1da96b7e77b03b372d3467add35c77f8fe",
|
|
29
30
|
"main": "lib/index.js",
|
|
30
31
|
"module": "src/index.js"
|
|
31
32
|
}
|