@groww-tech/react-charts
Version:
React charts library tailored as per Groww needs
95 lines (94 loc) • 2.58 kB
TypeScript
import { MutableRefObject } from 'react';
export declare type Point = [number, number, any, OptionsType?];
export declare type OptionsType = {
highlightPoint?: boolean;
};
export declare type LinePathData = {
series: Array<Point>;
color: string;
strokeWidth: number;
key: string;
style?: React.CSSProperties;
showLastPointBlinking?: boolean;
strokeOpacity: number;
isSeriesToScale: boolean;
allowToolTip: boolean;
areaProps?: AreaProps;
hasHighlightedPoints?: boolean;
hoverExactPoint?: boolean;
hoverPointStrokeMultiplier?: number;
highlightPointStrokeMultiplier?: number;
isDraggable?: boolean;
draggableConfig?: {
fill?: string;
lineColor?: string;
negativeLineColor?: string;
toY?: boolean;
};
labelData?: {
showLabel: boolean;
labelText: string;
textSvgProps: React.SVGProps<SVGTextElement>;
rectSvgProps: React.SVGProps<SVGRectElement>;
labelRefs: {
underlyinglabelTextRef: MutableRefObject<SVGTextElement | null>;
underlyinglabelRectRef: MutableRefObject<SVGRectElement | null>;
};
labelPosition: {
x: number;
y: number;
};
};
};
export declare type AreaProps = {
toX?: number;
toY?: number;
fill: string;
opacity: number;
style?: React.CSSProperties;
};
export declare type LineGraphProps = {
linePaths: Array<LinePathData>;
width: number;
height: number;
paddingVert: number;
paddingHorz: number;
onMouseEnter?: (td: ToolTipData) => void;
onMouseLeave?: () => void;
onMouseUp?: () => void;
onMouseDown?: () => void;
toolTipLeftUpdated?: number;
toolTipTopUpdated?: number;
getTooltipUI?: (toolTipData: ToolTipData) => JSX.Element;
getDefs?: () => JSX.Element;
maxX?: number;
minX?: number;
maxY?: number;
minY?: number;
isDragAllowed?: boolean;
};
export declare type XYCoords = {
x: number;
y: number;
};
export declare type ToolTipSeriesData = {
point: Point;
tooltipLeft: number;
tooltipTop: number;
isPerfectIntersection: boolean;
intersectionPointOnLine: HoveredPointData;
dragStartPoint?: Point;
dragTooltipLeft?: number;
};
export declare type HoveredPointData = {
coords: XYCoords;
invertedValues: XYCoords;
};
export declare type ToolTipData = {
seriesData: ToolTipSeriesData[];
otherData: HoveredPointData;
};
export declare type DragData = {
startPoint: number;
endPoint?: number;
};