@pie-lib/charting 5.1.4 → 5.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.1.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.1.4...@pie-lib/charting@5.1.5) (2022-08-15)
7
+
8
+ **Note:** Version bump only for package @pie-lib/charting
9
+
10
+
11
+
12
+
13
+
6
14
  ## [5.1.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@5.1.3...@pie-lib/charting@5.1.4) (2022-08-01)
7
15
 
8
16
  **Note:** Version bump only for package @pie-lib/charting
package/lib/axes.js CHANGED
@@ -33,6 +33,8 @@ var _plot = require("@pie-lib/plot");
33
33
 
34
34
  var _renderUi = require("@pie-lib/render-ui");
35
35
 
36
+ var _configUi = require("@pie-lib/config-ui");
37
+
36
38
  var _axis = require("@vx/axis");
37
39
 
38
40
  var _utils = require("./utils");
@@ -54,16 +56,18 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
54
56
 
55
57
  var _super = _createSuper(TickComponent);
56
58
 
57
- function TickComponent() {
59
+ function TickComponent(props) {
58
60
  var _this;
59
61
 
60
62
  (0, _classCallCheck2["default"])(this, TickComponent);
61
-
62
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
63
- args[_key] = arguments[_key];
64
- }
65
-
66
- _this = _super.call.apply(_super, [this].concat(args));
63
+ _this = _super.call(this, props);
64
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleAlertDialog", function (open, callback) {
65
+ return _this.setState({
66
+ dialog: {
67
+ open: open
68
+ }
69
+ }, callback);
70
+ });
67
71
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeCategory", function (index, newLabel) {
68
72
  var _this$props = _this.props,
69
73
  categories = _this$props.categories,
@@ -87,19 +91,62 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
87
91
  categories = _this$props3.categories,
88
92
  onChangeCategory = _this$props3.onChangeCategory;
89
93
  var category = categories[index];
90
- onChangeCategory(index, _objectSpread(_objectSpread({}, category), {}, {
91
- interactive: !category.interactive
92
- }));
94
+
95
+ if (!value) {
96
+ _this.setState({
97
+ dialog: {
98
+ open: true,
99
+ title: 'Warning',
100
+ text: 'This will remove the correct answer value that has been defined for this category.',
101
+ onConfirm: function onConfirm() {
102
+ return _this.handleAlertDialog(false, onChangeCategory(index, _objectSpread(_objectSpread({}, category), {}, {
103
+ interactive: !category.interactive
104
+ })));
105
+ },
106
+ onClose: function onClose() {
107
+ return _this.handleAlertDialog(false);
108
+ }
109
+ }
110
+ });
111
+ } else {
112
+ onChangeCategory(index, _objectSpread(_objectSpread({}, category), {}, {
113
+ interactive: !category.interactive
114
+ }));
115
+ }
93
116
  });
94
117
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeEditable", function (index, value) {
95
118
  var _this$props4 = _this.props,
96
119
  categories = _this$props4.categories,
97
120
  onChangeCategory = _this$props4.onChangeCategory;
98
121
  var category = categories[index];
99
- onChangeCategory(index, _objectSpread(_objectSpread({}, category), {}, {
100
- editable: !category.editable || false
101
- }));
122
+
123
+ if (!value) {
124
+ _this.setState({
125
+ dialog: {
126
+ open: true,
127
+ title: 'Warning',
128
+ text: 'This will remove the correct answer category name that has been defined for this category.',
129
+ onConfirm: function onConfirm() {
130
+ return _this.handleAlertDialog(false, onChangeCategory(index, _objectSpread(_objectSpread({}, category), {}, {
131
+ editable: !category.editable || false
132
+ })));
133
+ },
134
+ onClose: function onClose() {
135
+ return _this.handleAlertDialog(false);
136
+ }
137
+ }
138
+ });
139
+ } else {
140
+ onChangeCategory(index, _objectSpread(_objectSpread({}, category), {}, {
141
+ editable: !category.editable || false
142
+ }));
143
+ }
102
144
  });
145
+ _this.state = {
146
+ dialog: {
147
+ open: false
148
+ }
149
+ };
103
150
  return _this;
104
151
  }
105
152
 
@@ -126,6 +173,7 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
126
173
  return null;
127
174
  }
128
175
 
176
+ var dialog = this.state.dialog;
129
177
  var index = parseInt(formattedValue.split('-')[0], 10);
130
178
  var category = categories[index];
131
179
 
@@ -265,6 +313,21 @@ var TickComponent = /*#__PURE__*/function (_React$Component) {
265
313
  onChange: function onChange(e) {
266
314
  return _this2.changeEditable(index, e.target.checked);
267
315
  }
316
+ })), /*#__PURE__*/_react["default"].createElement("foreignObject", {
317
+ x: x - 24,
318
+ y: y + 100 + top,
319
+ width: barWidth,
320
+ height: 4,
321
+ style: {
322
+ pointerEvents: 'visible',
323
+ overflow: 'visible'
324
+ }
325
+ }, /*#__PURE__*/_react["default"].createElement(_configUi.AlertDialog, {
326
+ open: dialog.open,
327
+ title: dialog.title,
328
+ text: dialog.text,
329
+ onClose: dialog.onClose,
330
+ onConfirm: dialog.onConfirm
268
331
  })));
