UNPKG

chart-0714

Version:

Professional trading chart library with advanced customization for trading journal apps

72 lines (71 loc) 1.88 kB
import { ChartData, Theme, ChartOptions } from '../types'; import { IndicatorConfig } from '../plugins/IndicatorPlugin'; import { StopLossLine } from '../types/stopLoss'; import { Marker } from '../types/marker'; export interface RenderLayer { visible: boolean; data: any; zIndex?: number; } export interface RenderData { grid?: RenderLayer; candles?: RenderLayer & { data: ChartData; }; volume?: RenderLayer & { data: ChartData; options?: any; }; volumeMA?: RenderLayer & { data: Float32Array; period: number; color?: string; }; indicators?: RenderLayer & { data: IndicatorConfig[]; }; lineSeries?: RenderLayer; stopLoss?: RenderLayer & { data: StopLossLine[]; }; drawings?: RenderLayer; markers?: RenderLayer & { data: Marker[]; }; crosshair?: RenderLayer & { x: number; y: number; verticalOnly?: boolean; }; labels?: RenderLayer; } export declare class UnifiedChartRenderer { private gl; private bufferPool; private programs; private theme; private options; private canvas; private width; private height; private readonly layerOrder; constructor(canvas: HTMLCanvasElement, theme: Theme, options: ChartOptions); private initializePrograms; private setupWebGL; render(data: RenderData, viewport: any): void; private renderLayer; private renderGrid; private renderCandles; private addRectangle; private addLine; private renderVolume; private renderIndicators; private renderVolumeMA; private renderStopLoss; private renderMarkers; private renderCrosshair; resize(width: number, height: number): void; updateTheme(theme: Theme): void; setChartType(type: any): void; dispose(): void; }