ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
76 lines (75 loc) • 2.69 kB
TypeScript
import type { ChartAxisDirection, EventEmitter } from 'ag-charts-core';
import type { EventsHubMap } from '../../core/eventsHub';
import type { ModuleMap } from '../../module/moduleMap';
import type { BBox } from '../../scene/bbox';
import type { DatumIndexType, ISeries, ISeriesProperties } from '../series/seriesTypes';
import type { TooltipContent } from '../tooltip/tooltip';
import type { HighlightManager } from './highlightManager';
import type { TooltipManager } from './tooltipManager';
import type { ZoomManager } from './zoomManager';
type GroupId = string | symbol;
/** Breaks circular dependencies which occur when importing ChartAxis. */
export type SyncAxisLike = {
boundSeries: ISeries<any, any, any>[];
direction: ChartAxisDirection;
reverse?: boolean;
nice: boolean;
min?: number;
max?: number;
};
export type SyncStatus = 'init' | 'domains-calculated' | 'ready';
/** Breaks circular dependencies which occur when importing Chart. */
export type SyncChartLike = {
id: string;
axes: SyncAxisLike[];
series: ISeries<any, any, any>[];
syncStatus: SyncStatus;
modulesManager: ModuleMap;
seriesAreaBoundingBox: BBox;
tooltip: {
enabled: boolean;
};
ctx: {
eventsHub: EventEmitter<EventsHubMap>;
highlightManager: HighlightManager;
tooltipManager: TooltipManager;
zoomManager?: ZoomManager;
};
getTooltipContent(series: ISeries<DatumIndexType, unknown, ISeriesProperties>, datumIndex: unknown, removeThisDatum: unknown, purpose: 'aria-label' | 'tooltip'): TooltipContent[];
onSyncActiveClear(): void;
};
type ChartDomainState = {
[id: string]: Record<string, unknown[]>;
};
export type SyncDerivedDomain = {
derived: unknown[];
sources: ChartDomainState;
dirty: boolean;
};
export type SyncGroupState = {
members: Set<SyncChartLike>;
domains?: {
[key in 'x' | 'y']?: SyncDerivedDomain;
};
domainsById?: {
[key: string]: SyncDerivedDomain;
};
domainsByPosition?: {
[key: string]: SyncDerivedDomain;
};
};
export declare class SyncManager {
protected chart: SyncChartLike;
private static readonly chartsGroups;
private static readonly DEFAULT_GROUP;
constructor(chart: SyncChartLike);
subscribe(groupId?: GroupId): this;
unsubscribe(groupId?: GroupId): this;
getChart(): SyncChartLike;
getGroupState(groupId?: GroupId): SyncGroupState | undefined;
getGroupMembers(groupId?: GroupId): SyncChartLike[];
getGroupSiblings(groupId?: GroupId): SyncChartLike[];
getGroupSyncMode(groupId?: GroupId): "multi-series" | "single-series";
private get;
}
export {};