@pie-lib/charting 5.8.0 → 5.8.2-next.1

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,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.8.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.8.0...@pie-lib/charting@5.8.1) (2023-05-02)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **charting:** fix bad default state for chart data in author and player PD-2755, PD-2625 ([2428bb1](https://github.com/pie-framework/pie-lib/commit/2428bb14c0d304111f79e8553e48b95e6882d628))
12
+
13
+
14
+
15
+
16
+
6
17
  # [5.8.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.7.2...@pie-lib/charting@5.8.0) (2023-05-01)
7
18
 
8
19
 
@@ -168,18 +168,8 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
168
168
  }));
169
169
  };
170
170
 
171
- var handleOutOfRangeValues = function handleOutOfRangeValues(initialState, remove) {
172
- // handle the first render of the model
173
- if (initialState) {
174
- removeOutOfRangeValues(remove);
175
- onChange(_objectSpread({}, model));
176
- } else {
177
- setOpen(true);
178
- }
179
- };
180
-
181
171
  var isOutOfRange = function isOutOfRange(data, range) {
182
- return data.find(function (d) {
172
+ return (data || []).find(function (d) {
183
173
  return d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0;
184
174
  });
185
175
  };
@@ -192,11 +182,10 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
192
182
 
193
183
  if (key === 'max' || key === 'step') {
194
184
  // check if current chart values are invalid for given range step/max
195
- var outOfRange = isOutOfRange(model.data || [], range) || isOutOfRange(model.correctAnswer.data || [], range);
185
+ var outOfRange = isOutOfRange(model.data, range) || isOutOfRange(model.correctAnswer.data, range);
196
186
 
197
- if (outOfRange) {
198
- var initialState = JSON.stringify(e) === '{}';
199
- handleOutOfRangeValues(initialState, true);
187
+ if (outOfRange && JSON.stringify(e) !== '{}') {
188
+ setOpen(true);
200
189
  } else {
201
190
  onChange(_objectSpread(_objectSpread({}, model), {}, {
202
191
  range: range
@@ -209,6 +198,9 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
209
198
  }
210
199
  };
211
200
 
201
+ (0, _react.useEffect)(function () {
202
+ removeOutOfRangeValues(true);
203
+ }, []);
212
204
  (0, _react.useEffect)(function () {
213
205
  if (open) {
214
206
  setAlertDialog({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart-setup.jsx"],"names":["ConfigureChartPanel","props","classes","model","onChange","chartDimensions","gridValues","labelValues","alertDialog","setAlertDialog","open","setOpen","rangeKey","setRangeKey","resetValue","setResetValue","range","correctAnswer","size","graph","showInConfigPanel","width","height","widthConstraints","min","Math","max","step","heightConstraints","gridOptions","customValues","labelOptions","stepConfig","rowView","mediumTextField","e","v","onRangeChanged","labelStep","handleAlertDialog","callback","resetValues","data","updateModel","forEach","d","remainder","value","floor","removeOutOfRangeValues","rangeProps","chartType","includes","onSizeChanged","key","handleOutOfRangeValues","initialState","remove","isOutOfRange","find","outOfRange","JSON","stringify","title","text","onConfirm","onClose","isValidPlot","getPlotConfiguration","onChartTypeChange","wrapper","content","target","dimensions","columnView","textField","disabled","propTypes","PropTypes","object","domain","func","chartDimension","styles","theme","display","flexDirection","marginTop","spacing","unit","alignItems","justifyContent","margin","largeTextField","fontStyle","color"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport ChartType from './chart-type';\nimport { NumberTextFieldCustom } from '@pie-lib/config-ui';\nimport { AlertDialog } from '@pie-lib/config-ui';\n\nconst ConfigureChartPanel = (props) => {\n const { classes, model, onChange, chartDimensions, gridValues = {}, labelValues = {} } = props;\n const [alertDialog, setAlertDialog] = useState(false);\n const [open, setOpen] = useState(false);\n const [rangeKey, setRangeKey] = useState('');\n const [resetValue, setResetValue] = useState(0);\n\n const { range = {}, correctAnswer } = model;\n\n const size = model.graph;\n const { showInConfigPanel, width, height } = chartDimensions || {};\n\n const widthConstraints = {\n min: width?.min ? Math.max(50, width.min) : 50,\n max: width?.max ? Math.min(700, width.max) : 700,\n step: width?.step >= 1 ? Math.min(200, width.step) : 20,\n };\n const heightConstraints = {\n min: height?.min ? Math.max(400, height.min) : 400,\n max: height?.max ? Math.min(700, height.max) : 700,\n step: height?.step >= 1 ? Math.min(200, height.step) : 20,\n };\n\n const gridOptions = gridValues && gridValues.range ? { customValues: gridValues.range } : { min: 0, max: 10000 };\n const labelOptions = labelValues && labelValues.range ? { customValues: labelValues.range } : { min: 0, max: 10000 };\n\n const stepConfig = (\n <div className={classes.rowView}>\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label=\"Grid Interval\"\n value={range.step}\n variant=\"outlined\"\n onChange={(e, v) => onRangeChanged('step', v, e)}\n {...gridOptions}\n />\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={'Label Interval'}\n value={range.labelStep}\n variant={'outlined'}\n onChange={(e, v) => onRangeChanged('labelStep', v, e)}\n {...labelOptions}\n />\n </div>\n );\n\n const handleAlertDialog = (open, callback) => {\n setAlertDialog(\n {\n alertDialog: open,\n },\n callback,\n );\n setOpen(open);\n };\n\n const resetValues = (data, updateModel) => {\n (data || []).forEach((d) => {\n const remainder = d.value - range.step * Math.floor(d.value / range.step);\n\n if (d.value > range.max || remainder !== 0) {\n d.value = 0;\n }\n });\n\n if (updateModel) {\n onChange({ ...model, data });\n }\n };\n\n const removeOutOfRangeValues = (updateModel) => {\n const { correctAnswer, data } = model;\n\n resetValues(data, updateModel);\n resetValues(correctAnswer.data);\n };\n\n const rangeProps = (chartType) => {\n return chartType.includes('Plot') ? { min: 3, max: 10 } : { min: 0.05, max: 10000 };\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n onChange({ ...model, graph });\n };\n\n const handleOutOfRangeValues = (initialState, remove) => {\n // handle the first render of the model\n if (initialState) {\n removeOutOfRangeValues(remove);\n onChange({ ...model });\n } else {\n setOpen(true);\n }\n };\n\n const isOutOfRange = (data, range) =>\n data.find((d) => d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0);\n\n const onRangeChanged = (key, value, e) => {\n // use reset values to restore range to initial values\n setResetValue(range[key]);\n setRangeKey(key);\n\n range[key] = value;\n\n if (key === 'max' || key === 'step') {\n // check if current chart values are invalid for given range step/max\n const outOfRange = isOutOfRange(model.data || [], range) || isOutOfRange(model.correctAnswer.data || [], range);\n\n if (outOfRange) {\n const initialState = JSON.stringify(e) === '{}';\n handleOutOfRangeValues(initialState, true);\n } else {\n onChange({ ...model, range });\n }\n } else {\n onChange({ ...model, range });\n }\n };\n\n useEffect(() => {\n if (open) {\n setAlertDialog({\n open: true,\n title: 'Warning',\n text: 'This change will remove values defined for one or more categories',\n onConfirm: () => {\n removeOutOfRangeValues();\n handleAlertDialog(false, onChange({ ...model, range, correctAnswer }));\n },\n onClose: () => {\n range[rangeKey] = resetValue;\n handleAlertDialog(false);\n },\n });\n }\n }, [open]);\n\n const isValidPlot = range.step === 1 && range.labelStep === 1 && 3 <= range.max && range.max <= 10;\n\n const getPlotConfiguration = () => {\n rangeProps.min = 3;\n rangeProps.max = 10;\n\n range.max = 10;\n range.step = 1;\n range.labelStep = 1;\n\n onChange({ ...model, range });\n };\n\n const onChartTypeChange = (chartType) => {\n if (chartType.includes('Plot')) {\n // The selected chart type does not support the current chart configuration\n if (!isValidPlot) {\n setAlertDialog({\n open: true,\n title: 'Warning',\n text: 'The selected chart type does not support the current chart configuration. Reset chart configuration?',\n onConfirm: () => {\n getPlotConfiguration();\n removeOutOfRangeValues();\n handleAlertDialog(false, onChange({ ...model, range, chartType }));\n },\n onClose: () => {\n handleAlertDialog(false);\n },\n });\n\n return;\n }\n\n rangeProps.min = 3;\n rangeProps.max = 10;\n\n onChange({ ...model, chartType });\n\n return;\n }\n\n onChange({ ...model, chartType });\n };\n\n return (\n <div className={classes.wrapper}>\n <Typography variant={'subtitle1'}>Configure Chart</Typography>\n <div className={classes.content}>\n <div className={classes.rowView}>\n <ChartType value={model.chartType} onChange={(e) => onChartTypeChange(e.target.value)} />\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label=\"Max Value\"\n value={range.max}\n min={rangeProps(model.chartType).min}\n max={rangeProps(model.chartType).max}\n variant=\"outlined\"\n onChange={(e, v) => onRangeChanged('max', v, e)}\n />\n </div>\n {!model.chartType.includes('Plot') && stepConfig}\n\n {showInConfigPanel && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n </div>\n\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.textField}\n label={'Width'}\n value={size.width}\n min={widthConstraints.min}\n max={widthConstraints.max}\n step={widthConstraints.step}\n variant={'outlined'}\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <Typography className={classes.disabled}>Min 50, Max 700</Typography>\n </div>\n\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.textField}\n label={'Height'}\n value={size.height}\n min={heightConstraints.min}\n max={heightConstraints.max}\n step={heightConstraints.step}\n variant={'outlined'}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n <Typography className={classes.disabled}>Min 400, Max 700</Typography>\n </div>\n </div>\n )}\n </div>\n\n <AlertDialog\n open={alertDialog.open}\n title={alertDialog.title}\n text={alertDialog.text}\n onClose={alertDialog.onClose}\n onConfirm={alertDialog.onConfirm}\n />\n </div>\n );\n};\n\nConfigureChartPanel.propTypes = {\n classes: PropTypes.object,\n chartDimensions: PropTypes.object,\n domain: PropTypes.object,\n gridValues: PropTypes.object,\n labelValues: PropTypes.object,\n model: PropTypes.object,\n onChange: PropTypes.func,\n range: PropTypes.object,\n chartDimension: PropTypes.object,\n size: PropTypes.object,\n};\n\nconst styles = (theme) => ({\n wrapper: {\n width: '450px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`,\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n margin: `${theme.spacing.unit * 3}px 0`,\n },\n disabled: {\n color: color.disabled(),\n },\n});\n\nexport default withStyles(styles)(ConfigureChartPanel);\n"],"file":"chart-setup.js"}
1
+ {"version":3,"sources":["../src/chart-setup.jsx"],"names":["ConfigureChartPanel","props","classes","model","onChange","chartDimensions","gridValues","labelValues","alertDialog","setAlertDialog","open","setOpen","rangeKey","setRangeKey","resetValue","setResetValue","range","correctAnswer","size","graph","showInConfigPanel","width","height","widthConstraints","min","Math","max","step","heightConstraints","gridOptions","customValues","labelOptions","stepConfig","rowView","mediumTextField","e","v","onRangeChanged","labelStep","handleAlertDialog","callback","resetValues","data","updateModel","forEach","d","remainder","value","floor","removeOutOfRangeValues","rangeProps","chartType","includes","onSizeChanged","key","isOutOfRange","find","outOfRange","JSON","stringify","title","text","onConfirm","onClose","isValidPlot","getPlotConfiguration","onChartTypeChange","wrapper","content","target","dimensions","columnView","textField","disabled","propTypes","PropTypes","object","domain","func","chartDimension","styles","theme","display","flexDirection","marginTop","spacing","unit","alignItems","justifyContent","margin","largeTextField","fontStyle","color"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport ChartType from './chart-type';\nimport { NumberTextFieldCustom } from '@pie-lib/config-ui';\nimport { AlertDialog } from '@pie-lib/config-ui';\n\nconst ConfigureChartPanel = (props) => {\n const { classes, model, onChange, chartDimensions, gridValues = {}, labelValues = {} } = props;\n const [alertDialog, setAlertDialog] = useState(false);\n const [open, setOpen] = useState(false);\n const [rangeKey, setRangeKey] = useState('');\n const [resetValue, setResetValue] = useState(0);\n\n const { range = {}, correctAnswer } = model;\n\n const size = model.graph;\n const { showInConfigPanel, width, height } = chartDimensions || {};\n\n const widthConstraints = {\n min: width?.min ? Math.max(50, width.min) : 50,\n max: width?.max ? Math.min(700, width.max) : 700,\n step: width?.step >= 1 ? Math.min(200, width.step) : 20,\n };\n const heightConstraints = {\n min: height?.min ? Math.max(400, height.min) : 400,\n max: height?.max ? Math.min(700, height.max) : 700,\n step: height?.step >= 1 ? Math.min(200, height.step) : 20,\n };\n\n const gridOptions = gridValues && gridValues.range ? { customValues: gridValues.range } : { min: 0, max: 10000 };\n const labelOptions = labelValues && labelValues.range ? { customValues: labelValues.range } : { min: 0, max: 10000 };\n\n const stepConfig = (\n <div className={classes.rowView}>\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label=\"Grid Interval\"\n value={range.step}\n variant=\"outlined\"\n onChange={(e, v) => onRangeChanged('step', v, e)}\n {...gridOptions}\n />\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={'Label Interval'}\n value={range.labelStep}\n variant={'outlined'}\n onChange={(e, v) => onRangeChanged('labelStep', v, e)}\n {...labelOptions}\n />\n </div>\n );\n\n const handleAlertDialog = (open, callback) => {\n setAlertDialog(\n {\n alertDialog: open,\n },\n callback,\n );\n setOpen(open);\n };\n\n const resetValues = (data, updateModel) => {\n (data || []).forEach((d) => {\n const remainder = d.value - range.step * Math.floor(d.value / range.step);\n\n if (d.value > range.max || remainder !== 0) {\n d.value = 0;\n }\n });\n\n if (updateModel) {\n onChange({ ...model, data });\n }\n };\n\n const removeOutOfRangeValues = (updateModel) => {\n const { correctAnswer, data } = model;\n\n resetValues(data, updateModel);\n resetValues(correctAnswer.data);\n };\n\n const rangeProps = (chartType) => {\n return chartType.includes('Plot') ? { min: 3, max: 10 } : { min: 0.05, max: 10000 };\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n onChange({ ...model, graph });\n };\n\n const isOutOfRange = (data, range) =>\n (data || []).find((d) => d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0);\n\n const onRangeChanged = (key, value, e) => {\n // use reset values to restore range to initial values\n setResetValue(range[key]);\n setRangeKey(key);\n\n range[key] = value;\n\n if (key === 'max' || key === 'step') {\n // check if current chart values are invalid for given range step/max\n const outOfRange = isOutOfRange(model.data, range) || isOutOfRange(model.correctAnswer.data, range);\n\n if (outOfRange && JSON.stringify(e) !== '{}') {\n setOpen(true);\n } else {\n onChange({ ...model, range });\n }\n } else {\n onChange({ ...model, range });\n }\n };\n\n useEffect(() => {\n removeOutOfRangeValues(true);\n }, []);\n\n useEffect(() => {\n if (open) {\n setAlertDialog({\n open: true,\n title: 'Warning',\n text: 'This change will remove values defined for one or more categories',\n onConfirm: () => {\n removeOutOfRangeValues();\n handleAlertDialog(false, onChange({ ...model, range, correctAnswer }));\n },\n onClose: () => {\n range[rangeKey] = resetValue;\n handleAlertDialog(false);\n },\n });\n }\n }, [open]);\n\n const isValidPlot = range.step === 1 && range.labelStep === 1 && 3 <= range.max && range.max <= 10;\n\n const getPlotConfiguration = () => {\n rangeProps.min = 3;\n rangeProps.max = 10;\n\n range.max = 10;\n range.step = 1;\n range.labelStep = 1;\n\n onChange({ ...model, range });\n };\n\n const onChartTypeChange = (chartType) => {\n if (chartType.includes('Plot')) {\n // The selected chart type does not support the current chart configuration\n if (!isValidPlot) {\n setAlertDialog({\n open: true,\n title: 'Warning',\n text: 'The selected chart type does not support the current chart configuration. Reset chart configuration?',\n onConfirm: () => {\n getPlotConfiguration();\n removeOutOfRangeValues();\n handleAlertDialog(false, onChange({ ...model, range, chartType }));\n },\n onClose: () => {\n handleAlertDialog(false);\n },\n });\n\n return;\n }\n\n rangeProps.min = 3;\n rangeProps.max = 10;\n\n onChange({ ...model, chartType });\n\n return;\n }\n\n onChange({ ...model, chartType });\n };\n\n return (\n <div className={classes.wrapper}>\n <Typography variant={'subtitle1'}>Configure Chart</Typography>\n <div className={classes.content}>\n <div className={classes.rowView}>\n <ChartType value={model.chartType} onChange={(e) => onChartTypeChange(e.target.value)} />\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label=\"Max Value\"\n value={range.max}\n min={rangeProps(model.chartType).min}\n max={rangeProps(model.chartType).max}\n variant=\"outlined\"\n onChange={(e, v) => onRangeChanged('max', v, e)}\n />\n </div>\n {!model.chartType.includes('Plot') && stepConfig}\n\n {showInConfigPanel && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n </div>\n\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.textField}\n label={'Width'}\n value={size.width}\n min={widthConstraints.min}\n max={widthConstraints.max}\n step={widthConstraints.step}\n variant={'outlined'}\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <Typography className={classes.disabled}>Min 50, Max 700</Typography>\n </div>\n\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.textField}\n label={'Height'}\n value={size.height}\n min={heightConstraints.min}\n max={heightConstraints.max}\n step={heightConstraints.step}\n variant={'outlined'}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n <Typography className={classes.disabled}>Min 400, Max 700</Typography>\n </div>\n </div>\n )}\n </div>\n\n <AlertDialog\n open={alertDialog.open}\n title={alertDialog.title}\n text={alertDialog.text}\n onClose={alertDialog.onClose}\n onConfirm={alertDialog.onConfirm}\n />\n </div>\n );\n};\n\nConfigureChartPanel.propTypes = {\n classes: PropTypes.object,\n chartDimensions: PropTypes.object,\n domain: PropTypes.object,\n gridValues: PropTypes.object,\n labelValues: PropTypes.object,\n model: PropTypes.object,\n onChange: PropTypes.func,\n range: PropTypes.object,\n chartDimension: PropTypes.object,\n size: PropTypes.object,\n};\n\nconst styles = (theme) => ({\n wrapper: {\n width: '450px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`,\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n margin: `${theme.spacing.unit * 3}px 0`,\n },\n disabled: {\n color: color.disabled(),\n },\n});\n\nexport default withStyles(styles)(ConfigureChartPanel);\n"],"file":"chart-setup.js"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "5.8.0",
6
+ "version": "5.8.2-next.1+19dabeb7",
7
7
  "description": "charting",
8
8
  "keywords": [
9
9
  "react",
@@ -43,5 +43,5 @@
43
43
  "peerDependencies": {
44
44
  "react": "^16.8.1"
45
45
  },
46
- "gitHead": "a00b9625c0f269a7a7bf8ff14f3f771402d45c5e"
46
+ "gitHead": "19dabeb70004ac4c1d1b17ca79e75a8021178741"
47
47
  }
@@ -95,18 +95,8 @@ const ConfigureChartPanel = (props) => {
95
95
  onChange({ ...model, graph });
96
96
  };
97
97
 
98
- const handleOutOfRangeValues = (initialState, remove) => {
99
- // handle the first render of the model
100
- if (initialState) {
101
- removeOutOfRangeValues(remove);
102
- onChange({ ...model });
103
- } else {
104
- setOpen(true);
105
- }
106
- };
107
-
108
98
  const isOutOfRange = (data, range) =>
109
- data.find((d) => d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0);
99
+ (data || []).find((d) => d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0);
110
100
 
111
101
  const onRangeChanged = (key, value, e) => {
112
102
  // use reset values to restore range to initial values
@@ -117,11 +107,10 @@ const ConfigureChartPanel = (props) => {
117
107
 
118
108
  if (key === 'max' || key === 'step') {
119
109
  // check if current chart values are invalid for given range step/max
120
- const outOfRange = isOutOfRange(model.data || [], range) || isOutOfRange(model.correctAnswer.data || [], range);
110
+ const outOfRange = isOutOfRange(model.data, range) || isOutOfRange(model.correctAnswer.data, range);
121
111
 
122
- if (outOfRange) {
123
- const initialState = JSON.stringify(e) === '{}';
124
- handleOutOfRangeValues(initialState, true);
112
+ if (outOfRange && JSON.stringify(e) !== '{}') {
113
+ setOpen(true);
125
114
  } else {
126
115
  onChange({ ...model, range });
127
116
  }
@@ -130,6 +119,10 @@ const ConfigureChartPanel = (props) => {
130
119
  }
131
120
  };
132
121
 
122
+ useEffect(() => {
123
+ removeOutOfRangeValues(true);
124
+ }, []);
125
+
133
126
  useEffect(() => {
134
127
  if (open) {
135
128
  setAlertDialog({