scichart
Version:
Fast WebGL JavaScript Charting Library and Framework
212 lines (211 loc) • 9.14 kB
TypeScript
import { TAnimationDefinition, TDataLabelProviderDefinition, TSeriesDefinition } from "../../../Builder/buildSeries";
import { SeriesAnimationFiniteStateMachine } from "../../../Core/Animations/AnimationFiniteStateMachine";
import { ESeriesType } from "../../../types/SeriesType";
import { SCRTDoubleVector, TSciChart } from "../../../types/TSciChart";
import { WebGlRenderContext2D } from "../../Drawing/WebGlRenderContext2D";
import { SeriesInfo } from "../../Model/ChartData/SeriesInfo";
import { IDataSeries } from "../../Model/IDataSeries";
import { IPointSeries } from "../../Model/PointSeries/IPointSeries";
import { EResamplingMode } from "../../Numerics/Resamplers/ResamplingMode";
import { ResamplingParams } from "../../Numerics/Resamplers/ResamplingParams";
import { RenderPassData } from "../../Services/RenderPassData";
import { AxisCore } from "../Axis/AxisCore";
import { SciChartSurface } from "../SciChartSurface";
import { SeriesAnimation } from "./Animations/SeriesAnimation";
import { BaseRenderableSeries } from "./BaseRenderableSeries";
import { BaseStackedCollection } from "./BaseStackedCollection";
import { BaseDataLabelProvider } from "./DataLabels/BaseDataLabelProvider";
import { HitTestInfo } from "./HitTest/HitTestInfo";
import { IHitTestProvider } from "./HitTest/IHitTestProvider";
import { TSeriesHoverChangedCallback, TSeriesSelectionChangedCallback, TSeriesVisibleChangedCallback } from "./IBaseRenderableSeriesOptions";
import { RolloverModifierRenderableSeriesProps } from "./RolloverModifier/RolloverModifierRenderableSeriesProps";
/**
* Options to pass to the {@link BasedStackedRenderableSeries} constructor
*/
export interface IBasedStackedRenderableSeriesOptions {
/**
* A unique Id for the {@link IRenderableSeries}
*/
id?: string;
/**
* The {@link IDataSeries | DataSeries} which provides a datasource for this {@link IRenderableSeries} to draw
*/
dataSeries?: IDataSeries;
/**
* An Opacity factor of the Series that controls its semi-transparency level,
* where value 1 means the Series is opaque; 0 - transparent.
*/
opacity?: number;
/**
* Optional callback function when isVisible changed. Also see {@link IRenderableSeries.isVisibleChanged} event handler
*/
onIsVisibleChanged?: TSeriesVisibleChangedCallback | string;
/**
* Optional callback function when selected changed. Also see {@link IRenderableSeries.selected} event handler
*/
onSelectedChanged?: TSeriesSelectionChangedCallback | string;
/**
* Optional callback function when hovered changed. Also see {@link IRenderableSeries.hovered} event handler
*/
onHoveredChanged?: TSeriesHoverChangedCallback | string;
/**
* An animation that runs on the start, child class to {@link SeriesAnimation}
*/
animation?: SeriesAnimation | TAnimationDefinition;
/**
* A {@link DataLabelProvider} used for creating and drawing per-point text.
*/
dataLabelProvider?: BaseDataLabelProvider | TDataLabelProviderDefinition;
}
/**
* Base class for stacked mountain, column series in SciChart's High Performance Real-time
* {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
* @remarks
* See derived types {@link StackedMountainRenderableSeries} and {@link StackedColumnRenderableSeries} for
* details on how to implement stacked column and mountain charts in SciChart
*/
export declare abstract class BaseStackedRenderableSeries extends BaseRenderableSeries {
/** @inheritDoc */
abstract readonly type: ESeriesType;
/** @inheritDoc */
readonly id: string;
/** @inheritDoc */
readonly isStacked: boolean;
readonly rolloverModifierProps: RolloverModifierRenderableSeriesProps;
hitTestProvider: IHitTestProvider;
/**
* the accumulated values which are used to draw each column/band for {@link BaseStackedRenderableSeries}
*/
accumulatedValues: SCRTDoubleVector;
protected accumulatedFinalAnimationValues: SCRTDoubleVector;
protected webAssemblyContext: TSciChart;
protected parentCollection: BaseStackedCollection<BaseStackedRenderableSeries>;
protected notifyParentPropertyChangedFn: (propertyName: string) => void;
protected getParentSurfaceFn: () => SciChartSurface;
protected dataLabelProviderProperty: BaseDataLabelProvider;
protected typeMap: Map<string, string>;
private opacityOriginalValue;
/**
* Creates an instance of a {@link BaseStackedRenderableSeries}
* @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing
* native methods and access to our WebGL2 WebAssembly Drawing Engine
*/
protected constructor(webAssemblyContext: TSciChart, options?: IBasedStackedRenderableSeriesOptions);
protected dataSeriesDataChanged(): void;
/** @inheritdoc */
draw(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData): void;
/**
* @inheritDoc
*/
delete(): void;
/**
* Called when the {@link BaseStackedRenderableSeries} is detached from its parent {@link BaseStackedCollection}
*/
onDetachFromParentCollection(): void;
/**
* @inheritDoc
*/
notifyPropertyChanged(propertyName: string): void;
/** @inheritDoc */
checkIsOutOfDataRange(xValue: number, yValue: number): boolean;
/**
* getBaseXValues() is not supported for BaseStackedRenderableSeries
*/
getBaseXValues(): number[];
/**
* hasStrokePaletteProvider() is not supported for BaseStackedRenderableSeries
*/
hasStrokePaletteProvider(): boolean;
/**
* hasPointMarkerPaletteProvider() is not supported for BaseStackedRenderableSeries
*/
hasPointMarkerPaletteProvider(): boolean;
/**
* hasFillPaletteProvider() is not supported for BaseStackedRenderableSeries
*/
hasFillPaletteProvider(): boolean;
/**
* onAttach() is not supported for BaseStackedRenderableSeries
*/
onAttach(scs: SciChartSurface): void;
/**
* onDetach() is not supported for BaseStackedRenderableSeries
*/
onDetach(): void;
/**
* resamplingMode property is not supported for BaseStackedRenderableSeries
*/
get resamplingMode(): EResamplingMode;
set resamplingMode(value: EResamplingMode);
/**
* resamplingPrecision property is not supported for BaseStackedRenderableSeries
*/
get resamplingPrecision(): number;
set resamplingPrecision(value: number);
/** @inheritDoc */
get dataLabelProvider(): BaseDataLabelProvider;
/** @inheritDoc */
set dataLabelProvider(provider: BaseDataLabelProvider);
/**
* @inheritDoc
*/
get parentSurface(): SciChartSurface;
/**
* set parentSurface property is not supported for BaseStackedRenderableSeries
*/
set parentSurface(value: SciChartSurface);
/** @inheritDoc */
get xAxis(): AxisCore;
/** @inheritDoc */
get yAxis(): AxisCore;
/**
* Runs before the animation starts
* @protected
*/
beforeAnimationStart(): void;
/**
* Runs after the animation is complete
* @protected
*/
afterAnimationComplete(): void;
/**
* Internal method that runs on each animation tick
* @param progress The current animation progress, a value from 0 to 1
* @param animationFSM The animation finite state machine
* @protected
*/
updateAnimationProperties(progress: number, animationFSM: SeriesAnimationFiniteStateMachine): void;
/** @inheritDoc */
getSeriesInfo(hitTestInfo: HitTestInfo): SeriesInfo;
/** @inheritDoc */
toJSON(excludeData?: boolean): TSeriesDefinition;
/**
* toPointSeries method is not supported for BaseStackedRenderableSeries
* @param resamplingParams
*/
toPointSeries(resamplingParams?: ResamplingParams): IPointSeries;
/**
* getCurrentRenderPassData method is not supported for BaseStackedRenderableSeries
*/
getCurrentRenderPassData(): RenderPassData;
/**
* xAxisId property is not supported for BaseStackedRenderableSeries,
* instead set on the {@link StackedColumnCollection} or {@link StackedMountainCollection}
*/
get xAxisId(): string;
/**
* xAxisId property is not supported for BaseStackedRenderableSeries,
* instead set on the {@link StackedColumnCollection} or {@link StackedMountainCollection}
*/
set xAxisId(value: string);
/**
* yAxisId property is not supported for BaseStackedRenderableSeries,
* instead set on the {@link StackedColumnCollection} or {@link StackedMountainCollection}
*/
get yAxisId(): string;
/**
* yAxisId property is not supported for BaseStackedRenderableSeries,
* instead set on the {@link StackedColumnCollection} or {@link StackedMountainCollection}
*/
set yAxisId(value: string);
}