@rcsb/rcsb-saguaro-3d
Version:
RCSB Molstar/Saguaro Web App
56 lines (55 loc) • 2.31 kB
TypeScript
import * as React from "react";
import { StructureViewerInterface } from '../RcsbFvStructure/StructureViewerInterface';
import '../scss/RcsbFvMolstarStyle.module.scss';
import { RcsbFvSequenceInterface } from "../RcsbFvSequence/RcsbFvSequence";
import { RcsbFvStructureConfigInterface } from "../RcsbFvStructure/RcsbFvStructure";
import { RcsbFvContextManager } from "../RcsbFvContextManager/RcsbFvContextManager";
import { CSSProperties, ReactNode } from "react";
import { StructureViewerBehaviourObserverInterface } from "../RcsbFvStructure/StructureViewerBehaviourInterface";
export interface RcsbFv3DCssConfig {
overwriteCss?: boolean;
rootPanel?: CSSProperties;
structurePanel?: CSSProperties;
sequencePanel?: CSSProperties;
}
export interface RcsbFv3DComponentInterface<T, R, L, S, U> {
structurePanelConfig: RcsbFvStructureConfigInterface<R, S>;
sequencePanelConfig: RcsbFvSequenceInterface<T, U>;
id: string;
ctxManager: RcsbFvContextManager<T, R, S, U>;
cssConfig?: RcsbFv3DCssConfig;
unmount: (flag: boolean) => void;
fullScreen: boolean;
structureViewer: StructureViewerInterface<R, L, S>;
structureViewerBehaviourObserver: StructureViewerBehaviourObserverInterface<R, L>;
}
interface RcsbFv3DComponentState<T, R, S, U> {
structurePanelConfig: RcsbFvStructureConfigInterface<R, S>;
sequencePanelConfig: RcsbFvSequenceInterface<T, U>;
pfvScreenFraction: number;
}
export declare class RcsbFv3DComponent<T, R, L, S, U> extends React.Component<RcsbFv3DComponentInterface<T, R, L, S, U> & {
resolve: () => void;
}, RcsbFv3DComponentState<T, R, S, U>> {
private readonly stateManager;
private subscription;
private readonly ROOT_DIV_ID;
readonly state: RcsbFv3DComponentState<T, R, S, U>;
render(): ReactNode;
componentDidMount(): void;
componentWillUnmount(): void;
private useDefaultCss;
private panelDelimiter;
private structureCssConfig;
private sequenceCssConfig;
private static mainDivCssConfig;
private subscribe;
/**Unsubscribe className to rxjs events. Useful if many panels are created an destroyed.*/
private unsubscribe;
private updateConfig;
private splitPanelMouseDown;
private splitPanelMouseUp;
private mouseMove;
private resize;
}
export {};