@pie-lib/charting 5.14.3-next.53 → 5.14.3-next.82

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.
@@ -7,14 +7,14 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports["default"] = void 0;
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ exports.resetValues = exports["default"] = void 0;
13
11
 
14
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
13
 
16
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
15
 
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -37,6 +37,27 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
37
37
 
38
38
  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; }
39
39
 
40
+ var resetValues = function resetValues(data, updateModel, range, onChange, model) {
41
+ (data || []).forEach(function (d) {
42
+ var d_value_scaled = Math.round(d.value * 10);
43
+ var range_step_scaled = Math.round(range.step * 10);
44
+ var remainder_scaled = d_value_scaled % range_step_scaled;
45
+ var remainder = remainder_scaled / 10;
46
+
47
+ if (d.value > range.max || remainder !== 0) {
48
+ d.value = 0;
49
+ }
50
+ });
51
+
52
+ if (updateModel) {
53
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
54
+ data: data
55
+ }));
56
+ }
57
+ };
58
+
59
+ exports.resetValues = resetValues;
60
+
40
61
  var ConfigureChartPanel = function ConfigureChartPanel(props) {
41
62
  var classes = props.classes,
42
63
  model = props.model,
@@ -134,22 +155,6 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
134
155
  setOpen(open);
135
156
  };
136
157
 
