ketcher-core
Version:
Web-based molecule sketcher
102 lines (101 loc) • 4.8 kB
TypeScript
import type { D3SvgElementSelection } from "../../types";
import { Vec2 } from "../../../../domain/entities";
import type { SubChainNode, SequenceNode } from "../../../../domain/entities/monomer-chains/types";
import { BaseSequenceRenderer } from "./BaseSequenceRenderer";
import type { Chain } from "../../../../domain/entities/monomer-chains/Chain";
import type { ITwoStrandedChainItem } from "../../../../domain/entities/monomer-chains/ChainsCollection";
export declare abstract class BaseSequenceItemRenderer extends BaseSequenceRenderer {
readonly node: SequenceNode;
private readonly firstNodeInChainPosition;
private readonly monomerIndexInChain;
private readonly isLastMonomerInChain;
private readonly chain;
private readonly nodeIndexOverall;
private readonly editingNodeIndexOverall;
readonly monomerSize: {
width: number;
height: number;
};
readonly scaledMonomerPosition: Vec2;
readonly twoStrandedNode: ITwoStrandedChainItem;
private readonly previousRowsWithAntisense;
textElement?: D3SvgElementSelection<SVGTextElement, void>;
counterElement?: D3SvgElementSelection<SVGTextElement, void>;
private selectionRectangle?;
spacerElement?: D3SvgElementSelection<SVGGElement, void>;
backgroundElement?: D3SvgElementSelection<SVGRectElement, void>;
caretElement?: D3SvgElementSelection<SVGLineElement, void> | D3SvgElementSelection<SVGGElement, void>;
antisenseNodeRenderer?: this;
constructor(node: SequenceNode, firstNodeInChainPosition: Vec2, monomerIndexInChain: number, isLastMonomerInChain: boolean, chain: Chain, nodeIndexOverall: number, editingNodeIndexOverall: number, monomerSize: {
width: number;
height: number;
}, scaledMonomerPosition: Vec2, twoStrandedNode: ITwoStrandedChainItem, previousRowsWithAntisense?: number);
abstract get symbolToDisplay(): string;
isEditingSymbol(editingNodeIndexOverall?: number): boolean;
isNextSymbolEditing(editingNodeIndexOverall?: number): boolean;
private get isSingleEmptyNode();
protected abstract drawModification(): void;
protected appendHover(): D3SvgElementSelection<SVGUseElement, void> | void;
protected appendHoverAreaElement(): void;
moveSelection(): void;
get currentChain(): Chain;
get currentChainNodesWithoutEmptyNodes(): SubChainNode[];
get scaledPosition(): Vec2;
get scaledMonomerPositionForSequence(): Vec2;
get center(): Vec2;
protected get isSequenceEditModeTurnedOn(): boolean;
protected get isSequenceEditInRnaBuilderModeTurnedOn(): boolean;
private get isAntisenseEditMode();
private get isSyncEditMode();
protected appendRootElement(): D3SvgElementSelection<SVGGElement, void>;
private appendBackgroundElement;
private appendSpacerElement;
private get nthSeparationInRow();
get isAntisenseNode(): boolean;
private get hasAntisenseInChain();
private getNodeIndexInSubgroup;
private get counterNumber();
private appendCounterElement;
redrawCounter(editingNodeIndexOverall?: number): void;
private needDisplayCounter;
private checkIfNodeIsAmbiguousMonomerPeptide;
private checkIfNodeIsAmbiguousMonomerNotPeptide;
private get currentNodeNearBreakingNode();
private inIgnoreList;
private get subChainWithNode();
private get ignoredNodesBeforeFirstNodeInSubChain();
private get hasOnlyIgnoredNodesBeforeNodeInSubChain();
private get ignoredNodesAfterLastNodeInSubChain();
private get hasOnlyIgnoredNodesAfterNodeInChain();
private get isSubChainNodeBeginningOfChain();
private get isBeginningOfChain();
private get isNodeInFirstSubChain();
private get isBeginningOfSubChain();
private get isLastInSubChain();
private get isNthNodeInChain();
showCaret(xOffset?: number): void;
showCaretAfterNode(): void;
removeCaret(): void;
redrawCaret(editingNodeIndexOverall?: number, afterRowEnd?: boolean): void;
protected redrawBackgroundElementColor(): void;
private appendChainStartArrow;
private drawGreyOverlay;
show(): void;
drawSelection(): void;
appendSelection(): void;
removeSelection(): void;
private raiseElement;
remove(): void;
setEnumeration(): void;
redrawEnumeration(): void;
redrawAttachmentPoints(): void;
redrawAttachmentPointsCoordinates(): void;
get enumeration(): null;
redrawChainBeginning(): void;
hoverAttachmentPoint(): void;
updateAttachmentPoints(): void;
drawBackgroundElementHover(): void;
removeBackgroundElementHover(): void;
private isSubChainNode;
setAntisenseNodeRenderer(antisenseNodeRenderer: this): void;
}