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.

104 lines (102 loc) 4 kB
import { Canvas, Paint } from '@nativescript-community/ui-canvas'; import Shape from '@nativescript-community/ui-canvas/shapes/shape'; import { Color, ImageSource } from '@nativescript/core'; import { ChartAnimator } from '../animation/ChartAnimator'; import { Chart } from '../charts/Chart'; import { DataSet } from '../data/DataSet'; import { Highlight } from '../highlight/Highlight'; import { ChartInterface } from '../interfaces/dataprovider/ChartInterface'; import { IDataSet } from '../interfaces/datasets/IDataSet'; import { ViewPortHandler } from '../utils/ViewPortHandler'; import { Renderer } from './Renderer'; export interface BaseCustomRenderer { drawIcon?<T>(c: Canvas, chart: Chart<any, any, any>, dataSet: DataSet<any>, dataSetIndex: number, entry: T, entryIndex: number, icon: ImageSource | Shape, x: number, y: number): unknown; drawValue?: <T>(c: Canvas, chart: Chart<any, any, any>, dataSet: DataSet<any>, dataSetIndex: number, entry: T, entryIndex: number, valueText: string, x: number, y: number, color: string | Color, paint: Paint) => void; } /** * Superclass of all render classes for the different data types (line, bar, ...). * */ export declare abstract class DataRenderer extends Renderer { /** * the animator object used to perform animations on the chart data */ animator: ChartAnimator; /** * main palet object used for rendering */ protected mRenderPaint: Paint; /** * palet used for highlighting values */ protected mHighlightPaint: Paint; /** * palet object for drawing values (text representing values of chart * entries) */ protected mValuePaint: Paint; constructor(animator: ChartAnimator, viewPortHandler: ViewPortHandler); initBuffers(): void; get renderPaint(): Paint; get highlightPaint(): Paint; get valuePaint(): Paint; protected isDrawingValuesAllowed(chart: ChartInterface): boolean; /** * Applies the required styling (provided by the DataSet) to the value-paint * object. * * @param set */ protected applyValueTextStyle(set: IDataSet<any>): void; /** * Draws the actual data in form of lines, bars, ... depending on Renderer subclass. * * @param c */ abstract drawData(c: Canvas): any; /** * Loops over all Entrys and draws their values. * * @param c */ abstract drawValues(c: Canvas): any; /** * Draws the value of the given entry by using the provided IValueFormatter. * * @param c canvas * @param entryIndex label to draw * @param entry label to draw * @param valueText label to draw * @param x position * @param y position * @param color * @param paint */ drawValue<T>(c: Canvas, chart: Chart<any, any, any>, dataSet: DataSet<any>, dataSetIndex: number, entry: T, entryIndex: any, valueText: string, x: number, y: number, color: string | Color, paint: Paint, customRender?: BaseCustomRenderer): void; /** * Draws the icons of the given entry * * @param canvas canvas * @param icon icon to draw * @param chart icon to draw * @param x position * @param y position * @param color * @param paint */ drawIcon<T>(canvas: Canvas, chart: Chart<any, any, any>, dataSet: DataSet<any>, dataSetIndex: number, entry: T, entryIndex: number, icon: ImageSource | Shape, x: number, y: number, customRender?: BaseCustomRenderer): void; /** * Draws any kind of additional information (e.g. line-circles). * * @param c */ abstract drawExtras(c: Canvas): any; /** * Draws all highlight indicators for the values that are currently highlighted. * * @param c * @param indices the highlighted values * @param actualDraw whether to draw or not */ abstract drawHighlighted(c: Canvas, indices: Highlight[], actualDraw?: boolean): any; }