@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
TypeScript
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;
}