137
- var resetValues = function resetValues(data, updateModel) {
138
- (data || []).forEach(function (d) {
139
- var remainder = d.value - range.step * Math.floor(d.value / range.step);
140
-
141
- if (d.value > range.max || remainder !== 0) {
142
- d.value = 0;
143
- }
144
- });
145
-
146
- if (updateModel) {
147
- onChange(_objectSpread(_objectSpread({}, model), {}, {
148
- data: data
149
- }));
150
- }
151
- };
152
-
153
158
  var setPropertiesToFalse = function setPropertiesToFalse(data, property) {
154
159
  return data.map(function (obj) {
155
160
  if (obj.hasOwnProperty(property)) {
@@ -172,8 +177,8 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
172
177
  setPropertiesToFalse(data, 'editable');
173
178
  }
174
179
 
175
- resetValues(data, updateModel);
176
- resetValues(correctAnswer.data);
180
+ resetValues(data, updateModel, range, onChange, model);
181
+ resetValues(correctAnswer.data, false, range, onChange, model);
177
182
  };
178
183
 
179
184
  var setCategoryDefaultLabel = function setCategoryDefaultLabel() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart-setup.jsx"],"names":["ConfigureChartPanel","props","classes","model","onChange","chartDimensions","gridValues","labelValues","studentNewCategoryDefaultLabel","availableChartTypes","chartTypeLabel","alertDialog","setAlertDialog","open","setOpen","rangeKey","setRangeKey","resetValue","setResetValue","range","correctAnswer","changeInteractiveEnabled","changeEditableEnabled","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","setPropertiesToFalse","property","map","obj","hasOwnProperty","removeOutOfRangeValues","setCategoryDefaultLabel","studentCategoryDefaultLabel","label","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","string","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 {\n classes,\n model,\n onChange,\n chartDimensions,\n gridValues = {},\n labelValues = {},\n studentNewCategoryDefaultLabel = {},\n availableChartTypes = {},\n chartTypeLabel,\n } = 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, changeInteractiveEnabled, changeEditableEnabled } = 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 setPropertiesToFalse = (data, property) => {\n return data.map((obj) => {\n if (obj.hasOwnProperty(property)) {\n obj[property] = property == 'interactive' ? true : false;\n }\n return obj;\n });\n };\n\n const removeOutOfRangeValues = (updateModel) => {\n const { correctAnswer, data } = model;\n\n if (changeInteractiveEnabled === false) {\n setPropertiesToFalse(data, 'interactive');\n }\n\n if (changeEditableEnabled === false) {\n setPropertiesToFalse(data, 'editable');\n }\n\n resetValues(data, updateModel);\n resetValues(correctAnswer.data);\n };\n\n const setCategoryDefaultLabel = () => {\n const studentCategoryDefaultLabel = studentNewCategoryDefaultLabel?.label;\n\n onChange({ ...model, studentCategoryDefaultLabel });\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 setCategoryDefaultLabel();\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\n value={model.chartType}\n onChange={(e) => onChartTypeChange(e.target.value)}\n availableChartTypes={availableChartTypes}\n chartTypeLabel={chartTypeLabel}\n />\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 studentNewCategoryDefaultLabel: PropTypes.object,\n availableChartTypes: PropTypes.object,\n chartTypeLabel: PropTypes.string,\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":["resetValues","data","updateModel","range","onChange","model","forEach","d","d_value_scaled","Math","round","value","range_step_scaled","step","remainder_scaled","remainder","max","ConfigureChartPanel","props","classes","chartDimensions","gridValues","labelValues","studentNewCategoryDefaultLabel","availableChartTypes","chartTypeLabel","alertDialog","setAlertDialog","open","setOpen","rangeKey","setRangeKey","resetValue","setResetValue","correctAnswer","changeInteractiveEnabled","changeEditableEnabled","size","graph","showInConfigPanel","width","height","widthConstraints","min","heightConstraints","gridOptions","customValues","labelOptions","stepConfig","rowView","mediumTextField","e","v","onRangeChanged","labelStep","handleAlertDialog","callback","setPropertiesToFalse","property","map","obj","hasOwnProperty","removeOutOfRangeValues","setCategoryDefaultLabel","studentCategoryDefaultLabel","label","rangeProps","chartType","includes","onSizeChanged","key","isOutOfRange","find","floor","outOfRange","JSON","stringify","title","text","onConfirm","onClose","isValidPlot","getPlotConfiguration","onChartTypeChange","wrapper","content","target","dimensions","columnView","textField","disabled","propTypes","PropTypes","object","domain","func","chartDimension","string","styles","theme","display","flexDirection","marginTop","spacing","unit","alignItems","justifyContent","margin","largeTextField","fontStyle","color"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAGO,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,IAAD,EAAOC,WAAP,EAAoBC,KAApB,EAA2BC,QAA3B,EAAqCC,KAArC,EAA+C;AACxE,GAACJ,IAAI,IAAI,EAAT,EAAaK,OAAb,CAAqB,UAACC,CAAD,EAAO;AAC1B,QAAMC,cAAc,GAAGC,IAAI,CAACC,KAAL,CAAWH,CAAC,CAACI,KAAF,GAAU,EAArB,CAAvB;AACA,QAAMC,iBAAiB,GAAGH,IAAI,CAACC,KAAL,CAAWP,KAAK,CAACU,IAAN,GAAa,EAAxB,CAA1B;AACA,QAAMC,gBAAgB,GAAGN,cAAc,GAAGI,iBAA1C;AACA,QAAMG,SAAS,GAAGD,gBAAgB,GAAG,EAArC;;AAEA,QAAIP,CAAC,CAACI,KAAF,GAAUR,KAAK,CAACa,GAAhB,IAAuBD,SAAS,KAAK,CAAzC,EAA4C;AAC1CR,MAAAA,CAAC,CAACI,KAAF,GAAU,CAAV;AACD;AACF,GATD;;AAWA,MAAIT,WAAJ,EAAiB;AACfE,IAAAA,QAAQ,iCAAMC,KAAN;AAAaJ,MAAAA,IAAI,EAAJA;AAAb,OAAR;AACD;AACF,CAfM;;;;AAiBP,IAAMgB,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAAW;AACrC,MACEC,OADF,GAUID,KAVJ,CACEC,OADF;AAAA,MAEEd,KAFF,GAUIa,KAVJ,CAEEb,KAFF;AAAA,MAGED,QAHF,GAUIc,KAVJ,CAGEd,QAHF;AAAA,MAIEgB,eAJF,GAUIF,KAVJ,CAIEE,eAJF;AAAA,0BAUIF,KAVJ,CAKEG,UALF;AAAA,MAKEA,UALF,kCAKe,EALf;AAAA,2BAUIH,KAVJ,CAMEI,WANF;AAAA,MAMEA,WANF,mCAMgB,EANhB;AAAA,8BAUIJ,KAVJ,CAOEK,8BAPF;AAAA,MAOEA,8BAPF,sCAOmC,EAPnC;AAAA,8BAUIL,KAVJ,CAQEM,mBARF;AAAA,MAQEA,mBARF,sCAQwB,EARxB;AAAA,MASEC,cATF,GAUIP,KAVJ,CASEO,cATF;;AAWA,kBAAsC,qBAAS,KAAT,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AACA,mBAAwB,qBAAS,KAAT,CAAxB;AAAA;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AACA,mBAAgC,qBAAS,EAAT,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AACA,mBAAoC,qBAAS,CAAT,CAApC;AAAA;AAAA,MAAOC,UAAP;AAAA,MAAmBC,aAAnB;;AAEA,qBAAuF5B,KAAvF,CAAQF,KAAR;AAAA,MAAQA,KAAR,6BAAgB,EAAhB;AAAA,MAAoB+B,aAApB,GAAuF7B,KAAvF,CAAoB6B,aAApB;AAAA,MAAmCC,wBAAnC,GAAuF9B,KAAvF,CAAmC8B,wBAAnC;AAAA,MAA6DC,qBAA7D,GAAuF/B,KAAvF,CAA6D+B,qBAA7D;AAEA,MAAMC,IAAI,GAAGhC,KAAK,CAACiC,KAAnB;;AACA,aAA6ClB,eAAe,IAAI,EAAhE;AAAA,MAAQmB,iBAAR,QAAQA,iBAAR;AAAA,MAA2BC,KAA3B,QAA2BA,KAA3B;AAAA,MAAkCC,MAAlC,QAAkCA,MAAlC;;AAEA,MAAMC,gBAAgB,GAAG;AACvBC,IAAAA,GAAG,EAAEH,KAAK,SAAL,IAAAA,KAAK,WAAL,IAAAA,KAAK,CAAEG,GAAP,GAAalC,IAAI,CAACO,GAAL,CAAS,EAAT,EAAawB,KAAK,CAACG,GAAnB,CAAb,GAAuC,EADrB;AAEvB3B,IAAAA,GAAG,EAAEwB,KAAK,SAAL,IAAAA,KAAK,WAAL,IAAAA,KAAK,CAAExB,GAAP,GAAaP,IAAI,CAACkC,GAAL,CAAS,GAAT,EAAcH,KAAK,CAACxB,GAApB,CAAb,GAAwC,GAFtB;AAGvBH,IAAAA,IAAI,EAAE,CAAA2B,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAE3B,IAAP,KAAe,CAAf,GAAmBJ,IAAI,CAACkC,GAAL,CAAS,GAAT,EAAcH,KAAK,CAAC3B,IAApB,CAAnB,GAA+C;AAH9B,GAAzB;AAKA,MAAM+B,iBAAiB,GAAG;AACxBD,IAAAA,GAAG,EAAEF,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEE,GAAR,GAAclC,IAAI,CAACO,GAAL,CAAS,GAAT,EAAcyB,MAAM,CAACE,GAArB,CAAd,GAA0C,GADvB;AAExB3B,IAAAA,GAAG,EAAEyB,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEzB,GAAR,GAAcP,IAAI,CAACkC,GAAL,CAAS,GAAT,EAAcF,MAAM,CAACzB,GAArB,CAAd,GAA0C,GAFvB;AAGxBH,IAAAA,IAAI,EAAE,CAAA4B,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAE5B,IAAR,KAAgB,CAAhB,GAAoBJ,IAAI,CAACkC,GAAL,CAAS,GAAT,EAAcF,MAAM,CAAC5B,IAArB,CAApB,GAAiD;AAH/B,GAA1B;AAMA,MAAMgC,WAAW,GAAGxB,UAAU,IAAIA,UAAU,CAAClB,KAAzB,GAAiC;AAAE2C,IAAAA,YAAY,EAAEzB,UAAU,CAAClB;AAA3B,GAAjC,GAAsE;AAAEwC,IAAAA,GAAG,EAAE,CAAP;AAAU3B,IAAAA,GAAG,EAAE;AAAf,GAA1F;AACA,MAAM+B,YAAY,GAAGzB,WAAW,IAAIA,WAAW,CAACnB,KAA3B,GAAmC;AAAE2C,IAAAA,YAAY,EAAExB,WAAW,CAACnB;AAA5B,GAAnC,GAAyE;AAAEwC,IAAAA,GAAG,EAAE,CAAP;AAAU3B,IAAAA,GAAG,EAAE;AAAf,GAA9F;;AAEA,MAAMgC,UAAU,gBACd;AAAK,IAAA,SAAS,EAAE7B,OAAO,CAAC8B;AAAxB,kBACE,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAE9B,OAAO,CAAC+B,eADrB;AAEE,IAAA,KAAK,EAAC,eAFR;AAGE,IAAA,KAAK,EAAE/C,KAAK,CAACU,IAHf;AAIE,IAAA,OAAO,EAAC,UAJV;AAKE,IAAA,QAAQ,EAAE,kBAACsC,CAAD,EAAIC,CAAJ;AAAA,aAAUC,cAAc,CAAC,MAAD,EAASD,CAAT,EAAYD,CAAZ,CAAxB;AAAA;AALZ,KAMMN,WANN,EADF,eASE,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAE1B,OAAO,CAAC+B,eADrB;AAEE,IAAA,KAAK,EAAE,gBAFT;AAGE,IAAA,KAAK,EAAE/C,KAAK,CAACmD,SAHf;AAIE,IAAA,OAAO,EAAE,UAJX;AAKE,IAAA,QAAQ,EAAE,kBAACH,CAAD,EAAIC,CAAJ;AAAA,aAAUC,cAAc,CAAC,WAAD,EAAcD,CAAd,EAAiBD,CAAjB,CAAxB;AAAA;AALZ,KAMMJ,YANN,EATF,CADF;;AAqBA,MAAMQ,iBAAiB,GAAG,SAApBA,iBAAoB,CAAC3B,IAAD,EAAO4B,QAAP,EAAoB;AAC5C7B,IAAAA,cAAc,CACZ;AACED,MAAAA,WAAW,EAAEE;AADf,KADY,EAIZ4B,QAJY,CAAd;AAMA3B,IAAAA,OAAO,CAACD,IAAD,CAAP;AACD,GARD;;AAUA,MAAM6B,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACxD,IAAD,EAAOyD,QAAP,EAAoB;AAC/C,WAAOzD,IAAI,CAAC0D,GAAL,CAAS,UAACC,GAAD,EAAS;AACvB,UAAIA,GAAG,CAACC,cAAJ,CAAmBH,QAAnB,CAAJ,EAAkC;AAChCE,QAAAA,GAAG,CAACF,QAAD,CAAH,GAAgBA,QAAQ,IAAI,aAAZ,GAA4B,IAA5B,GAAmC,KAAnD;AACD;;AACD,aAAOE,GAAP;AACD,KALM,CAAP;AAMD,GAPD;;AASA,MAAME,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAC5D,WAAD,EAAiB;AAC9C,QAAQgC,aAAR,GAAgC7B,KAAhC,CAAQ6B,aAAR;AAAA,QAAuBjC,IAAvB,GAAgCI,KAAhC,CAAuBJ,IAAvB;;AAEA,QAAIkC,wBAAwB,KAAK,KAAjC,EAAwC;AACtCsB,MAAAA,oBAAoB,CAACxD,IAAD,EAAO,aAAP,CAApB;AACD;;AAED,QAAImC,qBAAqB,KAAK,KAA9B,EAAqC;AACnCqB,MAAAA,oBAAoB,CAACxD,IAAD,EAAO,UAAP,CAApB;AACD;;AAEDD,IAAAA,WAAW,CAACC,IAAD,EAAOC,WAAP,EAAoBC,KAApB,EAA2BC,QAA3B,EAAqCC,KAArC,CAAX;AACAL,IAAAA,WAAW,CAACkC,aAAa,CAACjC,IAAf,EAAqB,KAArB,EAA4BE,KAA5B,EAAmCC,QAAnC,EAA6CC,KAA7C,CAAX;AACD,GAbD;;AAeA,MAAM0D,uBAAuB,GAAG,SAA1BA,uBAA0B,GAAM;AACpC,QAAMC,2BAA2B,GAAGzC,8BAAH,aAAGA,8BAAH,uBAAGA,8BAA8B,CAAE0C,KAApE;AAEA7D,IAAAA,QAAQ,iCAAMC,KAAN;AAAa2D,MAAAA,2BAA2B,EAA3BA;AAAb,OAAR;AACD,GAJD;;AAMA,MAAME,UAAU,GAAG,SAAbA,UAAa,CAACC,SAAD,EAAe;AAChC,WAAOA,SAAS,CAACC,QAAV,CAAmB,MAAnB,IAA6B;AAAEzB,MAAAA,GAAG,EAAE,CAAP;AAAU3B,MAAAA,GAAG,EAAE;AAAf,KAA7B,GAAmD;AAAE2B,MAAAA,GAAG,EAAE,IAAP;AAAa3B,MAAAA,GAAG,EAAE;AAAlB,KAA1D;AACD,GAFD;;AAIA,MAAMqD,aAAa,GAAG,SAAhBA,aAAgB,CAACC,GAAD,EAAM3D,KAAN,EAAgB;AACpC,QAAM2B,KAAK,mCAAQD,IAAR,4CAAeiC,GAAf,EAAqB3D,KAArB,EAAX;;AAEAP,IAAAA,QAAQ,iCAAMC,KAAN;AAAaiC,MAAAA,KAAK,EAALA;AAAb,OAAR;AACD,GAJD;;AAMA,MAAMiC,YAAY,GAAG,SAAfA,YAAe,CAACtE,IAAD,EAAOE,KAAP;AAAA,WACnB,CAACF,IAAI,IAAI,EAAT,EAAauE,IAAb,CAAkB,UAACjE,CAAD;AAAA,aAAOA,CAAC,CAACI,KAAF,GAAUR,KAAK,CAACa,GAAhB,IAAuBT,CAAC,CAACI,KAAF,GAAUR,KAAK,CAACU,IAAN,GAAaJ,IAAI,CAACgE,KAAL,CAAWlE,CAAC,CAACI,KAAF,GAAUR,KAAK,CAACU,IAA3B,CAAvB,KAA4D,CAA1F;AAAA,KAAlB,CADmB;AAAA,GAArB;;AAGA,MAAMwC,cAAc,GAAG,SAAjBA,cAAiB,CAACiB,GAAD,EAAM3D,KAAN,EAAawC,CAAb,EAAmB;AACxC;AACAlB,IAAAA,aAAa,CAAC9B,KAAK,CAACmE,GAAD,CAAN,CAAb;AACAvC,IAAAA,WAAW,CAACuC,GAAD,CAAX;AAEAnE,IAAAA,KAAK,CAACmE,GAAD,CAAL,GAAa3D,KAAb;;AAEA,QAAI2D,GAAG,KAAK,KAAR,IAAiBA,GAAG,KAAK,MAA7B,EAAqC;AACnC;AACA,UAAMI,UAAU,GAAGH,YAAY,CAAClE,KAAK,CAACJ,IAAP,EAAaE,KAAb,CAAZ,IAAmCoE,YAAY,CAAClE,KAAK,CAAC6B,aAAN,CAAoBjC,IAArB,EAA2BE,KAA3B,CAAlE;;AAEA,UAAIuE,UAAU,IAAIC,IAAI,CAACC,SAAL,CAAezB,CAAf,MAAsB,IAAxC,EAA8C;AAC5CtB,QAAAA,OAAO,CAAC,IAAD,CAAP;AACD,OAFD,MAEO;AACLzB,QAAAA,QAAQ,iCAAMC,KAAN;AAAaF,UAAAA,KAAK,EAALA;AAAb,WAAR;AACD;AACF,KATD,MASO;AACLC,MAAAA,QAAQ,iCAAMC,KAAN;AAAaF,QAAAA,KAAK,EAALA;AAAb,SAAR;AACD;AACF,GAnBD;;AAqBA,wBAAU,YAAM;AACd2D,IAAAA,sBAAsB,CAAC,IAAD,CAAtB;AACAC,IAAAA,uBAAuB;AACxB,GAHD,EAGG,EAHH;AAKA,wBAAU,YAAM;AACd,QAAInC,IAAJ,EAAU;AACRD,MAAAA,cAAc,CAAC;AACbC,QAAAA,IAAI,EAAE,IADO;AAEbiD,QAAAA,KAAK,EAAE,SAFM;AAGbC,QAAAA,IAAI,EAAE,mEAHO;AAIbC,QAAAA,SAAS,EAAE,qBAAM;AACfjB,UAAAA,sBAAsB;AACtBP,UAAAA,iBAAiB,CAAC,KAAD,EAAQnD,QAAQ,iCAAMC,KAAN;AAAaF,YAAAA,KAAK,EAALA,KAAb;AAAoB+B,YAAAA,aAAa,EAAbA;AAApB,aAAhB,CAAjB;AACD,SAPY;AAQb8C,QAAAA,OAAO,EAAE,mBAAM;AACb7E,UAAAA,KAAK,CAAC2B,QAAD,CAAL,GAAkBE,UAAlB;AACAuB,UAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD;AAXY,OAAD,CAAd;AAaD;AACF,GAhBD,EAgBG,CAAC3B,IAAD,CAhBH;AAkBA,MAAMqD,WAAW,GAAG9E,KAAK,CAACU,IAAN,KAAe,CAAf,IAAoBV,KAAK,CAACmD,SAAN,KAAoB,CAAxC,IAA6C,KAAKnD,KAAK,CAACa,GAAxD,IAA+Db,KAAK,CAACa,GAAN,IAAa,EAAhG;;AAEA,MAAMkE,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACjChB,IAAAA,UAAU,CAACvB,GAAX,GAAiB,CAAjB;AACAuB,IAAAA,UAAU,CAAClD,GAAX,GAAiB,EAAjB;AAEAb,IAAAA,KAAK,CAACa,GAAN,GAAY,EAAZ;AACAb,IAAAA,KAAK,CAACU,IAAN,GAAa,CAAb;AACAV,IAAAA,KAAK,CAACmD,SAAN,GAAkB,CAAlB;AAEAlD,IAAAA,QAAQ,iCAAMC,KAAN;AAAaF,MAAAA,KAAK,EAALA;AAAb,OAAR;AACD,GATD;;AAWA,MAAMgF,iBAAiB,GAAG,SAApBA,iBAAoB,CAAChB,SAAD,EAAe;AACvC,QAAIA,SAAS,CAACC,QAAV,CAAmB,MAAnB,CAAJ,EAAgC;AAC9B;AACA,UAAI,CAACa,WAAL,EAAkB;AAChBtD,QAAAA,cAAc,CAAC;AACbC,UAAAA,IAAI,EAAE,IADO;AAEbiD,UAAAA,KAAK,EAAE,SAFM;AAGbC,UAAAA,IAAI,EAAE,sGAHO;AAIbC,UAAAA,SAAS,EAAE,qBAAM;AACfG,YAAAA,oBAAoB;AACpBpB,YAAAA,sBAAsB;AACtBP,YAAAA,iBAAiB,CAAC,KAAD,EAAQnD,QAAQ,iCAAMC,KAAN;AAAaF,cAAAA,KAAK,EAALA,KAAb;AAAoBgE,cAAAA,SAAS,EAATA;AAApB,eAAhB,CAAjB;AACD,WARY;AASba,UAAAA,OAAO,EAAE,mBAAM;AACbzB,YAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD;AAXY,SAAD,CAAd;AAcA;AACD;;AAEDW,MAAAA,UAAU,CAACvB,GAAX,GAAiB,CAAjB;AACAuB,MAAAA,UAAU,CAAClD,GAAX,GAAiB,EAAjB;AAEAZ,MAAAA,QAAQ,iCAAMC,KAAN;AAAa8D,QAAAA,SAAS,EAATA;AAAb,SAAR;AAEA;AACD;;AAED/D,IAAAA,QAAQ,iCAAMC,KAAN;AAAa8D,MAAAA,SAAS,EAATA;AAAb,OAAR;AACD,GA9BD;;AAgCA,sBACE;AAAK,IAAA,SAAS,EAAEhD,OAAO,CAACiE;AAAxB,kBACE,gCAAC,sBAAD;AAAY,IAAA,OAAO,EAAE;AAArB,uBADF,eAEE;AAAK,IAAA,SAAS,EAAEjE,OAAO,CAACkE;AAAxB,kBACE;AAAK,IAAA,SAAS,EAAElE,OAAO,CAAC8B;AAAxB,kBACE,gCAAC,qBAAD;AACE,IAAA,KAAK,EAAE5C,KAAK,CAAC8D,SADf;AAEE,IAAA,QAAQ,EAAE,kBAAChB,CAAD;AAAA,aAAOgC,iBAAiB,CAAChC,CAAC,CAACmC,MAAF,CAAS3E,KAAV,CAAxB;AAAA,KAFZ;AAGE,IAAA,mBAAmB,EAAEa,mBAHvB;AAIE,IAAA,cAAc,EAAEC;AAJlB,IADF,eAOE,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAEN,OAAO,CAAC+B,eADrB;AAEE,IAAA,KAAK,EAAC,WAFR;AAGE,IAAA,KAAK,EAAE/C,KAAK,CAACa,GAHf;AAIE,IAAA,GAAG,EAAEkD,UAAU,CAAC7D,KAAK,CAAC8D,SAAP,CAAV,CAA4BxB,GAJnC;AAKE,IAAA,GAAG,EAAEuB,UAAU,CAAC7D,KAAK,CAAC8D,SAAP,CAAV,CAA4BnD,GALnC;AAME,IAAA,OAAO,EAAC,UANV;AAOE,IAAA,QAAQ,EAAE,kBAACmC,CAAD,EAAIC,CAAJ;AAAA,aAAUC,cAAc,CAAC,KAAD,EAAQD,CAAR,EAAWD,CAAX,CAAxB;AAAA;AAPZ,IAPF,CADF,EAkBG,CAAC9C,KAAK,CAAC8D,SAAN,CAAgBC,QAAhB,CAAyB,MAAzB,CAAD,IAAqCpB,UAlBxC,EAoBGT,iBAAiB,iBAChB;AAAK,IAAA,SAAS,EAAEpB,OAAO,CAACoE;AAAxB,kBACE,0DACE,gCAAC,sBAAD,yBADF,CADF,eAKE;AAAK,IAAA,SAAS,EAAEpE,OAAO,CAACqE;AAAxB,kBACE,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAErE,OAAO,CAACsE,SADrB;AAEE,IAAA,KAAK,EAAE,OAFT;AAGE,IAAA,KAAK,EAAEpD,IAAI,CAACG,KAHd;AAIE,IAAA,GAAG,EAAEE,gBAAgB,CAACC,GAJxB;AAKE,IAAA,GAAG,EAAED,gBAAgB,CAAC1B,GALxB;AAME,IAAA,IAAI,EAAE0B,gBAAgB,CAAC7B,IANzB;AAOE,IAAA,OAAO,EAAE,UAPX;AAQE,IAAA,QAAQ,EAAE,kBAACsC,CAAD,EAAIC,CAAJ;AAAA,aAAUiB,aAAa,CAAC,OAAD,EAAUjB,CAAV,CAAvB;AAAA;AARZ,IADF,eAWE,gCAAC,sBAAD;AAAY,IAAA,SAAS,EAAEjC,OAAO,CAACuE;AAA/B,uBAXF,CALF,eAmBE;AAAK,IAAA,SAAS,EAAEvE,OAAO,CAACqE;AAAxB,kBACE,gCAAC,+BAAD;AACE,IAAA,SAAS,EAAErE,OAAO,CAACsE,SADrB;AAEE,IAAA,KAAK,EAAE,QAFT;AAGE,IAAA,KAAK,EAAEpD,IAAI,CAACI,MAHd;AAIE,IAAA,GAAG,EAAEG,iBAAiB,CAACD,GAJzB;AAKE,IAAA,GAAG,EAAEC,iBAAiB,CAAC5B,GALzB;AAME,IAAA,IAAI,EAAE4B,iBAAiB,CAAC/B,IAN1B;AAOE,IAAA,OAAO,EAAE,UAPX;AAQE,IAAA,QAAQ,EAAE,kBAACsC,CAAD,EAAIC,CAAJ;AAAA,aAAUiB,aAAa,CAAC,QAAD,EAAWjB,CAAX,CAAvB;AAAA;AARZ,IADF,eAWE,gCAAC,sBAAD;AAAY,IAAA,SAAS,EAAEjC,OAAO,CAACuE;AAA/B,wBAXF,CAnBF,CArBJ,CAFF,eA2DE,gCAAC,qBAAD;AACE,IAAA,IAAI,EAAEhE,WAAW,CAACE,IADpB;AAEE,IAAA,KAAK,EAAEF,WAAW,CAACmD,KAFrB;AAGE,IAAA,IAAI,EAAEnD,WAAW,CAACoD,IAHpB;AAIE,IAAA,OAAO,EAAEpD,WAAW,CAACsD,OAJvB;AAKE,IAAA,SAAS,EAAEtD,WAAW,CAACqD;AALzB,IA3DF,CADF;AAqED,CA5QD;;AA8QA9D,mBAAmB,CAAC0E,SAApB,GAAgC;AAC9BxE,EAAAA,OAAO,EAAEyE,sBAAUC,MADW;AAE9BzE,EAAAA,eAAe,EAAEwE,sBAAUC,MAFG;AAG9BC,EAAAA,MAAM,EAAEF,sBAAUC,MAHY;AAI9BxE,EAAAA,UAAU,EAAEuE,sBAAUC,MAJQ;AAK9BvE,EAAAA,WAAW,EAAEsE,sBAAUC,MALO;AAM9BxF,EAAAA,KAAK,EAAEuF,sBAAUC,MANa;AAO9BzF,EAAAA,QAAQ,EAAEwF,sBAAUG,IAPU;AAQ9B5F,EAAAA,KAAK,EAAEyF,sBAAUC,MARa;AAS9BG,EAAAA,cAAc,EAAEJ,sBAAUC,MATI;AAU9BxD,EAAAA,IAAI,EAAEuD,sBAAUC,MAVc;AAW9BtE,EAAAA,8BAA8B,EAAEqE,sBAAUC,MAXZ;AAY9BrE,EAAAA,mBAAmB,EAAEoE,sBAAUC,MAZD;AAa9BpE,EAAAA,cAAc,EAAEmE,sBAAUK;AAbI,CAAhC;;AAgBA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBf,IAAAA,OAAO,EAAE;AACP5C,MAAAA,KAAK,EAAE;AADA,KADgB;AAIzB6C,IAAAA,OAAO,EAAE;AACPe,MAAAA,OAAO,EAAE,MADF;AAEPC,MAAAA,aAAa,EAAE,QAFR;AAGP7D,MAAAA,KAAK,EAAE,MAHA;AAIP8D,MAAAA,SAAS,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB;AAJzB,KAJgB;AAUzBhB,IAAAA,UAAU,EAAE;AACVY,MAAAA,OAAO,EAAE,MADC;AAEVC,MAAAA,aAAa,EAAE,QAFL;AAGVI,MAAAA,UAAU,EAAE;AAHF,KAVa;AAezBxD,IAAAA,OAAO,EAAE;AACPmD,MAAAA,OAAO,EAAE,MADF;AAEPM,MAAAA,cAAc,EAAE,cAFT;AAGPD,MAAAA,UAAU,EAAE;AAHL,KAfgB;AAoBzBhB,IAAAA,SAAS,EAAE;AACTjD,MAAAA,KAAK,EAAE,OADE;AAETmE,MAAAA,MAAM,YAAKR,KAAK,CAACI,OAAN,CAAcC,IAAnB,gBAA6BL,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAAlD;AAFG,KApBc;AAwBzBtD,IAAAA,eAAe,EAAE;AACfV,MAAAA,KAAK,EAAE,OADQ;AAEfmE,MAAAA,MAAM,YAAKR,KAAK,CAACI,OAAN,CAAcC,IAAnB,gBAA6BL,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAAlD;AAFS,KAxBQ;AA4BzBI,IAAAA,cAAc,EAAE;AACdpE,MAAAA,KAAK,EAAE,OADO;AAEdmE,MAAAA,MAAM,YAAKR,KAAK,CAACI,OAAN,CAAcC,IAAnB,gBAA6BL,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAAlD;AAFQ,KA5BS;AAgCzB1B,IAAAA,IAAI,EAAE;AACJ+B,MAAAA,SAAS,EAAE,QADP;AAEJF,MAAAA,MAAM,YAAKR,KAAK,CAACI,OAAN,CAAcC,IAAnB;AAFF,KAhCmB;AAoCzBjB,IAAAA,UAAU,EAAE;AACVa,MAAAA,OAAO,EAAE,MADC;AAEVM,MAAAA,cAAc,EAAE,eAFN;AAGVD,MAAAA,UAAU,EAAE,QAHF;AAIVE,MAAAA,MAAM,YAAKR,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAA1B;AAJI,KApCa;AA0CzBd,IAAAA,QAAQ,EAAE;AACRoB,MAAAA,KAAK,EAAEA,gBAAMpB,QAAN;AADC;AA1Ce,GAAZ;AAAA,CAAf;;eA+Ce,wBAAWQ,MAAX,EAAmBjF,mBAAnB,C","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\nexport const resetValues = (data, updateModel, range, onChange, model) => {\n (data || []).forEach((d) => {\n const d_value_scaled = Math.round(d.value * 10);\n const range_step_scaled = Math.round(range.step * 10);\n const remainder_scaled = d_value_scaled % range_step_scaled;\n const remainder = remainder_scaled / 10;\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\nconst ConfigureChartPanel = (props) => {\n const {\n classes,\n model,\n onChange,\n chartDimensions,\n gridValues = {},\n labelValues = {},\n studentNewCategoryDefaultLabel = {},\n availableChartTypes = {},\n chartTypeLabel,\n } = 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, changeInteractiveEnabled, changeEditableEnabled } = 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 setPropertiesToFalse = (data, property) => {\n return data.map((obj) => {\n if (obj.hasOwnProperty(property)) {\n obj[property] = property == 'interactive' ? true : false;\n }\n return obj;\n });\n };\n\n const removeOutOfRangeValues = (updateModel) => {\n const { correctAnswer, data } = model;\n\n if (changeInteractiveEnabled === false) {\n setPropertiesToFalse(data, 'interactive');\n }\n\n if (changeEditableEnabled === false) {\n setPropertiesToFalse(data, 'editable');\n }\n\n resetValues(data, updateModel, range, onChange, model);\n resetValues(correctAnswer.data, false, range, onChange, model);\n };\n\n const setCategoryDefaultLabel = () => {\n const studentCategoryDefaultLabel = studentNewCategoryDefaultLabel?.label;\n\n onChange({ ...model, studentCategoryDefaultLabel });\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 setCategoryDefaultLabel();\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\n value={model.chartType}\n onChange={(e) => onChartTypeChange(e.target.value)}\n availableChartTypes={availableChartTypes}\n chartTypeLabel={chartTypeLabel}\n />\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 studentNewCategoryDefaultLabel: PropTypes.object,\n availableChartTypes: PropTypes.object,\n chartTypeLabel: PropTypes.string,\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.14.3-next.53+6cce5e2d",
6
+ "version": "5.14.3-next.82+4c1f37c2",
7
7
  "description": "charting",
8
8
  "keywords": [
9
9
  "react",
@@ -19,7 +19,7 @@
19
19
  "dependencies": {
20
20
  "@mapbox/point-geometry": "^0.1.0",
21
21
  "@material-ui/core": "^3.8.3",
22
- "@pie-lib/plot": "^2.7.3-next.97+6cce5e2d",
22
+ "@pie-lib/plot": "^2.7.2",
23
23
  "@pie-lib/translator": "^2.2.0",
24
24
  "@vx/axis": "^0.0.183",
25
25
  "@vx/event": "^0.0.182",
@@ -44,5 +44,5 @@
44
44
  "peerDependencies": {
45
45
  "react": "^16.8.1"
46
46
  },
47
- "gitHead": "6cce5e2d25d079c1c3eb195425dc2cf016fcd36e"
47
+ "gitHead": "4c1f37c2cc91b56db63a3a004d3e028ef19f3591"
48
48
  }
@@ -7,6 +7,23 @@ import ChartType from './chart-type';
7
7
  import { NumberTextFieldCustom } from '@pie-lib/config-ui';
8
8
  import { AlertDialog } from '@pie-lib/config-ui';
9
9
 
10
+ export const resetValues = (data, updateModel, range, onChange, model) => {
11
+ (data || []).forEach((d) => {
12
+ const d_value_scaled = Math.round(d.value * 10);
13
+ const range_step_scaled = Math.round(range.step * 10);
14
+ const remainder_scaled = d_value_scaled % range_step_scaled;
15
+ const remainder = remainder_scaled / 10;
16
+
17
+ if (d.value > range.max || remainder !== 0) {
18
+ d.value = 0;
19
+ }
20
+ });
21
+
22
+ if (updateModel) {
23
+ onChange({ ...model, data });
24
+ }
25
+ };
26
+
10
27
  const ConfigureChartPanel = (props) => {
11
28
  const {
12
29
  classes,
@@ -74,20 +91,6 @@ const ConfigureChartPanel = (props) => {
74
91
  setOpen(open);
75
92
  };
76
93
 
77
- const resetValues = (data, updateModel) => {
78
- (data || []).forEach((d) => {
79
- const remainder = d.value - range.step * Math.floor(d.value / range.step);
80
-
81
- if (d.value > range.max || remainder !== 0) {
82
- d.value = 0;
83
- }
84
- });
85
-
86
- if (updateModel) {
87
- onChange({ ...model, data });
88
- }
89
- };
90
-
91
94
  const setPropertiesToFalse = (data, property) => {
92
95
  return data.map((obj) => {
93
96
  if (obj.hasOwnProperty(property)) {
@@ -108,8 +111,8 @@ const ConfigureChartPanel = (props) => {
108
111
  setPropertiesToFalse(data, 'editable');
109
112
  }
110
113
 
111
- resetValues(data, updateModel);
112
- resetValues(correctAnswer.data);
114
+ resetValues(data, updateModel, range, onChange, model);
115
+ resetValues(correctAnswer.data, false, range, onChange, model);
113
116
  };
114
117
 
115
118
  const setCategoryDefaultLabel = () => {