UNPKG

tsiclient

Version:

--- [//]: <> (This content is similar to https://github.com/MicrosoftDocs/azure-docs/edit/main/includes/tsi-retirement.md)

122 lines (119 loc) 6.07 kB
import { a as __extends } from './tslib.es6-f952ba6f.js'; import { U as Utils } from './Utils-38a0872e.js'; import { stack, stackOffsetDiverging, min, max } from 'd3'; import { C as ChartComponentData } from './Grid-170eaa9c.js'; var GroupedBarChartData = /** @class */ (function (_super) { __extends(GroupedBarChartData, _super); function GroupedBarChartData() { var _this = _super.call(this) || this; // allValues, aggsSeries, and allTimestampsArray span the entire time period of the aggregate expressions passed in _this.valuesOfVisibleType = []; _this.globalMax = -Number.MAX_VALUE; _this.globalMin = Number.MAX_VALUE; _this.stackMin = function (series) { return Number(min(series, function (d) { return d[0][0]; })); }; _this.stackMax = function (series) { return Number(max(series, function (d) { return d[0][1]; })); }; return _this; } GroupedBarChartData.prototype.mergeDataToDisplayStateAndTimeArrays = function (data, timestamp, aggregateExpressionOptions) { if (aggregateExpressionOptions === void 0) { aggregateExpressionOptions = null; } _super.prototype.mergeDataToDisplayStateAndTimeArrays.call(this, data, aggregateExpressionOptions); this.timestamp = timestamp; this.setValuesAtTimestamp(); this.setFilteredAggregates(); }; //setting the data related to the entire time range (aggsSeries, allValus, globalMax, globalMin) GroupedBarChartData.prototype.setEntireRangeData = function (scaledToCurrentTime) { var _this = this; this.globalMax = -Number.MAX_VALUE; this.globalMin = Number.MAX_VALUE; this.aggsSeries = {}; this.valuesOfVisibleType = []; Object.keys(this.displayState).forEach(function (aggKey, aggI) { var currentTimeSeries; _this.allTimestampsArray.forEach(function (ts) { if (_this.displayState[aggKey].visible) { var localSplitByNames = []; var stackedAggregateObject = Object.keys(_this.displayState[aggKey].splitBys).reverse().reduce(function (sAO, splitByName) { var splitBy = _this.displayState[aggKey].splitBys[splitByName]; localSplitByNames.push(splitByName); var value; if (_this.data[aggI][_this.displayState[aggKey].name][splitByName][ts]) value = _this.data[aggI][_this.displayState[aggKey].name][splitByName][ts][splitBy.visibleType]; else value = Number.MIN_VALUE; if (!splitBy.visible) { if (value > 0) value = Number.MIN_VALUE; else value = -Number.MIN_VALUE; } sAO[splitByName] = value; if ((!scaledToCurrentTime || ts == _this.timestamp) && splitBy.visible) { _this.valuesOfVisibleType.push(value); } return sAO; }, {}); var series = stack() .keys(localSplitByNames) .offset(stackOffsetDiverging)([stackedAggregateObject]); series.reverse(); if (ts == _this.timestamp) currentTimeSeries = series; if ((ts == _this.timestamp || !scaledToCurrentTime) && series != undefined) { _this.globalMax = Math.max(_this.stackMax(series), _this.globalMax); _this.globalMin = Math.min(_this.stackMin(series), _this.globalMin); } } }); _this.aggsSeries[aggKey] = currentTimeSeries; }); }; GroupedBarChartData.prototype.setValuesAtTimestamp = function () { var _this = this; var aggregateCounterMap = {}; this.valuesAtTimestamp = {}; this.data.forEach(function (aggregate, aggI) { var aggName = Object.keys(aggregate)[0]; var aggKey; if (aggregateCounterMap[aggName]) { aggKey = Utils.createEntityKey(aggName, aggregateCounterMap[aggName]); aggregateCounterMap[aggName] += 1; } else { aggKey = Utils.createEntityKey(aggName, 0); aggregateCounterMap[aggName] = 1; } _this.valuesAtTimestamp[aggKey] = {}; _this.valuesAtTimestamp[aggKey].splitBys = Object.keys(aggregate[aggName]) .reduce(function (aggSplitBys, splitBy, splitByI) { aggSplitBys[splitBy] = {}; aggSplitBys[splitBy].measurements = aggregate[aggName][splitBy][_this.timestamp]; return aggSplitBys; }, {}); }); }; GroupedBarChartData.prototype.getValueContainerData = function (aggKey) { var _this = this; return Object.keys(this.displayState[aggKey].splitBys).map(function (splitBy) { var measureType = _this.displayState[aggKey].splitBys[splitBy].visibleType; var val; if (_this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements && _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements[measureType]) val = _this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements[measureType]; else val = null; return { measureType: measureType, aggKey: aggKey, splitBy: splitBy, val: val }; }); }; return GroupedBarChartData; }(ChartComponentData)); export { GroupedBarChartData as G };