chart-0714
Version:
Professional trading chart library with advanced customization for trading journal apps
72 lines (71 loc) • 1.88 kB
TypeScript
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;
}