@rcsb/rcsb-saguaro-3d
Version:
RCSB Molstar/Saguaro Web App
69 lines (68 loc) • 4.12 kB
TypeScript
import { AbstractView, AbstractViewInterface } from "../AbstractView";
import { StructureViewerPublicInterface, ViewerActionManagerInterface } from "../../../RcsbFvStructure/StructureViewerInterface";
import { RcsbFvStateInterface } from "../../../RcsbFvState/RcsbFvStateInterface";
import { RcsbFv } from "@rcsb/rcsb-saguaro/lib/RcsbFv/RcsbFv";
import { RcsbFvBoardConfigInterface, RcsbFvRowConfigInterface } from "@rcsb/rcsb-saguaro/lib/RcsbFv/RcsbFvConfig/RcsbFvConfigInterface";
import { RcsbFvTrackDataElementInterface } from "@rcsb/rcsb-saguaro/lib/RcsbDataManager/RcsbDataManager";
import { ReactNode } from "react";
export type CustomViewStateInterface<R, L> = Omit<Omit<CustomViewInterface<R, L>, "modelChangeCallback">, "structureViewer">;
export interface CustomViewInterface<R, L> {
blockConfig: FeatureBlockInterface<R, L> | Array<FeatureBlockInterface<R, L>>;
blockSelectorElement?: (blockSelector: BlockSelectorManager) => ReactNode;
modelChangeCallback?: () => CustomViewStateInterface<R, L>;
blockChangeCallback?: (plugin: StructureViewerPublicInterface<R, L>, pfvList: Array<RcsbFv>, stateManager: RcsbFvStateInterface) => void;
}
export interface FeatureBlockInterface<R, L> {
blockId: string;
blockTitle?: string;
blockShortName?: string;
featureViewConfig: Array<FeatureViewInterface<R, L>> | FeatureViewInterface<R, L>;
}
export interface FeatureViewInterface<R, L> {
boardId?: string;
boardConfig: RcsbFvBoardConfigInterface;
rowConfig: Array<RcsbFvRowConfigInterface>;
sequenceSelectionChangeCallback: (plugin: StructureViewerPublicInterface<R, L>, stateManager: RcsbFvStateInterface, sequenceRegion: Array<RcsbFvTrackDataElementInterface>) => void;
sequenceElementClickCallback: (plugin: StructureViewerPublicInterface<R, L>, stateManager: RcsbFvStateInterface, d?: RcsbFvTrackDataElementInterface) => void;
sequenceHoverCallback: (plugin: StructureViewerPublicInterface<R, L>, stateManager: RcsbFvStateInterface, hoverRegion: Array<RcsbFvTrackDataElementInterface>) => void;
structureSelectionCallback: (plugin: StructureViewerPublicInterface<R, L>, pfv: RcsbFv, stateManager: RcsbFvStateInterface) => void;
structureHoverCallback: (plugin: StructureViewerPublicInterface<R, L>, pfv: RcsbFv, stateManager: RcsbFvStateInterface) => void;
}
export declare class BlockSelectorManager {
private blockId;
private previousBlockId;
private readonly blockChangeCallback;
constructor(f: () => void);
setActiveBlock(blockId: string): void;
getActiveBlock(): string;
getPreviousBlock(): string;
}
export declare class CustomView<R, L> extends AbstractView<CustomViewInterface<R, L> & {
structureViewer: ViewerActionManagerInterface<R, L>;
}, CustomViewStateInterface<R, L>> {
private blockViewSelector;
private boardMap;
private blockMap;
private rcsbFvMap;
private firstModelLoad;
private innerSelectionFlag;
private updateContext;
readonly state: CustomViewStateInterface<R, L>;
constructor(props: CustomViewInterface<R, L> & {
structureViewer: ViewerActionManagerInterface<R, L>;
} & AbstractViewInterface);
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: Readonly<CustomViewInterface<R, L> & AbstractViewInterface>, prevState: Readonly<CustomViewStateInterface<R, L>>, snapshot?: any): void;
private mapBlocks;
private blockChange;
private unmountBlockFv;
private buildBlockFv;
structureSelectionCallback(): void;
structureHoverCallback(): void;
representationChangeCallback(): void;
additionalContent(): ReactNode;
modelChangeCallback(): void;
setState<K extends keyof CustomViewStateInterface<R, L>>(state: ((prevState: Readonly<CustomViewStateInterface<R, L>>, props: Readonly<CustomViewInterface<R, L> & AbstractViewInterface>) => (Pick<CustomViewStateInterface<R, L>, K> | CustomViewStateInterface<R, L> | null)) | Pick<CustomViewStateInterface<R, L>, K> | CustomViewStateInterface<R, L> | null, callback?: () => void): void;
updateDimensions(): void;
}