@pie-lib/charting 4.5.11-next.681 → 4.5.11-next.695

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.
@@ -209,20 +209,45 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
209
209
  });
210
210
  }
211
211
  }, [open]);
212
+ var isValidPlot = range.step === 1 && range.labelStep === 1 && 3 <= range.max && range.max <= 10;
213
+
214
+ var getPlotConfiguration = function getPlotConfiguration() {
215
+ rangeProps.min = 3;
216
+ rangeProps.max = 10;
217
+ range.max = 10;
218
+ range.step = 1;
219
+ range.labelStep = 1;
220
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
221
+ range: range
222
+ }));
223
+ };
212
224
 
213
225
  var onChartTypeChange = function onChartTypeChange(chartType) {
214
226
  if (chartType.includes('Plot')) {
215
- rangeProps.min = 3;
216
- rangeProps.max = 10;
217
-
218
- if (range.max > 10 || range.max < 3) {
219
- range.max = 10;
227
+ // The selected chart type does not support the current chart configuration
228
+ if (!isValidPlot) {
229
+ setAlertDialog({
230
+ open: true,
231
+ title: 'Warning',
232
+ text: 'The selected chart type does not support the current chart configuration. Reset chart configuration?',
233
+ onConfirm: function onConfirm() {
234
+ getPlotConfiguration();
235
+ removeOutOfRangeValues();
236
+ handleAlertDialog(false, onChange(_objectSpread(_objectSpread({}, model), {}, {
237
+ range: range,
238
+ chartType: chartType
239
+ })));
240
+ },
241
+ onClose: function onClose() {
242
+ handleAlertDialog(false);
243
+ }
244
+ });
245
+ return;
220
246
  }
221
247
 
222
- range.step = 1;
223
- range.labelStep = 1;
248
+ rangeProps.min = 3;
249
+ rangeProps.max = 10;
224
250
  onChange(_objectSpread(_objectSpread({}, model), {}, {
225
- range: range,
226
251
  chartType: chartType
227
252
  }));
228
253
  return;
@@ -300,7 +325,7 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
300
325
  ConfigureChartPanel.propTypes = {
301
326
  classes: _propTypes["default"].object,
302
327
  domain: _propTypes["default"].object,
303
- onChange: _propTypes["default"]["function"],
328
+ onChange: _propTypes["default"].func,
304
329
  range: _propTypes["default"].object,
305
330
  chartDimension: _propTypes["default"].object,
306
331
  size: _propTypes["default"].object
@@ -1 +1 @@
1
- {"version":3,"file":"chart-setup.js","names":["ConfigureChartPanel","props","classes","model","onChange","chartDimensions","gridValues","labelValues","useState","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","forEach","d","remainder","value","floor","removeOutOfRangeValues","rangeProps","chartType","includes","onSizeChanged","key","outOfRange","find","useEffect","title","text","onConfirm","onClose","onChartTypeChange","wrapper","content","target","dimensions","columnView","textField","disabled","propTypes","PropTypes","object","domain","chartDimension","styles","theme","display","flexDirection","marginTop","alignItems","justifyContent","margin","spacing","unit","largeTextField","fontStyle","color","withStyles"],"sources":["../src/chart-setup.jsx"],"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 =\n gridValues && gridValues.range ? { customValues: gridValues.range } : { min: 0, max: 10000 };\n const labelOptions =\n 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)}\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)}\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 =>\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 const removeOutOfRangeValues = () => {\n const { correctAnswer, data } = model;\n\n resetValues(data);\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 onRangeChanged = (key, value) => {\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 =\n model.data.find(\n d => d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0\n ) ||\n model.correctAnswer.data.find(\n d => d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0\n );\n\n if (outOfRange) {\n setOpen(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 onChartTypeChange = chartType => {\n if (chartType.includes('Plot')) {\n rangeProps.min = 3;\n rangeProps.max = 10;\n\n if (range.max > 10 || range.max < 3) {\n range.max = 10;\n }\n\n range.step = 1;\n range.labelStep = 1;\n\n onChange({ ...model, range, 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)}\n />\n </div>\n {!model.chartType.includes('Plot') && stepConfig}\n {showInConfigPanel && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n </div>\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 <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 <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 domain: PropTypes.object,\n onChange: PropTypes.function,\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: '24px'\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: '24px 0px'\n },\n disabled: {\n color: color.disabled()\n }\n});\n\nexport default withStyles(styles)(ConfigureChartPanel);\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAGA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,KAAK,EAAI;EACnC,IAAQC,OAAR,GAAyFD,KAAzF,CAAQC,OAAR;EAAA,IAAiBC,KAAjB,GAAyFF,KAAzF,CAAiBE,KAAjB;EAAA,IAAwBC,QAAxB,GAAyFH,KAAzF,CAAwBG,QAAxB;EAAA,IAAkCC,eAAlC,GAAyFJ,KAAzF,CAAkCI,eAAlC;EAAA,wBAAyFJ,KAAzF,CAAmDK,UAAnD;EAAA,IAAmDA,UAAnD,kCAAgE,EAAhE;EAAA,yBAAyFL,KAAzF,CAAoEM,WAApE;EAAA,IAAoEA,WAApE,mCAAkF,EAAlF;;EACA,gBAAsC,IAAAC,eAAA,EAAS,KAAT,CAAtC;EAAA;EAAA,IAAOC,WAAP;EAAA,IAAoBC,cAApB;;EACA,iBAAwB,IAAAF,eAAA,EAAS,KAAT,CAAxB;EAAA;EAAA,IAAOG,IAAP;EAAA,IAAaC,OAAb;;EACA,iBAAgC,IAAAJ,eAAA,EAAS,EAAT,CAAhC;EAAA;EAAA,IAAOK,QAAP;EAAA,IAAiBC,WAAjB;;EACA,iBAAoC,IAAAN,eAAA,EAAS,CAAT,CAApC;EAAA;EAAA,IAAOO,UAAP;EAAA,IAAmBC,aAAnB;;EAEA,IAAQC,KAAR,GAAiCd,KAAjC,CAAQc,KAAR;EAAA,IAAeC,aAAf,GAAiCf,KAAjC,CAAee,aAAf;EAEA,IAAMC,IAAI,GAAGhB,KAAK,CAACiB,KAAnB;;EACA,WAA6Cf,eAAe,IAAI,EAAhE;EAAA,IAAQgB,iBAAR,QAAQA,iBAAR;EAAA,IAA2BC,KAA3B,QAA2BA,KAA3B;EAAA,IAAkCC,MAAlC,QAAkCA,MAAlC;;EAEA,IAAMC,gBAAgB,GAAG;IACvBC,GAAG,EAAEH,KAAK,SAAL,IAAAA,KAAK,WAAL,IAAAA,KAAK,CAAEG,GAAP,GAAaC,IAAI,CAACC,GAAL,CAAS,EAAT,EAAaL,KAAK,CAACG,GAAnB,CAAb,GAAuC,EADrB;IAEvBE,GAAG,EAAEL,KAAK,SAAL,IAAAA,KAAK,WAAL,IAAAA,KAAK,CAAEK,GAAP,GAAaD,IAAI,CAACD,GAAL,CAAS,GAAT,EAAcH,KAAK,CAACK,GAApB,CAAb,GAAwC,GAFtB;IAGvBC,IAAI,EAAE,CAAAN,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEM,IAAP,KAAe,CAAf,GAAmBF,IAAI,CAACD,GAAL,CAAS,GAAT,EAAcH,KAAK,CAACM,IAApB,CAAnB,GAA+C;EAH9B,CAAzB;EAKA,IAAMC,iBAAiB,GAAG;IACxBJ,GAAG,EAAEF,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEE,GAAR,GAAcC,IAAI,CAACC,GAAL,CAAS,GAAT,EAAcJ,MAAM,CAACE,GAArB,CAAd,GAA0C,GADvB;IAExBE,GAAG,EAAEJ,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEI,GAAR,GAAcD,IAAI,CAACD,GAAL,CAAS,GAAT,EAAcF,MAAM,CAACI,GAArB,CAAd,GAA0C,GAFvB;IAGxBC,IAAI,EAAE,CAAAL,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEK,IAAR,KAAgB,CAAhB,GAAoBF,IAAI,CAACD,GAAL,CAAS,GAAT,EAAcF,MAAM,CAACK,IAArB,CAApB,GAAiD;EAH/B,CAA1B;EAMA,IAAME,WAAW,GACfxB,UAAU,IAAIA,UAAU,CAACW,KAAzB,GAAiC;IAAEc,YAAY,EAAEzB,UAAU,CAACW;EAA3B,CAAjC,GAAsE;IAAEQ,GAAG,EAAE,CAAP;IAAUE,GAAG,EAAE;EAAf,CADxE;EAEA,IAAMK,YAAY,GAChBzB,WAAW,IAAIA,WAAW,CAACU,KAA3B,GAAmC;IAAEc,YAAY,EAAExB,WAAW,CAACU;EAA5B,CAAnC,GAAyE;IAAEQ,GAAG,EAAE,CAAP;IAAUE,GAAG,EAAE;EAAf,CAD3E;;EAGA,IAAMM,UAAU,gBACd;IAAK,SAAS,EAAE/B,OAAO,CAACgC;EAAxB,gBACE,gCAAC,+BAAD;IACE,SAAS,EAAEhC,OAAO,CAACiC,eADrB;IAEE,KAAK,EAAC,eAFR;IAGE,KAAK,EAAElB,KAAK,CAACW,IAHf;IAIE,OAAO,EAAC,UAJV;IAKE,QAAQ,EAAE,kBAACQ,CAAD,EAAIC,CAAJ;MAAA,OAAUC,cAAc,CAAC,MAAD,EAASD,CAAT,CAAxB;IAAA;EALZ,GAMMP,WANN,EADF,eASE,gCAAC,+BAAD;IACE,SAAS,EAAE5B,OAAO,CAACiC,eADrB;IAEE,KAAK,EAAE,gBAFT;IAGE,KAAK,EAAElB,KAAK,CAACsB,SAHf;IAIE,OAAO,EAAE,UAJX;IAKE,QAAQ,EAAE,kBAACH,CAAD,EAAIC,CAAJ;MAAA,OAAUC,cAAc,CAAC,WAAD,EAAcD,CAAd,CAAxB;IAAA;EALZ,GAMML,YANN,EATF,CADF;;EAqBA,IAAMQ,iBAAiB,GAAG,SAApBA,iBAAoB,CAAC7B,IAAD,EAAO8B,QAAP,EAAoB;IAC5C/B,cAAc,CACZ;MACED,WAAW,EAAEE;IADf,CADY,EAIZ8B,QAJY,CAAd;IAMA7B,OAAO,CAACD,IAAD,CAAP;EACD,CARD;;EAUA,IAAM+B,WAAW,GAAG,SAAdA,WAAc,CAAAC,IAAI;IAAA,OACtBA,IAAI,CAACC,OAAL,CAAa,UAAAC,CAAC,EAAI;MAChB,IAAMC,SAAS,GAAGD,CAAC,CAACE,KAAF,GAAU9B,KAAK,CAACW,IAAN,GAAaF,IAAI,CAACsB,KAAL,CAAWH,CAAC,CAACE,KAAF,GAAU9B,KAAK,CAACW,IAA3B,CAAzC;;MAEA,IAAIiB,CAAC,CAACE,KAAF,GAAU9B,KAAK,CAACU,GAAhB,IAAuBmB,SAAS,KAAK,CAAzC,EAA4C;QAC1CD,CAAC,CAACE,KAAF,GAAU,CAAV;MACD;IACF,CAND,CADsB;EAAA,CAAxB;;EASA,IAAME,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAM;IACnC,IAAQ/B,aAAR,GAAgCf,KAAhC,CAAQe,aAAR;IAAA,IAAuByB,IAAvB,GAAgCxC,KAAhC,CAAuBwC,IAAvB;IAEAD,WAAW,CAACC,IAAD,CAAX;IACAD,WAAW,CAACxB,aAAa,CAACyB,IAAf,CAAX;EACD,CALD;;EAOA,IAAMO,UAAU,GAAG,SAAbA,UAAa,CAAAC,SAAS,EAAI;IAC9B,OAAOA,SAAS,CAACC,QAAV,CAAmB,MAAnB,IAA6B;MAAE3B,GAAG,EAAE,CAAP;MAAUE,GAAG,EAAE;IAAf,CAA7B,GAAmD;MAAEF,GAAG,EAAE,IAAP;MAAaE,GAAG,EAAE;IAAlB,CAA1D;EACD,CAFD;;EAIA,IAAM0B,aAAa,GAAG,SAAhBA,aAAgB,CAACC,GAAD,EAAMP,KAAN,EAAgB;IACpC,IAAM3B,KAAK,mCAAQD,IAAR,4CAAemC,GAAf,EAAqBP,KAArB,EAAX;;IAEA3C,QAAQ,iCAAMD,KAAN;MAAaiB,KAAK,EAALA;IAAb,GAAR;EACD,CAJD;;EAMA,IAAMkB,cAAc,GAAG,SAAjBA,cAAiB,CAACgB,GAAD,EAAMP,KAAN,EAAgB;IACrC;IACA/B,aAAa,CAACC,KAAK,CAACqC,GAAD,CAAN,CAAb;IACAxC,WAAW,CAACwC,GAAD,CAAX;IAEArC,KAAK,CAACqC,GAAD,CAAL,GAAaP,KAAb;;IAEA,IAAIO,GAAG,KAAK,KAAR,IAAiBA,GAAG,KAAK,MAA7B,EAAqC;MACnC;MACA,IAAMC,UAAU,GACdpD,KAAK,CAACwC,IAAN,CAAWa,IAAX,CACE,UAAAX,CAAC;QAAA,OAAIA,CAAC,CAACE,KAAF,GAAU9B,KAAK,CAACU,GAAhB,IAAuBkB,CAAC,CAACE,KAAF,GAAU9B,KAAK,CAACW,IAAN,GAAaF,IAAI,CAACsB,KAAL,CAAWH,CAAC,CAACE,KAAF,GAAU9B,KAAK,CAACW,IAA3B,CAAvB,KAA4D,CAAvF;MAAA,CADH,KAGAzB,KAAK,CAACe,aAAN,CAAoByB,IAApB,CAAyBa,IAAzB,CACE,UAAAX,CAAC;QAAA,OAAIA,CAAC,CAACE,KAAF,GAAU9B,KAAK,CAACU,GAAhB,IAAuBkB,CAAC,CAACE,KAAF,GAAU9B,KAAK,CAACW,IAAN,GAAaF,IAAI,CAACsB,KAAL,CAAWH,CAAC,CAACE,KAAF,GAAU9B,KAAK,CAACW,IAA3B,CAAvB,KAA4D,CAAvF;MAAA,CADH,CAJF;;MAQA,IAAI2B,UAAJ,EAAgB;QACd3C,OAAO,CAAC,IAAD,CAAP;MACD,CAFD,MAEO;QACLR,QAAQ,iCAAMD,KAAN;UAAac,KAAK,EAALA;QAAb,GAAR;MACD;IACF,CAfD,MAeO;MACLb,QAAQ,iCAAMD,KAAN;QAAac,KAAK,EAALA;MAAb,GAAR;IACD;EACF,CAzBD;;EA2BA,IAAAwC,gBAAA,EAAU,YAAM;IACd,IAAI9C,IAAJ,EAAU;MACRD,cAAc,CAAC;QACbC,IAAI,EAAE,IADO;QAEb+C,KAAK,EAAE,SAFM;QAGbC,IAAI,EAAE,mEAHO;QAIbC,SAAS,EAAE,qBAAM;UACfX,sBAAsB;UACtBT,iBAAiB,CAAC,KAAD,EAAQpC,QAAQ,iCAAMD,KAAN;YAAac,KAAK,EAALA,KAAb;YAAoBC,aAAa,EAAbA;UAApB,GAAhB,CAAjB;QACD,CAPY;QAQb2C,OAAO,EAAE,mBAAM;UACb5C,KAAK,CAACJ,QAAD,CAAL,GAAkBE,UAAlB;UACAyB,iBAAiB,CAAC,KAAD,CAAjB;QACD;MAXY,CAAD,CAAd;IAaD;EACF,CAhBD,EAgBG,CAAC7B,IAAD,CAhBH;;EAkBA,IAAMmD,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAX,SAAS,EAAI;IACrC,IAAIA,SAAS,CAACC,QAAV,CAAmB,MAAnB,CAAJ,EAAgC;MAC9BF,UAAU,CAACzB,GAAX,GAAiB,CAAjB;MACAyB,UAAU,CAACvB,GAAX,GAAiB,EAAjB;;MAEA,IAAIV,KAAK,CAACU,GAAN,GAAY,EAAZ,IAAkBV,KAAK,CAACU,GAAN,GAAY,CAAlC,EAAqC;QACnCV,KAAK,CAACU,GAAN,GAAY,EAAZ;MACD;;MAEDV,KAAK,CAACW,IAAN,GAAa,CAAb;MACAX,KAAK,CAACsB,SAAN,GAAkB,CAAlB;MAEAnC,QAAQ,iCAAMD,KAAN;QAAac,KAAK,EAALA,KAAb;QAAoBkC,SAAS,EAATA;MAApB,GAAR;MAEA;IACD;;IAED/C,QAAQ,iCAAMD,KAAN;MAAagD,SAAS,EAATA;IAAb,GAAR;EACD,CAlBD;;EAoBA,oBACE;IAAK,SAAS,EAAEjD,OAAO,CAAC6D;EAAxB,gBACE,gCAAC,sBAAD;IAAY,OAAO,EAAE;EAArB,qBADF,eAEE;IAAK,SAAS,EAAE7D,OAAO,CAAC8D;EAAxB,gBACE;IAAK,SAAS,EAAE9D,OAAO,CAACgC;EAAxB,gBACE,gCAAC,qBAAD;IAAW,KAAK,EAAE/B,KAAK,CAACgD,SAAxB;IAAmC,QAAQ,EAAE,kBAAAf,CAAC;MAAA,OAAI0B,iBAAiB,CAAC1B,CAAC,CAAC6B,MAAF,CAASlB,KAAV,CAArB;IAAA;EAA9C,EADF,eAEE,gCAAC,+BAAD;IACE,SAAS,EAAE7C,OAAO,CAACiC,eADrB;IAEE,KAAK,EAAC,WAFR;IAGE,KAAK,EAAElB,KAAK,CAACU,GAHf;IAIE,GAAG,EAAEuB,UAAU,CAAC/C,KAAK,CAACgD,SAAP,CAAV,CAA4B1B,GAJnC;IAKE,GAAG,EAAEyB,UAAU,CAAC/C,KAAK,CAACgD,SAAP,CAAV,CAA4BxB,GALnC;IAME,OAAO,EAAC,UANV;IAOE,QAAQ,EAAE,kBAACS,CAAD,EAAIC,CAAJ;MAAA,OAAUC,cAAc,CAAC,KAAD,EAAQD,CAAR,CAAxB;IAAA;EAPZ,EAFF,CADF,EAaG,CAAClC,KAAK,CAACgD,SAAN,CAAgBC,QAAhB,CAAyB,MAAzB,CAAD,IAAqCnB,UAbxC,EAcGZ,iBAAiB,iBAChB;IAAK,SAAS,EAAEnB,OAAO,CAACgE;EAAxB,gBACE,0DACE,gCAAC,sBAAD,yBADF,CADF,eAIE;IAAK,SAAS,EAAEhE,OAAO,CAACiE;EAAxB,gBACE,gCAAC,+BAAD;IACE,SAAS,EAAEjE,OAAO,CAACkE,SADrB;IAEE,KAAK,EAAE,OAFT;IAGE,KAAK,EAAEjD,IAAI,CAACG,KAHd;IAIE,GAAG,EAAEE,gBAAgB,CAACC,GAJxB;IAKE,GAAG,EAAED,gBAAgB,CAACG,GALxB;IAME,IAAI,EAAEH,gBAAgB,CAACI,IANzB;IAOE,OAAO,EAAE,UAPX;IAQE,QAAQ,EAAE,kBAACQ,CAAD,EAAIC,CAAJ;MAAA,OAAUgB,aAAa,CAAC,OAAD,EAAUhB,CAAV,CAAvB;IAAA;EARZ,EADF,eAWE,gCAAC,sBAAD;IAAY,SAAS,EAAEnC,OAAO,CAACmE;EAA/B,qBAXF,CAJF,eAiBE;IAAK,SAAS,EAAEnE,OAAO,CAACiE;EAAxB,gBACE,gCAAC,+BAAD;IACE,SAAS,EAAEjE,OAAO,CAACkE,SADrB;IAEE,KAAK,EAAE,QAFT;IAGE,KAAK,EAAEjD,IAAI,CAACI,MAHd;IAIE,GAAG,EAAEM,iBAAiB,CAACJ,GAJzB;IAKE,GAAG,EAAEI,iBAAiB,CAACF,GALzB;IAME,IAAI,EAAEE,iBAAiB,CAACD,IAN1B;IAOE,OAAO,EAAE,UAPX;IAQE,QAAQ,EAAE,kBAACQ,CAAD,EAAIC,CAAJ;MAAA,OAAUgB,aAAa,CAAC,QAAD,EAAWhB,CAAX,CAAvB;IAAA;EARZ,EADF,eAWE,gCAAC,sBAAD;IAAY,SAAS,EAAEnC,OAAO,CAACmE;EAA/B,sBAXF,CAjBF,CAfJ,CAFF,eAkDE,gCAAC,qBAAD;IACE,IAAI,EAAE5D,WAAW,CAACE,IADpB;IAEE,KAAK,EAAEF,WAAW,CAACiD,KAFrB;IAGE,IAAI,EAAEjD,WAAW,CAACkD,IAHpB;IAIE,OAAO,EAAElD,WAAW,CAACoD,OAJvB;IAKE,SAAS,EAAEpD,WAAW,CAACmD;EALzB,EAlDF,CADF;AA4DD,CAlND;;AAoNA5D,mBAAmB,CAACsE,SAApB,GAAgC;EAC9BpE,OAAO,EAAEqE,qBAAA,CAAUC,MADW;EAE9BC,MAAM,EAAEF,qBAAA,CAAUC,MAFY;EAG9BpE,QAAQ,EAAEmE,qBAAA,YAHoB;EAI9BtD,KAAK,EAAEsD,qBAAA,CAAUC,MAJa;EAK9BE,cAAc,EAAEH,qBAAA,CAAUC,MALI;EAM9BrD,IAAI,EAAEoD,qBAAA,CAAUC;AANc,CAAhC;;AASA,IAAMG,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACvBb,OAAO,EAAE;MACPzC,KAAK,EAAE;IADA,CADc;IAIvB0C,OAAO,EAAE;MACPa,OAAO,EAAE,MADF;MAEPC,aAAa,EAAE,QAFR;MAGPxD,KAAK,EAAE,MAHA;MAIPyD,SAAS,EAAE;IAJJ,CAJc;IAUvBZ,UAAU,EAAE;MACVU,OAAO,EAAE,MADC;MAEVC,aAAa,EAAE,QAFL;MAGVE,UAAU,EAAE;IAHF,CAVW;IAevB9C,OAAO,EAAE;MACP2C,OAAO,EAAE,MADF;MAEPI,cAAc,EAAE,cAFT;MAGPD,UAAU,EAAE;IAHL,CAfc;IAoBvBZ,SAAS,EAAE;MACT9C,KAAK,EAAE,OADE;MAET4D,MAAM,YAAKN,KAAK,CAACO,OAAN,CAAcC,IAAnB,gBAA6BR,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAlD;IAFG,CApBY;IAwBvBjD,eAAe,EAAE;MACfb,KAAK,EAAE,OADQ;MAEf4D,MAAM,YAAKN,KAAK,CAACO,OAAN,CAAcC,IAAnB,gBAA6BR,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAlD;IAFS,CAxBM;IA4BvBC,cAAc,EAAE;MACd/D,KAAK,EAAE,OADO;MAEd4D,MAAM,YAAKN,KAAK,CAACO,OAAN,CAAcC,IAAnB,gBAA6BR,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAlD;IAFQ,CA5BO;IAgCvBzB,IAAI,EAAE;MACJ2B,SAAS,EAAE,QADP;MAEJJ,MAAM,YAAKN,KAAK,CAACO,OAAN,CAAcC,IAAnB;IAFF,CAhCiB;IAoCvBlB,UAAU,EAAE;MACVW,OAAO,EAAE,MADC;MAEVI,cAAc,EAAE,eAFN;MAGVD,UAAU,EAAE,QAHF;MAIVE,MAAM,EAAE;IAJE,CApCW;IA0CvBb,QAAQ,EAAE;MACRkB,KAAK,EAAEA,eAAA,CAAMlB,QAAN;IADC;EA1Ca,CAAL;AAAA,CAApB;;eA+Ce,IAAAmB,kBAAA,EAAWb,MAAX,EAAmB3E,mBAAnB,C"}
1
+ {"version":3,"file":"chart-setup.js","names":["ConfigureChartPanel","props","classes","model","onChange","chartDimensions","gridValues","labelValues","useState","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","forEach","d","remainder","value","floor","removeOutOfRangeValues","rangeProps","chartType","includes","onSizeChanged","key","outOfRange","find","useEffect","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","alignItems","justifyContent","margin","spacing","unit","largeTextField","fontStyle","color","withStyles"],"sources":["../src/chart-setup.jsx"],"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 =\n gridValues && gridValues.range ? { customValues: gridValues.range } : { min: 0, max: 10000 };\n const labelOptions =\n 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)}\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)}\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 =>\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 const removeOutOfRangeValues = () => {\n const { correctAnswer, data } = model;\n\n resetValues(data);\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 onRangeChanged = (key, value) => {\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 =\n model.data.find(\n d => d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0\n ) ||\n model.correctAnswer.data.find(\n d => d.value > range.max || d.value - range.step * Math.floor(d.value / range.step) !== 0\n );\n\n if (outOfRange) {\n setOpen(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 =\n 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:\n '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)}\n />\n </div>\n {!model.chartType.includes('Plot') && stepConfig}\n {showInConfigPanel && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n </div>\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 <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 <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 domain: 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: '24px'\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: '24px 0px'\n },\n disabled: {\n color: color.disabled()\n }\n});\n\nexport default withStyles(styles)(ConfigureChartPanel);\n"],"mappings":"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"}
package/lib/chart-type.js CHANGED
@@ -45,6 +45,7 @@ var ChartType = (0, _styles.withStyles)(function (theme) {
45
45
  }, "ChartType"), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
46
46
  value: value,
47
47
  onChange: onChange,
48
+ labelWidth: 0,
48
49
  input: /*#__PURE__*/_react["default"].createElement(_OutlinedInput["default"], {
49
50
  name: "type",
50
51
  id: "type-helper"
@@ -1 +1 @@
1
- {"version":3,"file":"chart-type.js","names":["ChartType","withStyles","theme","chartType","width","chartTypeLabel","backgroundColor","onChange","value","classes"],"sources":["../src/chart-type.js"],"sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\n\nconst ChartType = withStyles(theme => ({\n chartType: {\n width: '160px'\n },\n chartTypeLabel: {\n backgroundColor: 'transparent'\n }\n}))(({ onChange, value, classes }) => (\n <div className={classes.chartType}>\n <FormControl variant={'outlined'} className={classes.chartType}>\n <InputLabel htmlFor=\"type-helper\" className={classes.chartTypeLabel}>\n ChartType\n </InputLabel>\n\n <Select\n value={value}\n onChange={onChange}\n input={<OutlinedInput name=\"type\" id=\"type-helper\" />}\n >\n <MenuItem value={'histogram'}>Histogram</MenuItem>\n <MenuItem value={'bar'}>Bar</MenuItem>\n <MenuItem value={'lineDot'}>Line Dot</MenuItem>\n <MenuItem value={'lineCross'}>Line Cross</MenuItem>\n <MenuItem value={'dotPlot'}>Dot Plot</MenuItem>\n <MenuItem value={'linePlot'}>Line Plot</MenuItem>\n </Select>\n </FormControl>\n </div>\n));\n\nexport default ChartType;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,SAAS,GAAG,IAAAC,kBAAA,EAAW,UAAAC,KAAK;EAAA,OAAK;IACrCC,SAAS,EAAE;MACTC,KAAK,EAAE;IADE,CAD0B;IAIrCC,cAAc,EAAE;MACdC,eAAe,EAAE;IADH;EAJqB,CAAL;AAAA,CAAhB,EAOd;EAAA,IAAGC,QAAH,QAAGA,QAAH;EAAA,IAAaC,KAAb,QAAaA,KAAb;EAAA,IAAoBC,OAApB,QAAoBA,OAApB;EAAA,oBACF;IAAK,SAAS,EAAEA,OAAO,CAACN;EAAxB,gBACE,gCAAC,uBAAD;IAAa,OAAO,EAAE,UAAtB;IAAkC,SAAS,EAAEM,OAAO,CAACN;EAArD,gBACE,gCAAC,sBAAD;IAAY,OAAO,EAAC,aAApB;IAAkC,SAAS,EAAEM,OAAO,CAACJ;EAArD,eADF,eAKE,gCAAC,kBAAD;IACE,KAAK,EAAEG,KADT;IAEE,QAAQ,EAAED,QAFZ;IAGE,KAAK,eAAE,gCAAC,yBAAD;MAAe,IAAI,EAAC,MAApB;MAA2B,EAAE,EAAC;IAA9B;EAHT,gBAKE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,eALF,eAME,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,SANF,eAOE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,cAPF,eAQE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,gBARF,eASE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,cATF,eAUE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,eAVF,CALF,CADF,CADE;AAAA,CAPc,CAAlB;eA8BeP,S"}
1
+ {"version":3,"file":"chart-type.js","names":["ChartType","withStyles","theme","chartType","width","chartTypeLabel","backgroundColor","onChange","value","classes"],"sources":["../src/chart-type.js"],"sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\n\nconst ChartType = withStyles(theme => ({\n chartType: {\n width: '160px'\n },\n chartTypeLabel: {\n backgroundColor: 'transparent'\n }\n}))(({ onChange, value, classes }) => (\n <div className={classes.chartType}>\n <FormControl variant={'outlined'} className={classes.chartType}>\n <InputLabel htmlFor=\"type-helper\" className={classes.chartTypeLabel}>\n ChartType\n </InputLabel>\n\n <Select\n value={value}\n onChange={onChange}\n labelWidth={0}\n input={<OutlinedInput name=\"type\" id=\"type-helper\" />}\n >\n <MenuItem value={'histogram'}>Histogram</MenuItem>\n <MenuItem value={'bar'}>Bar</MenuItem>\n <MenuItem value={'lineDot'}>Line Dot</MenuItem>\n <MenuItem value={'lineCross'}>Line Cross</MenuItem>\n <MenuItem value={'dotPlot'}>Dot Plot</MenuItem>\n <MenuItem value={'linePlot'}>Line Plot</MenuItem>\n </Select>\n </FormControl>\n </div>\n));\n\nexport default ChartType;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,SAAS,GAAG,IAAAC,kBAAA,EAAW,UAAAC,KAAK;EAAA,OAAK;IACrCC,SAAS,EAAE;MACTC,KAAK,EAAE;IADE,CAD0B;IAIrCC,cAAc,EAAE;MACdC,eAAe,EAAE;IADH;EAJqB,CAAL;AAAA,CAAhB,EAOd;EAAA,IAAGC,QAAH,QAAGA,QAAH;EAAA,IAAaC,KAAb,QAAaA,KAAb;EAAA,IAAoBC,OAApB,QAAoBA,OAApB;EAAA,oBACF;IAAK,SAAS,EAAEA,OAAO,CAACN;EAAxB,gBACE,gCAAC,uBAAD;IAAa,OAAO,EAAE,UAAtB;IAAkC,SAAS,EAAEM,OAAO,CAACN;EAArD,gBACE,gCAAC,sBAAD;IAAY,OAAO,EAAC,aAApB;IAAkC,SAAS,EAAEM,OAAO,CAACJ;EAArD,eADF,eAKE,gCAAC,kBAAD;IACE,KAAK,EAAEG,KADT;IAEE,QAAQ,EAAED,QAFZ;IAGE,UAAU,EAAE,CAHd;IAIE,KAAK,eAAE,gCAAC,yBAAD;MAAe,IAAI,EAAC,MAApB;MAA2B,EAAE,EAAC;IAA9B;EAJT,gBAME,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,eANF,eAOE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,SAPF,eAQE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,cARF,eASE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,gBATF,eAUE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,cAVF,eAWE,gCAAC,oBAAD;IAAU,KAAK,EAAE;EAAjB,eAXF,CALF,CADF,CADE;AAAA,CAPc,CAAlB;eA+BeP,S"}
package/lib/chart.js CHANGED
@@ -208,7 +208,7 @@ var Chart = /*#__PURE__*/function (_React$Component) {
208
208
  var bandWidth = xBand.bandwidth(); // for chartType "line", bandWidth will be 0, so we have to calculate it
209
209
 
210
210
  var barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;
211
- var increaseHeight = defineChart ? 150 : 0; // if there are many categories, we have to rotate their names in order to fit
211
+ var increaseHeight = defineChart ? 160 : 60; // if there are many categories, we have to rotate their names in order to fit
212
212
  // and we have to add extra value on top of some items
213
213
 
214
214
  var top = (0, _utils.getTopPadding)(barWidth);
package/lib/chart.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chart.js","names":["log","debug","Chart","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","props","state","chartType","ChartComponent","chart","find","type","Component","data","onDataChange","index","newCategory","integerIndex","parseInt","range","categoryDefaultLabel","defineChart","inDefineChart","autoFocus","label","value","step","deletable","editable","interactive","map","d","classes","className","domain","size","title","onChangeTitle","onChangeLabels","labelsPlaceholders","titlePlaceholder","addCategoryEnabled","showPixelGuides","width","height","labels","left","bottom","getChart","categories","getFilteredCategories","correctValues","getDomainAndRangeByChartType","getGridLinesAndAxisByChartType","verticalLines","horizontalLines","leftAxis","common","graphProps","createGraphProps","rootNode","maskSize","x","y","scale","xBand","dataToXBand","bandWidth","bandwidth","barWidth","max","length","increaseHeight","top","getTopPadding","rootCommon","cloneDeep","classNames","controls","toolMenu","addCategory","r","changeData","changeCategory","React","PropTypes","object","isRequired","string","shape","number","min","axisLabel","arrayOf","labelStep","array","func","bool","theme","styles","graphBox","transform","display","justifyContent","padding","spacing","unit","backgroundColor","color","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","svg","overflow","minHeight","withStyles","withTheme"],"sources":["../src/chart.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { Root, createGraphProps } from '@pie-lib/plot';\nimport cloneDeep from 'lodash/cloneDeep';\nimport ChartGrid from './grid';\nimport ChartAxes from './axes';\nimport debug from 'debug';\nimport { color } from '@pie-lib/render-ui';\nimport {\n dataToXBand,\n getDomainAndRangeByChartType,\n getGridLinesAndAxisByChartType,\n getTopPadding\n} from './utils';\nimport ToolMenu from './tool-menu';\nimport chartTypes from './chart-types';\n\nconst log = debug('pie-lib:charts:chart');\n\nexport class Chart extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n chartType: PropTypes.string.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n }),\n domain: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n data: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.number })),\n range: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n labelStep: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n charts: PropTypes.array,\n title: PropTypes.string,\n onDataChange: PropTypes.func,\n addCategoryEnabled: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n categoryDefaultLabel: PropTypes.string,\n defineChart: PropTypes.bool,\n theme: PropTypes.object\n };\n\n static defaultProps = {\n size: {\n width: 480,\n height: 480\n }\n };\n\n state = {\n charts: [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot()\n ]\n };\n\n getChart = () => {\n const charts = this.props.charts || this.state.charts;\n let { chartType } = this.props;\n let ChartComponent = null;\n let chart = null;\n\n if (chartType) {\n chart = charts && charts.find(chart => chart.type === chartType);\n ChartComponent = chart && chart.Component;\n } else {\n chart = charts && charts[0];\n ChartComponent = chart && chart.Component;\n chartType = chart && chart.type;\n }\n\n return {\n type: chartType,\n ChartComponent\n };\n };\n\n changeData = data => {\n const { onDataChange } = this.props;\n\n onDataChange(data);\n };\n\n changeCategory = (index, newCategory) => {\n const integerIndex = parseInt(index, 10);\n\n if (integerIndex >= 0) {\n const { data, onDataChange } = this.props;\n data[integerIndex] = {\n ...data[integerIndex],\n ...newCategory\n };\n\n onDataChange(data);\n }\n };\n\n addCategory = range => {\n const { onDataChange, data, categoryDefaultLabel, defineChart } = this.props;\n\n onDataChange([\n ...data,\n {\n inDefineChart: defineChart,\n autoFocus: true,\n label: categoryDefaultLabel || 'New Bar',\n value: range.step,\n deletable: true,\n editable: true,\n interactive: true\n }\n ]);\n };\n\n getFilteredCategories = () => {\n const { data, defineChart } = this.props;\n\n return data\n ? data.map(d => ({\n ...d,\n deletable: defineChart || d.deletable\n }))\n : [];\n };\n\n render() {\n const {\n classes,\n className,\n domain,\n range,\n size,\n title,\n onChangeTitle,\n onChangeLabels,\n labelsPlaceholders,\n titlePlaceholder,\n addCategoryEnabled,\n showPixelGuides\n } = this.props;\n let { chartType } = this.props;\n\n const defineChart = this.props.defineChart || false;\n const { width, height } = size || {};\n const labels = { left: range?.label || '', bottom: domain.label || '' };\n\n const { ChartComponent } = this.getChart();\n const categories = this.getFilteredCategories();\n\n const correctValues = getDomainAndRangeByChartType(domain, range, chartType);\n\n const { verticalLines, horizontalLines, leftAxis } = getGridLinesAndAxisByChartType(\n correctValues.range,\n chartType\n );\n const common = {\n graphProps: createGraphProps(\n correctValues.domain,\n correctValues.range,\n size,\n () => this.rootNode\n )\n };\n\n log('[render] common:', common);\n\n const maskSize = { x: -10, y: -10, width: width + 20, height: height + 80 };\n const { scale } = common.graphProps;\n const xBand = dataToXBand(scale.x, categories, width, chartType);\n\n if (!ChartComponent) {\n return null;\n }\n\n const bandWidth = xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;\n const increaseHeight = defineChart ? 150 : 0;\n\n // if there are many categories, we have to rotate their names in order to fit\n // and we have to add extra value on top of some items\n const top = getTopPadding(barWidth);\n const rootCommon = cloneDeep(common);\n rootCommon.graphProps.size.height += top + increaseHeight;\n\n return (\n <div className={classNames(classes.chart, className)}>\n <div className={classes.controls}>\n <ToolMenu\n className={classes.toolMenu}\n disabled={!addCategoryEnabled}\n addCategory={() => this.addCategory(correctValues.range)}\n />\n </div>\n <Root\n title={title}\n onChangeTitle={onChangeTitle}\n disabledTitle={!defineChart}\n showTitle={true}\n showLabels={true}\n labels={labels}\n onChangeLabels={onChangeLabels}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder}\n defineChart={defineChart}\n disabledLabels={!defineChart}\n isChart={true}\n showPixelGuides={showPixelGuides}\n classes={classes}\n rootRef={r => (this.rootNode = r)}\n {...rootCommon}\n >\n <ChartGrid\n {...common}\n xBand={xBand}\n rowTickValues={horizontalLines}\n columnTickValues={verticalLines}\n />\n <ChartAxes\n {...common}\n defineChart={defineChart}\n categories={categories}\n xBand={xBand}\n leftAxis={leftAxis}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n top={top}\n />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" />\n </mask>\n <g id=\"marks\" mask=\"url('#myMask')\">\n <ChartComponent\n {...common}\n data={categories}\n defineChart={defineChart}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n />\n </g>\n </Root>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n graphBox: {\n transform: 'translate(60px, 35px)'\n },\n controls: {\n width: 'inherit',\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`\n },\n svg: {\n overflow: 'visible'\n },\n toolMenu: {\n minHeight: '36px'\n }\n});\n\nexport default withStyles(styles, { withTheme: true })(Chart);\n"],"mappings":"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"}
1
+ {"version":3,"file":"chart.js","names":["log","debug","Chart","charts","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","props","state","chartType","ChartComponent","chart","find","type","Component","data","onDataChange","index","newCategory","integerIndex","parseInt","range","categoryDefaultLabel","defineChart","inDefineChart","autoFocus","label","value","step","deletable","editable","interactive","map","d","classes","className","domain","size","title","onChangeTitle","onChangeLabels","labelsPlaceholders","titlePlaceholder","addCategoryEnabled","showPixelGuides","width","height","labels","left","bottom","getChart","categories","getFilteredCategories","correctValues","getDomainAndRangeByChartType","getGridLinesAndAxisByChartType","verticalLines","horizontalLines","leftAxis","common","graphProps","createGraphProps","rootNode","maskSize","x","y","scale","xBand","dataToXBand","bandWidth","bandwidth","barWidth","max","length","increaseHeight","top","getTopPadding","rootCommon","cloneDeep","classNames","controls","toolMenu","addCategory","r","changeData","changeCategory","React","PropTypes","object","isRequired","string","shape","number","min","axisLabel","arrayOf","labelStep","array","func","bool","theme","styles","graphBox","transform","display","justifyContent","padding","spacing","unit","backgroundColor","color","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","svg","overflow","minHeight","withStyles","withTheme"],"sources":["../src/chart.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { Root, createGraphProps } from '@pie-lib/plot';\nimport cloneDeep from 'lodash/cloneDeep';\nimport ChartGrid from './grid';\nimport ChartAxes from './axes';\nimport debug from 'debug';\nimport { color } from '@pie-lib/render-ui';\nimport {\n dataToXBand,\n getDomainAndRangeByChartType,\n getGridLinesAndAxisByChartType,\n getTopPadding\n} from './utils';\nimport ToolMenu from './tool-menu';\nimport chartTypes from './chart-types';\n\nconst log = debug('pie-lib:charts:chart');\n\nexport class Chart extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n chartType: PropTypes.string.isRequired,\n size: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n }),\n domain: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n data: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.number })),\n range: PropTypes.shape({\n label: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n labelStep: PropTypes.number,\n axisLabel: PropTypes.string\n }),\n charts: PropTypes.array,\n title: PropTypes.string,\n onDataChange: PropTypes.func,\n addCategoryEnabled: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n categoryDefaultLabel: PropTypes.string,\n defineChart: PropTypes.bool,\n theme: PropTypes.object\n };\n\n static defaultProps = {\n size: {\n width: 480,\n height: 480\n }\n };\n\n state = {\n charts: [\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot()\n ]\n };\n\n getChart = () => {\n const charts = this.props.charts || this.state.charts;\n let { chartType } = this.props;\n let ChartComponent = null;\n let chart = null;\n\n if (chartType) {\n chart = charts && charts.find(chart => chart.type === chartType);\n ChartComponent = chart && chart.Component;\n } else {\n chart = charts && charts[0];\n ChartComponent = chart && chart.Component;\n chartType = chart && chart.type;\n }\n\n return {\n type: chartType,\n ChartComponent\n };\n };\n\n changeData = data => {\n const { onDataChange } = this.props;\n\n onDataChange(data);\n };\n\n changeCategory = (index, newCategory) => {\n const integerIndex = parseInt(index, 10);\n\n if (integerIndex >= 0) {\n const { data, onDataChange } = this.props;\n data[integerIndex] = {\n ...data[integerIndex],\n ...newCategory\n };\n\n onDataChange(data);\n }\n };\n\n addCategory = range => {\n const { onDataChange, data, categoryDefaultLabel, defineChart } = this.props;\n\n onDataChange([\n ...data,\n {\n inDefineChart: defineChart,\n autoFocus: true,\n label: categoryDefaultLabel || 'New Bar',\n value: range.step,\n deletable: true,\n editable: true,\n interactive: true\n }\n ]);\n };\n\n getFilteredCategories = () => {\n const { data, defineChart } = this.props;\n\n return data\n ? data.map(d => ({\n ...d,\n deletable: defineChart || d.deletable\n }))\n : [];\n };\n\n render() {\n const {\n classes,\n className,\n domain,\n range,\n size,\n title,\n onChangeTitle,\n onChangeLabels,\n labelsPlaceholders,\n titlePlaceholder,\n addCategoryEnabled,\n showPixelGuides\n } = this.props;\n let { chartType } = this.props;\n\n const defineChart = this.props.defineChart || false;\n const { width, height } = size || {};\n const labels = { left: range?.label || '', bottom: domain.label || '' };\n\n const { ChartComponent } = this.getChart();\n const categories = this.getFilteredCategories();\n\n const correctValues = getDomainAndRangeByChartType(domain, range, chartType);\n\n const { verticalLines, horizontalLines, leftAxis } = getGridLinesAndAxisByChartType(\n correctValues.range,\n chartType\n );\n const common = {\n graphProps: createGraphProps(\n correctValues.domain,\n correctValues.range,\n size,\n () => this.rootNode\n )\n };\n\n log('[render] common:', common);\n\n const maskSize = { x: -10, y: -10, width: width + 20, height: height + 80 };\n const { scale } = common.graphProps;\n const xBand = dataToXBand(scale.x, categories, width, chartType);\n\n if (!ChartComponent) {\n return null;\n }\n\n const bandWidth = xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;\n const increaseHeight = defineChart ? 160 : 60;\n\n // if there are many categories, we have to rotate their names in order to fit\n // and we have to add extra value on top of some items\n const top = getTopPadding(barWidth);\n const rootCommon = cloneDeep(common);\n rootCommon.graphProps.size.height += top + increaseHeight;\n\n return (\n <div className={classNames(classes.chart, className)}>\n <div className={classes.controls}>\n <ToolMenu\n className={classes.toolMenu}\n disabled={!addCategoryEnabled}\n addCategory={() => this.addCategory(correctValues.range)}\n />\n </div>\n <Root\n title={title}\n onChangeTitle={onChangeTitle}\n disabledTitle={!defineChart}\n showTitle={true}\n showLabels={true}\n labels={labels}\n onChangeLabels={onChangeLabels}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder}\n defineChart={defineChart}\n disabledLabels={!defineChart}\n isChart={true}\n showPixelGuides={showPixelGuides}\n classes={classes}\n rootRef={r => (this.rootNode = r)}\n {...rootCommon}\n >\n <ChartGrid\n {...common}\n xBand={xBand}\n rowTickValues={horizontalLines}\n columnTickValues={verticalLines}\n />\n <ChartAxes\n {...common}\n defineChart={defineChart}\n categories={categories}\n xBand={xBand}\n leftAxis={leftAxis}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n top={top}\n />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" />\n </mask>\n <g id=\"marks\" mask=\"url('#myMask')\">\n <ChartComponent\n {...common}\n data={categories}\n defineChart={defineChart}\n onChange={this.changeData}\n onChangeCategory={this.changeCategory}\n />\n </g>\n </Root>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n graphBox: {\n transform: 'translate(60px, 35px)'\n },\n controls: {\n width: 'inherit',\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`\n },\n svg: {\n overflow: 'visible'\n },\n toolMenu: {\n minHeight: '36px'\n }\n});\n\nexport default withStyles(styles, { withTheme: true })(Chart);\n"],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "4.5.11-next.681+5306cfc5",
6
+ "version": "4.5.11-next.695+68fbd863",
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": "5306cfc57682b80c15b38f3a026dc9644ae70880"
46
+ "gitHead": "68fbd863a2e391172481dda49b77f47a7c58bc09"
47
47
  }
@@ -137,19 +137,46 @@ const ConfigureChartPanel = props => {
137
137
  }
138
138
  }, [open]);
