Загрузка данных
import { DrawingsManagerSnapshot } from '../core/DrawingsManager';
import { ChartSeriesType, DateFormat, IndicatorsIds, Intervals, Timeframes } from '..';
import { Direction } from '../types/chart';
import { SymbolInfo, SymbolInfoInput } from '../types/symbol';
import { TimeFormat } from '../types/timeScale';
import { SettingsValues } from './settings';
import type { PriceScaleMode } from 'lightweight-charts';
export type PriceScaleSide = Direction.Left | Direction.Right;
export interface ISerializable<T extends object> {
getSnapshot: () => T;
}
export interface InitialSnapshot extends SymbolInfoInput {
timeframe: Timeframes;
chartSeriesType: ChartSeriesType;
}
export interface MoexChartSnapshotInput {
charts: ChartSnapshotInput[];
}
export interface MoexChartSnapshot {
charts: ChartSnapshot[];
}
interface ChartSnapshotBase {
timeframe: Timeframes;
chartSeriesType: ChartSeriesType;
timeFormat?: TimeFormat;
dateFormat?: DateFormat;
interval?: Intervals | null;
panes: PaneSnapshot[];
}
export interface ChartSnapshotInput extends ChartSnapshotBase, SymbolInfoInput {
}
export interface ChartSnapshot extends ChartSnapshotBase, SymbolInfo {
}
export interface PriceScaleSnapshot {
side: PriceScaleSide;
mode: PriceScaleMode;
}
export interface PaneSnapshot {
isMain: boolean;
id: number;
indicators: (IndicatorSnapshot | CompareSnapshot)[];
drawings: DrawingsManagerSnapshot;
priceScales?: PriceScaleSnapshot[];
}
export interface CompareSnapshot extends Partial<DOMObjectSnapshot> {
symbolInfo: SymbolInfoInput;
seriesName: ChartSeriesType;
scale: Direction;
}
export interface IndicatorSnapshot extends Partial<DOMObjectSnapshot> {
indicatorType: IndicatorsIds;
settings?: SettingsValues;
}
export interface DOMObjectSnapshot {
id: string;
name: string;
zIndex: number;
hidden: boolean;
paneId: number;
}
export {};
import { IChartApi } from 'lightweight-charts';
import { Observable } from 'rxjs';
import { EventManager } from '.';
import { DOMModel } from './DOMModel';
import { Drawing } from './Drawings';
import { Hotkeys } from './Hotkeys';
import { DrawingsNames } from '../constants';
import { ModalRenderer } from '../core/ModalRenderer';
import { SeriesStrategies } from '../modules/series-strategies/SeriesFactory';
import { ActiveDrawingTool, DOMObjectSnapshot } from '../types';
import type { SettingsValues } from '../types/settings';
interface DrawingsManagerParams {
eventManager: EventManager;
mainSeries$: Observable<SeriesStrategies | null>;
lwcChart: IChartApi;
DOM: DOMModel;
container: HTMLElement;
modalRenderer: ModalRenderer;
paneId: number;
hotkeys: Hotkeys;
}
export interface DrawingSnapshotItem extends Partial<DOMObjectSnapshot> {
id: string;
drawingName: DrawingsNames;
state: unknown;
isLocked?: boolean;
zIndex?: number;
}
export type DrawingsManagerSnapshot = DrawingSnapshotItem[];
export declare class DrawingsManager {
private eventManager;
private lwcChart;
private DOM;
private container;
private modalRenderer;
private paneId;
private hotkeys;
private mainSeries;
private subscriptions;
private drawings$;
private selectedDrawing$;
private activeTool$;
private endlessMode$;
private pendingSnapshot;
private selectedDrawingSnapshot;
private recreateScheduled;
private copyPasteBuffer;
private escapeUnregisterHash;
constructor({ eventManager, mainSeries$, lwcChart, DOM, container, modalRenderer, paneId, hotkeys, }: DrawingsManagerParams);
private handlePointerDown;
private handlePointerUp;
private handleClick;
private findDrawing;
private createDrawingSnapshot;
private updateDrawing;
private pushDrawingChange;
private replaceDrawingSnapshot;
private restoreDrawing;
private updateActiveTool;
private removeDrawing;
private removeDrawingInternal;
private removePendingDrawings;
private removeDrawings;
addDrawingForce: (name: DrawingsNames) => Promise<void>;
private createDrawing;
getSnapshot(): DrawingsManagerSnapshot;
setSnapshot(snapshot: DrawingsManagerSnapshot): void;
setEndlessDrawingMode: (value: boolean) => void;
isEndlessDrawingsMode(): Observable<boolean>;
getActiveTool(): Observable<ActiveDrawingTool>;
activateCrosshair(): void;
entities(): Observable<Drawing[]>;
selectedDrawing(): Observable<Drawing | null>;
updateSelectedDrawingSettings: (settings: SettingsValues) => void;
openSelectedDrawingSettings(): void;
deleteSelectedDrawing(): void;
toggleSelectedDrawingLock(): void;
private openSettings;
getDrawings(): Drawing[];
hideAll(): void;
destroy(): void;
}
export {};