UNPKG

3.43 kBJavaScriptView Raw
1"use strict";
2var __extends = (this && this.__extends) || (function () {
3 var extendStatics = Object.setPrototypeOf ||
4 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6 return function (d, b) {
7 extendStatics(d, b);
8 function __() { this.constructor = d; }
9 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10 };
11})();
12var __assign = (this && this.__assign) || Object.assign || function(t) {
13 for (var s, i = 1, n = arguments.length; i < n; i++) {
14 s = arguments[i];
15 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
16 t[p] = s[p];
17 }
18 return t;
19};
20Object.defineProperty(exports, "__esModule", { value: true });
21var React = require("react");
22var helpers_1 = require("./helpers");
23var HKBarChartData_1 = require("./HKBarChartData");
24var HKLegendItem_1 = require("./HKLegendItem");
25var HKResizeContainer_1 = require("./HKResizeContainer");
26var HKBarChart = /** @class */ (function (_super) {
27 __extends(HKBarChart, _super);
28 function HKBarChart(props) {
29 var _this = _super.call(this, props) || this;
30 _this.handleToggle = function (label, i) {
31 var maxValues = helpers_1.getMaxValues(_this.props.data, 'bar');
32 _this.setState(function (prevState) {
33 var _a, _b;
34 return ({
35 hoverInfo: __assign({}, prevState.hoverInfo, (_a = {}, _a[i] = !prevState.toggleInfo[i] ? maxValues[i] : null, _a)),
36 toggleInfo: __assign({}, prevState.toggleInfo, (_b = {}, _b[i] = !prevState.toggleInfo[i], _b)),
37 });
38 });
39 };
40 _this.handleHover = function (values, keys) {
41 var hoverInfo = {};
42 keys.forEach(function (key, index) { return hoverInfo[key] = values[index]; });
43 _this.setState({ hoverInfo: hoverInfo });
44 };
45 var hoverInfo = {};
46 var toggleInfo = {};
47 var maxValues = helpers_1.getMaxValues(props.data, 'bar');
48 props.labels.forEach(function (label, i) {
49 hoverInfo[i] = maxValues[i];
50 toggleInfo[i] = true;
51 });
52 _this.state = {
53 hoverInfo: hoverInfo,
54 toggleInfo: toggleInfo,
55 };
56 return _this;
57 }
58 HKBarChart.prototype.render = function () {
59 var _this = this;
60 var _a = this.state, hoverInfo = _a.hoverInfo, toggleInfo = _a.toggleInfo;
61 var labels = this.props.labels;
62 var legend = labels.map(function (label, i) { return (React.createElement(HKLegendItem_1.default, { key: i, type: 'bar', zIndex: i, label: label, show: toggleInfo[i], onToggle: _this.handleToggle, value: hoverInfo[i], disableToggle: toggleInfo[i] && helpers_1.getNumVisibleCharts(toggleInfo) === 1 })); });
63 return (React.createElement("div", { className: 'flex' },
64 React.createElement(HKResizeContainer_1.default, null, function (width) { return (React.createElement(HKBarChartData_1.default, __assign({}, _this.props, { width: width, onHover: _this.handleHover, toggleInfo: toggleInfo }))); }),
65 React.createElement("div", { className: 'w6' }, legend)));
66 };
67 return HKBarChart;
68}(React.Component));
69exports.default = HKBarChart;
70//# sourceMappingURL=HKBarChart.js.map
\No newline at end of file