@pie-element/charting 5.11.3-next.93 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,62 @@
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.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
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib PD-2777, PD-1914, PD-2066 ([7102893](https://github.com/pie-framework/pie-elements/commit/71028930a6dc554eb587cf4de0c1d0d28bfff1f5))
12
+ * **charting:** move studentNewCategoryDefaultLabel from config to model, since it is needed in player ([60154f2](https://github.com/pie-framework/pie-elements/commit/60154f25ff1046b0cbcb3e65ccdb1126de85337f))
13
+ * update pie-lib PD-2775 ([0aa4731](https://github.com/pie-framework/pie-elements/commit/0aa473194410242abfc74adc67a27d885b5a0f17))
14
+ * update pie-lib PD-2821, PD-2776 ([134ec97](https://github.com/pie-framework/pie-elements/commit/134ec97ae39133fe8be6a1aeca00a8eb4d2566b5))
15
+ * update pie-libs PD-2774, PD-1026 ([04f8cd0](https://github.com/pie-framework/pie-elements/commit/04f8cd000afdb2ccb0c25146d46acb60c5fea651))
16
+ * **charting:** if correctAnswer is not defined in the model set correctAnswer to equal the data ([e93df9d](https://github.com/pie-framework/pie-elements/commit/e93df9dfeb07c77c9d2a06c9ec577d8590ddf3dd))
17
+ * **charting:** if correctAnswer is not defined in the model set correctAnswer to equal the data PD-2626 ([ea911b5](https://github.com/pie-framework/pie-elements/commit/ea911b54c1ae5c4f1f240adb420f87924752a4a3))
18
+ * **charting:** if correctAnswer is not defined in the model set correctAnswer to equal the data PD-2626 ([7243e9d](https://github.com/pie-framework/pie-elements/commit/7243e9d5a177bce1d51055d8846ab688daea3ee0))
19
+
20
+
21
+ ### Features
22
+
23
+ * **charting:** add authoring view settings for authorNewCategoryDefaults and studentNewCategoryDefaultLabel PD-2774 ([6b1d0dc](https://github.com/pie-framework/pie-elements/commit/6b1d0dc6f55779781ffeb50a69569a5ec8acf25a))
24
+ * **charting:** add new authoring view settings to restrict the permitted chart types and allow their names to be changed PD-2777 ([8122775](https://github.com/pie-framework/pie-elements/commit/8122775bec1086ec52e2489dffb2c113e7662db8))
25
+ * **charting:** add new item properties, settings, and authoring view settings ([1924978](https://github.com/pie-framework/pie-elements/commit/1924978ef5dc963b40f01613d87557b2d459ad5b))
26
+ * **charting:** add new item properties, settings, and authoring view settings for changeInteractive, changeEditable and addCategory ([7c79dc5](https://github.com/pie-framework/pie-elements/commit/7c79dc593c2ef90fd1fd028fcc96eb6df812997c))
27
+ * **charting:** add prop validation ([131177f](https://github.com/pie-framework/pie-elements/commit/131177f5742a58cfc19ba05a70a964d30a73fa69))
28
+ * **charting:** fix conflicts and snapshots PD-2777 ([0a014ae](https://github.com/pie-framework/pie-elements/commit/0a014ae7ab40ffe6ea63ebfc84c8f4be359d9ba3))
29
+ * **charting:** hide chartingOptions from settings ([c4a3bd5](https://github.com/pie-framework/pie-elements/commit/c4a3bd5fb2f39db0348303dac7a77eabd738c0ac))
30
+ * **charting:** remove categoryDefaultLabel from model ([f1af01e](https://github.com/pie-framework/pie-elements/commit/f1af01e171e17b9e22a95025e0aef873bd4969a9))
31
+ * **charting:** update pie-models and schemas ([ca51be4](https://github.com/pie-framework/pie-elements/commit/ca51be465ac3db38b5aa586022be5c498f444e05))
32
+ * **charting:** update pie-models PD-2777 ([a7d34c0](https://github.com/pie-framework/pie-elements/commit/a7d34c05639d4a2b95bf81be90c689f96b73a38c))
33
+ * **charting:** update schemas and snapshots PD-2777 ([bc8dee5](https://github.com/pie-framework/pie-elements/commit/bc8dee5936ec0ecc09eae638fd3fc8f4196eef52))
34
+ * **charting:** update schemas PD-2777 ([74b4884](https://github.com/pie-framework/pie-elements/commit/74b4884cb4c0407e9ff457dbd3249172ade3e42c))
35
+ * ability to upload images when using imageSupoort from pie-api-components PD-2707 ([685f3b0](https://github.com/pie-framework/pie-elements/commit/685f3b035d86c5f4ad60cdb9ec84690d5ccaa4fc))
36
+
37
+
38
+ ### BREAKING CHANGES
39
+
40
+ * **charting:** The categoryDefaultLabel property has been removed. authorNewCategoryDefaults and studentNewCategoryDefaultLabel from configuration will be used as category default label.
41
+
42
+
43
+
44
+
45
+
46
+ ## [5.11.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@5.11.2...@pie-element/charting@5.11.3) (2023-05-02)
47
+
48
+
49
+ ### Bug Fixes
50
+
51
+ * update pie-libs PD-2755, PD-2625, PD-2119 ([698446b](https://github.com/pie-framework/pie-elements/commit/698446b29a553a022c91825118370faae824b723))
52
+ * **charting:** fix code introduced by PR pull/1389 for PD-2755, PD-2625, PD-2626 ([8eb0165](https://github.com/pie-framework/pie-elements/commit/8eb016503d174524de146a97fa600789a4007e95))
53
+ * update pie-libs (fix eslint problems PD-2732) ([3fa630e](https://github.com/pie-framework/pie-elements/commit/3fa630eb96b116cb685ab58fbf216fb572d1c333))
54
+ * update pie-libs PD-2755, PD-2625, PD-491, PD-2753, PD-2758, PD-2720, PD-2770 ([2cf9ffa](https://github.com/pie-framework/pie-elements/commit/2cf9ffa4fbef6f2ebc0924f305debc9fc6560a75))
55
+ * **charting:** update chart data in player ([b7143d1](https://github.com/pie-framework/pie-elements/commit/b7143d12620b16e8f4fd1bc0c1790fecb0db9155))
56
+ * **charting:** update correct response setup ([bfac45b](https://github.com/pie-framework/pie-elements/commit/bfac45bc6ee7e8328ea924acc4595e21eb8d4d93))
57
+
58
+
59
+
60
+
61
+
6
62
  ## [5.11.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@5.11.1...@pie-element/charting@5.11.2) (2023-04-25)
7
63
 
8
64
 
@@ -3,6 +3,59 @@
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.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
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib PD-2777, PD-1914, PD-2066 ([7102893](https://github.com/pie-framework/pie-elements/commit/71028930a6dc554eb587cf4de0c1d0d28bfff1f5))
12
+ * **charting:** move studentNewCategoryDefaultLabel from config to model, since it is needed in player ([60154f2](https://github.com/pie-framework/pie-elements/commit/60154f25ff1046b0cbcb3e65ccdb1126de85337f))
13
+ * update pie-lib PD-2775 ([0aa4731](https://github.com/pie-framework/pie-elements/commit/0aa473194410242abfc74adc67a27d885b5a0f17))
14
+ * update pie-lib PD-2821, PD-2776 ([134ec97](https://github.com/pie-framework/pie-elements/commit/134ec97ae39133fe8be6a1aeca00a8eb4d2566b5))
15
+ * update pie-libs PD-2774, PD-1026 ([04f8cd0](https://github.com/pie-framework/pie-elements/commit/04f8cd000afdb2ccb0c25146d46acb60c5fea651))
16
+ * **charting:** if correctAnswer is not defined in the model set correctAnswer to equal the data ([e93df9d](https://github.com/pie-framework/pie-elements/commit/e93df9dfeb07c77c9d2a06c9ec577d8590ddf3dd))
17
+ * **charting:** if correctAnswer is not defined in the model set correctAnswer to equal the data PD-2626 ([ea911b5](https://github.com/pie-framework/pie-elements/commit/ea911b54c1ae5c4f1f240adb420f87924752a4a3))
18
+ * **charting:** if correctAnswer is not defined in the model set correctAnswer to equal the data PD-2626 ([7243e9d](https://github.com/pie-framework/pie-elements/commit/7243e9d5a177bce1d51055d8846ab688daea3ee0))
19
+
20
+
21
+ ### Features
22
+
23
+ * **charting:** add authoring view settings for authorNewCategoryDefaults and studentNewCategoryDefaultLabel PD-2774 ([6b1d0dc](https://github.com/pie-framework/pie-elements/commit/6b1d0dc6f55779781ffeb50a69569a5ec8acf25a))
24
+ * **charting:** add new authoring view settings to restrict the permitted chart types and allow their names to be changed PD-2777 ([8122775](https://github.com/pie-framework/pie-elements/commit/8122775bec1086ec52e2489dffb2c113e7662db8))
25
+ * **charting:** add new item properties, settings, and authoring view settings ([1924978](https://github.com/pie-framework/pie-elements/commit/1924978ef5dc963b40f01613d87557b2d459ad5b))
26
+ * **charting:** add new item properties, settings, and authoring view settings for changeInteractive, changeEditable and addCategory ([7c79dc5](https://github.com/pie-framework/pie-elements/commit/7c79dc593c2ef90fd1fd028fcc96eb6df812997c))
27
+ * **charting:** add prop validation ([131177f](https://github.com/pie-framework/pie-elements/commit/131177f5742a58cfc19ba05a70a964d30a73fa69))
28
+ * **charting:** fix conflicts and snapshots PD-2777 ([0a014ae](https://github.com/pie-framework/pie-elements/commit/0a014ae7ab40ffe6ea63ebfc84c8f4be359d9ba3))
29
+ * **charting:** hide chartingOptions from settings ([c4a3bd5](https://github.com/pie-framework/pie-elements/commit/c4a3bd5fb2f39db0348303dac7a77eabd738c0ac))
30
+ * **charting:** remove categoryDefaultLabel from model ([f1af01e](https://github.com/pie-framework/pie-elements/commit/f1af01e171e17b9e22a95025e0aef873bd4969a9))
31
+ * **charting:** update pie-models PD-2777 ([a7d34c0](https://github.com/pie-framework/pie-elements/commit/a7d34c05639d4a2b95bf81be90c689f96b73a38c))
32
+ * **charting:** update schemas and snapshots PD-2777 ([bc8dee5](https://github.com/pie-framework/pie-elements/commit/bc8dee5936ec0ecc09eae638fd3fc8f4196eef52))
33
+ * **charting:** update schemas PD-2777 ([74b4884](https://github.com/pie-framework/pie-elements/commit/74b4884cb4c0407e9ff457dbd3249172ade3e42c))
34
+ * ability to upload images when using imageSupoort from pie-api-components PD-2707 ([685f3b0](https://github.com/pie-framework/pie-elements/commit/685f3b035d86c5f4ad60cdb9ec84690d5ccaa4fc))
35
+
36
+
37
+ ### BREAKING CHANGES
38
+
39
+ * **charting:** The categoryDefaultLabel property has been removed. authorNewCategoryDefaults and studentNewCategoryDefaultLabel from configuration will be used as category default label.
40
+
41
+
42
+
43
+
44
+
45
+ ## [5.8.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@5.8.2...@pie-element/charting-configure@5.8.3) (2023-05-02)
46
+
47
+
48
+ ### Bug Fixes
49
+
50
+ * update pie-libs (fix eslint problems PD-2732) ([3fa630e](https://github.com/pie-framework/pie-elements/commit/3fa630eb96b116cb685ab58fbf216fb572d1c333))
51
+ * update pie-libs PD-2755, PD-2625, PD-2119 ([698446b](https://github.com/pie-framework/pie-elements/commit/698446b29a553a022c91825118370faae824b723))
52
+ * update pie-libs PD-2755, PD-2625, PD-491, PD-2753, PD-2758, PD-2720, PD-2770 ([2cf9ffa](https://github.com/pie-framework/pie-elements/commit/2cf9ffa4fbef6f2ebc0924f305debc9fc6560a75))
53
+ * **charting:** update correct response setup ([bfac45b](https://github.com/pie-framework/pie-elements/commit/bfac45bc6ee7e8328ea924acc4595e21eb8d4d93))
54
+
55
+
56
+
57
+
58
+
6
59
  ## [5.8.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@5.8.1...@pie-element/charting-configure@5.8.2) (2023-04-25)
7
60
 
8
61
 
@@ -160,7 +160,8 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
160
160
  (0, _createClass2["default"])(ChartingConfig, [{
161
161
  key: "render",
162
162
  value: function render() {
163
- var _this2 = this;
163
+ var _this2 = this,
164
+ _chartingOptions$addC;
164
165
 
165
166
  var _this$props = this.props,
166
167
  classes = _this$props.classes,
@@ -169,7 +170,8 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
169
170
  labelsPlaceholders = _this$props.labelsPlaceholders,
170
171
  titlePlaceholder = _this$props.titlePlaceholder,
171
172
  showPixelGuides = _this$props.showPixelGuides,
172
- authorNewCategoryDefaults = _this$props.authorNewCategoryDefaults;
173
+ authorNewCategoryDefaults = _this$props.authorNewCategoryDefaults,
174
+ chartingOptions = _this$props.chartingOptions;
173
175
  var dialog = this.state.dialog;
174
176
 
175
177
  var _ref = model || {},
@@ -190,6 +192,7 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
190
192
  type: "body1"
191
193
  }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set up the chart as it will initially appear to students.")), /*#__PURE__*/React.createElement(_charting.Chart, {
192
194
  defineChart: true,
195
+ chartingOptions: chartingOptions,
193
196
  showPixelGuides: showPixelGuides,
194
197
  chartType: model.chartType,
195
198
  size: model.graph,
@@ -207,16 +210,18 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
207
210
  onChangeTitle: this.changeTitle,
208
211
  onChangeLabels: this.changeLabel,
209
212
  addCategoryEnabled: true,
213
+ changeInteractiveEnabled: model.changeInteractiveEnabled,
214
+ changeEditableEnabled: model.changeEditableEnabled,
210
215
  categoryDefaultLabel: authorNewCategoryDefaults === null || authorNewCategoryDefaults === void 0 ? void 0 : authorNewCategoryDefaults.label,
211
216
  categoryDefaults: authorNewCategoryDefaults,
212
217
  labelsPlaceholders: labelsPlaceholders,
213
218
  titlePlaceholder: titlePlaceholder === null || titlePlaceholder === void 0 ? void 0 : titlePlaceholder.label
214
- }), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_Checkbox["default"], {
219
+ }), model.changeAddCategoryEnabled && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_Checkbox["default"], {
215
220
  checked: model.addCategoryEnabled,
216
221
  onChange: function onChange(e) {
217
222
  _this2.changeAddRemoveEnabled(e.target.checked);
218
223
  }
219
- }), "Student can add categories"), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
224
+ }), chartingOptions === null || chartingOptions === void 0 ? void 0 : (_chartingOptions$addC = chartingOptions.addCategory) === null || _chartingOptions$addC === void 0 ? void 0 : _chartingOptions$addC.authoringLabel), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
220
225
  open: dialog.open,
221
226
  title: dialog.title,
222
227
  text: dialog.text,
@@ -237,7 +242,8 @@ exports.ChartingConfig = ChartingConfig;
237
242
  labelsPlaceholders: _propTypes["default"].object,
238
243
  titlePlaceholder: _propTypes["default"].object,
239
244
  showPixelGuides: _propTypes["default"].bool,
240
- authorNewCategoryDefaults: _propTypes["default"].object
245
+ authorNewCategoryDefaults: _propTypes["default"].object,
246
+ chartingOptions: _propTypes["default"].object
241
247
  });
242
248
 
243
249
  var _default = (0, _styles.withStyles)(styles)(ChartingConfig);
@@ -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","domain","range","chartType","graph","map","index","changeData","changeTitle","changeLabel","e","changeAddRemoveEnabled","target","checked","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 };\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 } = 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 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 categoryDefaultLabel={authorNewCategoryDefaults?.label}\n categoryDefaults={authorNewCategoryDefaults}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder?.label}\n />\n <div>\n <Checkbox\n checked={model.addCategoryEnabled}\n onChange={(e) => {\n this.changeAddRemoveEnabled(e.target.checked);\n }}\n />\n Student can add categories\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","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"}
@@ -154,6 +154,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
154
154
  (0, _createClass2["default"])(Configure, [{
155
155
  key: "render",
156
156
  value: function render() {
157
+ var _chartingOptions$chan, _chartingOptions$chan2, _chartingOptions$addC;
158
+
157
159
  var _this$props2 = this.props,
158
160
  classes = _this$props2.classes,
159
161
  configuration = _this$props2.configuration,
@@ -172,8 +174,6 @@ var Configure = /*#__PURE__*/function (_React$Component) {
172
174
  chartDimensions = _ref2$chartDimensions === void 0 ? {} : _ref2$chartDimensions,
173
175
  _ref2$authorNewCatego = _ref2.authorNewCategoryDefaults,
174
176
  authorNewCategoryDefaults = _ref2$authorNewCatego === void 0 ? {} : _ref2$authorNewCatego,
175
- _ref2$studentNewCateg = _ref2.studentNewCategoryDefaultLabel,
176
- studentNewCategoryDefaultLabel = _ref2$studentNewCateg === void 0 ? {} : _ref2$studentNewCateg,
177
177
  _ref2$labelsPlacehold = _ref2.labelsPlaceholders,
178
178
  labelsPlaceholders = _ref2$labelsPlacehold === void 0 ? {} : _ref2$labelsPlacehold,
179
179
  _ref2$maxImageWidth = _ref2.maxImageWidth,
@@ -196,14 +196,20 @@ var Configure = /*#__PURE__*/function (_React$Component) {
196
196
  _ref2$titlePlaceholde = _ref2.titlePlaceholder,
197
197
  titlePlaceholder = _ref2$titlePlaceholde === void 0 ? {} : _ref2$titlePlaceholde,
198
198
  _ref2$withRubric = _ref2.withRubric,
199
- withRubric = _ref2$withRubric === void 0 ? {} : _ref2$withRubric;
199
+ withRubric = _ref2$withRubric === void 0 ? {} : _ref2$withRubric,
200
+ _ref2$chartingOptions = _ref2.chartingOptions,
201
+ chartingOptions = _ref2$chartingOptions === void 0 ? {} : _ref2$chartingOptions,
202
+ _ref2$availableChartT = _ref2.availableChartTypes,
203
+ availableChartTypes = _ref2$availableChartT === void 0 ? {} : _ref2$availableChartT,
204
+ chartTypeLabel = _ref2.chartTypeLabel;
200
205
 
201
206
  var _ref3 = model || {},
202
207
  errors = _ref3.errors,
203
208
  promptEnabled = _ref3.promptEnabled,
204
209
  rationaleEnabled = _ref3.rationaleEnabled,
205
210
  spellCheckEnabled = _ref3.spellCheckEnabled,
206
- teacherInstructionsEnabled = _ref3.teacherInstructionsEnabled;
211
+ teacherInstructionsEnabled = _ref3.teacherInstructionsEnabled,
212
+ studentNewCategoryDefaultLabel = _ref3.studentNewCategoryDefaultLabel;
207
213
 
208
214
  var _ref4 = errors || {},
209
215
  categoryErrors = _ref4.categoryErrors,
@@ -215,6 +221,11 @@ var Configure = /*#__PURE__*/function (_React$Component) {
215
221
  var showPixeGuides = chartDimensions.showInConfigPanel || true;
216
222
  var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
217
223
  var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
224
+ var panelItemType = {
225
+ changeInteractiveEnabled: ((_chartingOptions$chan = chartingOptions.changeInteractive) === null || _chartingOptions$chan === void 0 ? void 0 : _chartingOptions$chan.settings) && toggle(chartingOptions.changeInteractive.settingsLabel),
226
+ changeEditableEnabled: ((_chartingOptions$chan2 = chartingOptions.changeEditable) === null || _chartingOptions$chan2 === void 0 ? void 0 : _chartingOptions$chan2.settings) && toggle(chartingOptions.changeEditable.settingsLabel),
227
+ changeAddCategoryEnabled: ((_chartingOptions$addC = chartingOptions.addCategory) === null || _chartingOptions$addC === void 0 ? void 0 : _chartingOptions$addC.settings) && toggle(chartingOptions.addCategory.settingsLabel)
228
+ };
218
229
  var panelProperties = {
219
230
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
220
231
  studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
@@ -233,6 +244,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
233
244
  onChangeModel: onModelChanged,
234
245
  onChangeConfiguration: onConfigurationChanged,
235
246
  groups: {
247
+ Settings: panelItemType,
236
248
  Properties: panelProperties
237
249
  }
238
250
  })
@@ -284,7 +296,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
284
296
  labelValues: labelValues,
285
297
  chartDimensions: chartDimensions,
286
298
  charts: charts,
287
- studentNewCategoryDefaultLabel: studentNewCategoryDefaultLabel
299
+ studentNewCategoryDefaultLabel: studentNewCategoryDefaultLabel,
300
+ availableChartTypes: availableChartTypes,
301
+ chartTypeLabel: chartTypeLabel
288
302
  }), /*#__PURE__*/_react["default"].createElement(_chartingConfig["default"], {
289
303
  model: model,
290
304
  onChange: onModelChanged,
@@ -292,7 +306,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
292
306
  labelsPlaceholders: labelsPlaceholders,
293
307
  titlePlaceholder: titlePlaceholder,
294
308
  showPixelGuides: showPixeGuides,
295
- authorNewCategoryDefaults: authorNewCategoryDefaults
309
+ authorNewCategoryDefaults: authorNewCategoryDefaults,
310
+ chartingOptions: chartingOptions
296
311
  }), /*#__PURE__*/_react["default"].createElement(_correctResponse["default"], {
297
312
  config: graph,
298
313
  model: model,
@@ -332,7 +347,8 @@ exports.Configure = Configure;
332
347
  imageSupport: _propTypes["default"].object,
333
348
  uploadSoundSupport: _propTypes["default"].object,
334
349
  model: _propTypes["default"].object.isRequired,
335
- configuration: _propTypes["default"].object.isRequired
350
+ configuration: _propTypes["default"].object.isRequired,
351
+ chartingOptions: _propTypes["default"].object
336
352
  });
337
353
  (0, _defineProperty2["default"])(Configure, "defaultProps", {
338
354
  classes: {}
@@ -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","studentNewCategoryDefaultLabel","labelsPlaceholders","maxImageWidth","maxImageHeight","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","titlePlaceholder","withRubric","errors","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","categoryErrors","correctAnswerErrors","showPixeGuides","showInConfigPanel","defaultImageMaxWidth","defaultImageMaxHeight","panelProperties","label","studentInstructionsEnabled","rubricEnabled","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 };\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 studentNewCategoryDefaultLabel = {},\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 } = configuration || {};\n const { errors, promptEnabled, rationaleEnabled, spellCheckEnabled, teacherInstructionsEnabled } = 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 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 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 />\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 />\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","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"}
@@ -327,7 +327,7 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
327
327
  return _this2.changeData(data);
328
328
  },
329
329
  addCategoryEnabled: model.addCategoryEnabled,
330
- categoryDefaultLabel: studentNewCategoryDefaultLabel === null || studentNewCategoryDefaultLabel === void 0 ? void 0 : studentNewCategoryDefaultLabel.label,
330
+ categoryDefaultLabel: studentNewCategoryDefaultLabel,
331
331
  error: error
332
332
  })), (identicalError || categoriesError) && /*#__PURE__*/React.createElement(_Typography["default"], {
333
333
  component: "div",
@@ -343,7 +343,7 @@ exports.CorrectResponse = CorrectResponse;
343
343
  (0, _defineProperty2["default"])(CorrectResponse, "propTypes", {
344
344
  classes: _propTypes["default"].object.isRequired,
345
345
  correctAnswerErrors: _propTypes["default"].object,
346
- studentNewCategoryDefaultLabel: _propTypes["default"].object,
346
+ studentNewCategoryDefaultLabel: _propTypes["default"].string,
347
347
  model: _propTypes["default"].object.isRequired,
348
348
  onChange: _propTypes["default"].func.isRequired,
349
349
  charts: _propTypes["default"].array,
@@ -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","func","array","string"],"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.object,\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?.label}\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","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"}
@@ -39,7 +39,11 @@ var _default = {
39
39
  title: '',
40
40
  rationaleEnabled: true,
41
41
  teacherInstructionsEnabled: true,
42
- studentInstructionsEnabled: true
42
+ studentInstructionsEnabled: true,
43
+ studentNewCategoryDefaultLabel: 'New Category',
44
+ changeInteractiveEnabled: true,
45
+ changeEditableEnabled: true,
46
+ changeAddCategoryEnabled: true
43
47
  },
44
48
  configuration: {
45
49
  spellCheck: {
@@ -68,6 +72,15 @@ var _default = {
68
72
  interactive: true,
69
73
  editable: false
70
74
  },
75
+ availableChartTypes: {
76
+ bar: 'Bar Chart',
77
+ histogram: 'Histogram',
78
+ lineDot: 'Line Chart ●',
79
+ lineCross: 'Line Chart x',
80
+ dotPlot: 'Dot/Line Plot ⬤',
81
+ linePlot: 'Dot/Line Plot X'
82
+ },
83
+ chartTypeLabel: 'ChartType',
71
84
  studentNewCategoryDefaultLabel: {
72
85
  settings: false,
73
86
  label: 'Category'
@@ -120,6 +133,23 @@ var _default = {
120
133
  withRubric: {
121
134
  settings: false,
122
135
  label: 'Add Rubric'
136
+ },
137
+ chartingOptions: {
138
+ changeInteractive: {
139
+ settings: false,
140
+ authoringLabel: 'Student can set value',
141
+ settingsLabel: 'Allow non-interactive categories'
142
+ },
143
+ changeEditable: {
144
+ settings: false,
145
+ authoringLabel: 'Student can edit name',
146
+ settingsLabel: 'Allow editable category names'
147
+ },
148
+ addCategory: {
149
+ settings: false,
150
+ authoringLabel: 'Student can add categories',
151
+ settingsLabel: 'Allow changes to whether students can add categories'
152
+ }
123
153
  }
124
154
  }
125
155
  };