ag-grid-enterprise
Version:
AG Grid Enterprise Features
204 lines • 8.94 kB
TypeScript
import { Group } from '../../scene/group';
import type { ChartLegendDatum } from '../legendDatum';
import type { TypedEvent } from '../../util/observable';
import { Observable } from '../../util/observable';
import type { ChartAxis } from '../chartAxis';
import type { PlacedLabel, PointLabelDatum } from '../../util/labelPlacement';
import type { SizedPoint, Point } from '../../scene/point';
import type { BBox } from '../../scene/bbox';
import { ChartAxisDirection } from '../chartAxisDirection';
import type { AgChartInteractionRange } from '../agChartOptions';
import type { DatumPropertyDefinition, ScopeProvider } from '../data/dataModel';
import { TooltipPosition } from '../tooltip/tooltip';
import type { ModuleContext } from '../../util/moduleContext';
import type { DataController } from '../data/dataController';
import type { SeriesGrouping } from './seriesStateManager';
import type { ZIndexSubOrder } from '../../scene/node';
/**
* Processed series datum used in node selections,
* contains information used to render pie sectors, bars, markers, etc.
*/
export interface SeriesNodeDatum {
readonly series: Series<any>;
readonly itemId?: any;
readonly datum: any;
readonly point?: Readonly<SizedPoint>;
nodeMidPoint?: Readonly<Point>;
}
/** Modes of matching user interactions to rendered nodes (e.g. hover or click) */
export declare enum SeriesNodePickMode {
/** Pick matches based upon pick coordinates being inside a matching shape/marker. */
EXACT_SHAPE_MATCH = 0,
/** Pick matches by nearest category/X-axis value, then distance within that category/X-value. */
NEAREST_BY_MAIN_AXIS_FIRST = 1,
/** Pick matches by nearest category value, then distance within that category. */
NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST = 2,
/** Pick matches based upon distance to ideal position */
NEAREST_NODE = 3
}
export declare type SeriesNodePickMatch = {
datum: SeriesNodeDatum;
distance: number;
};
export declare function keyProperty<K>(scope: ScopeProvider, propName: K, continuous: boolean, opts?: Partial<DatumPropertyDefinition<K>>): DatumPropertyDefinition<K>;
export declare function valueProperty<K>(scope: ScopeProvider, propName: K, continuous: boolean, opts?: Partial<DatumPropertyDefinition<K>>): DatumPropertyDefinition<K>;
export declare function rangedValueProperty<K>(scope: ScopeProvider, propName: K, opts?: Partial<DatumPropertyDefinition<K>> & {
min?: number | undefined;
max?: number | undefined;
}): DatumPropertyDefinition<K>;
export declare function accumulativeValueProperty<K>(scope: ScopeProvider, propName: K, continuous: boolean, opts?: Partial<DatumPropertyDefinition<K>>): DatumPropertyDefinition<K>;
export declare function trailingAccumulatedValueProperty<K>(scope: ScopeProvider, propName: K, continuous: boolean, opts?: Partial<DatumPropertyDefinition<K>>): DatumPropertyDefinition<K>;
export declare function groupAccumulativeValueProperty<K>(scope: ScopeProvider, propName: K, continuous: boolean, mode: 'normal' | 'trailing' | 'window' | 'window-trailing', sum: "current" | "last" | undefined, opts: Partial<DatumPropertyDefinition<K>> & {
groupId: string;
}): (import("../data/dataModel").GroupValueProcessorDefinition<any, any> | DatumPropertyDefinition<K>)[];
export declare class SeriesNodeBaseClickEvent<Datum extends {
datum: any;
}> implements TypedEvent {
readonly type: 'nodeClick' | 'nodeDoubleClick';
readonly datum: any;
readonly event: Event;
readonly seriesId: string;
constructor(nativeEvent: Event, datum: Datum, series: Series);
}
export declare class SeriesNodeClickEvent<Datum extends {
datum: any;
}> extends SeriesNodeBaseClickEvent<Datum> {
}
export declare class SeriesNodeDoubleClickEvent<Datum extends {
datum: any;
}> extends SeriesNodeBaseClickEvent<Datum> {
readonly type = "nodeDoubleClick";
}
export declare class SeriesItemHighlightStyle {
fill?: string;
fillOpacity?: number;
stroke?: string;
strokeWidth?: number;
}
declare class SeriesHighlightStyle {
strokeWidth?: number;
dimOpacity?: number;
enabled?: boolean;
}
declare class TextHighlightStyle {
color?: string;
}
export declare class HighlightStyle {
readonly item: SeriesItemHighlightStyle;
readonly series: SeriesHighlightStyle;
readonly text: TextHighlightStyle;
}
export declare class SeriesTooltip {
enabled: boolean;
showArrow?: boolean;
interaction?: SeriesTooltipInteraction;
readonly position: TooltipPosition;
}
export declare class SeriesTooltipInteraction {
enabled: boolean;
}
export declare type SeriesNodeDataContext<S = SeriesNodeDatum, L = S> = {
itemId: string;
nodeData: S[];
labelData: L[];
};
export declare abstract class Series<C extends SeriesNodeDataContext = SeriesNodeDataContext> extends Observable {
protected static readonly highlightedZIndex = 1000000000000;
readonly id: string;
get type(): string;
readonly rootGroup: Group;
readonly contentGroup: Group;
readonly highlightGroup: Group;
readonly highlightNode: Group;
readonly highlightLabel: Group;
readonly labelGroup?: Group;
chart?: {
mode: 'standalone' | 'integrated';
debug: boolean;
placeLabels(): Map<Series<any>, PlacedLabel[]>;
getSeriesRect(): Readonly<BBox> | undefined;
};
axes: Record<ChartAxisDirection, ChartAxis | undefined>;
directions: ChartAxisDirection[];
private directionKeys;
private directionNames;
protected nodeDataRefresh: boolean;
abstract tooltip: SeriesTooltip;
protected _data?: any[];
set data(input: any[] | undefined);
get data(): any[] | undefined;
hasData(): boolean | undefined;
protected _visible: boolean;
set visible(value: boolean);
get visible(): boolean;
showInLegend: boolean;
pickModes: SeriesNodePickMode[];
cursor: string;
nodeClickRange: AgChartInteractionRange;
seriesGrouping?: SeriesGrouping;
private onSeriesGroupingChange;
getBandScalePadding(): {
inner: number;
outer: number;
};
_declarationOrder: number;
protected readonly ctx: ModuleContext;
constructor(seriesOpts: {
moduleCtx: ModuleContext;
useSeriesGroupLayer?: boolean;
useLabelLayer?: boolean;
pickModes?: SeriesNodePickMode[];
contentGroupVirtual?: boolean;
directionKeys?: {
[key in ChartAxisDirection]?: string[];
};
directionNames?: {
[key in ChartAxisDirection]?: string[];
};
});
getGroupZIndexSubOrder(type: 'data' | 'labels' | 'highlight' | 'path' | 'marker' | 'paths', subIndex?: number): ZIndexSubOrder;
addChartEventListeners(): void;
destroy(): void;
private getDirectionValues;
getKeys(direction: ChartAxisDirection): string[];
getNames(direction: ChartAxisDirection): (string | undefined)[];
protected resolveKeyDirection(direction: ChartAxisDirection): ChartAxisDirection;
abstract getDomain(direction: ChartAxisDirection): any[];
abstract processData(dataController: DataController): Promise<void>;
abstract createNodeData(): Promise<C[]>;
markNodeDataDirty(): void;
visibleChanged(): void;
abstract update(opts: {
seriesRect?: BBox;
}): Promise<void>;
protected getOpacity(datum?: {
itemId?: any;
}): number;
protected getStrokeWidth(defaultStrokeWidth: number, datum?: {
itemId?: any;
}): number;
protected isItemIdHighlighted(datum?: {
itemId?: any;
}): 'highlighted' | 'other-highlighted' | 'peer-highlighted' | 'no-highlight';
abstract getTooltipHtml(seriesDatum: any): string;
pickNode(point: Point, limitPickModes?: SeriesNodePickMode[]): {
pickMode: SeriesNodePickMode;
match: SeriesNodeDatum;
distance: number;
} | undefined;
protected pickNodeExactShape(point: Point): SeriesNodePickMatch | undefined;
protected pickNodeClosestDatum(_point: Point): SeriesNodePickMatch | undefined;
protected pickNodeMainAxisFirst(_point: Point, _requireCategoryAxis: boolean): SeriesNodePickMatch | undefined;
abstract getLabelData(): PointLabelDatum[];
fireNodeClickEvent(event: Event, _datum: C['nodeData'][number]): void;
fireNodeDoubleClickEvent(event: Event, _datum: C['nodeData'][number]): void;
protected getNodeClickEvent(event: Event, datum: SeriesNodeDatum): SeriesNodeClickEvent<any>;
protected getNodeDoubleClickEvent(event: Event, datum: SeriesNodeDatum): SeriesNodeDoubleClickEvent<any>;
abstract getLegendData(): ChartLegendDatum[];
protected toggleSeriesItem(_itemId: any, enabled: boolean): void;
isEnabled(): boolean;
readonly highlightStyle: HighlightStyle;
protected fixNumericExtent(extent?: [number | Date, number | Date], axis?: ChartAxis): number[];
}
export {};
//# sourceMappingURL=series.d.ts.map