import { SyntheticEvent } from 'react'; import { IARCProps, RenderableContent } from '@adam-sv/arc'; export interface IBarChartDatum { value: number; id?: string; className?: string; data?: T; label: string; categoryIdentifier?: string; } export interface IBarChartProps extends IARCProps { axisSettings?: Partial>; minimumWidth: number; minimumHeight: number; stackedBars?: boolean; data: IBarChartDatum[]; minValue?: number; maxValue?: number; barOpts?: IBarOpts; orientation?: 'vertical' | 'horizontal'; disableMouseTracking?: boolean; customMouseOver?: (datum: IBarChartDatum) => RenderableContent; mouseOverTargetElement?: Element; displayLegend?: boolean; lineData?: IBarChartSecondaryLineData; } export interface IBarChartAxisProps { size?: number; label?: string; preventResize?: boolean; } export interface IBarOpts { minBarThickness?: number; maxBarThickness?: number; barPadding?: number; onClick?: (e: SyntheticEvent, datum: IBarChartDatum) => unknown; onMouseOver?: (e: SyntheticEvent, datum: IBarChartDatum) => unknown; onMouseOut?: (e: SyntheticEvent, datum: IBarChartDatum) => unknown; } export interface IBarChartSecondaryLineData { data: { category?: string; label: string; value: number; displayValue?: RenderableContent; }[]; textOffset?: { horizontal: number; vertical: number; }; dataPoints?: boolean; minValue: number; maxValue: number; axisSettings: IBarChartAxisProps; displayGrid?: boolean; horizontalLine?: number; }