UNPKG

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