UNPKG

@patternfly/react-charts

Version:

This library provides a set of React chart components for use with the PatternFly reference implementation.

235 lines 11.4 kB
import * as React from 'react'; import { OriginType } from 'victory-core'; import { VictoryVoronoiContainerProps } from 'victory-voronoi-container'; import { ChartThemeDefinition } from '../ChartTheme'; export declare enum ChartVoronoiDimension { x = "x", y = "y" } /** * ChartVoronoiContainer adds the ability to associate a mouse position with the data point(s) closest to it. When this * container is added to a chart, changes in mouse position will add the active prop to data and label components * closest to the current mouse position. The closeness of data points to a given position is determined by calculating * a voronoi diagram based on the data of every child VictoryVoronoiContainer renders. This container is useful for * adding hover interactions, like tooltips, to small data points, or charts with dense or overlapping data. * * See https://github.com/FormidableLabs/victory/blob/main/packages/victory-voronoi-container/src/index.d.ts */ export interface ChartVoronoiContainerProps extends VictoryVoronoiContainerProps { /** * When the activateData prop is set to true, the active prop will be set to true on all * data components within a voronoi area. When this prop is set to false, the onActivated * and onDeactivated callbacks will still fire, but no mutations to data components will * occur via Victory’s event system. */ activateData?: boolean; /** * When the activateLabels prop is set to true, the active prop will be set to true on all * labels corresponding to points within a voronoi area. When this prop is set to false, * the onActivated and onDeactivated callbacks will still fire, but no mutations to label * components will occur via Victory’s event system. Labels defined directly on * ChartVoronoiContainer via the labels prop will still appear when this prop is set to false. */ activateLabels?: boolean; /** * he children prop specifies the child or children that will be rendered within the container. It will be set by * whatever Victory component is rendering the container. * * Note: This prop should not be set manually. * * @private * @hide */ children?: React.ReactElement | React.ReactElement[]; /** * The className prop specifies a className that will be applied to the outer-most div rendered by the container */ className?: string; /** * The containerId prop may be used to set a deterministic id for the container. When a containerId is not manually * set, a unique id will be generated. It is usually necessary to set deterministic ids for automated testing. */ containerId?: number | string; /** * The constrainToVisibleArea prop determines whether to coerce tooltips so that they fit within the visible area of * the chart. When this prop is set to true, tooltip pointers will still point to the correct data point, but the * center of the tooltip will be shifted to fit within the overall width and height of the svg Victory renders. */ constrainToVisibleArea?: boolean; /** * The desc prop specifies the description of the chart/SVG to assist with * accessibility for screen readers. The more info about the chart provided in * the description, the more usable it will be for people using screen readers. * This prop defaults to an empty string. * * @example "Golden retreivers make up 30%, Labs make up 25%, and other dog breeds are * not represented above 5% each." */ desc?: string; /** * When the disable prop is set to true, ChartVoronoiContainer events will not fire. */ disable?: boolean; /** * The events prop attaches arbitrary event handlers to the container component. * Event handlers passed from other Victory components are called with their * corresponding events as well as scale, style, width, height, and data when * applicable. Use the invert method to convert event coordinate information to * data. `scale.x.invert(evt.offsetX)`. * * @example {onClick: (evt) => alert(`x: ${evt.clientX}, y: ${evt.clientY}`)} */ events?: React.DOMAttributes<any>; /** * The height props specifies the height the svg viewBox of the container. * This value should be given as a number of pixels. If no height prop * is given, the height prop from the child component passed will be used. */ height?: number; /** * When a labels prop is provided to ChartVoronoiContainer it will render a label component * rather than activating labels on the child components it renders. This is useful for * creating multi- point tooltips. This prop should be given as a function which will be called * once for each active point. The labels function will be called with the arguments point, * index, and points, where point refers to a single active point, index refers to the position * of that point in the array of active points, and points is an array of all active points. */ labels?: (point: any, index: number, points: any[]) => string; /** * The labelComponent prop specified the component that will be rendered when labels are defined * on ChartVoronoiContainer. If the labels prop is omitted, no label component will be rendered. */ labelComponent?: React.ReactElement<any>; /** * When the mouseFollowTooltip prop is set on ChartVoronoiContainer, The position of the center of the tooltip * follows the position of the mouse. */ mouseFollowTooltips?: boolean; /** * The name prop is used to reference a component instance when defining shared events. */ name?: string; /** * The onActivated prop accepts a function to be called whenever new data points are activated. * The function is called with the parameters points (an array of active data objects) and props * (the props used by ChartVoronoiContainer). * * @propType Function */ onActivated?: (points: any[], props: VictoryVoronoiContainerProps) => void; /** * The onDeactivated prop accepts a function to be called whenever points are deactivated. The * function is called with the parameters points (an array of the newly-deactivated data objects) * and props (the props used by ChartVoronoiContainer). * * @propType Function */ onDeactivated?: (points: any[], props: VictoryVoronoiContainerProps) => void; /** * Victory components will pass an origin prop is to define the center point in svg coordinates for polar charts. * * Note: It will not typically be necessary to set an origin prop manually * * @propType { x: number, y: number } */ origin?: OriginType; /** * Victory components can pass a boolean polar prop to specify whether a label is part of a polar chart. * * Note: This prop should not be set manually. * * @private * @hide */ polar?: boolean; /** * The portalComponent prop takes a component instance which will be used as a container for children that should * render inside a top-level container so that they will always appear above other elements. ChartTooltip renders * inside a portal so that tooltips always render above data. VictoryPortal is used to define elements that should * render in the portal container. This prop defaults to Portal, and should only be overridden when changing rendered * elements from SVG to another type of element e.g., react-native-svg elements. */ portalComponent?: React.ReactElement; /** * The portalZIndex prop determines the z-index of the div enclosing the portal component. If a portalZIndex prop is * not set, the z-index of the enclosing div will be set to 99. */ portalZIndex?: number; /** * When the radius prop is set, the voronoi areas associated with each data point will be no larger * than the given radius. This prop should be given as a number. */ radius?: number; /** * The responsive prop specifies whether the rendered container should be a responsive container * with a viewBox attribute, or a static container with absolute width and height. * * @default true */ responsive?: boolean; /** * The style prop specifies styles for your ChartContainer. Any valid inline style properties * will be applied. Height and width should be specified via the height * and width props, as they are used to calculate the alignment of * components within the container. Styles from the child component will * also be passed, if any exist. * * @example {border: 1px solid red} */ style?: React.CSSProperties; /** * The tabIndex prop specifies the description of the chart/SVG to assist with accessibility. */ tabIndex?: number; /** * The theme prop specifies a theme to use for determining styles and layout properties for a component. Any styles or * props defined in theme may be overwritten by props specified on the component instance. * * @propType object */ theme?: ChartThemeDefinition; /** * Specifies the theme color. Valid values are 'blue', 'green', 'multi', etc. * * Note: Not compatible with theme prop * * @example themeColor={ChartThemeColor.blue} */ themeColor?: string; /** * Specifies the theme variant. Valid values are 'dark' or 'light' * * Note: Not compatible with theme prop * * @deprecated Use PatternFly's pf-theme-dark CSS selector */ themeVariant?: string; /** * The voronoiBlacklist prop is used to specify a list of components to ignore when calculating a * shared voronoi diagram. Components with a name prop matching an element in the voronoiBlacklist * array will be ignored by ChartVoronoiContainer. Ignored components will never be flagged as * active, and will not contribute date to shared tooltips or labels. */ voronoiBlacklist?: string[]; /** * When the voronoiDimension prop is set, voronoi selection will only take the given dimension into * account. For example, when dimension is set to “x”, all data points matching a particular x mouse * position will be activated regardless of y value. When this prop is not given, voronoi selection * is determined by both x any y values. */ voronoiDimension?: 'x' | 'y'; /** * When the voronoiPadding prop is given, the area of the chart that will trigger voronoi events is * reduced by the given padding on every side. By default, no padding is applied, and the entire range * of a given chart may trigger voronoi events. This prop should be given as a number. */ voronoiPadding?: number; /** * The width props specifies the width of the svg viewBox of the container * This value should be given as a number of pixels. If no width prop * is given, the width prop from the child component passed will be used. */ width?: number; } export declare const ChartVoronoiContainer: React.FunctionComponent<ChartVoronoiContainerProps>; //# sourceMappingURL=ChartVoronoiContainer.d.ts.map