269
332
  }
270
333
  }]);
@@ -298,8 +361,8 @@ var RawChartAxes = /*#__PURE__*/function (_React$Component2) {
298
361
 
299
362
  (0, _classCallCheck2["default"])(this, RawChartAxes);
300
363
 
301
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
302
- args[_key2] = arguments[_key2];
364
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
365
+ args[_key] = arguments[_key];
303
366
  }
304
367
 
305
368
  _this3 = _super2.call.apply(_super2, [this].concat(args));
package/lib/axes.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/axes.jsx"],"names":["TickComponent","index","newLabel","props","categories","onChangeCategory","category","label","onChange","slice","value","interactive","editable","classes","xBand","bandWidth","barWidth","rotate","top","graphProps","defineChart","x","y","formattedValue","parseInt","split","deletable","correctness","autoFocus","inDefineChart","barX","longestCategory","reduce","a","b","lengthA","length","lengthB","longestLabel","pointerEvents","overflow","position","visibility","wordBreak","maxWidth","display","r","input","changeCategory","dottedLine","deleteCategory","e","changeInteractive","target","checked","changeEditable","React","Component","propTypes","PropTypes","array","func","number","object","string","RawChartAxes","height","document","getElementById","offsetHeight","setState","leftAxis","theme","axis","axisLine","tick","axisLabel","scale","range","domain","size","state","bottomScale","rangeRound","width","bandwidth","max","rowTickValues","step","labelStep","fontSize","typography","getTickLabelProps","dy","dx","toLocaleString","getTickComponent","properties","min","textAnchor","count","isRequired","types","GraphPropsType","bool","ChartAxes","fontFamily","body1","fill","color","secondary","stroke","primaryDark","strokeWidth","primaryLight","opacity","withTheme"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { AxisLeft, AxisBottom } from '@vx/axis';\nimport { bandKey, getTickValues, getRotateAngle } from './utils';\nimport MarkLabel from './mark-label';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nexport class TickComponent extends React.Component {\n changeCategory = (index, newLabel) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n onChangeCategory(index, { ...category, label: newLabel });\n };\n\n deleteCategory = index => {\n const { categories, onChange } = this.props;\n\n if (index >= 0 && categories[index]) {\n onChange([...categories.slice(0, index), ...categories.slice(index + 1)]);\n }\n };\n\n changeInteractive = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n onChangeCategory(index, { ...category, interactive: !category.interactive });\n };\n\n changeEditable = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n onChangeCategory(index, { ...category, editable: !category.editable || false });\n };\n\n render() {\n const {\n classes,\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n graphProps,\n defineChart,\n x,\n y,\n formattedValue\n } = this.props;\n\n if (!formattedValue) {\n return null;\n }\n\n const index = parseInt(formattedValue.split('-')[0], 10);\n const category = categories[index];\n const { deletable, editable, interactive, label, correctness, autoFocus, inDefineChart } =\n category || {};\n const barX = xBand(bandKey({ label }, index));\n const longestCategory = (categories || []).reduce((a, b) => {\n const lengthA = a && a.label ? a.label.length : 0;\n const lengthB = b && b.label ? b.label.length : 0;\n\n return lengthA > lengthB ? a : b;\n });\n\n const longestLabel = (longestCategory && longestCategory.label) || '';\n\n return (\n <g>\n <foreignObject\n x={bandWidth ? barX : x - barWidth / 2}\n y={6}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'none', overflow: 'visible' }}\n >\n {index === 0 && (\n <div\n id=\"hiddenLabel\"\n style={{\n position: 'absolute',\n visibility: 'hidden',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'block'\n }}\n >\n {longestLabel}\n </div>\n )}\n <MarkLabel\n autoFocus={inDefineChart ? defineChart && autoFocus : autoFocus}\n inputRef={r => (this.input = r)}\n disabled={!defineChart && !editable}\n mark={category}\n graphProps={graphProps}\n onChange={newLabel => this.changeCategory(index, newLabel)}\n barWidth={barWidth}\n rotate={rotate}\n correctness={correctness}\n />\n </foreignObject>\n {deletable && !correctness && (\n <line\n x1={x}\n y1={0}\n x2={x}\n y2={y + 4 + top}\n className={classes.dottedLine}\n strokeDasharray=\"4 2\"\n />\n )}\n {deletable && !correctness && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n x={x - 8}\n y={y + 10 + top}\n width={16}\n height={16}\n viewBox=\"0 0 512 512\"\n onClick={() => this.deleteCategory(index)}\n >\n <path d=\"M128 405.429C128 428.846 147.198 448 170.667 448h170.667C364.802 448 384 428.846 384 405.429V160H128v245.429zM416 96h-80l-26.785-32H202.786L176 96H96v32h320V96z\" />\n </svg>\n )}\n {defineChart && index === 0 && (\n <text\n x={x - 80}\n y={y + 40 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'inline-block'\n }}\n >\n <tspan x=\"0\" dy=\".6em\">\n {' '}\n Student can{' '}\n </tspan>\n <tspan x=\"0\" dy=\"1.2em\">\n {' '}\n set value\n </tspan>\n </text>\n )}\n {defineChart && index === 0 && (\n <text\n x={x - 80}\n y={y + 80 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'inline-block'\n }}\n >\n <tspan x=\"0\" dy=\".6em\">\n {' '}\n Student can{' '}\n </tspan>\n <tspan x=\"0\" dy=\"1.2em\">\n {' '}\n edit name\n </tspan>\n </text>\n )}\n {defineChart && (\n <foreignObject\n x={x - 24}\n y={y + 20 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <Checkbox\n checked={interactive}\n onChange={e => this.changeInteractive(index, e.target.checked)}\n />\n </foreignObject>\n )}\n {defineChart && (\n <foreignObject\n x={x - 24}\n y={y + 70 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <Checkbox\n checked={editable}\n onChange={e => this.changeEditable(index, e.target.checked)}\n />\n </foreignObject>\n )}\n </g>\n );\n }\n}\n\nTickComponent.propTypes = {\n categories: PropTypes.array,\n xBand: PropTypes.func,\n bandWidth: PropTypes.number,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n top: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: PropTypes.object,\n formattedValue: PropTypes.string,\n onChangeCategory: PropTypes.func,\n onChange: PropTypes.func,\n classes: PropTypes.object\n};\n\nexport class RawChartAxes extends React.Component {\n static propTypes = {\n bottomScale: PropTypes.func,\n classes: PropTypes.object.isRequired,\n categories: PropTypes.array,\n graphProps: types.GraphPropsType.isRequired,\n xBand: PropTypes.func,\n leftAxis: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeCategory: PropTypes.func,\n top: PropTypes.number,\n theme: PropTypes.object\n };\n\n state = { height: 0 };\n\n componentDidMount() {\n const height = document.getElementById('hiddenLabel')\n ? document.getElementById('hiddenLabel').offsetHeight\n : 0;\n\n this.setState({ height });\n }\n\n render() {\n const {\n classes,\n graphProps,\n xBand,\n leftAxis,\n onChange,\n onChangeCategory,\n categories = [],\n top,\n defineChart,\n theme\n } = this.props;\n\n const { axis, axisLine, tick, axisLabel } = classes;\n const { scale = {}, range = {}, domain = {}, size = {} } = graphProps || {};\n const { height } = this.state;\n\n const bottomScale =\n xBand && typeof xBand.rangeRound === 'function' && xBand.rangeRound([0, size.width]);\n\n const bandWidth = xBand && typeof xBand.bandwidth === 'function' && xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || (scale.x && scale.x(domain.max) / categories.length);\n\n const rowTickValues = getTickValues({ ...range, step: range.labelStep });\n const fontSize = theme && theme.typography ? theme.typography.fontSize : 14;\n const rotate = getRotateAngle(fontSize, height);\n\n const getTickLabelProps = value => ({\n dy: 4,\n dx: -10 - (value.toLocaleString().length || 1) * 5\n });\n\n const getTickComponent = props => {\n const properties = {\n classes,\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n defineChart,\n onChangeCategory,\n onChange,\n graphProps,\n x: props.x,\n y: props.y,\n formattedValue: props.formattedValue\n };\n\n return <TickComponent {...properties} />;\n };\n\n return (\n <React.Fragment>\n {leftAxis && (\n <AxisLeft\n scale={scale.y}\n className={axis}\n axisLineClassName={axisLine}\n tickLength={10}\n tickClassName={tick}\n tickFormat={value => value}\n label={range.label}\n labelClassName={axisLabel}\n tickValues={rowTickValues}\n tickLabelProps={getTickLabelProps}\n />\n )}\n <AxisBottom\n axisLineClassName={axisLine}\n labelClassName={axisLabel}\n tickClassName={tick}\n scale={bottomScale}\n label={domain.label}\n labelProps={{ y: 60 + top }}\n top={scale.y && scale.y(range.min)}\n textLabelProps={() => ({ textAnchor: 'middle' })}\n tickFormat={count => count}\n tickComponent={getTickComponent}\n />\n </React.Fragment>\n );\n }\n}\n\nconst ChartAxes = withStyles(\n theme => ({\n axisLabel: {\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: theme.typography.fontSize,\n fill: color.secondary()\n },\n axis: {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n axisLine: {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n tick: {\n '& > line': {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n fill: color.primaryDark(),\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: theme.typography.fontSize,\n textAnchor: 'middle'\n },\n dottedLine: {\n stroke: color.primaryLight(),\n opacity: 0.2\n }\n }),\n { withTheme: true }\n)(RawChartAxes);\n\nexport default ChartAxes;\n"],"file":"axes.js"}
1
+ {"version":3,"sources":["../src/axes.jsx"],"names":["TickComponent","props","open","callback","setState","dialog","index","newLabel","categories","onChangeCategory","category","label","onChange","slice","value","title","text","onConfirm","handleAlertDialog","interactive","onClose","editable","state","classes","xBand","bandWidth","barWidth","rotate","top","graphProps","defineChart","x","y","formattedValue","parseInt","split","deletable","correctness","autoFocus","inDefineChart","barX","longestCategory","reduce","a","b","lengthA","length","lengthB","longestLabel","pointerEvents","overflow","position","visibility","wordBreak","maxWidth","display","r","input","changeCategory","dottedLine","deleteCategory","e","changeInteractive","target","checked","changeEditable","React","Component","propTypes","PropTypes","array","func","number","object","string","RawChartAxes","height","document","getElementById","offsetHeight","leftAxis","theme","axis","axisLine","tick","axisLabel","scale","range","domain","size","bottomScale","rangeRound","width","bandwidth","max","rowTickValues","step","labelStep","fontSize","typography","getTickLabelProps","dy","dx","toLocaleString","getTickComponent","properties","min","textAnchor","count","isRequired","types","GraphPropsType","bool","ChartAxes","fontFamily","body1","fill","color","secondary","stroke","primaryDark","strokeWidth","primaryLight","opacity","withTheme"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport { AxisLeft, AxisBottom } from '@vx/axis';\nimport { bandKey, getTickValues, getRotateAngle } from './utils';\nimport MarkLabel from './mark-label';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nexport class TickComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false\n }\n };\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open }\n },\n callback\n );\n\n changeCategory = (index, newLabel) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n onChangeCategory(index, { ...category, label: newLabel });\n };\n\n deleteCategory = index => {\n const { categories, onChange } = this.props;\n\n if (index >= 0 && categories[index]) {\n onChange([...categories.slice(0, index), ...categories.slice(index + 1)]);\n }\n };\n\n changeInteractive = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text:\n 'This will remove the correct answer value that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n onChangeCategory(index, { ...category, interactive: !category.interactive })\n ),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n } else {\n onChangeCategory(index, { ...category, interactive: !category.interactive });\n }\n };\n\n changeEditable = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text:\n 'This will remove the correct answer category name that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n onChangeCategory(index, { ...category, editable: !category.editable || false })\n ),\n onClose: () => this.handleAlertDialog(false)\n }\n });\n } else {\n onChangeCategory(index, { ...category, editable: !category.editable || false });\n }\n };\n\n render() {\n const {\n classes,\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n graphProps,\n defineChart,\n x,\n y,\n formattedValue\n } = this.props;\n\n if (!formattedValue) {\n return null;\n }\n\n const { dialog } = this.state;\n const index = parseInt(formattedValue.split('-')[0], 10);\n const category = categories[index];\n const { deletable, editable, interactive, label, correctness, autoFocus, inDefineChart } =\n category || {};\n const barX = xBand(bandKey({ label }, index));\n const longestCategory = (categories || []).reduce((a, b) => {\n const lengthA = a && a.label ? a.label.length : 0;\n const lengthB = b && b.label ? b.label.length : 0;\n\n return lengthA > lengthB ? a : b;\n });\n\n const longestLabel = (longestCategory && longestCategory.label) || '';\n\n return (\n <g>\n <foreignObject\n x={bandWidth ? barX : x - barWidth / 2}\n y={6}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'none', overflow: 'visible' }}\n >\n {index === 0 && (\n <div\n id=\"hiddenLabel\"\n style={{\n position: 'absolute',\n visibility: 'hidden',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'block'\n }}\n >\n {longestLabel}\n </div>\n )}\n <MarkLabel\n autoFocus={inDefineChart ? defineChart && autoFocus : autoFocus}\n inputRef={r => (this.input = r)}\n disabled={!defineChart && !editable}\n mark={category}\n graphProps={graphProps}\n onChange={newLabel => this.changeCategory(index, newLabel)}\n barWidth={barWidth}\n rotate={rotate}\n correctness={correctness}\n />\n </foreignObject>\n {deletable && !correctness && (\n <line\n x1={x}\n y1={0}\n x2={x}\n y2={y + 4 + top}\n className={classes.dottedLine}\n strokeDasharray=\"4 2\"\n />\n )}\n {deletable && !correctness && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n x={x - 8}\n y={y + 10 + top}\n width={16}\n height={16}\n viewBox=\"0 0 512 512\"\n onClick={() => this.deleteCategory(index)}\n >\n <path d=\"M128 405.429C128 428.846 147.198 448 170.667 448h170.667C364.802 448 384 428.846 384 405.429V160H128v245.429zM416 96h-80l-26.785-32H202.786L176 96H96v32h320V96z\" />\n </svg>\n )}\n {defineChart && index === 0 && (\n <text\n x={x - 80}\n y={y + 40 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'inline-block'\n }}\n >\n <tspan x=\"0\" dy=\".6em\">\n {' '}\n Student can{' '}\n </tspan>\n <tspan x=\"0\" dy=\"1.2em\">\n {' '}\n set value\n </tspan>\n </text>\n )}\n {defineChart && index === 0 && (\n <text\n x={x - 80}\n y={y + 80 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n overflow: 'visible',\n maxWidth: barWidth,\n display: 'inline-block'\n }}\n >\n <tspan x=\"0\" dy=\".6em\">\n {' '}\n Student can{' '}\n </tspan>\n <tspan x=\"0\" dy=\"1.2em\">\n {' '}\n edit name\n </tspan>\n </text>\n )}\n {defineChart && (\n <foreignObject\n x={x - 24}\n y={y + 20 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <Checkbox\n checked={interactive}\n onChange={e => this.changeInteractive(index, e.target.checked)}\n />\n </foreignObject>\n )}\n {defineChart && (\n <foreignObject\n x={x - 24}\n y={y + 70 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <Checkbox\n checked={editable}\n onChange={e => this.changeEditable(index, e.target.checked)}\n />\n </foreignObject>\n )}\n <foreignObject\n x={x - 24}\n y={y + 100 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </foreignObject>\n </g>\n );\n }\n}\n\nTickComponent.propTypes = {\n categories: PropTypes.array,\n xBand: PropTypes.func,\n bandWidth: PropTypes.number,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n top: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: PropTypes.object,\n formattedValue: PropTypes.string,\n onChangeCategory: PropTypes.func,\n onChange: PropTypes.func,\n classes: PropTypes.object\n};\n\nexport class RawChartAxes extends React.Component {\n static propTypes = {\n bottomScale: PropTypes.func,\n classes: PropTypes.object.isRequired,\n categories: PropTypes.array,\n graphProps: types.GraphPropsType.isRequired,\n xBand: PropTypes.func,\n leftAxis: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeCategory: PropTypes.func,\n top: PropTypes.number,\n theme: PropTypes.object\n };\n\n state = { height: 0 };\n\n componentDidMount() {\n const height = document.getElementById('hiddenLabel')\n ? document.getElementById('hiddenLabel').offsetHeight\n : 0;\n\n this.setState({ height });\n }\n\n render() {\n const {\n classes,\n graphProps,\n xBand,\n leftAxis,\n onChange,\n onChangeCategory,\n categories = [],\n top,\n defineChart,\n theme\n } = this.props;\n\n const { axis, axisLine, tick, axisLabel } = classes;\n const { scale = {}, range = {}, domain = {}, size = {} } = graphProps || {};\n const { height } = this.state;\n\n const bottomScale =\n xBand && typeof xBand.rangeRound === 'function' && xBand.rangeRound([0, size.width]);\n\n const bandWidth = xBand && typeof xBand.bandwidth === 'function' && xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || (scale.x && scale.x(domain.max) / categories.length);\n\n const rowTickValues = getTickValues({ ...range, step: range.labelStep });\n const fontSize = theme && theme.typography ? theme.typography.fontSize : 14;\n const rotate = getRotateAngle(fontSize, height);\n\n const getTickLabelProps = value => ({\n dy: 4,\n dx: -10 - (value.toLocaleString().length || 1) * 5\n });\n\n const getTickComponent = props => {\n const properties = {\n classes,\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n defineChart,\n onChangeCategory,\n onChange,\n graphProps,\n x: props.x,\n y: props.y,\n formattedValue: props.formattedValue\n };\n\n return <TickComponent {...properties} />;\n };\n\n return (\n <React.Fragment>\n {leftAxis && (\n <AxisLeft\n scale={scale.y}\n className={axis}\n axisLineClassName={axisLine}\n tickLength={10}\n tickClassName={tick}\n tickFormat={value => value}\n label={range.label}\n labelClassName={axisLabel}\n tickValues={rowTickValues}\n tickLabelProps={getTickLabelProps}\n />\n )}\n <AxisBottom\n axisLineClassName={axisLine}\n labelClassName={axisLabel}\n tickClassName={tick}\n scale={bottomScale}\n label={domain.label}\n labelProps={{ y: 60 + top }}\n top={scale.y && scale.y(range.min)}\n textLabelProps={() => ({ textAnchor: 'middle' })}\n tickFormat={count => count}\n tickComponent={getTickComponent}\n />\n </React.Fragment>\n );\n }\n}\n\nconst ChartAxes = withStyles(\n theme => ({\n axisLabel: {\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: theme.typography.fontSize,\n fill: color.secondary()\n },\n axis: {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n axisLine: {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n tick: {\n '& > line': {\n stroke: color.primaryDark(),\n strokeWidth: 2\n },\n fill: color.primaryDark(),\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: theme.typography.fontSize,\n textAnchor: 'middle'\n },\n dottedLine: {\n stroke: color.primaryLight(),\n opacity: 0.2\n }\n }),\n { withTheme: true }\n)(RawChartAxes);\n\nexport default ChartAxes;\n"],"file":"axes.js"}
@@ -33,12 +33,29 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
33
33
  var classes = props.classes,
