src/UXClient/Models/PieChartData.ts (37 lines of code) (raw):

import Utils from "../Utils"; import {ChartComponentData} from "./ChartComponentData"; import * as d3 from 'd3'; import { GroupedBarChartData } from "./GroupedBarChartData"; class PieChartData extends GroupedBarChartData { //public declare timestamp; public flatValueArray; public visibleValuesSum = 0; constructor(){ super(); } public mergeDataToDisplayStateAndTimeArrays (data, timestamp, aggregateExpressionOptions = null) { ChartComponentData.prototype.mergeDataToDisplayStateAndTimeArrays.call(this, data, aggregateExpressionOptions); this.timestamp = Utils.getValueOrDefault({'':timestamp}, '', this.allTimestampsArray[0]); super.setValuesAtTimestamp(); this.setAllTimestampsArray(); } public updateFlatValueArray (timestamp) { this.visibleValuesSum = 0; var values = []; Object.keys(this.valuesAtTimestamp).forEach((aggKey) => { Object.keys(this.valuesAtTimestamp[aggKey].splitBys).forEach((splitBy, splitByI) => { var value = 0; if (this.getSplitByVisible(aggKey, splitBy) && this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements != undefined) value = this.valuesAtTimestamp[aggKey].splitBys[splitBy].measurements[this.getVisibleMeasure(aggKey, splitBy)]; values.push({ aggKey: aggKey, splitBy: splitBy, val: value, splitByI: splitByI }); this.visibleValuesSum += Math.abs(value); }); }); this.flatValueArray = values; } } export {PieChartData}