ketcher-core
Version:
Web-based molecule sketcher
107 lines (106 loc) • 5.75 kB
TypeScript
import { ChainsCollection, ITwoStrandedChainItem } from "../../../../domain/entities/monomer-chains/ChainsCollection";
import { BaseMonomer, Vec2 } from "../../../../domain/entities";
import { BaseSequenceItemRenderer } from "./BaseSequenceItemRenderer";
import { Chain } from "../../../../domain/entities/monomer-chains/Chain";
import { SubChainNode } from "../../../../domain/entities/monomer-chains/types";
import { RestoreSequenceCaretPositionOperation } from "../../../editor/operations/modes";
import { Command } from "../../../../domain/entities/Command";
import { SequenceViewModel } from "./SequenceViewModel/SequenceViewModel";
import { SequenceViewModelChain } from "./SequenceViewModel/SequenceViewModelChain";
export declare type SequencePointer = number;
export declare type NumberOfSymbolsInRow = number;
export declare type SequenceLastCaretPosition = number;
declare type BaseNodeSelection = {
nodeIndexOverall: number;
isNucleosideConnectedAndSelectedWithPhosphate?: boolean;
hasR1Connection?: boolean;
};
export declare type NodeSelection = BaseNodeSelection & {
node: SubChainNode;
twoStrandedNode?: ITwoStrandedChainItem;
};
export declare type TwoStrandedNodeSelection = BaseNodeSelection & {
node: ITwoStrandedChainItem;
};
export declare type TwoStrandedNodesSelection = TwoStrandedNodeSelection[][];
export declare type NodesSelection = NodeSelection[][];
export declare class SequenceRenderer {
static caretPosition: SequencePointer;
static lastUserDefinedCaretPosition: SequenceLastCaretPosition;
static chainsCollection: ChainsCollection;
static lastChainStartPosition: Vec2;
private static newSequenceButtons;
static sequenceViewModel: SequenceViewModel;
static show(chainsCollection: ChainsCollection, chainBeforeNewEmptyChainIndex?: number): void;
private static setCaretToLastNodeInChain;
static removeNewSequenceButtons(): void;
private static addNewEmptyChainIfNeeded;
private static showNodes;
static getNextChainPosition(currentChainStartPosition?: Vec2, previousChainLength?: number): Vec2;
private static showBonds;
static setCaretPosition(caretPosition: SequencePointer): void;
static forEachNode(forEachCallback: (params: {
chainIndex: number;
chain: SequenceViewModelChain;
nodeIndex: number;
nodeIndexOverall: number;
twoStrandedNode: ITwoStrandedChainItem;
}) => void): void;
static setCaretPositionBySequenceItemRenderer(sequenceItemRenderer: BaseSequenceItemRenderer): void;
static setCaretPositionByMonomer(monomer: BaseMonomer): void;
static setCaretPositionNextToMonomer(monomer: BaseMonomer): void;
static setCaretPositionByNode(nodeToCompare: ITwoStrandedChainItem): void;
static getMonomersByCaretPositionRange(startCaretPosition: SequencePointer, endCaretPosition: any): BaseMonomer[];
static resetLastUserDefinedCaretPosition(): void;
private static get nodesGroupedByRows();
private static getNodeIndexInRowByGlobalIndex;
private static get currentChainRow();
private static get previousRowOfNodes();
private static get nextRowOfNodes();
static moveCaretUp(): void;
static moveCaretDown(): void;
static moveCaretForward(): RestoreSequenceCaretPositionOperation;
static moveCaretBack(): RestoreSequenceCaretPositionOperation;
static get currentChainIndex(): number;
static get lastNodeCaretPosition(): SequencePointer | undefined;
static getNodeByPointer(sequencePointer?: SequencePointer): ITwoStrandedChainItem | undefined;
static get currentEdittingNode(): ITwoStrandedChainItem | undefined;
static get previousFromCurrentEdittingMonomer(): ITwoStrandedChainItem | undefined;
static get currentChain(): Chain;
static get previousChain(): SequenceViewModelChain;
static get nextChain(): Chain;
static getLastNonEmptyNode(chain: Chain): SubChainNode;
static getLastNode(chain: Chain): SubChainNode;
static get nextNode(): ITwoStrandedChainItem | undefined;
static get previousNode(): ITwoStrandedChainItem | undefined;
static get nextNodeInSameChain(): ITwoStrandedChainItem | undefined;
static get previousNodeInSameChain(): ITwoStrandedChainItem | undefined;
private static get nextCaretPosition();
static get previousCaretPosition(): number | undefined;
static get lastChain(): Chain;
static get lastChainLength(): number;
static startNewSequence(indexOfRowBefore?: number): void;
static getPreviousNodeInSameChain(nodeToCompare: ITwoStrandedChainItem): ITwoStrandedChainItem | undefined;
static getNextNodeInSameChain(nodeToCompare: ITwoStrandedChainItem): ITwoStrandedChainItem | undefined;
static getPreviousNode(nodeToCompare: ITwoStrandedChainItem): ITwoStrandedChainItem | undefined;
static getNextNode(nodeToCompare: ITwoStrandedChainItem): ITwoStrandedChainItem | undefined;
static shiftArrowSelectionInEditMode(event: any): void;
private static getShiftArrowChanges;
static unselectEmptyAndBackboneSequenceNodes(): Command;
static get selections(): TwoStrandedNodesSelection;
static getRenderedStructuresBbox(): {
left: any;
right: any;
top: any;
bottom: any;
width: number;
height: number;
};
static getRendererByMonomer(monomer: BaseMonomer): any;
static showNewSequenceButton(indexOfRowBefore: number): void;
static isEmptyCanvas(): boolean;
static get isCaretAtChainEnd(): boolean;
static clear(): void;
}
export declare function sequenceReplacer(key: string, value: unknown): unknown;
export {};