ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
130 lines (129 loc) • 4.18 kB
TypeScript
import { Group } from "../../scene/group";
import { LegendDatum } from "../legend";
import { Observable } from "../../util/observable";
import { ChartAxis, ChartAxisDirection } from "../chartAxis";
import { Chart } from "../chart";
import { Label } from "../label";
import { PointLabelDatum } from "../../util/labelPlacement";
/**
* Processed series datum used in node selections,
* contains information used to render pie sectors, bars, markers, etc.
*/
export interface SeriesNodeDatum {
readonly series: Series;
readonly itemId?: any;
readonly datum: any;
readonly point?: {
readonly x: number;
readonly y: number;
};
}
export interface TooltipRendererParams {
readonly datum: any;
readonly title?: string;
readonly color?: string;
}
export interface CartesianTooltipRendererParams extends TooltipRendererParams {
readonly xKey: string;
readonly xValue: any;
readonly xName?: string;
readonly yKey: string;
readonly yValue: any;
readonly yName?: string;
}
export interface PolarTooltipRendererParams extends TooltipRendererParams {
readonly angleKey: string;
readonly angleValue: any;
readonly angleName?: string;
readonly radiusKey?: string;
readonly radiusValue?: any;
readonly radiusName?: string;
}
export declare class SeriesItemHighlightStyle {
fill?: string;
stroke?: string;
strokeWidth?: number;
}
export declare class SeriesHighlightStyle {
strokeWidth?: number;
dimOpacity?: number;
}
export declare class HighlightStyle {
/**
* @deprecated Use item.fill instead.
*/
fill?: string;
/**
* @deprecated Use item.stroke instead.
*/
stroke?: string;
/**
* @deprecated Use item.strokeWidth instead.
*/
strokeWidth?: number;
readonly item: SeriesItemHighlightStyle;
readonly series: SeriesHighlightStyle;
}
export declare class SeriesTooltip extends Observable {
enabled: boolean;
}
export declare abstract class Series extends Observable {
readonly id: string;
get type(): string;
readonly group: Group;
readonly pickGroup: Group;
chart?: Chart;
xAxis?: ChartAxis;
yAxis?: ChartAxis;
directions: ChartAxisDirection[];
directionKeys: {
[key in ChartAxisDirection]?: string[];
};
protected static highlightedZIndex: number;
readonly label: Label;
abstract tooltip: SeriesTooltip;
data?: any[];
visible: boolean;
showInLegend: boolean;
cursor: string;
set grouped(g: boolean);
setColors(fills: string[], strokes: string[]): void;
getKeys(direction: ChartAxisDirection): string[];
abstract getDomain(direction: ChartAxisDirection): any[];
abstract processData(): boolean;
createNodeData(): SeriesNodeDatum[];
getNodeData(): readonly SeriesNodeDatum[];
getLabelData(): readonly PointLabelDatum[];
private _nodeDataPending;
set nodeDataPending(value: boolean);
get nodeDataPending(): boolean;
scheduleNodeDate(): void;
private _updatePending;
set updatePending(value: boolean);
get updatePending(): boolean;
scheduleUpdate(): void;
abstract update(): void;
protected getOpacity(datum?: {
itemId?: any;
}): number;
protected getStrokeWidth(defaultStrokeWidth: number, datum?: {
itemId?: any;
}): number;
abstract getTooltipHtml(seriesDatum: any): string;
fireNodeClickEvent(event: MouseEvent, datum: SeriesNodeDatum): void;
/**
* @private
* Populates the given {@param data} array with the items of this series
* that should be shown in the legend. It's up to the series to determine
* what is considered an item. An item could be the series itself or some
* part of the series.
* @param data
*/
abstract listSeriesItems(data: LegendDatum[]): void;
toggleSeriesItem(itemId: any, enabled: boolean): void;
readonly highlightStyle: HighlightStyle;
onHighlightChange(): void;
readonly scheduleLayout: () => void;
readonly scheduleData: () => void;
protected fixNumericExtent(extent?: [number | Date, number | Date], type?: string): [number, number];
}