@pie-element/charting 4.0.0 → 5.0.2

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,53 @@
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
+ ## [5.0.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@5.0.1...@pie-element/charting@5.0.2) (2022-07-20)
7
+
8
+ **Note:** Version bump only for package @pie-element/charting
9
+
10
+
11
+
12
+
13
+
14
+ ## [5.0.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@5.0.0...@pie-element/charting@5.0.1) (2022-07-19)
15
+
16
+ **Note:** Version bump only for package @pie-element/charting
17
+
18
+
19
+
20
+
21
+
22
+ # [5.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@4.0.0...@pie-element/charting@5.0.0) (2022-06-28)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * updated pie-lib since the previous version was a breaking change that was not released properly ([e51250d](https://github.com/pie-framework/pie-elements/commit/e51250dfe5b2d6593e186c685b6f75167479ff39))
28
+ * **charting:** keep chart interactive in IBX preview mode PD-1365 ([f92515a](https://github.com/pie-framework/pie-elements/commit/f92515a7071c72cfcc07a830095cd70cc4740e58))
29
+
30
+
31
+ ### Features
32
+
33
+ * **charting:** add maxImageWidth and maxImageHeight props PD-1801 ([0bff787](https://github.com/pie-framework/pie-elements/commit/0bff787ff2c9301138346f02e04646ee55f659fc))
34
+ * **charting:** remove editCategoryEnabled property ([0ea2a3c](https://github.com/pie-framework/pie-elements/commit/0ea2a3cf9c4ebf09c493ad6aee02ee1cc1987b36))
35
+ * **charting:** remove editCategoryEnabled property checkbox and usage. ([b844871](https://github.com/pie-framework/pie-elements/commit/b84487145c2d92edaaed2427070e4294b0681803))
36
+
37
+
38
+ ### Reverts
39
+
40
+ * Revert "try to add student can add categories checkbox in pie-lib" ([0ba8f3f](https://github.com/pie-framework/pie-elements/commit/0ba8f3f80ea98eee535b0c2da1da92b4899ada83))
41
+
42
+
43
+ ### BREAKING CHANGES
44
+
45
+ * **charting:** The editCategoryEnabled checkbox and property was removed.
46
+ Enabled property will be used for each category.
47
+ * **charting:** The editCategoryEnabled propery has been removed
48
+
49
+
50
+
51
+
52
+
6
53
  # [4.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting@3.0.0...@pie-element/charting@4.0.0) (2022-06-28)
7
54
 
8
55
 
@@ -3,6 +3,52 @@
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
+ ## [5.0.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@5.0.1...@pie-element/charting-configure@5.0.2) (2022-07-20)
7
+
8
+ **Note:** Version bump only for package @pie-element/charting-configure
9
+
10
+
11
+
12
+
13
+
14
+ ## [5.0.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@5.0.0...@pie-element/charting-configure@5.0.1) (2022-07-19)
15
+
16
+ **Note:** Version bump only for package @pie-element/charting-configure
17
+
18
+
19
+
20
+
21
+
22
+ # [5.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@4.0.0...@pie-element/charting-configure@5.0.0) (2022-06-28)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * updated pie-lib since the previous version was a breaking change that was not released properly ([e51250d](https://github.com/pie-framework/pie-elements/commit/e51250dfe5b2d6593e186c685b6f75167479ff39))
28
+
29
+
30
+ ### Features
31
+
32
+ * **charting:** add maxImageWidth and maxImageHeight props PD-1801 ([0bff787](https://github.com/pie-framework/pie-elements/commit/0bff787ff2c9301138346f02e04646ee55f659fc))
33
+ * **charting:** remove editCategoryEnabled property ([0ea2a3c](https://github.com/pie-framework/pie-elements/commit/0ea2a3cf9c4ebf09c493ad6aee02ee1cc1987b36))
34
+ * **charting:** remove editCategoryEnabled property checkbox and usage. ([b844871](https://github.com/pie-framework/pie-elements/commit/b84487145c2d92edaaed2427070e4294b0681803))
35
+
36
+
37
+ ### Reverts
38
+
39
+ * Revert "try to add student can add categories checkbox in pie-lib" ([0ba8f3f](https://github.com/pie-framework/pie-elements/commit/0ba8f3f80ea98eee535b0c2da1da92b4899ada83))
40
+
41
+
42
+ ### BREAKING CHANGES
43
+
44
+ * **charting:** The editCategoryEnabled checkbox and property was removed.
45
+ Enabled property will be used for each category.
46
+ * **charting:** The editCategoryEnabled propery has been removed
47
+
48
+
49
+
50
+
51
+
6
52
  # [4.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/charting-configure@3.0.0...@pie-element/charting-configure@4.0.0) (2022-06-28)
7
53
 
8
54
 
@@ -41,6 +41,8 @@ var _chartingConfig = _interopRequireDefault(require("./charting-config"));
41
41
 
42
42
  var _correctResponse = _interopRequireDefault(require("./correct-response"));
43
43
 
44
+ var _utils = require("./utils");
45
+
44
46
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
47
 
46
48
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -86,16 +88,11 @@ var Configure = /*#__PURE__*/function (_React$Component) {
86
88
 
87
89
  var _super = _createSuper(Configure);
88
90
 
89
- function Configure() {
91
+ function Configure(props) {
90
92
  var _this;
91
93
 
92
94
  (0, _classCallCheck2["default"])(this, Configure);
93
-
94
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
95
- args[_key] = arguments[_key];
96
- }
97
-
98
- _this = _super.call.apply(_super, [this].concat(args));
95
+ _this = _super.call(this, props);
99
96
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRationaleChange", function (rationale) {
100
97
  return _this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
101
98
  rationale: rationale
@@ -116,6 +113,44 @@ var Configure = /*#__PURE__*/function (_React$Component) {
116
113
  chartType: chartType
117
114
  }));
118
115
  });
116
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChange", function (config) {
117
+ var model = _this.props.model;
118
+ var _this$state = _this.state,
119
+ oldGridValues = _this$state.gridValues,
120
+ oldLabelValues = _this$state.labelValues;
121
+
122
+ var updatedModel = _objectSpread(_objectSpread({}, model), config);
123
+
124
+ var graph = updatedModel.graph,
125
+ range = updatedModel.range;
126
+ var gridValues = {};
127
+ var labelValues = {};
128
+ var rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
129
+ gridValues.range = rangeConstraints.gridValues;
130
+ labelValues.range = rangeConstraints.labelValues;
131
+
132
+ _this.setState({
133
+ gridValues: gridValues,
134
+ labelValues: labelValues
135
+ });
136
+
137
+ _this.props.onModelChanged(updatedModel);
138
+ });
139
+
140
+ var _ref = props.model || {},
141
+ _range = _ref.range,
142
+ _graph = _ref.graph;
143
+
144
+ var _gridValues = {
145
+ range: (0, _utils.getGridValues)(_range, _graph.height, true)
146
+ };
147
+ var _labelValues = {
148
+ range: (0, _utils.getLabelValues)(_range.step || 1)
149
+ };
150
+ _this.state = {
151
+ gridValues: _gridValues,
152
+ labelValues: _labelValues
153
+ };
119
154
  return _this;
120
155
  }
121
156
 
@@ -132,32 +167,35 @@ var Configure = /*#__PURE__*/function (_React$Component) {
132
167
  log('[render] model', model);
133
168
  var graph = model.graph;
134
169
 
135
- var _ref = configuration || {},
136
- _ref$title = _ref.title,
137
- title = _ref$title === void 0 ? {} : _ref$title,
138
- _ref$rationale = _ref.rationale,
139
- rationale = _ref$rationale === void 0 ? {} : _ref$rationale,
140
- _ref$scoringType = _ref.scoringType,
141
- scoringType = _ref$scoringType === void 0 ? {} : _ref$scoringType,
142
- _ref$studentInstructi = _ref.studentInstructions,
143
- studentInstructions = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
144
- _ref$teacherInstructi = _ref.teacherInstructions,
145
- teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
146
- _ref$prompt = _ref.prompt,
147
- prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
148
- _ref$spellCheck = _ref.spellCheck,
149
- spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
150
- _ref$maxImageWidth = _ref.maxImageWidth,
151
- maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
152
- _ref$maxImageHeight = _ref.maxImageHeight,
153
- maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight;
154
-
155
- var _ref2 = model || {},
156
- teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
157
- promptEnabled = _ref2.promptEnabled,
158
- rationaleEnabled = _ref2.rationaleEnabled,
159
- spellCheckEnabled = _ref2.spellCheckEnabled;
160
-
170
+ var _ref2 = configuration || {},
171
+ _ref2$title = _ref2.title,
172
+ title = _ref2$title === void 0 ? {} : _ref2$title,
173
+ _ref2$rationale = _ref2.rationale,
174
+ rationale = _ref2$rationale === void 0 ? {} : _ref2$rationale,
175
+ _ref2$scoringType = _ref2.scoringType,
176
+ scoringType = _ref2$scoringType === void 0 ? {} : _ref2$scoringType,
177
+ _ref2$studentInstruct = _ref2.studentInstructions,
178
+ studentInstructions = _ref2$studentInstruct === void 0 ? {} : _ref2$studentInstruct,
179
+ _ref2$teacherInstruct = _ref2.teacherInstructions,
180
+ teacherInstructions = _ref2$teacherInstruct === void 0 ? {} : _ref2$teacherInstruct,
181
+ _ref2$prompt = _ref2.prompt,
182
+ prompt = _ref2$prompt === void 0 ? {} : _ref2$prompt,
183
+ _ref2$spellCheck = _ref2.spellCheck,
184
+ spellCheck = _ref2$spellCheck === void 0 ? {} : _ref2$spellCheck,
185
+ _ref2$maxImageWidth = _ref2.maxImageWidth,
186
+ maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
187
+ _ref2$maxImageHeight = _ref2.maxImageHeight,
188
+ maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight;
189
+
190
+ var _ref3 = model || {},
191
+ teacherInstructionsEnabled = _ref3.teacherInstructionsEnabled,
192
+ promptEnabled = _ref3.promptEnabled,
193
+ rationaleEnabled = _ref3.rationaleEnabled,
194
+ spellCheckEnabled = _ref3.spellCheckEnabled;
195
+
196
+ var _this$state2 = this.state,
197
+ gridValues = _this$state2.gridValues,
198
+ labelValues = _this$state2.labelValues;
161
199
  var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
162
200
  var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
163
201
  return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
@@ -236,12 +274,12 @@ var Configure = /*#__PURE__*/function (_React$Component) {
236
274
  maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
237
275
  maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight
238
276
  })), /*#__PURE__*/_react["default"].createElement(_charting.ConfigureChartPanel, {
239
- config: graph,
240
277
  model: model,
241
- onChange: this.props.onModelChanged,
278
+ onChange: this.onConfigChange,
279
+ gridValues: gridValues,
280
+ labelValues: labelValues,
242
281
  charts: charts
243
282
  }), /*#__PURE__*/_react["default"].createElement(_chartingConfig["default"], {
244
- config: graph,
245
283
  model: model,
246
284
  onChange: onModelChanged,
247
285
  charts: charts
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","numberFields","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingBottom","prompt","paddingTop","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","Configure","rationale","props","onModelChanged","model","teacherInstructions","chartType","classes","configuration","onConfigurationChanged","imageSupport","graph","scoringType","studentInstructions","spellCheck","maxImageWidth","maxImageHeight","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","defaultImageMaxWidth","defaultImageMaxHeight","label","suffix","min","max","height","Properties","studentInstructionsEnabled","onTeacherInstructionsChange","onPromptChange","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';\n\n\nconst log = debug('@pie-element:graphing:configure');\nconst { Panel, toggle, radio, numberFields } = 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 content: {\n marginTop: theme.spacing.unit * 2,\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\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 model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n };\n\n static defaultProps = { classes: {} };\n\n onRationaleChange = (rationale) =>\n this.props.onModelChanged({ ...this.props.model, rationale });\n\n onPromptChange = (prompt) =>\n this.props.onModelChanged({ ...this.props.model, prompt });\n\n onTeacherInstructionsChange = (teacherInstructions) =>\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n\n onChartTypeChange = (chartType) =>\n this.props.onModelChanged({ ...this.props.model, chartType });\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n onModelChanged,\n imageSupport,\n } = this.props;\n log('[render] model', model);\n const { graph } = model;\n const {\n title = {},\n rationale = {},\n scoringType = {},\n studentInstructions = {},\n teacherInstructions = {},\n prompt = {},\n spellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {}\n } = configuration || {};\n const { teacherInstructionsEnabled, promptEnabled, rationaleEnabled, spellCheckEnabled } =\n model || {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n 'Item Type': {\n 'title.enabled': title.settings && toggle(title.label, true),\n graph: numberFields('Graph Display Size', {\n width: {\n label: 'Width',\n suffix: 'px',\n min: 400,\n max: 700,\n },\n height: {\n label: 'Height',\n suffix: 'px',\n min: 400,\n max: 700,\n },\n }),\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, [\n 'all or nothing',\n 'partial scoring',\n ]),\n },\n }}\n />\n }\n >\n <div className={classes.content}>\n <Typography component=\"div\" type=\"body1\">\n <span>\n This interaction asks a student to draw a chart that meets\n specific criteria. The student will draw a category on the chart\n by clicking Add Category and dragging the top part of the\n category.\n </span>\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n disableUnderline\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label || 'Rationale'}\n className={classes.promptHolder}\n >\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 />\n </InputContainer>\n )}\n\n <ConfigureChartPanel\n config={graph}\n model={model}\n onChange={this.props.onModelChanged}\n charts={charts}\n />\n\n <ChartingConfig\n config={graph}\n model={model}\n onChange={onModelChanged}\n charts={charts}\n />\n\n <CorrectResponse\n config={graph}\n model={model}\n onChange={onModelChanged}\n charts={charts}\n />\n </div>\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","numberFields","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingBottom","prompt","paddingTop","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","Configure","props","rationale","onModelChanged","model","teacherInstructions","chartType","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","graph","range","rangeConstraints","height","setState","step","classes","configuration","onConfigurationChanged","imageSupport","scoringType","studentInstructions","spellCheck","maxImageWidth","maxImageHeight","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","defaultImageMaxWidth","defaultImageMaxHeight","label","suffix","min","max","Properties","studentInstructionsEnabled","onTeacherInstructionsChange","onPromptChange","onRationaleChange","onConfigChange","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\n\nconst log = debug('@pie-element:graphing:configure');\nconst { Panel, toggle, radio, numberFields } = 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 content: {\n marginTop: theme.spacing.unit * 2,\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\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 model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { range, graph } = props.model || {};\n\n const gridValues = {\n range: getGridValues(range, graph.height, true)\n };\n \n const labelValues = {\n range: getLabelValues(range.step || 1)\n };\n\n this.state = { gridValues, labelValues };\n };\n\n static defaultProps = { classes: {} };\n\n onRationaleChange = (rationale) =>\n this.props.onModelChanged({ ...this.props.model, rationale });\n\n onPromptChange = (prompt) =>\n this.props.onModelChanged({ ...this.props.model, prompt });\n\n onTeacherInstructionsChange = (teacherInstructions) =>\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n\n onChartTypeChange = (chartType) =>\n this.props.onModelChanged({ ...this.props.model, chartType });\n\n onConfigChange = config => {\n const { model } = 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 this.props.onModelChanged(updatedModel);\n };\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n onModelChanged,\n imageSupport,\n } = this.props;\n log('[render] model', model);\n const { graph } = model;\n const {\n title = {},\n rationale = {},\n scoringType = {},\n studentInstructions = {},\n teacherInstructions = {},\n prompt = {},\n spellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {}\n } = configuration || {};\n const { teacherInstructionsEnabled, promptEnabled, rationaleEnabled, spellCheckEnabled } =\n model || {};\n const { gridValues, labelValues } = this.state;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n 'Item Type': {\n 'title.enabled': title.settings && toggle(title.label, true),\n graph: numberFields('Graph Display Size', {\n width: {\n label: 'Width',\n suffix: 'px',\n min: 400,\n max: 700,\n },\n height: {\n label: 'Height',\n suffix: 'px',\n min: 400,\n max: 700,\n },\n }),\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, [\n 'all or nothing',\n 'partial scoring',\n ]),\n },\n }}\n />\n }\n >\n <div className={classes.content}>\n <Typography component=\"div\" type=\"body1\">\n <span>\n This interaction asks a student to draw a chart that meets\n specific criteria. The student will draw a category on the chart\n by clicking Add Category and dragging the top part of the\n category.\n </span>\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n disableUnderline\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label || 'Rationale'}\n className={classes.promptHolder}\n >\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 />\n </InputContainer>\n )}\n\n <ConfigureChartPanel\n model={model}\n onChange={this.onConfigChange}\n gridValues={gridValues}\n labelValues={labelValues}\n charts={charts}\n />\n\n <ChartingConfig\n model={model}\n onChange={onModelChanged}\n charts={charts}\n />\n\n <CorrectResponse\n config={graph}\n model={model}\n onChange={onModelChanged}\n charts={charts}\n />\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
@@ -233,7 +233,7 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
233
233
  });
234
234
  }
235
235
 
236
- if (!(0, _isEqual["default"])(nextCategories, data)) {
236
+ if (!(0, _isEqual["default"])(nextCategories, data) || (0, _isEmpty["default"])(nextCategories) && (0, _isEmpty["default"])(data)) {
237
237
  this.setState({
238
238
  categories: nextCategories
239
239
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/correct-response.jsx"],"names":["styles","theme","container","border","borderRadius","padding","spacing","unit","background","button","marginTop","cursor","width","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","nextData","nextCorrectAnswerData","nextCategories","removedIndex","answer","dataExists","setState","charts","name","chartType","graph","domain","range","title","changeData","addCategoryEnabled","categoryDefaultLabel","React","Component","classes","PropTypes","object","isRequired","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\nconst styles = (theme) => ({\n container: {\n border: '2px solid #ababab',\n borderRadius: '4px',\n padding: `${theme.spacing.unit * 2}px ${theme.spacing.unit * 4}px`,\n background: '#fafafa',\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px',\n },\n});\n\nconst addCategoryProps = (correctAnswer, data) => correctAnswer.map((correct, index) => ({ ...correct, editable: index < data.length ? data[index].editable : true, interactive: index < data.length ? data[index].interactive : true, deletable: index >= data.length ? true : false }));\n\nconst updateCorrectResponseData = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n const correctAnswerData = [...correctAnswer];\n\n let correctResponseDefinition = [];\n\n data.forEach((category, currentIndex) => {\n const editable = category.editable;\n const interactive = category.interactive;\n\n const label = (editable && correctAnswer[currentIndex]?.label)\n ? correctAnswer[currentIndex].label\n : category.label\n\n const value = (interactive && correctAnswer[currentIndex]?.value)\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 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\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\n}\nexport class CorrectResponse 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 };\n\n constructor(props) {\n super(props);\n this.state = {\n categories: updateCorrectResponseData(\n props.model.correctAnswer.data,\n props.model.data\n )\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 data: data.map(({ interactive, editable, index, ...keepAttrs }) => keepAttrs),\n },\n });\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const {\n model: {\n data: nextData = [],\n correctAnswer: { data: nextCorrectAnswerData = [] },\n } = {},\n } = nextProps;\n\n const {\n model: {\n data = [],\n } = {},\n } = this.props;\n\n const { categories } = this.state;\n let nextCategories = [];\n\n if (nextData.length > data.length && nextCorrectAnswerData.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 }\n\n if (!isEqual(nextCorrectAnswerData, this.props.model.correctAnswer.data)) {\n nextCategories = nextCorrectAnswerData.map((correct, index) => ({ ...correct, editable: index < data.length ? data[index].editable : true, interactive: index < data.length ? data[index].interactive : true }));\n }else if (isEmpty(nextCategories)) {\n nextCategories = updateCorrectResponseData(\n nextCorrectAnswerData,\n nextData\n );\n\n nextCorrectAnswerData.map((answer, currentIndex) => {\n const dataExists = currentIndex < nextData.length;\n let label;\n let value;\n let deletable;\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 deletable = true;\n }\n\n nextCorrectAnswerData[currentIndex] = {\n label: label,\n value: value,\n };\n });\n }\n\n if (!isEqual(nextCategories, data)) {\n this.setState({ categories: nextCategories });\n }\n }\n\n render() {\n const { model, charts } = this.props;\n const { categories } = this.state;\n\n return (\n <div>\n Define Correct Response\n <div key={`correct-response-graph-${model.correctAnswer.name}`}>\n <p>{model.correctAnswer.name}</p>\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={model.domain}\n range={model.range}\n charts={charts}\n data={categories}\n title={model.title}\n onDataChange={(data) => this.changeData(data)}\n addCategoryEnabled={model.addCategoryEnabled}\n categoryDefaultLabel={model.categoryDefaultLabel}\n />\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","border","borderRadius","padding","spacing","unit","background","button","marginTop","cursor","width","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","nextData","nextCorrectAnswerData","nextCategories","removedIndex","answer","dataExists","setState","charts","name","chartType","graph","domain","range","title","changeData","addCategoryEnabled","categoryDefaultLabel","React","Component","classes","PropTypes","object","isRequired","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\nconst styles = (theme) => ({\n container: {\n border: '2px solid #ababab',\n borderRadius: '4px',\n padding: `${theme.spacing.unit * 2}px ${theme.spacing.unit * 4}px`,\n background: '#fafafa',\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px',\n },\n});\n\nconst addCategoryProps = (correctAnswer, data) => correctAnswer.map((correct, index) => ({ ...correct, editable: index < data.length ? data[index].editable : true, interactive: index < data.length ? data[index].interactive : true, deletable: index >= data.length ? true : false }));\n\nconst updateCorrectResponseData = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n const correctAnswerData = [...correctAnswer];\n\n let correctResponseDefinition = [];\n\n data.forEach((category, currentIndex) => {\n const editable = category.editable;\n const interactive = category.interactive;\n\n const label = (editable && correctAnswer[currentIndex]?.label)\n ? correctAnswer[currentIndex].label\n : category.label\n\n const value = (interactive && correctAnswer[currentIndex]?.value)\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 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\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 model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n categories: updateCorrectResponseData(\n props.model.correctAnswer.data,\n props.model.data\n )\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 data: data.map(({ interactive, editable, index, ...keepAttrs }) => keepAttrs),\n },\n });\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const {\n model: {\n data: nextData = [],\n correctAnswer: { data: nextCorrectAnswerData = [] },\n } = {},\n } = nextProps;\n\n const {\n model: {\n data = [],\n } = {},\n } = this.props;\n\n const { categories } = this.state;\n let nextCategories = [];\n\n if (nextData.length > data.length && nextCorrectAnswerData.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 }\n\n if (!isEqual(nextCorrectAnswerData, this.props.model.correctAnswer.data)) {\n nextCategories = nextCorrectAnswerData.map((correct, index) => ({ ...correct, editable: index < data.length ? data[index].editable : true, interactive: index < data.length ? data[index].interactive : true }));\n }else if (isEmpty(nextCategories)) {\n nextCategories = updateCorrectResponseData(\n nextCorrectAnswerData,\n nextData\n );\n\n nextCorrectAnswerData.map((answer, currentIndex) => {\n const dataExists = currentIndex < nextData.length;\n let label;\n let value;\n let deletable;\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 deletable = true;\n }\n\n nextCorrectAnswerData[currentIndex] = {\n label: label,\n value: value,\n };\n });\n }\n\n if (!isEqual(nextCategories, data) || (isEmpty(nextCategories) && isEmpty(data))) {\n this.setState({ categories: nextCategories });\n }\n }\n\n render() {\n const { model, charts } = this.props;\n const { categories } = this.state;\n\n return (\n <div>\n Define Correct Response\n <div key={`correct-response-graph-${model.correctAnswer.name}`}>\n <p>{model.correctAnswer.name}</p>\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={model.domain}\n range={model.range}\n charts={charts}\n data={categories}\n title={model.title}\n onDataChange={(data) => this.changeData(data)}\n addCategoryEnabled={model.addCategoryEnabled}\n categoryDefaultLabel={model.categoryDefaultLabel}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getLabelValues = exports.getGridValues = exports.applyConstraints = exports.VALID_LABEL_VALUES = void 0;
9
+
10
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
11
+
12
+ // this file is almost duplicated from graphing/configure/src/utils.js; the same logic must be used in charting
13
+ var VALID_GRID_VALUES = [0.01, 0.02, 0.04, 0.05, 0.0625, 0.1, 0.125, 0.2, 0.25, 0.5, 1, 2, 3, 4, 5, 8, 10, 12, 15, 20, 40, 50, 64, 100, 500, 1000]; // same as VALID_GRID_VALUES but next values are excluded: 0.04, 0.0625, 0.125, 3, 4, 8, 12, 15, 40, 64
14
+
15
+ var PREFERRED_VALID_GRID_VALUES = [0.01, 0.02, 0.05, 0.1, 0.2, 0.25, 0.5, 1, 2, 5, 10, 20, 50, 100, 500, 1000];
16
+ var VALID_LABEL_VALUES = {
17
+ '0.01': [0, 0.01, 0.02, 0.04, 0.05, 0.1],
18
+ '0.02': [0, 0.02, 0.04, 0.1],
19
+ '0.04': [0, 0.04, 0.08, 0.16, 0.2],
20
+ '0.05': [0, 0.05, 0.1, 0.2, 0.25],
21
+ '0.0625': [0, 0.0625, 0.125, 0.25, 0.5],
22
+ '0.1': [0, 0.1, 0.2, 0.4, 0.5, 1],
23
+ '0.125': [0, 0.125, 0.25, 0.5, 1],
24
+ '0.2': [0, 0.2, 0.5, 0.1],
25
+ '0.25': [0, 0.25, 0.5, 1, 2],
26
+ '0.5': [0, 0.5, 1, 2],
27
+ '1': [0, 1, 2, 4, 5, 10],
28
+ '2': [0, 2, 4, 8, 10],
29
+ '3': [0, 3, 6, 12, 15],
30
+ '4': [0, 4, 8, 16, 20],
31
+ '5': [0, 5, 10, 20, 25],
32
+ '8': [0, 8, 16, 32, 40, 64],
33
+ '10': [0, 10, 20, 40, 50, 100],
34
+ '12': [0, 12, 24],
35
+ '15': [0, 15, 30, 60],
36
+ '20': [0, 20, 40, 80, 100],
37
+ '40': [0, 40, 80, 160, 200],
38
+ '50': [0, 50, 100, 200, 250],
39
+ '64': [0, 64, 128],
40
+ '100': [0, 100, 200, 400, 500],
41
+ '500': [0, 500, 1000, 2500],
42
+ '1000': [0, 1000, 2000, 4000, 5000]
43
+ };
44
+ exports.VALID_LABEL_VALUES = VALID_LABEL_VALUES;
45
+
46
+ var getGridValues = function getGridValues(axis, size) {
47
+ var prefferedValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
48
+ var minValue = 10 * (axis.max - axis.min) / size;
49
+ var maxValue = minValue * 10;
50
+ var values = prefferedValues ? PREFERRED_VALID_GRID_VALUES : VALID_GRID_VALUES;
51
+ return values.filter(function (value) {
52
+ return value >= minValue && value <= maxValue;
53
+ });
54
+ };
55
+
56
+ exports.getGridValues = getGridValues;
57
+
58
+ var getLabelValues = function getLabelValues(value) {
59
+ return VALID_LABEL_VALUES[value] || [];
60
+ };
61
+
62
+ exports.getLabelValues = getLabelValues;
63
+
64
+ var applyConstraints = function applyConstraints(axis, size, oldGridValues, oldLabelValues) {
65
+ var gridValues = getGridValues(axis, size);
66
+ var labelValues = getLabelValues(axis.step || 1);
67
+
68
+ if (!(0, _isEqual["default"])(oldGridValues, gridValues) && !gridValues.includes(axis.step)) {
69
+ var preferredValues = getGridValues(axis, size, true);
70
+ var lowestValue = preferredValues[0] || 1;
71
+ axis.step = lowestValue;
72
+ labelValues = getLabelValues(lowestValue);
73
+
74
+ if (!labelValues.includes(axis.labelStep)) {
75
+ axis.labelStep = lowestValue;
76
+ }
77
+
78
+ return {
79
+ gridValues: gridValues,
80
+ labelValues: labelValues
81
+ };
82
+ }
83
+
84
+ if (!(0, _isEqual["default"])(oldLabelValues, labelValues) && !labelValues.includes(axis.labelStep)) {
85
+ axis.labelStep = axis.step;
86
+ }
87
+
88
+ return {
89
+ gridValues: gridValues,
90
+ labelValues: labelValues
91
+ };
92
+ };
93
+
94
+ exports.applyConstraints = applyConstraints;
95
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils.js"],"names":["VALID_GRID_VALUES","PREFERRED_VALID_GRID_VALUES","VALID_LABEL_VALUES","getGridValues","axis","size","prefferedValues","minValue","max","min","maxValue","values","filter","value","getLabelValues","applyConstraints","oldGridValues","oldLabelValues","gridValues","labelValues","step","includes","preferredValues","lowestValue","labelStep"],"mappings":"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","sourcesContent":["// this file is almost duplicated from graphing/configure/src/utils.js; the same logic must be used in charting\nimport isEqual from 'lodash/isEqual';\n\nconst VALID_GRID_VALUES = [\n 0.01, 0.02, 0.04, 0.05, 0.0625, 0.1, 0.125, 0.2, 0.25, 0.5,\n 1, 2, 3, 4, 5, 8, 10, 12, 15, 20, 40, 50, 64, 100, 500, 1000\n];\n\n// same as VALID_GRID_VALUES but next values are excluded: 0.04, 0.0625, 0.125, 3, 4, 8, 12, 15, 40, 64\nconst PREFERRED_VALID_GRID_VALUES = [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.25, 0.5, 1, 2, 5, 10, 20, 50, 100, 500, 1000 ];\n\nexport const VALID_LABEL_VALUES = {\n '0.01': [0, 0.01, 0.02, 0.04, 0.05, 0.1],\n '0.02': [0, 0.02, 0.04, 0.1],\n '0.04': [0, 0.04, 0.08, 0.16, 0.2],\n '0.05': [0, 0.05, 0.1, 0.2, 0.25],\n '0.0625': [0, 0.0625, 0.125, 0.25, 0.5],\n '0.1': [0, 0.1, 0.2, 0.4, 0.5, 1],\n '0.125': [0, 0.125, 0.25, 0.5, 1],\n '0.2': [0, 0.2, 0.5, 0.1],\n '0.25': [0, 0.25, 0.5, 1, 2],\n '0.5': [0, 0.5, 1, 2],\n '1': [0, 1, 2, 4, 5, 10],\n '2': [0, 2, 4, 8, 10],\n '3': [0, 3, 6, 12, 15],\n '4': [0, 4, 8, 16, 20],\n '5': [0, 5, 10, 20, 25],\n '8': [0, 8, 16, 32, 40, 64],\n '10': [0, 10, 20, 40, 50, 100],\n '12': [0, 12, 24],\n '15': [0, 15, 30, 60],\n '20': [0, 20, 40, 80, 100],\n '40': [0, 40, 80, 160, 200],\n '50': [0, 50, 100, 200, 250],\n '64': [0, 64, 128],\n '100': [0, 100, 200, 400, 500],\n '500': [0, 500, 1000, 2500],\n '1000': [0, 1000, 2000, 4000, 5000]\n};\n\nexport const getGridValues = (axis, size, prefferedValues = false) => {\n const minValue = 10 * (axis.max - axis.min) / size;\n const maxValue = minValue * 10;\n const values = prefferedValues ? PREFERRED_VALID_GRID_VALUES : VALID_GRID_VALUES;\n\n return values.filter(value => value >= minValue && value <= maxValue);\n};\n\nexport const getLabelValues = value => VALID_LABEL_VALUES[value] || [];\n\nexport const applyConstraints = (axis, size, oldGridValues, oldLabelValues) => {\n const gridValues = getGridValues(axis, size);\n let labelValues = getLabelValues(axis.step || 1);\n\n if (!isEqual(oldGridValues, gridValues) && !gridValues.includes(axis.step)) {\n const preferredValues = getGridValues(axis, size, true);\n const lowestValue = preferredValues[0] || 1;\n\n axis.step = lowestValue;\n labelValues = getLabelValues(lowestValue);\n\n if (!labelValues.includes(axis.labelStep)) {\n axis.labelStep = lowestValue;\n }\n\n return { gridValues, labelValues };\n }\n\n if (!isEqual(oldLabelValues, labelValues) && !labelValues.includes(axis.labelStep)) {\n axis.labelStep = axis.step;\n }\n\n return { gridValues, labelValues };\n};"],"file":"utils.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/charting-configure",
3
3
  "private": true,
4
- "version": "4.0.0",
4
+ "version": "5.0.2",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -9,9 +9,9 @@
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-configure-events": "^1.2.0",
12
- "@pie-lib/charting": "^5.1.0",
13
- "@pie-lib/config-ui": "^11.0.1",
14
- "@pie-lib/editable-html": "^8.1.0",
12
+ "@pie-lib/charting": "^5.1.2",
13
+ "@pie-lib/config-ui": "^11.0.7",
14
+ "@pie-lib/editable-html": "^9.0.3",
15
15
  "classnames": "^2.2.5",
16
16
  "debug": "^4.1.1",
17
17
  "prop-types": "^15.6.2",
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "4.0.0",
7
+ "version": "5.0.2",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -13,10 +13,10 @@
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.1.0",
17
- "@pie-lib/correct-answer-toggle": "^2.3.39",
18
- "@pie-lib/math-rendering": "^2.4.3",
19
- "@pie-lib/render-ui": "^4.12.9",
16
+ "@pie-lib/charting": "^5.1.2",
17
+ "@pie-lib/correct-answer-toggle": "^2.3.41",
18
+ "@pie-lib/math-rendering": "^2.4.5",
19
+ "@pie-lib/render-ui": "^4.13.1",
20
20
  "classnames": "^2.2.5",
21
21
  "debug": "^4.1.1",
22
22
  "lodash": "^4.17.15",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "author": "",
27
27
  "license": "ISC",
28
- "gitHead": "ff92cee6f9a7bf3f3dc75dbafd2263710f0a6b3d",
28
+ "gitHead": "82601efbc23b3d070a554127f16aa4a11341f550",
29
29
  "main": "lib/index.js",
30
30
  "module": "src/index.js"
31
31
  }