UNPKG

3.32 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 HKLegendItem_1 = require("./HKLegendItem");
23var HKLineChartData_1 = require("./HKLineChartData");
24var HKResizeContainer_1 = require("./HKResizeContainer");
25var helpers_1 = require("./helpers");
26var HKLineChart = /** @class */ (function (_super) {
27 __extends(HKLineChart, _super);
28 function HKLineChart(props) {
29 var _this = _super.call(this, props) || this;
30 _this.handleHover = function (values) {
31 var hoverInfo = {};
32 _this.props.labels.forEach(function (label, index) { return hoverInfo[label + "-" + index] = values[index]; });
33 _this.setState({ hoverInfo: hoverInfo });
34 };
35 _this.handleToggle = function (label, i) {
36 return _this.setState(function (prevState) {
37 var _a;
38 return ({
39 toggleInfo: __assign({}, prevState.toggleInfo, (_a = {}, _a[label + "-" + i] = !prevState.toggleInfo[label + "-" + i], _a)),
40 });
41 });
42 };
43 var hoverInfo = {};
44 var toggleInfo = {};
45 var maxValues = helpers_1.getMaxValues(props.data);
46 props.labels.forEach(function (label, i) {
47 hoverInfo[label + "-" + i] = maxValues[i];
48 toggleInfo[label + "-" + i] = true;
49 });
50 _this.state = {
51 hoverInfo: hoverInfo,
52 toggleInfo: toggleInfo,
53 };
54 return _this;
55 }
56 HKLineChart.prototype.render = function () {
57 var _this = this;
58 var _a = this.state, hoverInfo = _a.hoverInfo, toggleInfo = _a.toggleInfo;
59 var legend = this.props.labels.map(function (label, i) { return (React.createElement(HKLegendItem_1.default, { key: i, type: 'line', zIndex: i, label: label, show: toggleInfo[label + "-" + i], onToggle: _this.handleToggle, value: hoverInfo[label + "-" + i], disableToggle: toggleInfo[label + "-" + i] && helpers_1.getNumVisibleCharts(toggleInfo) === 1 })); });
60 return (React.createElement("div", { className: 'flex' },
61 React.createElement(HKResizeContainer_1.default, null, function (width) { return (React.createElement(HKLineChartData_1.default, __assign({}, _this.props, { width: width, onHover: _this.handleHover, toggleInfo: toggleInfo }))); }),
62 React.createElement("div", { className: 'w6' }, legend)));
63 };
64 return HKLineChart;
65}(React.Component));
66exports.default = HKLineChart;
67//# sourceMappingURL=HKLineChart.js.map
\No newline at end of file