@rongmz/trading-charts
Version:
This is a d3 based charting library for stocks and finance world. If the question is, why another chart library? - Coz, I find no "open-source" library fits my requirements.
55 lines (54 loc) • 1.98 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { Annotation, ChartConfig, ChartSettings, GraphData, GraphDataMat, ZoomPanListenerType, ZoomPanType } from './types';
export declare class TradingChart {
private dataMat;
private dataWindowStartIndex?;
private dataWindowEndIndex?;
private config;
private settings;
private root;
private table;
private scaleRowMap;
private mainCanvasMap;
private mainUpdateCanvasMap;
private scaleYCanvasMap;
private scaleYUpdateCanvasMap;
private scaleXCanvas;
private scaleXUpdateCanvas;
private zoomInterpolator;
private panOffset;
private panOffsetSaved;
private d3xScale;
private d3yScaleMap;
private currentMouseDownStart?;
private mousePosition?;
private zoomEventEmitter;
private panEventEmitter;
private annotations;
private data;
constructor(_config: ChartConfig, _settings: Partial<ChartSettings>, theme?: 'light' | 'dark');
initialize(): void;
setConfig(_config: ChartConfig): void;
updateTheme(theme: 'light' | 'dark'): void;
private getColorPallet;
setData(_data: GraphData): void;
private recalculateData;
setAnnotations(_annotations: Partial<Annotation>[]): void;
getWindowedData(): GraphDataMat;
private updateWindowFromZoomPan;
zoom(step: number): void;
zoomPanToRange(start: Date, end: Date): void;
pan(dx: number, dy: number): void;
updateSettings(_settings: Partial<ChartSettings>): void;
private updateDomains;
redrawMainCanvas(): void;
private redrawUpdateCanvas;
private clearUpdateCanvas;
detach(): void;
attach(domRoot: HTMLElement): void;
on(event: ZoomPanType, listener: ZoomPanListenerType): EventEmitter;
once(event: ZoomPanType, listener: ZoomPanListenerType): EventEmitter;
off(event: ZoomPanType, listener: ZoomPanListenerType): EventEmitter;
offAll(event: ZoomPanType): EventEmitter;
}