@pie-lib/charting 5.17.0-beta.0 → 5.17.0

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.
Files changed (74) hide show
  1. package/CHANGELOG.json +1 -581
  2. package/CHANGELOG.md +149 -43
  3. package/package.json +5 -5
  4. package/src/__tests__/__snapshots__/axes.test.jsx.snap +1 -0
  5. package/src/__tests__/__snapshots__/chart.test.jsx.snap +0 -18
  6. package/src/__tests__/__snapshots__/grid.test.jsx.snap +61 -17
  7. package/src/__tests__/axes.test.jsx +0 -5
  8. package/src/__tests__/chart.test.jsx +8 -0
  9. package/src/actions-button.jsx +109 -0
  10. package/src/axes.jsx +5 -31
  11. package/src/bars/common/bars.jsx +8 -10
  12. package/src/chart-setup.jsx +1 -1
  13. package/src/chart.jsx +31 -26
  14. package/src/common/drag-handle.jsx +3 -3
  15. package/src/common/styles.js +1 -1
  16. package/src/grid.jsx +38 -13
  17. package/src/index.js +2 -1
  18. package/src/key-legend.jsx +75 -0
  19. package/src/line/common/drag-handle.jsx +3 -9
  20. package/src/line/common/line.jsx +2 -6
  21. package/src/line/line-cross.js +29 -2
  22. package/src/line/line-dot.js +36 -19
  23. package/src/mark-label.jsx +7 -2
  24. package/src/plot/common/plot.jsx +8 -5
  25. package/src/tool-menu.jsx +1 -1
  26. package/lib/__tests__/axes.test.js +0 -181
  27. package/lib/__tests__/chart-setup.test.js +0 -58
  28. package/lib/__tests__/chart-type.test.js +0 -42
  29. package/lib/__tests__/chart.test.js +0 -108
  30. package/lib/__tests__/grid.test.js +0 -48
  31. package/lib/__tests__/mark-label.test.js +0 -57
  32. package/lib/__tests__/utils.js +0 -56
  33. package/lib/__tests__/utils.test.js +0 -197
  34. package/lib/axes.js +0 -643
  35. package/lib/bars/__tests__/bar.test.js +0 -62
  36. package/lib/bars/__tests__/histogram.test.js +0 -64
  37. package/lib/bars/__tests__/utils.js +0 -56
  38. package/lib/bars/bar.js +0 -86
  39. package/lib/bars/common/__tests__/bars.test.js +0 -100
  40. package/lib/bars/common/__tests__/utils.js +0 -56
  41. package/lib/bars/common/bars.js +0 -301
  42. package/lib/bars/histogram.js +0 -87
  43. package/lib/chart-setup.js +0 -458
  44. package/lib/chart-type.js +0 -71
  45. package/lib/chart-types.js +0 -31
  46. package/lib/chart.js +0 -438
  47. package/lib/common/__tests__/drag-handle.test.js +0 -134
  48. package/lib/common/__tests__/utils.js +0 -56
  49. package/lib/common/drag-handle.js +0 -175
  50. package/lib/common/drag-icon.js +0 -52
  51. package/lib/common/styles.js +0 -40
  52. package/lib/grid.js +0 -104
  53. package/lib/index.js +0 -40
  54. package/lib/line/__tests__/line-cross.test.js +0 -64
  55. package/lib/line/__tests__/line-dot.test.js +0 -64
  56. package/lib/line/__tests__/utils.js +0 -56
  57. package/lib/line/common/__tests__/drag-handle.test.js +0 -134
  58. package/lib/line/common/__tests__/line.test.js +0 -128
  59. package/lib/line/common/__tests__/utils.js +0 -56
  60. package/lib/line/common/drag-handle.js +0 -157
  61. package/lib/line/common/line.js +0 -261
  62. package/lib/line/line-cross.js +0 -168
  63. package/lib/line/line-dot.js +0 -131
  64. package/lib/mark-label.js +0 -255
  65. package/lib/plot/__tests__/dot.test.js +0 -64
  66. package/lib/plot/__tests__/line.test.js +0 -64
  67. package/lib/plot/__tests__/utils.js +0 -56
  68. package/lib/plot/common/__tests__/plot.test.js +0 -103
  69. package/lib/plot/common/__tests__/utils.js +0 -56
  70. package/lib/plot/common/plot.js +0 -280
  71. package/lib/plot/dot.js +0 -123
  72. package/lib/plot/line.js +0 -152
  73. package/lib/tool-menu.js +0 -142
  74. package/lib/utils.js +0 -244
