@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.
- package/CHANGELOG.json +1 -581
- package/CHANGELOG.md +149 -43
- package/package.json +5 -5
- package/src/__tests__/__snapshots__/axes.test.jsx.snap +1 -0
- package/src/__tests__/__snapshots__/chart.test.jsx.snap +0 -18
- package/src/__tests__/__snapshots__/grid.test.jsx.snap +61 -17
- package/src/__tests__/axes.test.jsx +0 -5
- package/src/__tests__/chart.test.jsx +8 -0
- package/src/actions-button.jsx +109 -0
- package/src/axes.jsx +5 -31
- package/src/bars/common/bars.jsx +8 -10
- package/src/chart-setup.jsx +1 -1
- package/src/chart.jsx +31 -26
- package/src/common/drag-handle.jsx +3 -3
- package/src/common/styles.js +1 -1
- package/src/grid.jsx +38 -13
- package/src/index.js +2 -1
- package/src/key-legend.jsx +75 -0
- package/src/line/common/drag-handle.jsx +3 -9
- package/src/line/common/line.jsx +2 -6
- package/src/line/line-cross.js +29 -2
- package/src/line/line-dot.js +36 -19
- package/src/mark-label.jsx +7 -2
- package/src/plot/common/plot.jsx +8 -5
- package/src/tool-menu.jsx +1 -1
- package/lib/__tests__/axes.test.js +0 -181
- package/lib/__tests__/chart-setup.test.js +0 -58
- package/lib/__tests__/chart-type.test.js +0 -42
- package/lib/__tests__/chart.test.js +0 -108
- package/lib/__tests__/grid.test.js +0 -48
- package/lib/__tests__/mark-label.test.js +0 -57
- package/lib/__tests__/utils.js +0 -56
- package/lib/__tests__/utils.test.js +0 -197
- package/lib/axes.js +0 -643
- package/lib/bars/__tests__/bar.test.js +0 -62
- package/lib/bars/__tests__/histogram.test.js +0 -64
- package/lib/bars/__tests__/utils.js +0 -56
- package/lib/bars/bar.js +0 -86
- package/lib/bars/common/__tests__/bars.test.js +0 -100
- package/lib/bars/common/__tests__/utils.js +0 -56
- package/lib/bars/common/bars.js +0 -301
- package/lib/bars/histogram.js +0 -87
- package/lib/chart-setup.js +0 -458
- package/lib/chart-type.js +0 -71
- package/lib/chart-types.js +0 -31
- package/lib/chart.js +0 -438
- package/lib/common/__tests__/drag-handle.test.js +0 -134
- package/lib/common/__tests__/utils.js +0 -56
- package/lib/common/drag-handle.js +0 -175
- package/lib/common/drag-icon.js +0 -52
- package/lib/common/styles.js +0 -40
- package/lib/grid.js +0 -104
- package/lib/index.js +0 -40
- package/lib/line/__tests__/line-cross.test.js +0 -64
- package/lib/line/__tests__/line-dot.test.js +0 -64
- package/lib/line/__tests__/utils.js +0 -56
- package/lib/line/common/__tests__/drag-handle.test.js +0 -134
- package/lib/line/common/__tests__/line.test.js +0 -128
- package/lib/line/common/__tests__/utils.js +0 -56
- package/lib/line/common/drag-handle.js +0 -157
- package/lib/line/common/line.js +0 -261
- package/lib/line/line-cross.js +0 -168
- package/lib/line/line-dot.js +0 -131
- package/lib/mark-label.js +0 -255
- package/lib/plot/__tests__/dot.test.js +0 -64
- package/lib/plot/__tests__/line.test.js +0 -64
- package/lib/plot/__tests__/utils.js +0 -56
- package/lib/plot/common/__tests__/plot.test.js +0 -103
- package/lib/plot/common/__tests__/utils.js +0 -56
- package/lib/plot/common/plot.js +0 -280
- package/lib/plot/dot.js +0 -123
- package/lib/plot/line.js +0 -152
- package/lib/tool-menu.js +0 -142
- 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=
|