@rcsb/rcsb-saguaro-3d
Version:
RCSB Molstar/Saguaro Web App
54 lines (53 loc) • 2.33 kB
TypeScript
import * as React from "react";
import { StructureViewerInterface } from '../RcsbFvStructure/StructureViewerInterface';
import '../scss/RcsbFvMolstarStyle.module.scss';
import { RcsbFvStructureConfigInterface } from "../RcsbFvStructure/RcsbFvStructure";
import { CSSProperties, ReactNode } from "react";
import { StructureViewerBehaviourObserverInterface } from "../RcsbFvStructure/StructureViewerBehaviourInterface";
import { RcsbFvCustomSequenceInterface } from "../RcsbFvSequence/RcsbFvCustomSequence";
import { RcsbFvCustomContextManager } from "../RcsbFvContextManager/RcsbFvCustomContextManager";
export interface RcsbFv3DCssConfig {
overwriteCss?: boolean;
rootPanel?: CSSProperties;
structurePanel?: CSSProperties;
sequencePanel?: CSSProperties;
}
export interface RcsbFv3DCustomComponentInterface<R, L, S> {
structurePanelConfig: RcsbFvStructureConfigInterface<R, S>;
sequencePanelConfig: RcsbFvCustomSequenceInterface<R, L>;
id: string;
ctxManager: RcsbFvCustomContextManager<R, L, S>;
cssConfig?: RcsbFv3DCssConfig;
unmount: (flag: boolean) => void;
fullScreen: boolean;
structureViewer: StructureViewerInterface<R, L, S>;
structureViewerBehaviourObserver: StructureViewerBehaviourObserverInterface<R, L>;
}
interface RcsbFv3DCustomComponentState<R, L, S> {
structurePanelConfig: RcsbFvStructureConfigInterface<R, S>;
sequencePanelConfig: RcsbFvCustomSequenceInterface<R, L>;
pfvScreenFraction: number;
}
export declare class RcsbFv3DCustomComponent<R, L, S> extends React.Component<RcsbFv3DCustomComponentInterface<R, L, S>, RcsbFv3DCustomComponentState<R, L, S>> {
private readonly stateManager;
private subscription;
private readonly ROOT_DIV_ID;
readonly state: RcsbFv3DCustomComponentState<R, L, S>;
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 {};