@pie-lib/charting 4.5.11-next.423 → 4.5.11-next.457
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/lib/axes.js +33 -60
- package/lib/axes.js.map +1 -1
- package/lib/bars/bar.js +19 -30
- package/lib/bars/bar.js.map +1 -1
- package/lib/bars/common/bars.js +33 -47
- package/lib/bars/common/bars.js.map +1 -1
- package/lib/bars/histogram.js +19 -30
- package/lib/bars/histogram.js.map +1 -1
- package/lib/chart-setup.js +61 -32
- package/lib/chart-setup.js.map +1 -1
- package/lib/chart-type.js +2 -2
- package/lib/chart-type.js.map +1 -1
- package/lib/chart-types.js +2 -2
- package/lib/chart-types.js.map +1 -1
- package/lib/chart.js +40 -64
- package/lib/chart.js.map +1 -1
- package/lib/common/drag-handle.js +26 -41
- package/lib/common/drag-handle.js.map +1 -1
- package/lib/common/styles.js +7 -5
- package/lib/common/styles.js.map +1 -1
- package/lib/grid.js +19 -31
- package/lib/grid.js.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/line/common/drag-handle.js +25 -39
- package/lib/line/common/drag-handle.js.map +1 -1
- package/lib/line/common/line.js +45 -73
- package/lib/line/common/line.js.map +1 -1
- package/lib/line/line-cross.js +25 -39
- package/lib/line/line-cross.js.map +1 -1
- package/lib/line/line-dot.js +24 -38
- package/lib/line/line-dot.js.map +1 -1
- package/lib/mark-label.js +10 -20
- package/lib/mark-label.js.map +1 -1
- package/lib/plot/common/plot.js +33 -47
- package/lib/plot/common/plot.js.map +1 -1
- package/lib/plot/dot.js +20 -31
- package/lib/plot/dot.js.map +1 -1
- package/lib/plot/line.js +21 -32
- package/lib/plot/line.js.map +1 -1
- package/lib/tool-menu.js +19 -32
- package/lib/tool-menu.js.map +1 -1
- package/lib/utils.js +5 -3
- package/lib/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/axes.jsx +1 -1
- package/src/bars/common/bars.jsx +5 -2
- package/src/chart-setup.jsx +48 -23
- package/src/chart.jsx +2 -0
- package/src/line/common/drag-handle.jsx +2 -1
- package/src/line/common/line.jsx +5 -3
- package/src/plot/common/plot.jsx +4 -2
package/lib/tool-menu.js
CHANGED
|
@@ -1,48 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = exports.ToolMenu = exports.MiniButton = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
25
|
-
|
|
26
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
22
|
+
var _react = _interopRequireDefault(require("react"));
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
25
|
|
|
30
|
-
|
|
26
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
27
|
|
|
32
|
-
|
|
28
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
var _styles = require("@material-ui/core/styles");
|
|
35
31
|
|
|
36
|
-
|
|
32
|
+
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
37
33
|
|
|
38
|
-
function
|
|
34
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
39
35
|
|
|
40
36
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
41
37
|
|
|
42
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
43
|
-
|
|
44
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
45
|
-
|
|
46
38
|
var buttonStyles = function buttonStyles(theme) {
|
|
47
39
|
return {
|
|
48
40
|
root: {
|
|
@@ -107,17 +99,16 @@ MiniButton.propTypes = {
|
|
|
107
99
|
};
|
|
108
100
|
|
|
109
101
|
var ToolMenu = /*#__PURE__*/function (_React$Component) {
|
|
110
|
-
|
|
102
|
+
(0, _inherits2["default"])(ToolMenu, _React$Component);
|
|
111
103
|
|
|
112
104
|
var _super = _createSuper(ToolMenu);
|
|
113
105
|
|
|
114
106
|
function ToolMenu() {
|
|
115
|
-
|
|
116
|
-
|
|
107
|
+
(0, _classCallCheck2["default"])(this, ToolMenu);
|
|
117
108
|
return _super.apply(this, arguments);
|
|
118
109
|
}
|
|
119
110
|
|
|
120
|
-
|
|
111
|
+
(0, _createClass2["default"])(ToolMenu, [{
|
|
121
112
|
key: "render",
|
|
122
113
|
value: function render() {
|
|
123
114
|
var _this$props = this.props,
|
|
@@ -132,20 +123,16 @@ var ToolMenu = /*#__PURE__*/function (_React$Component) {
|
|
|
132
123
|
}));
|
|
133
124
|
}
|
|
134
125
|
}]);
|
|
135
|
-
|
|
136
126
|
return ToolMenu;
|
|
137
127
|
}(_react["default"].Component);
|
|
138
128
|
|
|
139
129
|
exports.ToolMenu = ToolMenu;
|
|
140
|
-
|
|
141
|
-
_defineProperty(ToolMenu, "propTypes", {
|
|
130
|
+
(0, _defineProperty2["default"])(ToolMenu, "propTypes", {
|
|
142
131
|
className: _propTypes["default"].string,
|
|
143
132
|
addCategory: _propTypes["default"].func,
|
|
144
133
|
disabled: _propTypes["default"].bool
|
|
145
134
|
});
|
|
146
|
-
|
|
147
|
-
_defineProperty(ToolMenu, "defaultProps", {});
|
|
148
|
-
|
|
135
|
+
(0, _defineProperty2["default"])(ToolMenu, "defaultProps", {});
|
|
149
136
|
var _default = ToolMenu;
|
|
150
137
|
exports["default"] = _default;
|
|
151
138
|
//# sourceMappingURL=tool-menu.js.map
|
package/lib/tool-menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-menu.js","names":["buttonStyles","theme","root","backgroundColor","color","background","text","border","secondary","secondaryLight","fontSize","typography","selected","primaryDark","notSelected","primary","disabled","MiniButton","withStyles","props","classes","className","value","onClick","cn","propTypes","PropTypes","bool","string","disabledClassName","func","ToolMenu","addCategory","classNames","React","Component"],"sources":["../src/tool-menu.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\n\nconst buttonStyles = theme => ({\n root: {\n backgroundColor: color.background(),\n color: color.text(),\n border: `1px solid ${color.secondary()}`,\n '&:hover': {\n backgroundColor: color.secondaryLight()\n },\n fontSize: theme.typography.fontSize\n },\n selected: {\n backgroundColor: color.background(),\n '& span': {\n color: color.primaryDark()\n }\n },\n notSelected: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.background()\n },\n disabled: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.disabled()\n }\n});\n\nexport const MiniButton = withStyles(buttonStyles)(props => {\n const { disabled, classes, className, selected, value, onClick } = props;\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n color={selected ? 'secondary' : 'default'}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={onClick}\n >\n {value}\n </Button>\n );\n});\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func\n};\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n addCategory: PropTypes.func,\n disabled: PropTypes.bool\n };\n\n static defaultProps = {};\n\n render() {\n const { className, disabled, addCategory } = this.props;\n\n return (\n <div className={classNames(className)}>\n {!disabled && <MiniButton value={'Add Category'} onClick={addCategory} />}\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-menu.js","names":["buttonStyles","theme","root","backgroundColor","color","background","text","border","secondary","secondaryLight","fontSize","typography","selected","primaryDark","notSelected","primary","disabled","MiniButton","withStyles","props","classes","className","value","onClick","cn","propTypes","PropTypes","bool","string","disabledClassName","func","ToolMenu","addCategory","classNames","React","Component"],"sources":["../src/tool-menu.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\n\nconst buttonStyles = theme => ({\n root: {\n backgroundColor: color.background(),\n color: color.text(),\n border: `1px solid ${color.secondary()}`,\n '&:hover': {\n backgroundColor: color.secondaryLight()\n },\n fontSize: theme.typography.fontSize\n },\n selected: {\n backgroundColor: color.background(),\n '& span': {\n color: color.primaryDark()\n }\n },\n notSelected: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.background()\n },\n disabled: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.disabled()\n }\n});\n\nexport const MiniButton = withStyles(buttonStyles)(props => {\n const { disabled, classes, className, selected, value, onClick } = props;\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n color={selected ? 'secondary' : 'default'}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={onClick}\n >\n {value}\n </Button>\n );\n});\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func\n};\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n addCategory: PropTypes.func,\n disabled: PropTypes.bool\n };\n\n static defaultProps = {};\n\n render() {\n const { className, disabled, addCategory } = this.props;\n\n return (\n <div className={classNames(className)}>\n {!disabled && <MiniButton value={'Add Category'} onClick={addCategory} />}\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n"],"mappings":"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"}
|
package/lib/utils.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.tickCount = exports.point = exports.getTopPadding = exports.getTickValues = exports.getRotateAngle = exports.getGridLinesAndAxisByChartType = exports.getDomainAndRangeByChartType = exports.dataToXBand = exports.customLabelStep = exports.crowdedTicks = exports.bounds = exports.bandKey = void 0;
|
|
7
9
|
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
8
12
|
var _scale = require("@vx/scale");
|
|
9
13
|
|
|
10
14
|
var _plot = require("@pie-lib/plot");
|
|
11
15
|
|
|
12
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
17
|
|
|
14
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
15
|
-
|
|
16
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
19
|
|
|
18
20
|
var tickCount = _plot.utils.tickCount;
|
|
19
21
|
exports.tickCount = tickCount;
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["tickCount","utils","bounds","point","bandKey","d","index","label","dataToXBand","scaleX","data","width","type","scaleBand","rangeRound","domain","map","padding","scalePoint","range","getTickValues","prop","tickValues","tickVal","min","max","push","Math","round","step","customLabelStep","rangeMax","size","labelFontSize","ceilMax","ceil","segmentLength","height","ticksToFitInOneSegment","tickWidthPerSegment","rawLabelStep","roundedStep","labelStep","crowdedTicks","numberOfSegments","modulo","a","b","Number","isInteger","decimals","toString","split","pop","length","aux","pow","getDomainAndRangeByChartType","chartType","isNaN","crowded","intMin","intMax","getGridLinesAndAxisByChartType","verticalLines","undefined","horizontalLines","leftAxis","getRotateAngle","fontSize","getTopPadding","barWidth"],"sources":["../src/utils.js"],"sourcesContent":["import { scaleBand, scalePoint } from '@vx/scale';\nimport { utils } from '@pie-lib/plot';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const dataToXBand = (scaleX, data, width, type) => {\n switch (type) {\n case 'bar':\n case 'dotPlot':\n case 'linePlot':\n return scaleBand({\n rangeRound: [0, width],\n domain: data && data.map(bandKey),\n padding: 0.2\n });\n case 'histogram':\n return scaleBand({\n rangeRound: [0, width],\n domain: data && data.map(bandKey),\n padding: 0\n });\n case 'lineCross':\n case 'lineDot':\n return scalePoint({\n domain: data && data.map(bandKey),\n rangeRound: [0, width]\n });\n default:\n return scaleBand({\n range: [0, width],\n domain: data && data.map(bandKey),\n padding: 0\n });\n }\n};\n\nexport const getTickValues = (prop = {}) => {\n const tickValues = [];\n let tickVal = prop.min;\n\n while (tickVal <= prop.max) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 100) / 100;\n }\n\n return tickValues;\n};\n\nexport const customLabelStep = (rangeMax, size, labelFontSize) => {\n const ceilMax = Math.ceil(rangeMax);\n const segmentLength = size.height / ceilMax;\n const ticksToFitInOneSegment = 2;\n\n // how many ticksWidth fit in a segment\n const tickWidthPerSegment = segmentLength / labelFontSize;\n const rawLabelStep = ticksToFitInOneSegment / tickWidthPerSegment;\n const roundedStep = Math.ceil((rawLabelStep * 10) / 10);\n\n let labelStep;\n\n if (rawLabelStep > 0.15) {\n labelStep = roundedStep;\n } else if (rawLabelStep < 0.05) {\n labelStep = 0.1;\n } else {\n labelStep = 0.5;\n }\n\n return labelStep;\n};\n\nexport const crowdedTicks = (rangeMax, customLabelStep, size, labelFontSize) => {\n const ceilMax = Math.ceil(rangeMax);\n\n const numberOfSegments = ceilMax * customLabelStep;\n\n return size.height / numberOfSegments < labelFontSize && size.height / numberOfSegments > 0.5;\n};\n\n// multiply values with 10^number_of_decimals if needed because modulo function(%) is only defined for integers\nconst modulo = (a, b) => {\n if (Number.isInteger(b)) {\n return a % b;\n }\n\n const decimals = b\n .toString()\n .split('.')\n .pop().length;\n const aux = Math.pow(10, decimals);\n\n return (a * aux) % (b * aux);\n};\n\nexport const getDomainAndRangeByChartType = (domain, range, size, chartType, labelFontSize) => {\n let { step, labelStep, min, max } = range || {};\n\n if (!min) {\n min = 0;\n }\n\n if (!max || max < 0) {\n max = range.min + 1;\n }\n\n if (labelStep && !step) {\n step = labelStep;\n }\n if (!labelStep || (isNaN(labelStep) && step)) {\n let customLabelStep = step;\n let crowded = crowdedTicks(max, customLabelStep, size, labelFontSize);\n\n if (crowded) {\n customLabelStep = customLabelStep * 2;\n }\n\n labelStep = customLabelStep;\n }\n\n if (!step || (isNaN(step) && !labelStep) || isNaN(labelStep)) {\n labelStep = customLabelStep(max, size, labelFontSize);\n\n if (labelStep <= 1) {\n step = labelStep;\n } else if (labelStep <= 4) {\n step = 1;\n } else if (labelStep > 4 && labelStep < 10) {\n step = labelStep / 2;\n } else {\n step = labelStep / 3;\n }\n }\n\n if (modulo(max, step) !== 0) {\n max = max + step;\n }\n\n range.max = max;\n\n switch (chartType) {\n // if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values\n case 'dotPlot':\n case 'linePlot': {\n const intMin = Math.round(min);\n const intMax = Math.round(max);\n\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1\n },\n range: {\n ...range,\n min: intMin,\n max: intMin === intMax ? intMin + 1 : intMax,\n labelStep,\n step: 1\n }\n };\n }\n default:\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1\n },\n range: {\n ...range,\n labelStep,\n step\n }\n };\n }\n};\n\nexport const getGridLinesAndAxisByChartType = (range, chartType) => {\n switch (chartType) {\n case 'lineDot':\n case 'lineCross':\n return {\n verticalLines: undefined,\n horizontalLines: getTickValues(range),\n leftAxis: true\n };\n case 'dotPlot':\n case 'linePlot':\n return {\n verticalLines: [],\n horizontalLines: [],\n leftAxis: false\n };\n default:\n return {\n verticalLines: [],\n horizontalLines: getTickValues(range),\n leftAxis: true\n };\n }\n};\n\nexport const getRotateAngle = (fontSize, height) => {\n if (height >= fontSize * 2) {\n return 25;\n }\n\n return 0;\n};\n\nexport const getTopPadding = barWidth => {\n if (barWidth < 30) {\n return 50;\n }\n\n if (barWidth < 40) {\n return 30;\n }\n\n if (barWidth < 60) {\n return 15;\n }\n\n return 0;\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAEO,IAAMA,SAAS,GAAGC,WAAA,CAAMD,SAAxB;;AACA,IAAME,MAAM,GAAGD,WAAA,CAAMC,MAArB;;AACA,IAAMC,KAAK,GAAGF,WAAA,CAAME,KAApB;;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAIC,KAAJ;EAAA,iBAAiBA,KAAjB,cAA0BD,CAAC,CAACE,KAAF,IAAW,GAArC;AAAA,CAAhB;;;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAASC,IAAT,EAAeC,KAAf,EAAsBC,IAAtB,EAA+B;EACxD,QAAQA,IAAR;IACE,KAAK,KAAL;IACA,KAAK,SAAL;IACA,KAAK,UAAL;MACE,OAAO,IAAAC,gBAAA,EAAU;QACfC,UAAU,EAAE,CAAC,CAAD,EAAIH,KAAJ,CADG;QAEfI,MAAM,EAAEL,IAAI,IAAIA,IAAI,CAACM,GAAL,CAASZ,OAAT,CAFD;QAGfa,OAAO,EAAE;MAHM,CAAV,CAAP;;IAKF,KAAK,WAAL;MACE,OAAO,IAAAJ,gBAAA,EAAU;QACfC,UAAU,EAAE,CAAC,CAAD,EAAIH,KAAJ,CADG;QAEfI,MAAM,EAAEL,IAAI,IAAIA,IAAI,CAACM,GAAL,CAASZ,OAAT,CAFD;QAGfa,OAAO,EAAE;MAHM,CAAV,CAAP;;IAKF,KAAK,WAAL;IACA,KAAK,SAAL;MACE,OAAO,IAAAC,iBAAA,EAAW;QAChBH,MAAM,EAAEL,IAAI,IAAIA,IAAI,CAACM,GAAL,CAASZ,OAAT,CADA;QAEhBU,UAAU,EAAE,CAAC,CAAD,EAAIH,KAAJ;MAFI,CAAX,CAAP;;IAIF;MACE,OAAO,IAAAE,gBAAA,EAAU;QACfM,KAAK,EAAE,CAAC,CAAD,EAAIR,KAAJ,CADQ;QAEfI,MAAM,EAAEL,IAAI,IAAIA,IAAI,CAACM,GAAL,CAASZ,OAAT,CAFD;QAGfa,OAAO,EAAE;MAHM,CAAV,CAAP;EAtBJ;AA4BD,CA7BM;;;;AA+BA,IAAMG,aAAa,GAAG,SAAhBA,aAAgB,GAAe;EAAA,IAAdC,IAAc,uEAAP,EAAO;EAC1C,IAAMC,UAAU,GAAG,EAAnB;EACA,IAAIC,OAAO,GAAGF,IAAI,CAACG,GAAnB;;EAEA,OAAOD,OAAO,IAAIF,IAAI,CAACI,GAAvB,EAA4B;IAC1BH,UAAU,CAACI,IAAX,CAAgBH,OAAhB;IACAA,OAAO,GAAGI,IAAI,CAACC,KAAL,CAAW,CAACL,OAAO,GAAGF,IAAI,CAACQ,IAAhB,IAAwB,GAAnC,IAA0C,GAApD;EACD;;EAED,OAAOP,UAAP;AACD,CAVM;;;;AAYA,IAAMQ,eAAe,GAAG,SAAlBA,eAAkB,CAACC,QAAD,EAAWC,IAAX,EAAiBC,aAAjB,EAAmC;EAChE,IAAMC,OAAO,GAAGP,IAAI,CAACQ,IAAL,CAAUJ,QAAV,CAAhB;EACA,IAAMK,aAAa,GAAGJ,IAAI,CAACK,MAAL,GAAcH,OAApC;EACA,IAAMI,sBAAsB,GAAG,CAA/B,CAHgE,CAKhE;;EACA,IAAMC,mBAAmB,GAAGH,aAAa,GAAGH,aAA5C;EACA,IAAMO,YAAY,GAAGF,sBAAsB,GAAGC,mBAA9C;EACA,IAAME,WAAW,GAAGd,IAAI,CAACQ,IAAL,CAAWK,YAAY,GAAG,EAAhB,GAAsB,EAAhC,CAApB;EAEA,IAAIE,SAAJ;;EAEA,IAAIF,YAAY,GAAG,IAAnB,EAAyB;IACvBE,SAAS,GAAGD,WAAZ;EACD,CAFD,MAEO,IAAID,YAAY,GAAG,IAAnB,EAAyB;IAC9BE,SAAS,GAAG,GAAZ;EACD,CAFM,MAEA;IACLA,SAAS,GAAG,GAAZ;EACD;;EAED,OAAOA,SAAP;AACD,CArBM;;;;AAuBA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACZ,QAAD,EAAWD,eAAX,EAA4BE,IAA5B,EAAkCC,aAAlC,EAAoD;EAC9E,IAAMC,OAAO,GAAGP,IAAI,CAACQ,IAAL,CAAUJ,QAAV,CAAhB;EAEA,IAAMa,gBAAgB,GAAGV,OAAO,GAAGJ,eAAnC;EAEA,OAAOE,IAAI,CAACK,MAAL,GAAcO,gBAAd,GAAiCX,aAAjC,IAAkDD,IAAI,CAACK,MAAL,GAAcO,gBAAd,GAAiC,GAA1F;AACD,CANM,C,CAQP;;;;;AACA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,CAAD,EAAIC,CAAJ,EAAU;EACvB,IAAIC,MAAM,CAACC,SAAP,CAAiBF,CAAjB,CAAJ,EAAyB;IACvB,OAAOD,CAAC,GAAGC,CAAX;EACD;;EAED,IAAMG,QAAQ,GAAGH,CAAC,CACfI,QADc,GAEdC,KAFc,CAER,GAFQ,EAGdC,GAHc,GAGRC,MAHT;EAIA,IAAMC,GAAG,GAAG5B,IAAI,CAAC6B,GAAL,CAAS,EAAT,EAAaN,QAAb,CAAZ;EAEA,OAAQJ,CAAC,GAAGS,GAAL,IAAaR,CAAC,GAAGQ,GAAjB,CAAP;AACD,CAZD;;AAcO,IAAME,4BAA4B,GAAG,SAA/BA,4BAA+B,CAAC1C,MAAD,EAASI,KAAT,EAAgBa,IAAhB,EAAsB0B,SAAtB,EAAiCzB,aAAjC,EAAmD;EAC7F,WAAoCd,KAAK,IAAI,EAA7C;EAAA,IAAMU,IAAN,QAAMA,IAAN;EAAA,IAAYa,SAAZ,QAAYA,SAAZ;EAAA,IAAuBlB,GAAvB,QAAuBA,GAAvB;EAAA,IAA4BC,GAA5B,QAA4BA,GAA5B;;EAEA,IAAI,CAACD,GAAL,EAAU;IACRA,GAAG,GAAG,CAAN;EACD;;EAED,IAAI,CAACC,GAAD,IAAQA,GAAG,GAAG,CAAlB,EAAqB;IACnBA,GAAG,GAAGN,KAAK,CAACK,GAAN,GAAY,CAAlB;EACD;;EAED,IAAIkB,SAAS,IAAI,CAACb,IAAlB,EAAwB;IACtBA,IAAI,GAAGa,SAAP;EACD;;EACD,IAAI,CAACA,SAAD,IAAeiB,KAAK,CAACjB,SAAD,CAAL,IAAoBb,IAAvC,EAA8C;IAC5C,IAAIC,gBAAe,GAAGD,IAAtB;IACA,IAAI+B,OAAO,GAAGjB,YAAY,CAAClB,GAAD,EAAMK,gBAAN,EAAuBE,IAAvB,EAA6BC,aAA7B,CAA1B;;IAEA,IAAI2B,OAAJ,EAAa;MACX9B,gBAAe,GAAGA,gBAAe,GAAG,CAApC;IACD;;IAEDY,SAAS,GAAGZ,gBAAZ;EACD;;EAED,IAAI,CAACD,IAAD,IAAU8B,KAAK,CAAC9B,IAAD,CAAL,IAAe,CAACa,SAA1B,IAAwCiB,KAAK,CAACjB,SAAD,CAAjD,EAA8D;IAC5DA,SAAS,GAAGZ,eAAe,CAACL,GAAD,EAAMO,IAAN,EAAYC,aAAZ,CAA3B;;IAEA,IAAIS,SAAS,IAAI,CAAjB,EAAoB;MAClBb,IAAI,GAAGa,SAAP;IACD,CAFD,MAEO,IAAIA,SAAS,IAAI,CAAjB,EAAoB;MACzBb,IAAI,GAAG,CAAP;IACD,CAFM,MAEA,IAAIa,SAAS,GAAG,CAAZ,IAAiBA,SAAS,GAAG,EAAjC,EAAqC;MAC1Cb,IAAI,GAAGa,SAAS,GAAG,CAAnB;IACD,CAFM,MAEA;MACLb,IAAI,GAAGa,SAAS,GAAG,CAAnB;IACD;EACF;;EAED,IAAIG,MAAM,CAACpB,GAAD,EAAMI,IAAN,CAAN,KAAsB,CAA1B,EAA6B;IAC3BJ,GAAG,GAAGA,GAAG,GAAGI,IAAZ;EACD;;EAEDV,KAAK,CAACM,GAAN,GAAYA,GAAZ;;EAEA,QAAQiC,SAAR;IACE;IACA,KAAK,SAAL;IACA,KAAK,UAAL;MAAiB;QACf,IAAMG,MAAM,GAAGlC,IAAI,CAACC,KAAL,CAAWJ,GAAX,CAAf;QACA,IAAMsC,MAAM,GAAGnC,IAAI,CAACC,KAAL,CAAWH,GAAX,CAAf;QAEA,OAAO;UACLV,MAAM,kCACDA,MADC;YAEJc,IAAI,EAAE,CAFF;YAGJa,SAAS,EAAE,CAHP;YAIJlB,GAAG,EAAE,CAJD;YAKJC,GAAG,EAAE;UALD,EADD;UAQLN,KAAK,kCACAA,KADA;YAEHK,GAAG,EAAEqC,MAFF;YAGHpC,GAAG,EAAEoC,MAAM,KAAKC,MAAX,GAAoBD,MAAM,GAAG,CAA7B,GAAiCC,MAHnC;YAIHpB,SAAS,EAATA,SAJG;YAKHb,IAAI,EAAE;UALH;QARA,CAAP;MAgBD;;IACD;MACE,OAAO;QACLd,MAAM,kCACDA,MADC;UAEJc,IAAI,EAAE,CAFF;UAGJa,SAAS,EAAE,CAHP;UAIJlB,GAAG,EAAE,CAJD;UAKJC,GAAG,EAAE;QALD,EADD;QAQLN,KAAK,kCACAA,KADA;UAEHuB,SAAS,EAATA,SAFG;UAGHb,IAAI,EAAJA;QAHG;MARA,CAAP;EAzBJ;AAwCD,CArFM;;;;AAuFA,IAAMkC,8BAA8B,GAAG,SAAjCA,8BAAiC,CAAC5C,KAAD,EAAQuC,SAAR,EAAsB;EAClE,QAAQA,SAAR;IACE,KAAK,SAAL;IACA,KAAK,WAAL;MACE,OAAO;QACLM,aAAa,EAAEC,SADV;QAELC,eAAe,EAAE9C,aAAa,CAACD,KAAD,CAFzB;QAGLgD,QAAQ,EAAE;MAHL,CAAP;;IAKF,KAAK,SAAL;IACA,KAAK,UAAL;MACE,OAAO;QACLH,aAAa,EAAE,EADV;QAELE,eAAe,EAAE,EAFZ;QAGLC,QAAQ,EAAE;MAHL,CAAP;;IAKF;MACE,OAAO;QACLH,aAAa,EAAE,EADV;QAELE,eAAe,EAAE9C,aAAa,CAACD,KAAD,CAFzB;QAGLgD,QAAQ,EAAE;MAHL,CAAP;EAhBJ;AAsBD,CAvBM;;;;AAyBA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,QAAD,EAAWhC,MAAX,EAAsB;EAClD,IAAIA,MAAM,IAAIgC,QAAQ,GAAG,CAAzB,EAA4B;IAC1B,OAAO,EAAP;EACD;;EAED,OAAO,CAAP;AACD,CANM;;;;AAQA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,QAAQ,EAAI;EACvC,IAAIA,QAAQ,GAAG,EAAf,EAAmB;IACjB,OAAO,EAAP;EACD;;EAED,IAAIA,QAAQ,GAAG,EAAf,EAAmB;IACjB,OAAO,EAAP;EACD;;EAED,IAAIA,QAAQ,GAAG,EAAf,EAAmB;IACjB,OAAO,EAAP;EACD;;EAED,OAAO,CAAP;AACD,CAdM"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["tickCount","utils","bounds","point","bandKey","d","index","label","dataToXBand","scaleX","data","width","type","scaleBand","rangeRound","domain","map","padding","scalePoint","range","getTickValues","prop","tickValues","tickVal","min","max","push","Math","round","step","customLabelStep","rangeMax","size","labelFontSize","ceilMax","ceil","segmentLength","height","ticksToFitInOneSegment","tickWidthPerSegment","rawLabelStep","roundedStep","labelStep","crowdedTicks","numberOfSegments","modulo","a","b","Number","isInteger","decimals","toString","split","pop","length","aux","pow","getDomainAndRangeByChartType","chartType","isNaN","crowded","intMin","intMax","getGridLinesAndAxisByChartType","verticalLines","undefined","horizontalLines","leftAxis","getRotateAngle","fontSize","getTopPadding","barWidth"],"sources":["../src/utils.js"],"sourcesContent":["import { scaleBand, scalePoint } from '@vx/scale';\nimport { utils } from '@pie-lib/plot';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const dataToXBand = (scaleX, data, width, type) => {\n switch (type) {\n case 'bar':\n case 'dotPlot':\n case 'linePlot':\n return scaleBand({\n rangeRound: [0, width],\n domain: data && data.map(bandKey),\n padding: 0.2\n });\n case 'histogram':\n return scaleBand({\n rangeRound: [0, width],\n domain: data && data.map(bandKey),\n padding: 0\n });\n case 'lineCross':\n case 'lineDot':\n return scalePoint({\n domain: data && data.map(bandKey),\n rangeRound: [0, width]\n });\n default:\n return scaleBand({\n range: [0, width],\n domain: data && data.map(bandKey),\n padding: 0\n });\n }\n};\n\nexport const getTickValues = (prop = {}) => {\n const tickValues = [];\n let tickVal = prop.min;\n\n while (tickVal <= prop.max) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 100) / 100;\n }\n\n return tickValues;\n};\n\nexport const customLabelStep = (rangeMax, size, labelFontSize) => {\n const ceilMax = Math.ceil(rangeMax);\n const segmentLength = size.height / ceilMax;\n const ticksToFitInOneSegment = 2;\n\n // how many ticksWidth fit in a segment\n const tickWidthPerSegment = segmentLength / labelFontSize;\n const rawLabelStep = ticksToFitInOneSegment / tickWidthPerSegment;\n const roundedStep = Math.ceil((rawLabelStep * 10) / 10);\n\n let labelStep;\n\n if (rawLabelStep > 0.15) {\n labelStep = roundedStep;\n } else if (rawLabelStep < 0.05) {\n labelStep = 0.1;\n } else {\n labelStep = 0.5;\n }\n\n return labelStep;\n};\n\nexport const crowdedTicks = (rangeMax, customLabelStep, size, labelFontSize) => {\n const ceilMax = Math.ceil(rangeMax);\n\n const numberOfSegments = ceilMax * customLabelStep;\n\n return size.height / numberOfSegments < labelFontSize && size.height / numberOfSegments > 0.5;\n};\n\n// multiply values with 10^number_of_decimals if needed because modulo function(%) is only defined for integers\nconst modulo = (a, b) => {\n if (Number.isInteger(b)) {\n return a % b;\n }\n\n const decimals = b\n .toString()\n .split('.')\n .pop().length;\n const aux = Math.pow(10, decimals);\n\n return (a * aux) % (b * aux);\n};\n\nexport const getDomainAndRangeByChartType = (domain, range, size, chartType, labelFontSize) => {\n let { step, labelStep, min, max } = range || {};\n\n if (!min) {\n min = 0;\n }\n\n if (!max || max < 0) {\n max = range.min + 1;\n }\n\n if (labelStep && !step) {\n step = labelStep;\n }\n if (!labelStep || (isNaN(labelStep) && step)) {\n let customLabelStep = step;\n let crowded = crowdedTicks(max, customLabelStep, size, labelFontSize);\n\n if (crowded) {\n customLabelStep = customLabelStep * 2;\n }\n\n labelStep = customLabelStep;\n }\n\n if (!step || (isNaN(step) && !labelStep) || isNaN(labelStep)) {\n labelStep = customLabelStep(max, size, labelFontSize);\n\n if (labelStep <= 1) {\n step = labelStep;\n } else if (labelStep <= 4) {\n step = 1;\n } else if (labelStep > 4 && labelStep < 10) {\n step = labelStep / 2;\n } else {\n step = labelStep / 3;\n }\n }\n\n if (modulo(max, step) !== 0) {\n max = max + step;\n }\n\n range.max = max;\n\n switch (chartType) {\n // if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values\n case 'dotPlot':\n case 'linePlot': {\n const intMin = Math.round(min);\n const intMax = Math.round(max);\n\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1\n },\n range: {\n ...range,\n min: intMin,\n max: intMin === intMax ? intMin + 1 : intMax,\n labelStep,\n step: 1\n }\n };\n }\n default:\n return {\n domain: {\n ...domain,\n step: 1,\n labelStep: 1,\n min: 0,\n max: 1\n },\n range: {\n ...range,\n labelStep,\n step\n }\n };\n }\n};\n\nexport const getGridLinesAndAxisByChartType = (range, chartType) => {\n switch (chartType) {\n case 'lineDot':\n case 'lineCross':\n return {\n verticalLines: undefined,\n horizontalLines: getTickValues(range),\n leftAxis: true\n };\n case 'dotPlot':\n case 'linePlot':\n return {\n verticalLines: [],\n horizontalLines: [],\n leftAxis: false\n };\n default:\n return {\n verticalLines: [],\n horizontalLines: getTickValues(range),\n leftAxis: true\n };\n }\n};\n\nexport const getRotateAngle = (fontSize, height) => {\n if (height >= fontSize * 2) {\n return 25;\n }\n\n return 0;\n};\n\nexport const getTopPadding = barWidth => {\n if (barWidth < 30) {\n return 50;\n }\n\n if (barWidth < 40) {\n return 30;\n }\n\n if (barWidth < 60) {\n return 15;\n }\n\n return 0;\n};\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.
|
|
6
|
+
"version": "4.5.11-next.457+af6f4d76",
|
|
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": "
|
|
46
|
+
"gitHead": "af6f4d76ab7a6dfc670448bf0ccac6b86b6f5704"
|
|
47
47
|
}
|
package/src/axes.jsx
CHANGED
|
@@ -97,7 +97,7 @@ export class TickComponent extends React.Component {
|
|
|
97
97
|
)}
|
|
98
98
|
<MarkLabel
|
|
99
99
|
inputRef={r => (this.input = r)}
|
|
100
|
-
disabled={!editable}
|
|
100
|
+
disabled={defineChart ? false : !editable}
|
|
101
101
|
mark={category}
|
|
102
102
|
graphProps={graphProps}
|
|
103
103
|
onChange={newLabel => this.changeCategory(index, newLabel)}
|
package/src/bars/common/bars.jsx
CHANGED
|
@@ -65,6 +65,7 @@ export class RawBar extends React.Component {
|
|
|
65
65
|
interactive,
|
|
66
66
|
correctness
|
|
67
67
|
} = this.props;
|
|
68
|
+
|
|
68
69
|
const { scale, range } = graphProps;
|
|
69
70
|
const { dragValue } = this.state;
|
|
70
71
|
|
|
@@ -112,18 +113,20 @@ export class Bars extends React.Component {
|
|
|
112
113
|
static propTypes = {
|
|
113
114
|
data: PropTypes.array,
|
|
114
115
|
onChangeCategory: PropTypes.func,
|
|
116
|
+
defineChart: PropTypes.bool,
|
|
115
117
|
xBand: PropTypes.func,
|
|
116
118
|
graphProps: types.GraphPropsType.isRequired
|
|
117
119
|
};
|
|
118
120
|
|
|
119
121
|
render() {
|
|
120
|
-
const { data, graphProps, xBand, onChangeCategory } = this.props;
|
|
122
|
+
const { data, graphProps, xBand, onChangeCategory, defineChart } = this.props;
|
|
123
|
+
|
|
121
124
|
return (
|
|
122
125
|
<Group>
|
|
123
126
|
{(data || []).map((d, index) => (
|
|
124
127
|
<Bar
|
|
125
128
|
value={d.value}
|
|
126
|
-
interactive={d.interactive}
|
|
129
|
+
interactive={defineChart ? true : d.interactive}
|
|
127
130
|
label={d.label}
|
|
128
131
|
xBand={xBand}
|
|
129
132
|
index={index}
|
package/src/chart-setup.jsx
CHANGED
|
@@ -11,6 +11,33 @@ const ConfigureChartPanel = props => {
|
|
|
11
11
|
const { range } = model;
|
|
12
12
|
const size = model.graph;
|
|
13
13
|
|
|
14
|
+
const stepConfig = (
|
|
15
|
+
<div className={classes.rowView}>
|
|
16
|
+
<NumberTextFieldCustom
|
|
17
|
+
className={classes.mediumTextField}
|
|
18
|
+
label="Grid Interval"
|
|
19
|
+
value={range.step}
|
|
20
|
+
min={0}
|
|
21
|
+
max={10000}
|
|
22
|
+
variant="outlined"
|
|
23
|
+
onChange={(e, v) => onRangeChanged('step', v)}
|
|
24
|
+
/>
|
|
25
|
+
<NumberTextFieldCustom
|
|
26
|
+
className={classes.mediumTextField}
|
|
27
|
+
label={'Label Interval'}
|
|
28
|
+
value={range.labelStep}
|
|
29
|
+
min={0}
|
|
30
|
+
max={10000}
|
|
31
|
+
variant={'outlined'}
|
|
32
|
+
onChange={(e, v) => onRangeChanged('labelStep', v)}
|
|
33
|
+
/>
|
|
34
|
+
</div>
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const rangeProps = chartType => {
|
|
38
|
+
return chartType.includes('Plot') ? { min: 3, max: 10 } : { min: 0.05, max: 10000 };
|
|
39
|
+
};
|
|
40
|
+
|
|
14
41
|
const onSizeChanged = (key, value) => {
|
|
15
42
|
const graph = { ...size, [key]: value };
|
|
16
43
|
|
|
@@ -25,7 +52,24 @@ const ConfigureChartPanel = props => {
|
|
|
25
52
|
onChange({ ...model, range });
|
|
26
53
|
};
|
|
27
54
|
|
|
28
|
-
const onChartTypeChange = chartType =>
|
|
55
|
+
const onChartTypeChange = chartType => {
|
|
56
|
+
if (chartType.includes('Plot')) {
|
|
57
|
+
rangeProps.min = 3;
|
|
58
|
+
rangeProps.max = 10;
|
|
59
|
+
|
|
60
|
+
if (range.max > 10 || range.max < 3) {
|
|
61
|
+
range.max = 10;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
range.step = 1;
|
|
65
|
+
range.labelStep = 1;
|
|
66
|
+
onChange({ ...model, range, chartType });
|
|
67
|
+
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
onChange({ ...model, chartType });
|
|
72
|
+
};
|
|
29
73
|
|
|
30
74
|
return (
|
|
31
75
|
<div className={classes.wrapper}>
|
|
@@ -37,32 +81,13 @@ const ConfigureChartPanel = props => {
|
|
|
37
81
|
className={classes.mediumTextField}
|
|
38
82
|
label="Max Value"
|
|
39
83
|
value={range.max}
|
|
40
|
-
min={
|
|
41
|
-
max={
|
|
84
|
+
min={rangeProps(model.chartType).min}
|
|
85
|
+
max={rangeProps(model.chartType).max}
|
|
42
86
|
variant="outlined"
|
|
43
87
|
onChange={(e, v) => onRangeChanged('max', v)}
|
|
44
88
|
/>
|
|
45
89
|
</div>
|
|
46
|
-
|
|
47
|
-
<NumberTextFieldCustom
|
|
48
|
-
className={classes.mediumTextField}
|
|
49
|
-
label="Grid Interval"
|
|
50
|
-
value={range.step}
|
|
51
|
-
min={0}
|
|
52
|
-
max={10000}
|
|
53
|
-
variant="outlined"
|
|
54
|
-
onChange={(e, v) => onRangeChanged('step', v)}
|
|
55
|
-
/>
|
|
56
|
-
<NumberTextFieldCustom
|
|
57
|
-
className={classes.mediumTextField}
|
|
58
|
-
label={'Label Interval'}
|
|
59
|
-
value={range.labelStep}
|
|
60
|
-
min={0}
|
|
61
|
-
max={10000}
|
|
62
|
-
variant={'outlined'}
|
|
63
|
-
onChange={(e, v) => onRangeChanged('labelStep', v)}
|
|
64
|
-
/>
|
|
65
|
-
</div>
|
|
90
|
+
{!model.chartType.includes('Plot') && stepConfig}
|
|
66
91
|
<div className={classes.dimensions}>
|
|
67
92
|
<div>
|
|
68
93
|
<Typography>Dimensions(px)</Typography>
|
package/src/chart.jsx
CHANGED
|
@@ -48,6 +48,7 @@ export class Chart extends React.Component {
|
|
|
48
48
|
onDataChange: PropTypes.func,
|
|
49
49
|
addCategoryEnabled: PropTypes.bool,
|
|
50
50
|
categoryDefaultLabel: PropTypes.string,
|
|
51
|
+
defineChart: PropTypes.bool,
|
|
51
52
|
theme: PropTypes.object
|
|
52
53
|
};
|
|
53
54
|
|
|
@@ -231,6 +232,7 @@ export class Chart extends React.Component {
|
|
|
231
232
|
<ChartComponent
|
|
232
233
|
{...common}
|
|
233
234
|
data={categories}
|
|
235
|
+
defineChart={defineChart}
|
|
234
236
|
onChange={this.changeData}
|
|
235
237
|
onChangeCategory={this.changeCategory}
|
|
236
238
|
/>
|
|
@@ -34,6 +34,7 @@ class RawDragHandle extends React.Component {
|
|
|
34
34
|
correctness,
|
|
35
35
|
...rest
|
|
36
36
|
} = this.props;
|
|
37
|
+
|
|
37
38
|
const { scale } = graphProps;
|
|
38
39
|
return (
|
|
39
40
|
<CustomDraggableComponent
|
|
@@ -42,7 +43,7 @@ class RawDragHandle extends React.Component {
|
|
|
42
43
|
y={y}
|
|
43
44
|
classes={classes}
|
|
44
45
|
className={classNames(className, !interactive && 'non-interactive')}
|
|
45
|
-
correctness={
|
|
46
|
+
correctness={correctness}
|
|
46
47
|
{...rest}
|
|
47
48
|
/>
|
|
48
49
|
);
|
package/src/line/common/line.jsx
CHANGED
|
@@ -32,6 +32,7 @@ export class RawLine extends React.Component {
|
|
|
32
32
|
xBand: PropTypes.func,
|
|
33
33
|
index: PropTypes.number.isRequired,
|
|
34
34
|
graphProps: types.GraphPropsType.isRequired,
|
|
35
|
+
defineChart: PropTypes.bool,
|
|
35
36
|
data: PropTypes.arrayOf(
|
|
36
37
|
PropTypes.shape({
|
|
37
38
|
label: PropTypes.string,
|
|
@@ -77,7 +78,7 @@ export class RawLine extends React.Component {
|
|
|
77
78
|
};
|
|
78
79
|
|
|
79
80
|
render() {
|
|
80
|
-
const { graphProps, data, classes, CustomDraggableComponent } = this.props;
|
|
81
|
+
const { graphProps, data, classes, CustomDraggableComponent, defineChart } = this.props;
|
|
81
82
|
const { line: lineState, dragging } = this.state;
|
|
82
83
|
const { scale } = graphProps;
|
|
83
84
|
const lineToUse = dragging ? lineState : getData(data, graphProps.domain);
|
|
@@ -93,14 +94,15 @@ export class RawLine extends React.Component {
|
|
|
93
94
|
{lineToUse &&
|
|
94
95
|
lineToUse.map((point, i) => {
|
|
95
96
|
const r = 6;
|
|
96
|
-
const
|
|
97
|
+
const enableDraggable = defineChart ? true : point.interactive;
|
|
98
|
+
const Component = enableDraggable ? DraggableHandle : DragHandle;
|
|
97
99
|
|
|
98
100
|
return (
|
|
99
101
|
<Component
|
|
100
102
|
key={`point-${point.x}-${i}`}
|
|
101
103
|
x={point.x}
|
|
102
104
|
y={point.dragValue !== undefined ? point.dragValue : point.y}
|
|
103
|
-
interactive={
|
|
105
|
+
interactive={enableDraggable}
|
|
104
106
|
r={r}
|
|
105
107
|
onDragStart={() => this.setState({ dragging: true })}
|
|
106
108
|
onDrag={v =>
|
package/src/plot/common/plot.jsx
CHANGED
|
@@ -67,6 +67,7 @@ export class RawPlot extends React.Component {
|
|
|
67
67
|
interactive,
|
|
68
68
|
correctness
|
|
69
69
|
} = this.props;
|
|
70
|
+
|
|
70
71
|
const { scale, range, size } = graphProps;
|
|
71
72
|
const { max } = range || {};
|
|
72
73
|
const { dragValue } = this.state;
|
|
@@ -137,11 +138,12 @@ export class Plot extends React.Component {
|
|
|
137
138
|
onChangeCategory: PropTypes.func,
|
|
138
139
|
xBand: PropTypes.func,
|
|
139
140
|
graphProps: types.GraphPropsType.isRequired,
|
|
141
|
+
defineChart: PropTypes.bool,
|
|
140
142
|
CustomBarElement: PropTypes.func
|
|
141
143
|
};
|
|
142
144
|
|
|
143
145
|
render() {
|
|
144
|
-
const { data, graphProps, xBand, CustomBarElement, onChangeCategory } = this.props;
|
|
146
|
+
const { data, graphProps, xBand, CustomBarElement, onChangeCategory, defineChart } = this.props;
|
|
145
147
|
|
|
146
148
|
return (
|
|
147
149
|
<Group>
|
|
@@ -149,7 +151,7 @@ export class Plot extends React.Component {
|
|
|
149
151
|
<Bar
|
|
150
152
|
value={d.value}
|
|
151
153
|
label={d.label}
|
|
152
|
-
interactive={d.interactive}
|
|
154
|
+
interactive={defineChart ? true : d.interactive}
|
|
153
155
|
xBand={xBand}
|
|
154
156
|
index={index}
|
|
155
157
|
key={`bar-${d.label}-${d.value}-${index}`}
|