import * as React from 'react'; import { Box, Dimensions, SvgDefsAndFill, MotionProps, ValueFormat, PropertyAccessor } from '@nivo/core'; import { PartialTheme } from '@nivo/theming'; import { Arc, ArcGenerator, ArcTransitionMode, ArcLabelsProps, ArcLinkLabelsProps } from '@nivo/arcs'; import { OrdinalColorScaleConfig, InheritedColorConfig } from '@nivo/colors'; import { LegendProps } from '@nivo/legends'; export type DatumId = string | number; export interface DefaultRawDatum { id: DatumId; value: number; } export interface MayHaveLabel extends Object { label?: string | number; } export interface PieArc extends Arc { index: number; angle: number; angleDeg: number; thickness: number; padAngle: number; } export interface ComputedDatum { id: DatumId; label: DatumId; value: number; formattedValue: string; color: string; fill?: string; data: RawDatum; arc: PieArc; hidden: boolean; } export interface DataProps { data: readonly RawDatum[]; } export interface PieTooltipProps { datum: ComputedDatum; } export type MouseEventHandler = (datum: ComputedDatum, event: React.MouseEvent) => void; export type PieLayerId = 'arcLinkLabels' | 'arcs' | 'arcLabels' | 'legends'; export interface PieCustomLayerProps { dataWithArc: readonly ComputedDatum[]; centerX: number; centerY: number; radius: number; innerRadius: number; arcGenerator: ArcGenerator; } export type PieCustomLayer = React.FC>; export type PieLayer = PieLayerId | PieCustomLayer; export type CommonPieProps = { id: PropertyAccessor; value: PropertyAccessor; valueFormat?: ValueFormat; margin: Box; sortByValue: boolean; innerRadius: number; padAngle: number; cornerRadius: number; startAngle: number; endAngle: number; fit: boolean; activeInnerRadiusOffset: number; activeOuterRadiusOffset: number; colors: OrdinalColorScaleConfig, 'color' | 'fill' | 'arc'>>; theme: PartialTheme; borderWidth: number; borderColor: InheritedColorConfig>; enableArcLabels: boolean; enableArcLinkLabels: boolean; isInteractive: boolean; tooltip: React.FC>; activeId: DatumId | null; onActiveIdChange: (id: DatumId | null) => void; defaultActiveId: DatumId | null; legends: readonly LegendProps[]; forwardLegendData: (data: LegendDatum[]) => void; role?: string; renderWrapper: boolean; } & Partial>> & Partial>>; export type PieHandlers = { onClick?: MouseEventHandler; onMouseEnter?: MouseEventHandler; onMouseMove?: MouseEventHandler; onMouseLeave?: MouseEventHandler; }; export type PieSvgCustomComponents = { arcLinkLabelComponent?: ArcLinkLabelsProps>['component']; }; export interface LegendDatum { id: ComputedDatum['id']; label: ComputedDatum['label']; color: string; hidden: boolean; data: Omit, 'fill' | 'arc'>; } export type PieSvgProps = DataProps & Dimensions & Partial> & SvgDefsAndFill> & PieHandlers & { layers?: readonly PieLayer[]; animate?: boolean; motionConfig?: MotionProps['motionConfig']; transitionMode?: ArcTransitionMode; } & PieSvgCustomComponents; export type CompletePieSvgProps = DataProps & Dimensions & CommonPieProps & SvgDefsAndFill> & PieHandlers & { layers: readonly PieLayer[]; animate: boolean; motionConfig: MotionProps['motionConfig']; transitionMode: ArcTransitionMode; } & PieSvgCustomComponents; export type PieCanvasProps = DataProps & Dimensions & Partial> & Pick, 'onClick' | 'onMouseMove'> & { pixelRatio?: number; }; export type CompletePieCanvasProps = DataProps & Dimensions & CommonPieProps & Pick, 'onClick' | 'onMouseMove'> & { pixelRatio: number; }; //# sourceMappingURL=types.d.ts.map