UNPKG

ag-charts-community

Version:

Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue

138 lines (137 loc) 4.92 kB
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 { ChartMode } from '../chartMode'; import type { ChartType } from '../chartType'; import type { Keyboard } from '../keyboard'; 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 { DatumIndexType } from './seriesTypes'; export interface SeriesAreaChartDependencies { hasViewportSupport(): boolean; hasPgUpPgDownSupport(): boolean; fireEvent<TEvent extends TypedEvent>(event: TEvent): void; getUpdateType(): ChartUpdateType; getTooltipContent: <DatumIndex extends DatumIndexType>(series: PickedNode['series'], datumIndex: DatumIndex, removeThisDatum: unknown, purpose: 'aria-label' | 'tooltip') => TooltipContent[]; chartType: ChartType; seriesRoot: TranslatableGroup; ctx: DynamicContext<ChartRegistry>; tooltip: Tooltip; highlight: ChartHighlight; keyboard: Keyboard; overlays: ChartOverlays; mode: ChartMode; } 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 getDatumAriaText; 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; }