@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
49 lines (48 loc) • 1.62 kB
TypeScript
import { ScaleContinuousNumeric } from 'd3-scale';
import { default as React } from 'react';
type HeightRange = number;
type ColumnScale = ScaleContinuousNumeric<HeightRange, number> | any;
type ColumnScaleClamped = ScaleContinuousNumeric<number, number>;
export declare interface ColumnDivision {
section_id: string;
id: number;
surface: number;
bottom: number;
top: number;
flooding_surface_order?: number;
grainsize?: string;
covered?: boolean;
definite_boundary?: boolean;
facies?: string;
}
declare enum ColumnAxisType {
AGE = "age",
HEIGHT = "height",
DEPTH = "depth",
ORDINAL = "ordinal"
}
export interface ColumnCtx<T extends ColumnDivision> {
divisions: T[];
scaleClamped: ColumnScaleClamped;
pixelsPerMeter: number;
scale: ColumnScale;
axisType?: ColumnAxisType;
pixelHeight?: number;
zoom: number;
}
export declare const ColumnContext: React.Context<ColumnCtx<ColumnDivision>>;
export interface ColumnProviderProps<T extends ColumnDivision> {
pixelsPerMeter?: number;
divisions: T[];
range?: HeightRange | any;
height?: number;
zoom?: number;
width?: number;
axisType?: ColumnAxisType;
children?: any;
scale?: ColumnScale;
}
declare function ColumnProvider<T extends ColumnDivision>(props: ColumnProviderProps<T>): React.FunctionComponentElement<React.ProviderProps<ColumnCtx<ColumnDivision>>>;
declare const useColumn: () => ColumnCtx<ColumnDivision>;
declare const useColumnDivisions: () => ColumnDivision[];
export { ColumnProvider, ColumnAxisType, useColumnDivisions, useColumn };