@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
71 lines (70 loc) • 2.36 kB
TypeScript
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 {};