34
34
  model = props.model,
35
35
  onChange = props.onChange,
36
+ chartDimensions = props.chartDimensions,
36
37
  _props$gridValues = props.gridValues,
37
38
  gridValues = _props$gridValues === void 0 ? {} : _props$gridValues,
38
39
  _props$labelValues = props.labelValues,
39
40
  labelValues = _props$labelValues === void 0 ? {} : _props$labelValues;
40
41
  var range = model.range;
41
42
  var size = model.graph;
43
+
44
+ var _ref = chartDimensions || {},
45
+ showInConfigPanel = _ref.showInConfigPanel,
46
+ width = _ref.width,
47
+ height = _ref.height;
48
+
49
+ var widthConstraints = {
50
+ min: width !== null && width !== void 0 && width.min ? Math.max(50, width.min) : 50,
51
+ max: width !== null && width !== void 0 && width.max ? Math.min(700, width.max) : 700,
52
+ step: (width === null || width === void 0 ? void 0 : width.step) >= 1 ? Math.min(200, width.step) : 20
53
+ };
54
+ var heightConstraints = {
55
+ min: height !== null && height !== void 0 && height.min ? Math.max(400, height.min) : 400,
56
+ max: height !== null && height !== void 0 && height.max ? Math.min(700, height.max) : 700,
57
+ step: (height === null || height === void 0 ? void 0 : height.step) >= 1 ? Math.min(200, height.step) : 20
58
+ };
42
59
  var gridOptions = gridValues && gridValues.range ? {
43
60
  customValues: gridValues.range
44
61
  } : {
@@ -143,7 +160,7 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
143
160
  onChange: function onChange(e, v) {
144
161
  return onRangeChanged('max', v);
145
162
  }
146
- })), !model.chartType.includes('Plot') && stepConfig, /*#__PURE__*/_react["default"].createElement("div", {
163
+ })), !model.chartType.includes('Plot') && stepConfig, showInConfigPanel && /*#__PURE__*/_react["default"].createElement("div", {
147
164
  className: classes.dimensions
148
165
  }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, "Dimensions(px)")), /*#__PURE__*/_react["default"].createElement("div", {
149
166
  className: classes.columnView
@@ -151,8 +168,9 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
151
168
  className: classes.textField,
152
169
  label: 'Width',
153
170
  value: size.width,
154
- min: 50,
155
- max: 700,
171
+ min: widthConstraints.min,
172
+ max: widthConstraints.max,
173
+ step: widthConstraints.step,
156
174
  variant: 'outlined',
157
175
  onChange: function onChange(e, v) {
158
176
  return onSizeChanged('width', v);
@@ -165,8 +183,9 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
165
183
  className: classes.textField,
166
184
  label: 'Height',
167
185
  value: size.height,
168
- min: 400,
169
- max: 700,
186
+ min: heightConstraints.min,
187
+ max: heightConstraints.max,
188
+ step: heightConstraints.step,
170
189
  variant: 'outlined',
171
190
  onChange: function onChange(e, v) {
172
191
  return onSizeChanged('height', v);
@@ -178,13 +197,10 @@ var ConfigureChartPanel = function ConfigureChartPanel(props) {
178
197
 
179
198
  ConfigureChartPanel.propTypes = {
180
199
  classes: _propTypes["default"].object,
181
- sizeConstraints: _propTypes["default"].object,
182
200
  domain: _propTypes["default"].object,
183
- gridIntervalValues: _propTypes["default"].object,
184
- includeAxes: _propTypes["default"].bool,
185
- labelIntervalValues: _propTypes["default"].object,
186
201
  onChange: _propTypes["default"]["function"],
187
202
  range: _propTypes["default"].object,
203
+ chartDimension: _propTypes["default"].object,
188
204
  size: _propTypes["default"].object
189
205
  };
190
206
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart-setup.jsx"],"names":["ConfigureChartPanel","props","classes","model","onChange","gridValues","labelValues","range","size","graph","gridOptions","customValues","min","max","labelOptions","stepConfig","rowView","mediumTextField","step","e","v","onRangeChanged","labelStep","rangeProps","chartType","includes","onSizeChanged","key","value","onChartTypeChange","wrapper","content","target","dimensions","columnView","textField","width","disabled","height","propTypes","PropTypes","object","sizeConstraints","domain","gridIntervalValues","includeAxes","bool","labelIntervalValues","styles","theme","display","flexDirection","marginTop","alignItems","justifyContent","margin","spacing","unit","largeTextField","text","fontStyle","color"],"mappings":"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","sourcesContent":["import React 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';\n\nconst ConfigureChartPanel = props => {\n const { classes, model, onChange, gridValues = {}, labelValues = {} } = props;\n const { range } = model;\n const size = model.graph;\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 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 range[key] = value;\n\n onChange({ ...model, range });\n };\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 <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={50}\n max={700}\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={400}\n max={700}\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 </div>\n </div>\n );\n};\n\nConfigureChartPanel.propTypes = {\n classes: PropTypes.object,\n sizeConstraints: PropTypes.object,\n domain: PropTypes.object,\n gridIntervalValues: PropTypes.object,\n includeAxes: PropTypes.bool,\n labelIntervalValues: PropTypes.object,\n onChange: PropTypes.function,\n range: 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"],"file":"chart-setup.js"}
1
+ {"version":3,"sources":["../src/chart-setup.jsx"],"names":["ConfigureChartPanel","props","classes","model","onChange","chartDimensions","gridValues","labelValues","range","size","graph","showInConfigPanel","width","height","widthConstraints","min","Math","max","step","heightConstraints","gridOptions","customValues","labelOptions","stepConfig","rowView","mediumTextField","e","v","onRangeChanged","labelStep","rangeProps","chartType","includes","onSizeChanged","key","value","onChartTypeChange","wrapper","content","target","dimensions","columnView","textField","disabled","propTypes","PropTypes","object","domain","chartDimension","styles","theme","display","flexDirection","marginTop","alignItems","justifyContent","margin","spacing","unit","largeTextField","text","fontStyle","color"],"mappings":"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","sourcesContent":["import React 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';\n\nconst ConfigureChartPanel = props => {\n const { classes, model, onChange, chartDimensions, gridValues = {}, labelValues = {} } = props;\n const { range } = model;\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 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 range[key] = value;\n\n onChange({ ...model, range });\n };\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 </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"],"file":"chart-setup.js"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "5.1.4",
6
+ "version": "5.1.5",
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.3.0",
22
+ "@pie-lib/plot": "^2.4.0",
23
23
  "@vx/axis": "^0.0.183",
24
24
  "@vx/event": "^0.0.182",
25
25
  "@vx/grid": "^0.0.183",
@@ -43,5 +43,5 @@
43
43
  "peerDependencies": {
44
44
  "react": "^16.8.1"
45
45
  },
46
- "gitHead": "5f0932d39d7f01be0f96665b8fbe45ee745c2868"
46
+ "gitHead": "5cd198308a7395a8faa8d9c09ab548964d9d65bf"
47
47
  }
package/src/axes.jsx CHANGED
@@ -3,12 +3,30 @@ import PropTypes from 'prop-types';
3
3
  import { withStyles } from '@material-ui/core/styles';
4
4
  import { types } from '@pie-lib/plot';
5
5
  import { color } from '@pie-lib/render-ui';
6
+ import { AlertDialog } from '@pie-lib/config-ui';
6
7
  import { AxisLeft, AxisBottom } from '@vx/axis';
7
8
  import { bandKey, getTickValues, getRotateAngle } from './utils';
8
9
  import MarkLabel from './mark-label';
9
10
  import Checkbox from '@material-ui/core/Checkbox';
10
11
 
11
12
  export class TickComponent extends React.Component {
13
+ constructor(props) {
14
+ super(props);
15
+ this.state = {
16
+ dialog: {
17
+ open: false
18
+ }
19
+ };
20
+ }
21
+
22
+ handleAlertDialog = (open, callback) =>
23
+ this.setState(
24
+ {
25
+ dialog: { open }
26
+ },
27
+ callback
28
+ );
29
+
12
30
  changeCategory = (index, newLabel) => {
13
31
  const { categories, onChangeCategory } = this.props;
14
32
  const category = categories[index];
@@ -28,14 +46,48 @@ export class TickComponent extends React.Component {
28
46
  const { categories, onChangeCategory } = this.props;
29
47
  const category = categories[index];
30
48
 
31
- onChangeCategory(index, { ...category, interactive: !category.interactive });
49
+ if (!value) {
50
+ this.setState({
51
+ dialog: {
52
+ open: true,
53
+ title: 'Warning',
54
+ text:
55
+ 'This will remove the correct answer value that has been defined for this category.',
56
+ onConfirm: () =>
57
+ this.handleAlertDialog(
58
+ false,
59
+ onChangeCategory(index, { ...category, interactive: !category.interactive })
60
+ ),
61
+ onClose: () => this.handleAlertDialog(false)
62
+ }
63
+ });
64
+ } else {
65
+ onChangeCategory(index, { ...category, interactive: !category.interactive });
66
+ }
32
67
  };
33
68
 
34
69
  changeEditable = (index, value) => {
35
70
  const { categories, onChangeCategory } = this.props;
36
71
  const category = categories[index];
37
72
 
38
- onChangeCategory(index, { ...category, editable: !category.editable || false });
73
+ if (!value) {
74
+ this.setState({
75
+ dialog: {
76
+ open: true,
77
+ title: 'Warning',
78
+ text:
79
+ 'This will remove the correct answer category name that has been defined for this category.',
80
+ onConfirm: () =>
81
+ this.handleAlertDialog(
82
+ false,
83
+ onChangeCategory(index, { ...category, editable: !category.editable || false })
84
+ ),
85
+ onClose: () => this.handleAlertDialog(false)
86
+ }
87
+ });
88
+ } else {
89
+ onChangeCategory(index, { ...category, editable: !category.editable || false });
90
+ }
39
91
  };
40
92
 
41
93
  render() {
@@ -58,6 +110,7 @@ export class TickComponent extends React.Component {
58
110
  return null;
59
111
  }
60
112
 
113
+ const { dialog } = this.state;
61
114
  const index = parseInt(formattedValue.split('-')[0], 10);
62
115
  const category = categories[index];
63
116
  const { deletable, editable, interactive, label, correctness, autoFocus, inDefineChart } =
@@ -209,6 +262,21 @@ export class TickComponent extends React.Component {
209
262
  />
210
263
  </foreignObject>
211
264
  )}
265
+ <foreignObject
266
+ x={x - 24}
267
+ y={y + 100 + top}
268
+ width={barWidth}
269
+ height={4}
270
+ style={{ pointerEvents: 'visible', overflow: 'visible' }}
271
+ >
272
+ <AlertDialog
273
+ open={dialog.open}
274
+ title={dialog.title}
275
+ text={dialog.text}
276
+ onClose={dialog.onClose}
277
+ onConfirm={dialog.onConfirm}
278
+ />
279
+ </foreignObject>
212
280
  </g>
213
281
  );
214
282
  }
@@ -7,9 +7,21 @@ import ChartType from './chart-type';
7
7
  import { NumberTextFieldCustom } from '@pie-lib/config-ui';
8
8
 
9
9
  const ConfigureChartPanel = props => {
10
- const { classes, model, onChange, gridValues = {}, labelValues = {} } = props;
10
+ const { classes, model, onChange, chartDimensions, gridValues = {}, labelValues = {} } = props;
11
11
  const { range } = model;
12
12
  const size = model.graph;
13
+ const { showInConfigPanel, width, height } = chartDimensions || {};
14
+
15
+ const widthConstraints = {
16
+ min: width?.min ? Math.max(50, width.min) : 50,
17
+ max: width?.max ? Math.min(700, width.max) : 700,
18
+ step: width?.step >= 1 ? Math.min(200, width.step) : 20
19
+ };
20
+ const heightConstraints = {
21
+ min: height?.min ? Math.max(400, height.min) : 400,
22
+ max: height?.max ? Math.min(700, height.max) : 700,
23
+ step: height?.step >= 1 ? Math.min(200, height.step) : 20
24
+ };
13
25
 
14
26
  const gridOptions =
15
27
  gridValues && gridValues.range ? { customValues: gridValues.range } : { min: 0, max: 10000 };
@@ -90,35 +102,39 @@ const ConfigureChartPanel = props => {
90
102
  />
91
103
  </div>
92
104
  {!model.chartType.includes('Plot') && stepConfig}
93
- <div className={classes.dimensions}>
94
- <div>
95
- <Typography>Dimensions(px)</Typography>
105
+ {showInConfigPanel && (
106
+ <div className={classes.dimensions}>
107
+ <div>
108
+ <Typography>Dimensions(px)</Typography>
109
+ </div>
110
+ <div className={classes.columnView}>
111
+ <NumberTextFieldCustom
112
+ className={classes.textField}
113
+ label={'Width'}
114
+ value={size.width}
115
+ min={widthConstraints.min}
116
+ max={widthConstraints.max}
117
+ step={widthConstraints.step}
118
+ variant={'outlined'}
119
+ onChange={(e, v) => onSizeChanged('width', v)}
120
+ />
121
+ <Typography className={classes.disabled}>Min 50, Max 700</Typography>
122
+ </div>
123
+ <div className={classes.columnView}>
124
+ <NumberTextFieldCustom
125
+ className={classes.textField}
126
+ label={'Height'}
127
+ value={size.height}
128
+ min={heightConstraints.min}
129
+ max={heightConstraints.max}
130
+ step={heightConstraints.step}
131
+ variant={'outlined'}
132
+ onChange={(e, v) => onSizeChanged('height', v)}
133
+ />
134
+ <Typography className={classes.disabled}>Min 400, Max 700</Typography>
135
+ </div>
96
136
  </div>
97
- <div className={classes.columnView}>
98
- <NumberTextFieldCustom
99
- className={classes.textField}
100
- label={'Width'}
101
- value={size.width}
102
- min={50}
103
- max={700}
104
- variant={'outlined'}
105
- onChange={(e, v) => onSizeChanged('width', v)}
106
- />
107
- <Typography className={classes.disabled}>Min 50, Max 700</Typography>
108
- </div>
109
- <div className={classes.columnView}>
110
- <NumberTextFieldCustom
111
- className={classes.textField}
112
- label={'Height'}
113
- value={size.height}
114
- min={400}
115
- max={700}
116
- variant={'outlined'}
117
- onChange={(e, v) => onSizeChanged('height', v)}
118
- />
119
- <Typography className={classes.disabled}>Min 400, Max 700</Typography>
120
- </div>
121
- </div>
137
+ )}
122
138
  </div>
123
139
  </div>
124
140
  );
@@ -126,13 +142,10 @@ const ConfigureChartPanel = props => {
126
142
 
127
143
  ConfigureChartPanel.propTypes = {
128
144
  classes: PropTypes.object,
129
- sizeConstraints: PropTypes.object,
130
145
  domain: PropTypes.object,
131
- gridIntervalValues: PropTypes.object,
132
- includeAxes: PropTypes.bool,
133
- labelIntervalValues: PropTypes.object,
134
146
  onChange: PropTypes.function,
135
147
  range: PropTypes.object,
148
+ chartDimension: PropTypes.object,
136
149
  size: PropTypes.object
137
150
  };
138
151