import * as React from 'react'; import { Box, Dimensions, Colors, MotionProps } from '@nivo/core'; import { PartialTheme } from '@nivo/theming'; import { InheritedColorConfig } from '@nivo/colors'; import { ScaleLinear } from '@nivo/scales'; import { SpringValues } from '@react-spring/web'; export type DatumId = string | number; export type DatumValue = number; export type WithDatumId = R & { id: DatumId; }; type Point = { x: number; y: number; }; export interface Datum { id: DatumId; title?: React.ReactNode; ranges: number[]; measures: number[]; markers?: number[]; } export type EnhancedDatum = Datum & { scale: ScaleLinear; }; export interface ComputedRangeDatum { index: number; v0: number; v1: number; color: string; } export interface ComputedMarkersDatum { index: number; value: number; color: string; } export type MouseEventHandler = (datum: D, event: React.MouseEvent) => void; export type CommonBulletProps = Dimensions & { margin: Box; layout: 'horizontal' | 'vertical'; reverse: boolean; spacing: number; minValue: 'auto' | number; maxValue: 'auto' | number; titlePosition: 'before' | 'after'; titleAlign: 'start' | 'middle' | 'end'; titleOffsetX: number; titleOffsetY: number; titleRotation: number; tooltip: React.ComponentType; rangeBorderColor: InheritedColorConfig; rangeBorderWidth: number; rangeComponent: React.ComponentType; rangeColors: Colors; measureBorderColor: InheritedColorConfig; measureBorderWidth: number; measureComponent: React.ComponentType; measureColors: Colors; measureSize: number; markerComponent: React.ComponentType; markerColors: Colors; markerSize: number; axisPosition: 'before' | 'after'; theme: PartialTheme; isInteractive: boolean; role: string; }; export type BulletHandlers = { onRangeClick?: MouseEventHandler, SVGRectElement>; onMeasureClick?: MouseEventHandler, SVGRectElement>; onMarkerClick?: MouseEventHandler, SVGLineElement>; }; export type BulletSvgProps = Partial & Dimensions & BulletHandlers & MotionProps & { data: Datum[]; }; type MouseEventWithDatum = (datum: D, event: React.MouseEvent) => void; export type BulletRectComputedRect = Point & Dimensions & { data: ComputedRangeDatum; }; export type BulletRectAnimatedProps = Point & Dimensions & Pick; export type BulletRectsItemProps = Pick & Point & Dimensions & { animatedProps: SpringValues; borderColor: string; borderWidth: number; color: string; data: ComputedRangeDatum; index: number; onMouseMove: BulletRectsProps['onMouseEnter']; }; export type BulletMarkersItemProps = Pick & Point & { animatedProps: SpringValues; size: number; rotation: number; color: string; data: { index: number; value: number; color: string; }; onMouseMove: BulletMarkersProps['onMouseEnter']; }; export type BulletRectsProps = Pick & Dimensions & Point & { animatedProps?: SpringValues<{ measuresY: number; transform: string; }>; borderColor: InheritedColorConfig; borderWidth: number; scale: ScaleLinear; data: ComputedRangeDatum[]; component: CommonBulletProps['rangeComponent']; onMouseEnter: MouseEventWithDatum; onMouseLeave: MouseEventWithDatum; onClick: MouseEventWithDatum; }; export type Position = Point & { size: number; rotation: number; }; export type MarkerWithPosition = ComputedMarkersDatum & { position: Position; }; export type PositionWithColor = { color: string; transform: string; x: number; y1: number; y2: number; }; export type BulletMarkersProps = Pick & Pick & { scale: ScaleLinear; markerSize: number; markers: ComputedMarkersDatum[]; component: CommonBulletProps['markerComponent']; onMouseEnter: MouseEventWithDatum; onMouseLeave: MouseEventWithDatum; onClick: MouseEventWithDatum; }; export type BulletItemProps = Omit & BulletHandlers & EnhancedDatum & MotionProps & Point & { measureHeight: number; markerHeight: number; }; export interface BulletTooltipProps { v0: number; v1?: number; color: string; } export {}; //# sourceMappingURL=types.d.ts.map