ketcher-core
Version:
Web-based molecule sketcher
95 lines (94 loc) • 3.78 kB
TypeScript
import { EditorType } from "./editor.types";
import { IEditorEvents } from "./editorEvents";
import { BaseMode } from "./modes/internal";
import { BaseTool, Tool, ToolEventHandlerName } from "./tools/Tool";
import { IKetMacromoleculesContent, IKetMonomerGroupTemplate } from "../formatters";
import { RenderersManager } from "../render/renderers/RenderersManager";
import { SequenceType, Vec2 } from "../../domain/entities";
import { DrawingEntitiesManager } from "../../domain/entities/DrawingEntitiesManager";
import { MonomerItemType } from "../../domain/types";
import { HistoryOperationType } from './EditorHistory';
import ZoomTool from './tools/Zoom';
import { ViewModel } from "../render/view-model/ViewModel";
import { ToolName } from "./tools/types";
interface ICoreEditorConstructorParams {
theme: any;
canvas: SVGSVGElement;
mode?: BaseMode;
monomersLibraryUpdate?: string | JSON;
}
export declare class CoreEditor {
events: IEditorEvents;
_type: EditorType;
renderersContainer: RenderersManager;
drawingEntitiesManager: DrawingEntitiesManager;
viewModel: ViewModel;
lastCursorPosition: Vec2;
lastCursorPositionOfCanvas: Vec2;
private _monomersLibraryParsedJson;
private _monomersLibrary;
canvas: SVGSVGElement;
drawnStructuresWrapperElement: SVGGElement;
canvasOffset: DOMRect;
theme: any;
zoomTool: ZoomTool;
private tool?;
get selectedTool(): Tool | BaseTool | undefined;
mode: BaseMode;
sequenceTypeEnterMode: SequenceType;
private micromoleculesEditor;
private hotKeyEventHandler;
private copyEventHandler;
private pasteEventHandler;
private keydownEventHandler;
constructor({ theme, canvas, mode, monomersLibraryUpdate, }: ICoreEditorConstructorParams);
static provideEditorInstance(): CoreEditor;
private setMonomersLibrary;
updateMonomersLibrary(monomersDataRaw: string | JSON): void;
get monomersLibraryParsedJson(): IKetMacromoleculesContent | null;
get monomersLibrary(): MonomerItemType[];
get defaultRnaPresetsLibraryItems(): IKetMonomerGroupTemplate[];
private handleHotKeyEvents;
private setupKeyboardEvents;
private setupCopyPasteEvent;
private setupHotKeysEvents;
private setupContextMenuEvents;
private subscribeEvents;
private onEditSequence;
private onTurnOnSequenceEditInRNABuilderMode;
private onTurnOffSequenceEditInRNABuilderMode;
private onChangeSequenceTypeEnterMode;
private onCreateAntisenseChain;
private onSelectMonomer;
private onSelectRNAPreset;
onSelectTool(tool: ToolName, options?: object): void;
private onCreateBond;
private onCancelBondCreation;
private onSelectMode;
setMode(mode: BaseMode): void;
get isSequenceMode(): boolean;
get isSequenceEditMode(): boolean | undefined;
get isSequenceEditInRNABuilderMode(): boolean | undefined;
get isSequenceAnyEditMode(): boolean | undefined;
onSelectHistory(name: HistoryOperationType): void;
selectTool(name: ToolName, options?: any): void;
get isHandToolSelected(): boolean;
unsubscribeEvents(): void;
get trackedDomEvents(): {
target: Element | Document;
eventName: string;
toolEventHandler: ToolEventHandlerName;
}[];
private isMouseMainButtonPressed;
private domEventSetup;
private updateLastCursorPosition;
private useToolIfNeeded;
private useModeIfNeeded;
switchToMicromolecules(): void;
private switchToMacromolecules;
private rerenderSequenceMode;
isCurrentModeWithAutozoom(): boolean;
zoomToStructuresIfNeeded(): void;
scrollToTopLeftCorner(): void;
}
export {};