UNPKG

ag-charts-enterprise

Version:

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

161 lines (160 loc) 9.27 kB
import { type AgDrawingMode, type AgRangeAreaSeriesOptions, type AgSeriesMarkerStyle, type SelectionState, _ModuleSupport } from 'ag-charts-community'; import { ChartAxisDirection, type DomainWithMetadata, type DynamicContext } from 'ag-charts-core'; import { type RangeAreaSeriesDataAggregationFilter } from './rangeAreaAggregation'; import { type RangeAreaMarkerDatum, RangeAreaProperties } from './rangeAreaProperties'; import { type RangeAreaContext, type RangeAreaLabelDatum } from './rangeAreaUtil'; /** * Context object for efficient node datum creation. * Caches expensive-to-compute values that are reused across all datum iterations. */ interface RangeAreaSeriesNodeDatumContext extends _ModuleSupport.CartesianCreateNodeDataContext<RangeAreaMarkerDatum> { readonly yHighValues: any[]; readonly yLowValues: any[]; readonly xOffset: number; readonly xAxisRange: [number, number]; readonly dataAggregationFilter: RangeAreaSeriesDataAggregationFilter | undefined; readonly range: number; readonly labelsEnabled: boolean; readonly yLowKey: string; readonly yHighKey: string; readonly item: RangeAreaProperties['item']; readonly yDomain: any[]; readonly connectMissingData: boolean; readonly interpolation: RangeAreaProperties['interpolation']; labelData: RangeAreaLabelDatum[]; spanPoints: Array<RangeAreaSpanPointDatum[] | { skip: number; }>; } declare class RangeAreaSeriesNodeEvent<TEvent extends string = _ModuleSupport.SeriesNodeEventTypes> extends _ModuleSupport.SeriesNodeEvent<RangeAreaMarkerDatum, TEvent> { readonly xKey?: string; readonly yLowKey?: string; readonly yHighKey?: string; constructor(type: TEvent, nativeEvent: Event, datum: RangeAreaMarkerDatum, series: RangeAreaSeries, selectionState: SelectionState | undefined); } interface RangeAreaSpanPointDatum { high: _ModuleSupport.LineSpanPointDatum; low: _ModuleSupport.LineSpanPointDatum; } /** * Consolidated type interface for RangeAreaSeries. */ interface RangeAreaSeriesTypes extends _ModuleSupport.CartesianSeriesTypes { readonly node: _ModuleSupport.Marker<RangeAreaMarkerDatum>; readonly options: AgRangeAreaSeriesOptions; readonly properties: RangeAreaProperties; readonly datum: RangeAreaMarkerDatum; readonly label: RangeAreaLabelDatum; readonly context: RangeAreaContext; readonly stackContext: never; readonly createNodeDataContext: RangeAreaSeriesNodeDatumContext; } type GetMarkerStyleArg<I extends number> = Parameters<_ModuleSupport.CartesianSeries<RangeAreaSeriesTypes>['getMarkerStyle']>[I]; export declare class RangeAreaSeries extends _ModuleSupport.CartesianSeries<RangeAreaSeriesTypes> { static readonly className = "RangeAreaSeries"; static readonly type: "range-area"; properties: RangeAreaProperties; protected readonly NodeEvent: typeof RangeAreaSeriesNodeEvent; private readonly aggregationManager; private hideWithSize0; constructor(moduleCtx: DynamicContext<_ModuleSupport.ChartRegistry>); renderToOffscreenCanvas(): boolean; processData(dataController: _ModuleSupport.DataController): Promise<void>; private aggregateData; protected createBucketLookupFeature(): _ModuleSupport.BucketLookupFeature; private estimateTargetRange; /** * Creates the context object for efficient node datum creation. * Caches expensive-to-compute values that are reused across all datum iterations. */ protected createNodeDatumContext(xAxis: _ModuleSupport.ChartAxis, yAxis: _ModuleSupport.ChartAxis): RangeAreaSeriesNodeDatumContext | undefined; xCoordinateRange(xValue: any): [number, number]; yCoordinateRange(yValues: any[]): [number, number]; getSeriesDomain(direction: ChartAxisDirection): DomainWithMetadata<any>; getSeriesRange(_direction: ChartAxisDirection, visibleRange: [number, number]): [number, number]; /** * Processes a single datum and updates the context's marker, label, and span arrays. * Uses the scratch object to avoid per-iteration allocations. * * @param yHighValueOverride - Optional override for yHighValue, used in aggregation mode * when the extreme values come from different data points * @param yLowValueOverride - Optional override for yLowValue, used in aggregation mode */ private handleDatumPoint; private pushGapMarker; private hasInvalidDatumsInRange; /** * Creates or updates marker datum for a single boundary (high or low). * Supports incremental updates by reusing existing marker data objects when possible. */ private upsertMarkerDatum; protected populateNodeData(ctx: RangeAreaSeriesNodeDatumContext): void; protected finalizeNodeData(ctx: RangeAreaSeriesNodeDatumContext): void; protected initializeResult(ctx: RangeAreaSeriesNodeDatumContext): RangeAreaContext; protected assembleResult(ctx: RangeAreaSeriesNodeDatumContext, result: RangeAreaContext): RangeAreaContext; private getLowOrHighMarkerStyles; private createLabelData; protected isPathOrSelectionDirty(): boolean; protected strokewidthChange(): boolean; protected updatePathNodes(opts: { paths: _ModuleSupport.SegmentedPath[]; visible: boolean; animationEnabled: boolean; }): void; protected updatePaths(opts: { contextData: RangeAreaContext; paths: _ModuleSupport.Path[]; }): void; private updateAreaPaths; private updateFillPath; private updateStrokePath; protected resetDatumAnimation(data: _ModuleSupport.CartesianAnimationData<RangeAreaMarkerDatum, _ModuleSupport.Marker<RangeAreaMarkerDatum>, RangeAreaLabelDatum, RangeAreaContext>): void; protected updateDatumSelection(opts: { nodeData: RangeAreaMarkerDatum[]; datumSelection: _ModuleSupport.Selection<RangeAreaMarkerDatum, _ModuleSupport.Marker<RangeAreaMarkerDatum>>; }): _ModuleSupport.Selection<RangeAreaMarkerDatum, _ModuleSupport.Marker<RangeAreaMarkerDatum>>; private static computeNoStylerMarkerStyle; private static computeStylerStyle; private static applyStylerDatum; protected updateDatumStyles({ datumSelection, isHighlight, }: { datumSelection: _ModuleSupport.Selection<RangeAreaMarkerDatum, _ModuleSupport.Marker<RangeAreaMarkerDatum>>; isHighlight: boolean; }): void; protected updateDatumNodes(opts: { datumSelection: _ModuleSupport.Selection<RangeAreaMarkerDatum, _ModuleSupport.Marker<RangeAreaMarkerDatum>>; isHighlight: boolean; drawingMode: AgDrawingMode; }): void; protected updateLabelSelection(opts: { labelData: RangeAreaLabelDatum[]; labelSelection: _ModuleSupport.Selection<RangeAreaLabelDatum, _ModuleSupport.Text<RangeAreaLabelDatum>>; }): _ModuleSupport.Selection<RangeAreaLabelDatum, _ModuleSupport.Text<RangeAreaLabelDatum>>; protected updateLabelNodes(opts: { labelSelection: _ModuleSupport.Selection<RangeAreaLabelDatum, _ModuleSupport.Text<RangeAreaLabelDatum>>; isHighlight?: boolean; }): void; protected getHighlightLabelData(labelData: RangeAreaLabelDatum[], highlightedItem: RangeAreaMarkerDatum): RangeAreaLabelDatum[]; protected getHighlightData(nodeData: RangeAreaMarkerDatum[], highlightedItem: RangeAreaMarkerDatum): RangeAreaMarkerDatum[] | undefined; private getStyle; private getStylerMarkerOptions; private getStylerCouple; private makeStylerParams; private makeItemStylerParams; getTooltipContent(datumIndex: number, removeThisDatum: RangeAreaMarkerDatum | undefined): _ModuleSupport.TooltipContent | undefined; private legendItemSymbol; getLegendData(legendType: _ModuleSupport.ChartLegendType): _ModuleSupport.CategoryLegendDatum[]; protected isLabelEnabled(): boolean; protected nodeFactory(): _ModuleSupport.Marker<RangeAreaMarkerDatum>; animateEmptyUpdateReady(animationData: _ModuleSupport.CartesianAnimationData<RangeAreaMarkerDatum, _ModuleSupport.Marker<RangeAreaMarkerDatum>, RangeAreaLabelDatum, RangeAreaContext>): void; protected animateReadyResize(animationData: _ModuleSupport.CartesianAnimationData<RangeAreaMarkerDatum, _ModuleSupport.Marker<RangeAreaMarkerDatum>, RangeAreaLabelDatum, RangeAreaContext>): void; animateWaitingUpdateReady(animationData: _ModuleSupport.CartesianAnimationData<RangeAreaMarkerDatum, _ModuleSupport.Marker<RangeAreaMarkerDatum>, RangeAreaLabelDatum, RangeAreaContext>): void; getFormattedMarkerStyle(datum: RangeAreaMarkerDatum): AgSeriesMarkerStyle & { size: number; opacity?: number | undefined; }; getMarkerStyle<TParams>(marker: _ModuleSupport.SeriesMarker<TParams>, datum: GetMarkerStyleArg<1>, params?: TParams, opts?: GetMarkerStyleArg<3>, defaultOverrideStyle?: GetMarkerStyleArg<4>, inheritedStyle?: GetMarkerStyleArg<5>): ReturnType<_ModuleSupport.CartesianSeries<RangeAreaSeriesTypes>['getMarkerStyle']>; protected computeFocusBounds(opts: _ModuleSupport.PickFocusInputs): _ModuleSupport.BBox | undefined; protected isDatumEnabled(nodeData: RangeAreaMarkerDatum[], datumIndex: number): boolean; protected hasItemStylers(): boolean; } export {};