UNPKG

recharts

Version:
104 lines (103 loc) 3.19 kB
/** * @fileOverview Render a group of error bar */ import * as React from 'react'; import { SVGProps } from 'react'; import { AnimationTiming, DataKey } from '../util/types'; import { BarRectangleItem } from './Bar'; import { LinePointItem } from './Line'; import { ScatterPointItem } from './Scatter'; import { ZIndexable } from '../zIndex/ZIndexLayer'; export interface ErrorBarDataItem { x: number | undefined; y: number | undefined; value: number; errorVal?: number[] | number; } /** * So usually the direction is decided by the chart layout. * Horizontal layout means error bars are vertical means direction=y * Vertical layout means error bars are horizontal means direction=x * * Except! In Scatter chart, error bars can go both ways. * * So this property is only ever used in Scatter chart, and ignored elsewhere. */ export type ErrorBarDirection = 'x' | 'y'; export type ErrorBarDataPointFormatter<T extends BarRectangleItem | LinePointItem | ScatterPointItem> = (entry: T, dataKey: DataKey<any>, direction: ErrorBarDirection) => ErrorBarDataItem; /** * External ErrorBar props, visible for users of the library */ interface ErrorBarProps extends ZIndexable { /** * Decides how to extract the value of this ErrorBar from the data: * - `string`: the name of the field in the data object; * - `number`: the index of the field in the data; * - `function`: a function that receives the data object and returns the value of this ErrorBar. * * The error values can be a single value for symmetric error bars; * or an array of a lower and upper error value for asymmetric error bars. */ dataKey: DataKey<any>; /** * Width of the error bar ends * * @defaultValue 5 */ width?: number; /** * Direction of the error bar. Usually determined by chart layout, except in Scatter chart. * In Scatter chart, "x" means horizontal error bars, "y" means vertical error bars. */ direction?: ErrorBarDirection; /** * @defaultValue true */ isAnimationActive?: boolean; /** * @defaultValue 0 */ animationBegin?: number; /** * @defaultValue 400 */ animationDuration?: number; /** * @defaultValue ease-in-out */ animationEasing?: AnimationTiming; /** * The width of the stroke */ strokeWidth?: number | string; /** * The stroke color. If "none", no line will be drawn. * * @defaultValue black */ stroke?: string; /** * @defaultValue 400 */ zIndex?: number; } export type Props = SVGProps<SVGLineElement> & ErrorBarProps; export declare const errorBarDefaultProps: { readonly stroke: "black"; readonly strokeWidth: 1.5; readonly width: 5; readonly offset: 0; readonly isAnimationActive: true; readonly animationBegin: 0; readonly animationDuration: 400; readonly animationEasing: "ease-in-out"; readonly zIndex: 400; }; /** * @consumes ErrorBarContext */ export declare function ErrorBar(outsideProps: Props): React.JSX.Element; export declare namespace ErrorBar { var displayName: string; } export {};