package/lib/tool-menu.js DELETED
@@ -1,142 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.ToolMenu = exports.MiniButton = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
- var _react = _interopRequireDefault(require("react"));
23
-
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _classnames = _interopRequireDefault(require("classnames"));
27
-
28
- var _renderUi = require("@pie-lib/render-ui");
29
-
30
- var _styles = require("@material-ui/core/styles");
31
-
32
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
33
-
34
- var _translator = _interopRequireDefault(require("@pie-lib/translator"));
35
-
36
- 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); }; }
37
-
38
- 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; } }
39
-
40
- var translator = _translator["default"].translator;
41
-
42
- var buttonStyles = function buttonStyles(theme) {
43
- return {
44
- root: {
45
- color: _renderUi.color.text(),
46
- border: "1px solid ".concat(_renderUi.color.secondary()),
47
- fontSize: theme.typography.fontSize
48
- },
49
- selected: {
50
- backgroundColor: _renderUi.color.background(),
51
- '& span': {
52
- color: _renderUi.color.primaryDark()
53
- }
54
- },
55
- notSelected: {
56
- '& span': {
57
- color: _renderUi.color.primary()
58
- },
59
- backgroundColor: _renderUi.color.background()
60
- },
61
- disabled: {
62
- '& span': {
63
- color: _renderUi.color.primary()
64
- },
65
- backgroundColor: _renderUi.color.disabled()
66
- }
67
- };
68
- };
69
-
70
- var MiniButton = (0, _styles.withStyles)(buttonStyles)(function (props) {
71
- var disabled = props.disabled,
72
- classes = props.classes,
73
- className = props.className,
74
- selected = props.selected,
75
- value = props.value,
76
- onClick = props.onClick;
77
- return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
78
- size: "small",
79
- disabled: disabled,
80
- color: selected ? 'secondary' : 'default',
81
- className: (0, _classnames["default"])(classes.root, selected && classes.selected, className),
82
- classes: {
83
- disabled: (0, _classnames["default"])(disabled && classes.disabled)
84
- },
85
- value: value,
86
- key: value,
87
- variant: "outlined",
88
- onClick: onClick
89
- }, value);
90
- });
91
- exports.MiniButton = MiniButton;
92
- MiniButton.propTypes = {
93
- disabled: _propTypes["default"].bool,
94
- className: _propTypes["default"].string,
95
- disabledClassName: _propTypes["default"].string,
96
- selected: _propTypes["default"].bool,
97
- value: _propTypes["default"].string,
98
- onClick: _propTypes["default"].func
99
- };
100
-
101
- var ToolMenu = /*#__PURE__*/function (_React$Component) {
102
- (0, _inherits2["default"])(ToolMenu, _React$Component);
103
-
104
- var _super = _createSuper(ToolMenu);
105
-
106
- function ToolMenu() {
107
- (0, _classCallCheck2["default"])(this, ToolMenu);
108
- return _super.apply(this, arguments);
109
- }
110
-
111
- (0, _createClass2["default"])(ToolMenu, [{
112
- key: "render",
113
- value: function render() {
114
- var _this$props = this.props,
115
- className = _this$props.className,
116
- disabled = _this$props.disabled,
117
- addCategory = _this$props.addCategory,
118
- language = _this$props.language;
119
- return /*#__PURE__*/_react["default"].createElement("div", {
120
- className: (0, _classnames["default"])(className)
121
- }, !disabled && /*#__PURE__*/_react["default"].createElement(MiniButton, {
122
- value: translator.t('charting.addCategory', {
123
- lng: language
124
- }),
125
- onClick: addCategory
126
- }));
127
- }
128
- }]);
129
- return ToolMenu;
130
- }(_react["default"].Component);
131
-
132
- exports.ToolMenu = ToolMenu;
133
- (0, _defineProperty2["default"])(ToolMenu, "propTypes", {
134
- className: _propTypes["default"].string,
135
- addCategory: _propTypes["default"].func,
136
- disabled: _propTypes["default"].bool,
137
- language: _propTypes["default"].string
138
- });
139
- (0, _defineProperty2["default"])(ToolMenu, "defaultProps", {});
140
- var _default = ToolMenu;
141
- exports["default"] = _default;
142
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90b29sLW1lbnUuanN4Il0sIm5hbWVzIjpbInRyYW5zbGF0b3IiLCJUcmFuc2xhdG9yIiwiYnV0dG9uU3R5bGVzIiwidGhlbWUiLCJyb290IiwiY29sb3IiLCJ0ZXh0IiwiYm9yZGVyIiwic2Vjb25kYXJ5IiwiZm9udFNpemUiLCJ0eXBvZ3JhcGh5Iiwic2VsZWN0ZWQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwicHJpbWFyeURhcmsiLCJub3RTZWxlY3RlZCIsInByaW1hcnkiLCJkaXNhYmxlZCIsIk1pbmlCdXR0b24iLCJwcm9wcyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJ2YWx1ZSIsIm9uQ2xpY2siLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwic3RyaW5nIiwiZGlzYWJsZWRDbGFzc05hbWUiLCJmdW5jIiwiVG9vbE1lbnUiLCJhZGRDYXRlZ29yeSIsImxhbmd1YWdlIiwidCIsImxuZyIsIlJlYWN0IiwiQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFDQTs7Ozs7O0FBRUEsSUFBUUEsVUFBUixHQUF1QkMsc0JBQXZCLENBQVFELFVBQVI7O0FBRUEsSUFBTUUsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ0MsS0FBRDtBQUFBLFNBQVk7QUFDL0JDLElBQUFBLElBQUksRUFBRTtBQUNKQyxNQUFBQSxLQUFLLEVBQUVBLGdCQUFNQyxJQUFOLEVBREg7QUFFSkMsTUFBQUEsTUFBTSxzQkFBZUYsZ0JBQU1HLFNBQU4sRUFBZixDQUZGO0FBR0pDLE1BQUFBLFFBQVEsRUFBRU4sS0FBSyxDQUFDTyxVQUFOLENBQWlCRDtBQUh2QixLQUR5QjtBQU0vQkUsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLGVBQWUsRUFBRVAsZ0JBQU1RLFVBQU4sRUFEVDtBQUVSLGdCQUFVO0FBQ1JSLFFBQUFBLEtBQUssRUFBRUEsZ0JB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RU4sc0JBQVVJLElBRk47QUFHakJaLEVBQUFBLFFBQVEsRUFBRVEsc0JBQVVDLElBSEg7QUFJakJNLEVBQUFBLFFBQVEsRUFBRVAsc0JBQVVFO0FBSkgsQztpQ0FEUkcsUSxrQkFRVyxFO2VBZVRBLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuXG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBjbiBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uJztcbmltcG9ydCBUcmFuc2xhdG9yIGZyb20gJ0BwaWUtbGliL3RyYW5zbGF0b3InO1xuXG5jb25zdCB7IHRyYW5zbGF0b3IgfSA9IFRyYW5zbGF0b3I7XG5cbmNvbnN0IGJ1dHRvblN0eWxlcyA9ICh0aGVtZSkgPT4gKHtcbiAgcm9vdDoge1xuICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7Y29sb3Iuc2Vjb25kYXJ5KCl9YCxcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSxcbiAgfSxcbiAgc2VsZWN0ZWQ6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgICAnJiBzcGFuJzoge1xuICAgICAgY29sb3I6IGNvbG9yLnByaW1hcnlEYXJrKCksXG4gICAgfSxcbiAgfSxcbiAgbm90U2VsZWN0ZWQ6IHtcbiAgICAnJiBzcGFuJzoge1xuICAgICAgY29sb3I6IGNvbG9yLnByaW1hcnkoKSxcbiAgICB9LFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICB9LFxuICBkaXNhYmxlZDoge1xuICAgICcmIHNwYW4nOiB7XG4gICAgICBjb2xvcjogY29sb3IucHJpbWFyeSgpLFxuICAgIH0sXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5kaXNhYmxlZCgpLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBNaW5pQnV0dG9uID0gd2l0aFN0eWxlcyhidXR0b25TdHlsZXMpKChwcm9wcykgPT4ge1xuICBjb25zdCB7IGRpc2FibGVkLCBjbGFzc2VzLCBjbGFzc05hbWUsIHNlbGVjdGVkLCB2YWx1ZSwgb25DbGljayB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPEJ1dHRvblxuICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIGNvbG9yPXtzZWxlY3RlZCA/ICdzZWNvbmRhcnknIDogJ2RlZmF1bHQnfVxuICAgICAgY2xhc3NOYW1lPXtjbihjbGFzc2VzLnJvb3QsIHNlbGVjdGVkICYmIGNsYXNzZXMuc2VsZWN0ZWQsIGNsYXNzTmFtZSl9XG4gICAgICBjbGFzc2VzPXt7IGRpc2FibGVkOiBjbihkaXNhYmxlZCAmJiBjbGFzc2VzLmRpc2FibGVkKSB9fVxuICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAga2V5PXt2YWx1ZX1cbiAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgID5cbiAgICAgIHt2YWx1ZX1cbiAgICA8L0J1dHRvbj5cbiAgKTtcbn0pO1xuTWluaUJ1dHRvbi5wcm9wVHlwZXMgPSB7XG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaXNhYmxlZENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2VsZWN0ZWQ6IFByb3BUeXBlcy5ib29sLFxuICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5leHBvcnQgY2xhc3MgVG9vbE1lbnUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhZGRDYXRlZ29yeTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGxhbmd1YWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7fTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIGRpc2FibGVkLCBhZGRDYXRlZ29yeSwgbGFuZ3VhZ2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NOYW1lKX0+XG4gICAgICAgIHshZGlzYWJsZWQgJiYgKFxuICAgICAgICAgIDxNaW5pQnV0dG9uIHZhbHVlPXt0cmFuc2xhdG9yLnQoJ2NoYXJ0aW5nLmFkZENhdGVnb3J5JywgeyBsbmc6IGxhbmd1YWdlIH0pfSBvbkNsaWNrPXthZGRDYXRlZ29yeX0gLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVG9vbE1lbnU7XG4iXX0=
package/lib/utils.js DELETED
@@ -1,244 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.tickCount = exports.point = exports.getTopPadding = exports.getTickValues = exports.getScale = exports.getRotateAngle = exports.getGridLinesAndAxisByChartType = exports.getDomainAndRangeByChartType = exports.getAdjustedX = exports.dataToXBand = exports.bounds = exports.bandKey = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _scale = require("@vx/scale");
13
-
14
- var _plot = require("@pie-lib/plot");
15
-
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; }
17
-
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; }
19
-
20
- var tickCount = _plot.utils.tickCount;
21
- exports.tickCount = tickCount;
22
- var bounds = _plot.utils.bounds;
23
- exports.bounds = bounds;
24
- var point = _plot.utils.point;
25
- exports.point = point;
26
-
27
- var bandKey = function bandKey(d, index) {
28
- return "".concat(index, "-").concat(d.label || '-');
29
- };
30
-
31
- exports.bandKey = bandKey;
32
-
33
- var dataToXBand = function dataToXBand(scaleX, data, width, type) {
34
- switch (type) {
35
- case 'bar':
36
- case 'dotPlot':
37
- case 'linePlot':
38
- return (0, _scale.scaleBand)({
39
- rangeRound: [0, width],
40
- domain: data && data.map(bandKey),
41
- padding: 0.2
42
- });
43
-
44
- case 'histogram':
45
- return (0, _scale.scaleBand)({
46
- rangeRound: [0, width],
47
- domain: data && data.map(bandKey),
48
- padding: 0
49
- });
50
-
51
- case 'lineCross':
52
- case 'lineDot':
53
- return (0, _scale.scalePoint)({
54
- domain: data && data.map(bandKey),
55
- rangeRound: [0, width]
56
- });
57
-
58
- default:
59
- return (0, _scale.scaleBand)({
60
- range: [0, width],
61
- domain: data && data.map(bandKey),
62
- padding: 0
63
- });
64
- }
65
- };
66
-
67
- exports.dataToXBand = dataToXBand;
68
-
69
- var getTickValues = function getTickValues() {
70
- var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
71
- var tickValues = [];
72
- var tickVal = prop.min;
73
-
74
- while (tickVal <= prop.max) {
75
- tickValues.push(tickVal);
76
- tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;
77
- }
78
-
79
- return tickValues;
80
- };
81
-
82
- exports.getTickValues = getTickValues;
83
-
84
- var getDomainAndRangeByChartType = function getDomainAndRangeByChartType(domain, range, chartType) {
85
- var _ref = range || {},
86
- step = _ref.step,
87
- labelStep = _ref.labelStep,
88
- min = _ref.min,
89
- max = _ref.max;
90
-
91
- if (!min) {
92
- min = 0;
93
- }
94
-
95
- if (!max || max < 0) {
96
- max = range.min + 1;
97
- }
98
-
99
- if (!step) {
100
- step = labelStep || 1;
101
- }
102
-
103
- if (!labelStep || isNaN(labelStep) && step) {
104
- labelStep = step || 1;
105
- }
106
-
107
- range.max = max;
108
-
109
- switch (chartType) {
110
- // if chart is dot plot or line plot, we should ignore step and make sure that min & max are integer values
111
- case 'dotPlot':
112
- case 'linePlot':
113
- {
114
- var intMin = Math.round(min);
115
- var intMax = Math.round(max);
116
- return {
117
- domain: _objectSpread(_objectSpread({}, domain), {}, {
118
- step: 1,
119
- labelStep: 1,
120
- min: 0,
121
- max: 1
122
- }),
123
- range: _objectSpread(_objectSpread({}, range), {}, {
124
- min: intMin,
125
- max: intMin === intMax ? intMin + 1 : intMax,
126
- labelStep: labelStep,
127
- step: 1
128
- })
129
- };
130
- }
131
-
132
- default:
133
- return {
134
- domain: _objectSpread(_objectSpread({}, domain), {}, {
135
- step: 1,
136
- labelStep: 1,
137
- min: 0,
138
- max: 1
139
- }),
140
- range: _objectSpread(_objectSpread({}, range), {}, {
141
- labelStep: labelStep,
142
- step: step
143
- })
144
- };
145
- }
146
- };
147
-
148
- exports.getDomainAndRangeByChartType = getDomainAndRangeByChartType;
149
-
150
- var getGridLinesAndAxisByChartType = function getGridLinesAndAxisByChartType(range, chartType) {
151
- switch (chartType) {
152
- case 'lineDot':
153
- case 'lineCross':
154
- return {
155
- verticalLines: undefined,
156
- horizontalLines: getTickValues(range),
157
- leftAxis: true
158
- };
159
-
160
- case 'dotPlot':
161
- case 'linePlot':
162
- return {
163
- verticalLines: [],
164
- horizontalLines: [],
165
- leftAxis: false
166
- };
167
-
168
- default:
169
- return {
170
- verticalLines: [],
171
- horizontalLines: getTickValues(range),
172
- leftAxis: true
173
- };
174
- }
175
- };
176
-
177
- exports.getGridLinesAndAxisByChartType = getGridLinesAndAxisByChartType;
178
-
179
- var getRotateAngle = function getRotateAngle(fontSize, height) {
180
- if (height >= fontSize * 2) {
181
- return 25;
182
- }
183
-
184
- return 0;
185
- };
186
-
187
- exports.getRotateAngle = getRotateAngle;
188
-
189
- var getTopPadding = function getTopPadding(barWidth) {
190
- if (barWidth < 30) {
191
- return 50;
192
- }
193
-
194
- if (barWidth < 40) {
195
- return 30;
196
- }
197
-
198
- if (barWidth < 60) {
199
- return 15;
200
- }
201
-
202
- return 0;
203
- }; // This function calculates the transformation scale for SVG and the icon's vertical distance from its category
204
-
205
-
206
- exports.getTopPadding = getTopPadding;
207
-
208
- var getScale = function getScale(width) {
209
- var scale, deltay;
210
-
211
- if (width > 91) {
212
- scale = 1.3;
213
- deltay = -55;
214
- } else if (width > 45) {
215
- scale = 1.1;
216
- deltay = -45;
217
- } else if (width > 40) {
218
- scale = 0.5 + (width - 34) * 0.02;
219
- deltay = -25;
220
- } else if (width > 30) {
221
- scale = 0.5 + (width - 34) * 0.02;
222
- deltay = -20;
223
- } else {
224
- scale = 0.5 * Math.pow(0.98, 34 - width); // 0.98 is the reduction factor. Adjust to control scaling.
225
-
226
- deltay = -15;
227
- }
228
-
229
- return {
230
- scale: scale,
231
- deltay: deltay
232
- };
233
- };
234
-
235
- exports.getScale = getScale;
236
-
237
- var getAdjustedX = function getAdjustedX(width, scaleValue) {
238
- var innerWidthOriginal = 57;
239
- var effectiveInnerWidth = innerWidthOriginal * scaleValue;
240
- return (width - effectiveInnerWidth) / 2;
241
- };
242
-
243
- exports.getAdjustedX = getAdjustedX;
244
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJuYW1lcyI6WyJ0aWNrQ291bnQiLCJ1dGlscyIsImJvdW5kcyIsInBvaW50IiwiYmFuZEtleSIsImQiLCJpbmRleCIsImxhYmVsIiwiZGF0YVRvWEJhbmQiLCJzY2FsZVgiLCJkYXRhIiwid2lkdGgiLCJ0eXBlIiwicmFuZ2VSb3VuZCIsImRvbWFpbiIsIm1hcCIsInBhZGRpbmciLCJyYW5nZSIsImdldFRpY2tWYWx1ZXMiLCJwcm9wIiwidGlja1ZhbHVlcyIsInRpY2tWYWwiLCJtaW4iLCJtYXgiLCJwdXNoIiwiTWF0aCIsInJvdW5kIiwic3RlcCIsImdldERvbWFpbkFuZFJhbmdlQnlDaGFydFR5cGUiLCJjaGFydFR5cGUiLCJsYWJlbFN0ZXAiLCJpc05hTiIsImludE1pbiIsImludE1heCIsImdldEdyaWRMaW5lc0FuZEF4aXNCeUNoYXJ0VHlwZSIsInZlcnRpY2FsTGluZXMiLCJ1bmRlZmluZWQiLCJob3Jpem9udGFsTGluZXMiLCJsZWZ0QXhpcyIsImdldFJvdGF0ZUFuZ2xlIiwiZm9udFNpemUiLCJoZWlnaHQiLCJnZXRUb3BQYWRkaW5nIiwiYmFyV2lkdGgiLCJnZXRTY2FsZSIsInNjYWxlIiwiZGVsdGF5IiwicG93IiwiZ2V0QWRqdXN0ZWRYIiwic2NhbGVWYWx1ZSIsImlubmVyV2lkdGhPcmlnaW5hbCIsImVmZmVjdGl2ZUlubmVyV2lkdGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7OztBQUVPLElBQU1BLFNBQVMsR0FBR0MsWUFBTUQsU0FBeEI7O0FBQ0EsSUFBTUUsTUFBTSxHQUFHRCxZQUFNQyxNQUFyQjs7QUFDQSxJQUFNQyxLQUFLLEdBQUdGLFlBQU1FLEtBQXBCOzs7QUFFQSxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxDQUFELEVBQUlDLEtBQUo7QUFBQSxtQkFBaUJBLEtBQWpCLGNBQTBCRCxDQUFDLENBQUNFLEtBQUYsSUFBVyxHQUFyQztBQUFBLENBQWhC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QyxDQUF2QztBQUNELENBSk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzY2FsZUJhbmQsIHNjYWxlUG9pbnQgfSBmcm9tICdAdngvc2NhbGUnO1xuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcblxuZXhwb3J0IGNvbnN0IHRpY2tDb3VudCA9IHV0aWxzLnRpY2tDb3VudDtcbmV4cG9ydCBjb25zdCBib3VuZHMgPSB1dGlscy5ib3VuZHM7XG5leHBvcnQgY29uc3QgcG9pbnQgPSB1dGlscy5wb2ludDtcblxuZXhwb3J0IGNvbnN0IGJhbmRLZXkgPSAoZCwgaW5kZXgpID0+IGAke2luZGV4fS0ke2QubGFiZWwgfHwgJy0nfWA7XG5cbmV4cG9ydCBjb25zdCBkYXRhVG9YQmFuZCA9IChzY2FsZVgsIGRhdGEsIHdpZHRoLCB0eXBlKSA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2Jhcic6XG4gICAgY2FzZSAnZG90UGxvdCc6XG4gICAgY2FzZSAnbGluZVBsb3QnOlxuICAgICAgcmV0dXJuIHNjYWxlQmFuZCh7XG4gICAgICAgIHJhbmdlUm91bmQ6IFswLCB3aWR0aF0sXG4gICAgICAgIGRvbWFpbjogZGF0YSAmJiBkYXRhLm1hcChiYW5kS2V5KSxcbiAgICAgICAgcGFkZGluZzogMC4yLFxuICAgICAgfSk7XG5cbiAgICBjYXNlICdoaXN0b2dyYW0nOlxuICAgICAgcmV0dXJuIHNjYWxlQmFuZCh7XG4gICAgICAgIHJhbmdlUm91bmQ6IFswLCB3aWR0aF0sXG4gICAgICAgIGRvbWFpbjogZGF0YSAmJiBkYXRhLm1hcChiYW5kS2V5KSxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnbGluZUNyb3NzJzpcbiAgICBjYXNlICdsaW5lRG90JzpcbiAgICAgIHJldHVybiBzY2FsZVBvaW50KHtcbiAgICAgICAgZG9tYWluOiBkYXRhICYmIGRhdGEubWFwKGJhbmRLZXkpLFxuICAgICAgICByYW5nZVJvdW5kOiBbMCwgd2lkdGhdLFxuICAgICAgfSk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHNjYWxlQmFuZCh7XG4gICAgICAgIHJhbmdlOiBbMCwgd2lkdGhdLFxuICAgICAgICBkb21haW46IGRhdGEgJiYgZGF0YS5tYXAoYmFuZEtleSksXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFRpY2tWYWx1ZXMgPSAocHJvcCA9IHt9KSA9PiB7XG4gIGNvbnN0IHRpY2tWYWx1ZXMgPSBbXTtcbiAgbGV0IHRpY2tWYWwgPSBwcm9wLm1pbjtcblxuICB3aGlsZSAodGlja1ZhbCA8PSBwcm9wLm1heCkge1xuICAgIHRpY2tWYWx1ZXMucHVzaCh0aWNrVmFsKTtcbiAgICB0aWNrVmFsID0gTWF0aC5yb3VuZCgodGlja1ZhbCArIHByb3Auc3RlcCkgKiAxMDAwMCkgLyAxMDAwMDtcbiAgfVxuXG4gIHJldHVybiB0aWNrVmFsdWVzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERvbWFpbkFuZFJhbmdlQnlDaGFydFR5cGUgPSAoZG9tYWluLCByYW5nZSwgY2hhcnRUeXBlKSA9PiB7XG4gIGxldCB7IHN0ZXAsIGxhYmVsU3RlcCwgbWluLCBtYXggfSA9IHJhbmdlIHx8IHt9O1xuXG4gIGlmICghbWluKSB7XG4gICAgbWluID0gMDtcbiAgfVxuXG4gIGlmICghbWF4IHx8IG1heCA8IDApIHtcbiAgICBtYXggPSByYW5nZS5taW4gKyAxO1xuICB9XG5cbiAgaWYgKCFzdGVwKSB7XG4gICAgc3RlcCA9IGxhYmVsU3RlcCB8fCAxO1xuICB9XG4gIGlmICghbGFiZWxTdGVwIHx8IChpc05hTihsYWJlbFN0ZXApICYmIHN0ZXApKSB7XG4gICAgbGFiZWxTdGVwID0gc3RlcCB8fCAxO1xuICB9XG5cbiAgcmFuZ2UubWF4ID0gbWF4O1xuXG4gIHN3aXRjaCAoY2hhcnRUeXBlKSB7XG4gICAgLy8gaWYgY2hhcnQgaXMgZG90IHBsb3Qgb3IgbGluZSBwbG90LCB3ZSBzaG91bGQgaWdub3JlIHN0ZXAgYW5kIG1ha2Ugc3VyZSB0aGF0IG1pbiAmIG1heCBhcmUgaW50ZWdlciB2YWx1ZXNcbiAgICBjYXNlICdkb3RQbG90JzpcbiAgICBjYXNlICdsaW5lUGxvdCc6IHtcbiAgICAgIGNvbnN0IGludE1pbiA9IE1hdGgucm91bmQobWluKTtcbiAgICAgIGNvbnN0IGludE1heCA9IE1hdGgucm91bmQobWF4KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZG9tYWluOiB7XG4gICAgICAgICAgLi4uZG9tYWluLFxuICAgICAgICAgIHN0ZXA6IDEsXG4gICAgICAgICAgbGFiZWxTdGVwOiAxLFxuICAgICAgICAgIG1pbjogMCxcbiAgICAgICAgICBtYXg6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHJhbmdlOiB7XG4gICAgICAgICAgLi4ucmFuZ2UsXG4gICAgICAgICAgbWluOiBpbnRNaW4sXG4gICAgICAgICAgbWF4OiBpbnRNaW4gPT09IGludE1heCA/IGludE1pbiArIDEgOiBpbnRNYXgsXG4gICAgICAgICAgbGFiZWxTdGVwLFxuICAgICAgICAgIHN0ZXA6IDEsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb21haW46IHtcbiAgICAgICAgICAuLi5kb21haW4sXG4gICAgICAgICAgc3RlcDogMSxcbiAgICAgICAgICBsYWJlbFN0ZXA6IDEsXG4gICAgICAgICAgbWluOiAwLFxuICAgICAgICAgIG1heDogMSxcbiAgICAgICAgfSxcbiAgICAgICAgcmFuZ2U6IHtcbiAgICAgICAgICAuLi5yYW5nZSxcbiAgICAgICAgICBsYWJlbFN0ZXAsXG4gICAgICAgICAgc3RlcCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHcmlkTGluZXNBbmRBeGlzQnlDaGFydFR5cGUgPSAocmFuZ2UsIGNoYXJ0VHlwZSkgPT4ge1xuICBzd2l0Y2ggKGNoYXJ0VHlwZSkge1xuICAgIGNhc2UgJ2xpbmVEb3QnOlxuICAgIGNhc2UgJ2xpbmVDcm9zcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2ZXJ0aWNhbExpbmVzOiB1bmRlZmluZWQsXG4gICAgICAgIGhvcml6b250YWxMaW5lczogZ2V0VGlja1ZhbHVlcyhyYW5nZSksXG4gICAgICAgIGxlZnRBeGlzOiB0cnVlLFxuICAgICAgfTtcblxuICAgIGNhc2UgJ2RvdFBsb3QnOlxuICAgIGNhc2UgJ2xpbmVQbG90JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZlcnRpY2FsTGluZXM6IFtdLFxuICAgICAgICBob3Jpem9udGFsTGluZXM6IFtdLFxuICAgICAgICBsZWZ0QXhpczogZmFsc2UsXG4gICAgICB9O1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZlcnRpY2FsTGluZXM6IFtdLFxuICAgICAgICBob3Jpem9udGFsTGluZXM6IGdldFRpY2tWYWx1ZXMocmFuZ2UpLFxuICAgICAgICBsZWZ0QXhpczogdHJ1ZSxcbiAgICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSb3RhdGVBbmdsZSA9IChmb250U2l6ZSwgaGVpZ2h0KSA9PiB7XG4gIGlmIChoZWlnaHQgPj0gZm9udFNpemUgKiAyKSB7XG4gICAgcmV0dXJuIDI1O1xuICB9XG5cbiAgcmV0dXJuIDA7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VG9wUGFkZGluZyA9IChiYXJXaWR0aCkgPT4ge1xuICBpZiAoYmFyV2lkdGggPCAzMCkge1xuICAgIHJldHVybiA1MDtcbiAgfVxuXG4gIGlmIChiYXJXaWR0aCA8IDQwKSB7XG4gICAgcmV0dXJuIDMwO1xuICB9XG5cbiAgaWYgKGJhcldpZHRoIDwgNjApIHtcbiAgICByZXR1cm4gMTU7XG4gIH1cblxuICByZXR1cm4gMDtcbn07XG5cbi8vIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgdHJhbnNmb3JtYXRpb24gc2NhbGUgZm9yIFNWRyBhbmQgdGhlIGljb24ncyB2ZXJ0aWNhbCBkaXN0YW5jZSBmcm9tIGl0cyBjYXRlZ29yeVxuZXhwb3J0IGNvbnN0IGdldFNjYWxlID0gKHdpZHRoKSA9PiB7XG4gIGxldCBzY2FsZSwgZGVsdGF5O1xuXG4gIGlmICh3aWR0aCA+IDkxKSB7XG4gICAgc2NhbGUgPSAxLjM7XG4gICAgZGVsdGF5ID0gLTU1O1xuICB9IGVsc2UgaWYgKHdpZHRoID4gNDUpIHtcbiAgICBzY2FsZSA9IDEuMTtcbiAgICBkZWx0YXkgPSAtNDU7XG4gIH0gZWxzZSBpZiAod2lkdGggPiA0MCkge1xuICAgIHNjYWxlID0gMC41ICsgKHdpZHRoIC0gMzQpICogMC4wMjtcbiAgICBkZWx0YXkgPSAtMjU7XG4gIH0gZWxzZSBpZiAod2lkdGggPiAzMCkge1xuICAgIHNjYWxlID0gMC41ICsgKHdpZHRoIC0gMzQpICogMC4wMjtcbiAgICBkZWx0YXkgPSAtMjA7XG4gIH0gZWxzZSB7XG4gICAgc2NhbGUgPSAwLjUgKiBNYXRoLnBvdygwLjk4LCAzNCAtIHdpZHRoKTsgLy8gMC45OCBpcyB0aGUgcmVkdWN0aW9uIGZhY3Rvci4gQWRqdXN0IHRvIGNvbnRyb2wgc2NhbGluZy5cbiAgICBkZWx0YXkgPSAtMTU7XG4gIH1cblxuICByZXR1cm4geyBzY2FsZSwgZGVsdGF5IH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWRqdXN0ZWRYID0gKHdpZHRoLCBzY2FsZVZhbHVlKSA9PiB7XG4gIGNvbnN0IGlubmVyV2lkdGhPcmlnaW5hbCA9IDU3O1xuICBjb25zdCBlZmZlY3RpdmVJbm5lcldpZHRoID0gaW5uZXJXaWR0aE9yaWdpbmFsICogc2NhbGVWYWx1ZTtcbiAgcmV0dXJuICh3aWR0aCAtIGVmZmVjdGl2ZUlubmVyV2lkdGgpIC8gMjtcbn07XG4iXX0=