UNPKG

@nativescript-community/ui-chart

Version:

A powerful chart / graph plugin, supporting line, bar, pie, radar, bubble, and candlestick charts as well as scaling, panning and animations.

59 lines 2.42 kB
import { ChartHighlighter } from './ChartHighlighter'; import { BarHighlighter } from './BarHighlighter'; import { BarData } from '../data/BarData'; import { Rounding } from '../data/DataSet'; /** * Created by Philipp Jahoda on 12/09/15. */ export class CombinedHighlighter extends ChartHighlighter { constructor(chart, barChart) { super(chart); // if there is BarData, create a BarHighlighter this.barHighlighter = !barChart.barData ? null : new BarHighlighter(barChart); } getChartData() { return this.mChart.combinedData; } getHighlightsAtXValue(xVal, x, y) { this.mHighlightBuffer = []; const data = this.getChartData(); if (!data) return this.mHighlightBuffer; const dataObjects = data.datas; const datasArray = data.datasArray; const keys = Object.keys(dataObjects); for (let i = 0; i < keys.length; i++) { const key = keys[i]; const dataObject = dataObjects[key]; if (!dataObject) { continue; } // in case of BarData, let the BarHighlighter take over if (this.barHighlighter && dataObject instanceof BarData && x !== undefined) { const high = this.barHighlighter.getHighlight(x, y); if (high) { this.mHighlightBuffer.push(...this.barHighlighter.getHighlight(x, y).map((h) => { h.dataIndex = datasArray.indexOf(dataObject); h.dataType = key; return h; })); } } else { for (let j = 0, dataSetCount = dataObject.dataSetCount; j < dataSetCount; j++) { const dataSet = dataObject.getDataSetByIndex(j); // don't include datasets that cannot be highlighted if (!dataSet.highlightEnabled) continue; this.mHighlightBuffer.push(...this.buildHighlights(dataSet, j, x, y, xVal, Rounding.CLOSEST).map((h) => { h.dataIndex = datasArray.indexOf(dataObject); h.dataType = key; return h; })); } } } return this.mHighlightBuffer; } } //# sourceMappingURL=CombinedHighlighter.js.map