recharts
Version:
React charts
104 lines (103 loc) • 3.19 kB
TypeScript
/**
* @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 {};