UNPKG

@macrostrat/column-components

Version:

React rendering primitives for stratigraphic columns

71 lines (70 loc) 2.36 kB
import { Component, MouseEvent, ReactNode, RefObject } from 'react'; import { ColumnLayoutCtx, ColumnDivision } from './context'; type color = string; interface OverlayBoxProps { division: ColumnDivision; background: color; className: string; children?: ReactNode; onClick?: (evt: MouseEvent) => void; } interface DivisionEditOverlayProps { left: number; top: number; showInfoBox: boolean; onClick(ctx: { event?: MouseEvent; height: number; division?: ColumnDivision; }): void; allowEditing: boolean; renderEditorPopup(d: ColumnDivision): ReactNode; scaleToGrainsize: boolean; editingInterval: ColumnDivision; color: color; width: number; popoverWidth: number; selectedHeight: number; } interface DivisionEditOverlayState { height: number | null; hoveredDivision: ColumnDivision | null; popoverIsOpen: boolean; } export declare class DivisionEditOverlay extends Component<DivisionEditOverlayProps, DivisionEditOverlayState> { static contextType: import('react').Context<ColumnLayoutCtx<ColumnDivision>>; static defaultProps: { onHoverInterval(): void; onClick(): void; left: number; top: number; showInfoBox: boolean; allowEditing: boolean; renderEditorPopup(): null; color: string; popoverWidth: number; }; elementRef: RefObject<HTMLDivElement>; timeout: any; context: ColumnLayoutCtx<ColumnDivision>; constructor(props: DivisionEditOverlayProps); onHoverInterval(event: any): null | undefined; removeHoverBox(): null; heightForEvent(event: any): any; onEditInterval(event: any): void; onClick(event: any): void; renderCursorLine(): import('react').ReactElement<{ style: { top: number; height: number; border: string; width: number; position: string; pointerEvents: string; }; }, string | import('react').JSXElementConstructor<any>> | undefined; renderHoveredBox(): import('react').FunctionComponentElement<OverlayBoxProps> | null; closePopover(): void; render(): import('react').FunctionComponentElement<import('ui-box').BoxProps<import('react').ElementType<any, keyof import("react").JSX.IntrinsicElements>>>; } export {};