139
139
 
140
+ const isValidPlot =
141
+ range.step === 1 && range.labelStep === 1 && 3 <= range.max && range.max <= 10;
142
+
143
+ const getPlotConfiguration = () => {
144
+ rangeProps.min = 3;
145
+ rangeProps.max = 10;
146
+
147
+ range.max = 10;
148
+ range.step = 1;
149
+ range.labelStep = 1;
150
+
151
+ onChange({ ...model, range });
152
+ };
153
+
140
154
  const onChartTypeChange = chartType => {
141
155
  if (chartType.includes('Plot')) {
142
- rangeProps.min = 3;
143
- rangeProps.max = 10;
156
+ // The selected chart type does not support the current chart configuration
157
+ if (!isValidPlot) {
158
+ setAlertDialog({
159
+ open: true,
160
+ title: 'Warning',
161
+ text:
162
+ 'The selected chart type does not support the current chart configuration. Reset chart configuration?',
163
+ onConfirm: () => {
164
+ getPlotConfiguration();
165
+ removeOutOfRangeValues();
166
+ handleAlertDialog(false, onChange({ ...model, range, chartType }));
167
+ },
168
+ onClose: () => {
169
+ handleAlertDialog(false);
170
+ }
171
+ });
144
172
 
145
- if (range.max > 10 || range.max < 3) {
146
- range.max = 10;
173
+ return;
147
174
  }
148
175
 
149
- range.step = 1;
150
- range.labelStep = 1;
176
+ rangeProps.min = 3;
177
+ rangeProps.max = 10;
151
178
 
152
- onChange({ ...model, range, chartType });
179
+ onChange({ ...model, chartType });
153
180
 
154
181
  return;
155
182
  }
@@ -222,7 +249,7 @@ const ConfigureChartPanel = props => {
222
249
  ConfigureChartPanel.propTypes = {
223
250
  classes: PropTypes.object,
224
251
  domain: PropTypes.object,
225
- onChange: PropTypes.function,
252
+ onChange: PropTypes.func,
226
253
  range: PropTypes.object,
227
254
  chartDimension: PropTypes.object,
228
255
  size: PropTypes.object
package/src/chart-type.js CHANGED
@@ -23,6 +23,7 @@ const ChartType = withStyles(theme => ({
23
23
  <Select
24
24
  value={value}
25
25
  onChange={onChange}
26
+ labelWidth={0}
26
27
  input={<OutlinedInput name="type" id="type-helper" />}
27
28
  >
28
29
  <MenuItem value={'histogram'}>Histogram</MenuItem>
package/src/chart.jsx CHANGED
@@ -192,7 +192,7 @@ export class Chart extends React.Component {
192
192
  const bandWidth = xBand.bandwidth();
193
193
  // for chartType "line", bandWidth will be 0, so we have to calculate it
194
194
  const barWidth = bandWidth || scale.x(correctValues.domain.max) / categories.length;
195
- const increaseHeight = defineChart ? 150 : 0;
195
+ const increaseHeight = defineChart ? 160 : 60;
196
196
 
197
197
  // if there are many categories, we have to rotate their names in order to fit
198
198
  // and we have to add extra value on top of some items