ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
136 lines (135 loc) • 4.86 kB
TypeScript
import type { DynamicContext } from 'ag-charts-core';
import { ChartUpdateType } from 'ag-charts-core';
import { FocusIndicator } from '../../dom/focusIndicator';
import type { ChartRegistry } from '../../module/moduleContext';
import { BBox } from '../../scene/bbox';
import type { TranslatableGroup } from '../../scene/group';
import { BaseManager } from '../../util/baseManager';
import type { TypedEvent } from '../../util/observable';
import type { ChartHighlight } from '../chartHighlight';
import type { ChartType } from '../chartType';
import type { ChartOverlays } from '../overlay/chartOverlays';
import { Tooltip, type TooltipContent } from '../tooltip/tooltip';
import { type PickedNode } from './pickManager';
import { type UnknownSeries } from './series';
import { type DatumIndex, type SeriesNodeDatum } from './seriesTypes';
export interface SeriesAreaChartDependencies {
hasViewportSupport(): boolean;
hasPgUpPgDownSupport(): boolean;
fireEvent<TEvent extends TypedEvent>(event: TEvent): void;
getUpdateType(): ChartUpdateType;
getTooltipContent: (series: PickedNode['series'], datumIndex: DatumIndex, removeThisDatum: SeriesNodeDatum, purpose: 'aria-label' | 'tooltip') => TooltipContent[];
chartType: ChartType;
seriesRoot: TranslatableGroup;
ctx: DynamicContext<ChartRegistry>;
tooltip: Tooltip;
highlight: ChartHighlight;
overlays: ChartOverlays;
}
export declare class SeriesAreaManager extends BaseManager {
private readonly chart;
static readonly className = "SeriesAreaManager";
readonly id: string;
private series;
private seriesRect?;
private hoverRect?;
readonly focusIndicator?: FocusIndicator;
private readonly swapChain;
private announceMode;
get bbox(): BBox;
private readonly highlight;
private readonly tooltip;
private readonly activeState;
/**
* A11y Requirements for Tooltip/Highlight (see AG-13051 for details):
*
* - When the series-area is blurred, allow the mouse to update the tooltip/highlight.
*
* - When the series-area receives a `focus` event, use `:focus-visible` to guess the input device.
* (this is decided by the browser).
*
* - For keyboard users, `focus` and `keydown` events always updates & shows the tooltip/highlight on
* the currently (or newly) focused datum.
*
* - For keyboard users, `mousemove` events update the tooltip/highlight iff `pickNode` finds a match
* for the mouse event offsets.
*/
private _device;
private setHoverDevice;
private getHoverDevice;
private readonly pickManager;
private readonly focus;
private cachedTooltipContent;
constructor(chart: SeriesAreaChartDependencies);
private initFocus;
private isState;
private isIgnoredTouch;
dataChanged(): void;
private preSceneRender;
private updateComplete;
private update;
seriesChanged(series: UnknownSeries[]): void;
private layoutComplete;
private onAnimationStart;
private onResize;
private onZoomChangeComplete;
private onContextMenu;
private onLeave;
private onWheel;
private onDragMove;
private onHover;
private onHoverLikeEvent;
private onClick;
private emitSeriesAreaHoverEvent;
private emitSeriesAreaClickEvent;
private toCanvasCoordinates;
private onFocus;
private onBlur;
private onKeyDown;
private onPage;
private onNav;
private onArrow;
private onHome;
private onEnd;
private onSubmit;
private checkSeriesNodeClick;
private handleFocusFromUserInput;
private refreshFocus;
private handleFocus;
private handleSeriesFocus;
private makeUpdateFocusParamsFromDeltas;
private handleSeriesFocusDeltas;
private handleSeriesFocusIndices;
private pickFocus;
private pickViewportFocus;
private updatePickedFocus;
private maybeAnnouncePickedFocus;
private announceDataSelectionChange;
private getDatumAriaText;
private getSelectedStateAriaText;
private clearHighlight;
private clearTooltip;
private clearAll;
private clearStaleHighlightTooltip;
private clearUnpreventable;
private clearCachedEvents;
private createHoverScheduler;
private resetHoverScheduler;
private hoverScheduler;
private handleHoverFromState;
private handleHoverHighlight;
private handleHoverTooltip;
private showTooltip;
private maybeEnterInteractiveTooltip;
private changeHighlightDatum;
private onHighlightSelectionUpdate;
private pickNodes;
private isTooltipEnabled;
private getTooltipContent;
private onLegendHover;
private onActiveLoadMemento;
onActiveClear(): void;
private refreshSetState;
private onActiveDatum;
private findPickedNodes;
}