@rcsb/rcsb-saguaro
Version:
RCSB 1D Feature Viewer
53 lines (52 loc) • 1.73 kB
TypeScript
import React from "react";
import { RcsbFvBoardConfigInterface } from "../RcsbFvConfig/RcsbFvConfigInterface";
import { RcsbFvContextManager } from "../RcsbFvContextManager/RcsbFvContextManager";
import { RcsbScaleInterface } from "../../RcsbBoard/RcsbD3/RcsbD3ScaleFactory";
import { ReactNode } from "react";
export interface RcsbFvUIConfigInterface {
readonly boardId: string;
readonly boardConfigData: RcsbFvBoardConfigInterface;
readonly contextManager: RcsbFvContextManager;
readonly xScale: RcsbScaleInterface;
}
export interface RcsbFvUIStateInterface {
collapse: boolean;
}
export interface RcsbFvUIButtonInterface {
icon: ReactNode;
name: string;
callback: () => void;
}
export declare class RcsbFvUI extends React.Component<RcsbFvUIConfigInterface, RcsbFvUIStateInterface> {
private tooltipDiv;
private refDiv;
private collapseRef;
private expandRef;
private static readonly ICON_PROPS;
/**UI config Object*/
private readonly config;
private subscription;
private hideTask;
readonly state: RcsbFvUIStateInterface;
render(): ReactNode;
componentDidMount(): void;
componentWillUnmount(): void;
private subscribe;
private boardHover;
private displayUI;
private hideUI;
buildButton(buttonConfig: RcsbFvUIButtonInterface): ReactNode;
private changeState;
/***************
** UI methods **
****************/
private zoomIn;
private zoomOut;
private move;
/**Force all board track annotation cells to set xScale. Called when a new track has been added*/
private setScale;
/**Update d3 xScale domain
* @param domainData new xScale domain
* */
private setDomain;
}