chart-0714
Version:
Professional trading chart library with advanced customization for trading journal apps
81 lines (80 loc) • 3.64 kB
TypeScript
import { DrawingObject, DrawingToolType, ChartPoint, Candle, Theme, DrawingUpdateOptions } from '../types';
import { ICoordinateSystem } from '../types/viewport';
import { UnifiedCoordinateSystem } from './UnifiedCoordinateSystem';
import { SnapPoint } from './drawing/DrawingSnapManager';
import { TextStyle } from '../renderers/unified/TextRenderer';
export declare class DrawingManager {
private snapManager;
private measureManager;
private objectManager;
private stateManager;
private toolHandler;
private theme;
private defaultStyle;
private currentTool;
private textRenderer;
private textInputModal;
private container;
private coordSystem;
private textDefaults;
private textDebugLogged;
private chart;
constructor();
setContainerAndCoordSystem(container: HTMLElement, coordSystem: UnifiedCoordinateSystem): void;
setTheme(theme: Theme): void;
setChart(chart: any): void;
setDefaultStyle(style: {
color?: string;
lineWidth?: number;
opacity?: number;
}): void;
setTextDefaults(textDefaults: TextStyle): void;
private getDrawingColor;
private getMarkerColor;
setSnapChangeCallback(callback: (snap: SnapPoint | null) => void): void;
setMeasureChangeCallback(callback: (start: ChartPoint | null, end: ChartPoint | null, fixed: boolean) => void): void;
setTextInputCallback(callback: (point: ChartPoint, callback: (text: string) => void) => void): void;
setCurrentTool(tool: DrawingToolType | null): void;
getCurrentTool(): DrawingToolType | null;
setMagneticMode(enabled: boolean): void;
getMagneticMode(): boolean;
findSnapPoint(mouseX: number, mouseY: number, candles: Candle[], coordSystem: UnifiedCoordinateSystem, threshold?: number): SnapPoint | null;
handleMouseMove(mouseX: number, mouseY: number, candles: Candle[], coordSystem: UnifiedCoordinateSystem, getChartPoint: (x: number, y: number) => ChartPoint): void;
handleClick(x: number, y: number, getChartPoint: (x: number, y: number) => ChartPoint, coordSystem: ICoordinateSystem): void;
cancelDrawing(): void;
createHorizontalLineImmediate(point: ChartPoint): void;
startMeasure(point: ChartPoint): void;
cancelMeasure(): void;
fixMeasure(endPoint: ChartPoint): void;
isMeasureMode(): boolean;
getAllDrawings(): DrawingObject[];
deleteSelectedDrawing(): boolean;
getSelectedDrawing(): DrawingObject | null;
selectDrawingAt(x: number, y: number): DrawingObject | null;
checkDrawingHover(x: number, y: number): DrawingObject | null;
moveSelectedDrawing(timeDiff: number, priceDiff: number): void;
clear(): void;
addDrawing(drawing: DrawingObject): void;
removeDrawing(id: string): void;
clearDrawings(): void;
getDrawingById(id: string): DrawingObject | undefined;
updateDrawingById(id: string, updates: Partial<DrawingObject>): void;
private currentDrawingProcess;
startDrawing(x: number, y: number, time: number, price: number): void;
updateDrawingPosition(x: number, y: number, time: number, price: number): void;
endDrawing(): DrawingObject | null;
isDrawing(): boolean;
private saveState;
undo(): boolean;
redo(): boolean;
canUndo(): boolean;
canRedo(): boolean;
updateTextRendering(): void;
updateTextSelection(id: string, selected: boolean): void;
enableTextEdit(id: string): void;
dispose(): void;
updateDrawing(id: string, updates: DrawingUpdateOptions): void;
deleteDrawing(id: string): void;
exportDrawings(): string;
importDrawings(jsonData: string): void;
}