import { AriaAttributes, MouseEvent, FunctionComponent } from 'react'; import { AnimatedProps } from '@react-spring/web'; import { Box, Dimensions, MotionProps, PropertyAccessor, ValueFormat } from '@nivo/core'; import { PartialTheme, Theme } from '@nivo/theming'; import { AxisProps, CanvasAxisProps } from '@nivo/axes'; import { InheritedColorConfig, ContinuousColorScaleConfig } from '@nivo/colors'; import { AnchoredContinuousColorsLegendProps } from '@nivo/legends'; import { AnnotationMatcher } from '@nivo/annotations'; export interface HeatMapDatum { x: string | number; y?: number | null | undefined; } export interface DefaultHeatMapDatum { x: string; y?: number | null | undefined; } export type HeatMapSerie = { id: string; data: Datum[]; } & ExtraProps; export interface ComputedCell { id: string; serieId: string; value: number | null; formattedValue: string | null; data: Datum; x: number; y: number; width: number; height: number; color: string; opacity: number; borderColor: string; label: string; labelTextColor: string; } export interface CellAnimatedProps { x: number; y: number; width: number; height: number; scale: number; color: string; opacity: number; borderColor: string; labelTextColor: string; } export interface HeatMapDataProps { data: HeatMapSerie[]; } export interface SizeVariationConfig { values?: [min: number, max: number]; sizes: [min: number, max: number]; } export type LayerId = 'grid' | 'axes' | 'cells' | 'legends' | 'annotations'; export interface CustomLayerProps { cells: ComputedCell[]; activeCell: ComputedCell | null; setActiveCell: (cell: ComputedCell | null) => void; } export type CustomLayer = FunctionComponent>; export type CustomCanvasLayer = (ctx: CanvasRenderingContext2D, props: CustomLayerProps) => void; export interface TooltipProps { cell: ComputedCell; } export type TooltipComponent = FunctionComponent>; export interface CellComponentProps { cell: ComputedCell; borderWidth: number; borderRadius: number; animatedProps: AnimatedProps; onMouseEnter?: (cell: ComputedCell) => (event: MouseEvent) => void; onMouseMove?: (cell: ComputedCell) => (event: MouseEvent) => void; onMouseLeave?: (cell: ComputedCell) => (event: MouseEvent) => void; onClick?: (cell: ComputedCell) => (event: MouseEvent) => void; enableLabels: boolean; } export type CellComponent = FunctionComponent>; export interface CellCanvasRendererProps { cell: ComputedCell; borderWidth: number; enableLabels: boolean; theme: Theme; } export type CellCanvasRenderer = (ctx: CanvasRenderingContext2D, props: CellCanvasRendererProps) => void; export type CellShape = 'rect' | 'circle'; export type HeatMapCommonProps = { valueFormat: ValueFormat; margin: Box; forceSquare: boolean; sizeVariation: false | SizeVariationConfig; xInnerPadding: number; xOuterPadding: number; yInnerPadding: number; yOuterPadding: number; opacity: number; activeOpacity: number; inactiveOpacity: number; borderWidth: number; borderColor: InheritedColorConfig, 'borderColor'>>; enableGridX: boolean; enableGridY: boolean; theme: PartialTheme; colors: ContinuousColorScaleConfig | ((cell: Omit, 'color' | 'opacity' | 'borderColor' | 'labelTextColor'>) => string); emptyColor: string; enableLabels: boolean; label: PropertyAccessor, 'label' | 'color' | 'opacity' | 'borderColor' | 'labelTextColor'>, string>; labelTextColor: InheritedColorConfig, 'labelTextColor'>>; legends: Omit[]; annotations: AnnotationMatcher>[]; isInteractive: boolean; hoverTarget: 'cell' | 'row' | 'column' | 'rowColumn'; tooltip: TooltipComponent; onClick: (cell: ComputedCell, event: MouseEvent) => void; renderWrapper: boolean; role: string; ariaLabel: AriaAttributes['aria-label']; ariaLabelledBy: AriaAttributes['aria-labelledby']; ariaDescribedBy: AriaAttributes['aria-describedby']; } & Required; export type HeatMapSvgProps = Partial> & HeatMapDataProps & Dimensions & Partial<{ axisTop: AxisProps | null; axisRight: AxisProps | null; axisBottom: AxisProps | null; axisLeft: AxisProps | null; borderRadius: number; layers: (LayerId | CustomLayer)[]; cellComponent: CellShape | CellComponent; onMouseEnter: (cell: ComputedCell, event: MouseEvent) => void; onMouseMove: (cell: ComputedCell, event: MouseEvent) => void; onMouseLeave: (cell: ComputedCell, event: MouseEvent) => void; }>; export type HeatMapCanvasProps = Partial> & HeatMapDataProps & Dimensions & Partial<{ axisTop: CanvasAxisProps | null; axisRight: CanvasAxisProps | null; axisBottom: CanvasAxisProps | null; axisLeft: CanvasAxisProps | null; layers: (LayerId | CustomCanvasLayer)[]; renderCell: CellShape | CellCanvasRenderer; pixelRatio: number; }>; //# sourceMappingURL=types.d.ts.map