UNPKG

6.07 kBJavaScriptView Raw
1import { a as __extends } from './tslib.es6-f952ba6f.js';
2import { U as Utils } from './Utils-38a0872e.js';
3import { stack, stackOffsetDiverging, min, max } from 'd3';
4import { C as ChartComponentData } from './Grid-170eaa9c.js';
5
6var GroupedBarChartData = /** @class */ (function (_super) {
7 __extends(GroupedBarChartData, _super);
8 function GroupedBarChartData() {
9 var _this = _super.call(this) || this;
10 // allValues, aggsSeries, and allTimestampsArray span the entire time period of the aggregate expressions passed in
11 _this.valuesOfVisibleType = [];
12 _this.globalMax = -Number.MAX_VALUE;
13 _this.globalMin = Number.MAX_VALUE;
14 _this.stackMin = function (series) {
15 return Number(min(series, function (d) { return d[0][0]; }));
16 };
17 _this.stackMax = function (series) {
18 return Number(max(series, function (d) { return d[0][1]; }));
19 };
20 return _this;
21 }
22 GroupedBarChartData.prototype.mergeDataToDisplayStateAndTimeArrays = function (data, timestamp, aggregateExpressionOptions) {
23 if (aggregateExpressionOptions === void 0) { aggregateExpressionOptions = null; }
24 _super.prototype.mergeDataToDisplayStateAndTimeArrays.call(this, data, aggregateExpressionOptions);
25 this.timestamp = timestamp;
26 this.setValuesAtTimestamp();
27 this.setFilteredAggregates();
28 };
29 //setting the data related to the entire time range (aggsSeries, allValus, globalMax, globalMin)
30 GroupedBarChartData.prototype.setEntireRangeData = function (scaledToCurrentTime) {
31 var _this = this;
32 this.globalMax = -Number.MAX_VALUE;
33 this.globalMin = Number.MAX_VALUE;
34 this.aggsSeries = {};
35 this.valuesOfVisibleType = [];
36 Object.keys(this.displayState).forEach(function (aggKey, aggI) {
37 var currentTimeSeries;
38 _this.allTimestampsArray.forEach(function (ts) {
39 if (_this.displayState[aggKey].visible) {
40 var localSplitByNames = [];
41 var stackedAggregateObject = Object.keys(_this.displayState[aggKey].splitBys).reverse().reduce(function (sAO, splitByName) {
42 var splitBy = _this.displayState[aggKey].splitBys[splitByName];
43 localSplitByNames.push(splitByName);
44 var value;
45 if (_this.data[aggI][_this.displayState[aggKey].name][splitByName][ts])
46 value = _this.data[aggI][_this.displayState[aggKey].name][splitByName][ts][splitBy.visibleType];
47 else
48 value = Number.MIN_VALUE;
49 if (!splitBy.visible) {
50 if (value > 0)
51 value = Number.MIN_VALUE;
52 else
53 value = -Number.MIN_VALUE;
54 }
55 sAO[splitByName] = value;
56 if ((!scaledToCurrentTime || ts == _this.timestamp) && splitBy.visible) {
57 _this.valuesOfVisibleType.push(value);
58 }
59 return sAO;
60 }, {});
61 var series = stack()
62 .keys(localSplitByNames)
63 .offset(stackOffsetDiverging)([stackedAggregateObject]);
64 series.reverse();
65 if (ts == _this.timestamp)
66 currentTimeSeries = series;
67 if ((ts == _this.timestamp || !scaledToCurrentTime) && series != undefined) {
68 _this.globalMax = Math.max(_this.stackMax(series), _this.globalMax);
69 _this.globalMin = Math.min(_this.stackMin(series), _this.globalMin);
70 }
71 }
72 });
73 _this.aggsSeries[aggKey] = currentTimeSeries;
74 });
75 };
76 GroupedBarChartData.prototype.setValuesAtTimestamp = function () {
77 var _this = this;
78 var aggregateCounterMap = {};
79 this.valuesAtTimestamp = {};
80 this.data.forEach(function (aggregate, aggI) {
81 var aggName = Object.keys(aggregate)[0];
82 var aggKey;
83 if (aggregateCounterMap[aggName]) {
84 aggKey = Utils.createEntityKey(aggName, aggregateCounterMap[aggName]);
85 aggregateCounterMap[aggName] += 1;
86 }
87 else {
88 aggKey = Utils.createEntityKey(aggName, 0);
89 aggregateCounterMap[aggName] = 1;
90 }
91 _this.valuesAtTimestamp[aggKey] = {};
92 _this.valuesAtTimestamp[aggKey].splitBys = Object.keys(aggregate[aggName])
93 .reduce(function (aggSplitBys, splitBy, splitByI) {
94 aggSplitBys[splitBy] = {};
95 aggSplitBys[splitBy].measurements = aggregate[aggName][splitBy][_this.timestamp];
96 return aggSplitBys;
97 }, {});
98 });
99 };
100 GroupedBarChartData.prototype.getValueContainerData = function (aggKey) {
101 var _this = this;
102 return Object.keys(this.displayState[aggKey].splitBys).map(function (splitBy) {
103 var measureType = _this.displayState[aggKey].splitBys[splitBy].visibleType;
104 var val;
105 if (_this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements &&
106 _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements[measureType])
107 val = _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements[measureType];
108 else
109 val = null;
110 return {
111 measureType: measureType,
112 aggKey: aggKey,
113 splitBy: splitBy,
114 val: val
115 };
116 });
117 };
118 return GroupedBarChartData;
119}(ChartComponentData));
120
121export { GroupedBarChartData as G };