@visactor/vchart
Version:
charts lib based @visactor/VGrammar
165 lines (164 loc) • 8.24 kB
TypeScript
import type { IRegionConstructor } from '../../region/interface';
import { ChartData } from '../chart-meta/data';
import type { Datum, IMarkStateSpec, IRegionQuerier, MaybeArray, IPadding, IRect, StringOrNumber, IChartSpec, IDataValues, ILayoutRect, ILayoutOrientPadding } from '../../typings';
import type { ILayoutItem, LayoutCallBack } from '../../layout/interface';
import type { ILayoutModelState, IModel, IModelOption, IModelSpecInfo, IUpdateSpecResult } from '../../model/interface';
import type { IChart, IChartOption, IChartEvaluateOption, DimensionIndexOption, IChartSpecTransformerOption, IChartSpecTransformer } from '../interface';
import type { ISeries, ISeriesConstructor } from '../../series/interface';
import type { IRegion } from '../../region/interface';
import type { IComponent, IComponentConstructor } from '../../component/interface';
import type { IMark, IMarkGraphic, IRectMark } from '../../mark/interface';
import type { IEvent } from '../../event/interface';
import type { DataView } from '@visactor/vdataset';
import type { DataSet } from '@visactor/vdataset';
import type { IParserOptions } from '@visactor/vdataset';
import type { IBoundsLike, Maybe } from '@visactor/vutils';
import { CompilableBase } from '../../compile/compilable-base';
import type { IGlobalScale } from '../../scale/interface';
import type { IMorphConfig } from '../../animation/spec';
import type { IInteraction } from '../../interaction/interface/common';
export declare class BaseChart<T extends IChartSpec> extends CompilableBase implements IChart {
readonly type: string;
readonly seriesType: string;
readonly transformerConstructor: new (option: IChartSpecTransformerOption) => IChartSpecTransformer;
readonly id: number;
protected _spec: T;
getSpec(): T;
setSpec(s: T): void;
getOption(): IChartOption;
protected _regions: IRegion[];
protected _series: ISeries[];
protected _components: IComponent[];
protected _layoutFunc: LayoutCallBack;
protected _layoutRect: IRect;
getLayoutRect(): IRect;
protected _viewRect: ILayoutRect;
getViewRect(): ILayoutRect;
protected _viewBox: IBoundsLike;
protected _layoutTag: boolean;
getLayoutTag(): boolean;
setLayoutTag(tag: boolean, morphConfig?: IMorphConfig, renderNextTick?: boolean): boolean;
resetLayoutItemTag(): void;
protected _modelOption: IModelOption;
getModelOption(): IModelOption;
protected _globalScale: IGlobalScale;
getGlobalScale(): IGlobalScale;
protected _idMap: Map<number, IModel | IMark>;
protected _event: IEvent;
getEvent(): IEvent;
protected _dataSet: DataSet;
protected _chartData: ChartData;
get chartData(): ChartData;
protected _option: IChartOption;
readonly state: ILayoutModelState;
padding: IPadding;
protected _paddingSpec: ILayoutOrientPadding;
protected _canvasRect: ILayoutRect;
protected _backgroundMark: IRectMark;
protected _interaction: IInteraction;
protected _setModelOption(): void;
constructor(spec: T, option: IChartOption);
created(transformer: Maybe<IChartSpecTransformer>): void;
_initInteractions(): void;
init(): void;
reDataFlow(): void;
onResize(width: number, height: number, reRender?: boolean): void;
updateViewBox(viewBox: IBoundsLike, reLayout: boolean): void;
private _createBackground;
protected _createRegion(constructor: IRegionConstructor, specInfo: IModelSpecInfo): void;
protected _createSeries(constructor: ISeriesConstructor, specInfo: IModelSpecInfo): void;
getAllSeries: () => ISeries[];
getSeriesById(id: number): ISeries | undefined;
protected _createComponent(constructor: IComponentConstructor, specInfo: IModelSpecInfo): void;
getAllComponents(): IComponent[];
getAllModels(): IModel[];
getModelInFilter(filter: string | {
type: string;
index: number;
} | ((model: IModel) => boolean)): IModel;
private _createLayout;
setLayout(layout: LayoutCallBack): void;
private _initLayoutFunc;
layout(): void;
onLayoutStart(): void;
onLayoutEnd(): void;
onEvaluateEnd(option: IChartEvaluateOption): void;
getLayoutElements(): ILayoutItem[];
getRegionsInIndex: (index?: number[]) => IRegion[];
getAllRegions: () => IRegion[];
getRegionsInIds: (ids: number[]) => IRegion[];
getRegionsInQuerier: (region?: MaybeArray<IRegionQuerier>) => IRegion[];
getRegionsInUserId: (userId: StringOrNumber) => IRegion | undefined;
getRegionsInUserIdOrIndex: (user_ids?: StringOrNumber[], index?: number[]) => IRegion[];
getComponents: () => IComponent[];
getSeriesInIndex: (index?: number[]) => ISeries[];
getSeriesInIds: (ids?: number[]) => ISeries[];
getSeriesInUserId: (userId: StringOrNumber) => ISeries | undefined;
getSeriesInUserIdOrIndex: (user_ids?: StringOrNumber[], index?: number[]) => ISeries[];
getComponentByIndex: (key: string, index: number) => IComponent;
getComponentsByKey: (key: string) => IComponent[];
getComponentByUserId: (userId: StringOrNumber) => IComponent;
getComponentsByType: (type: string) => IComponent[];
getModelById(id: number): IModel | undefined;
getModelByUserId(userId: StringOrNumber): IModel | undefined;
getAllMarks(): IMark[];
getMarkById(id: number): IMark | undefined;
getMarkByUserName(name: string): IMark[];
updateData(id: StringOrNumber, data: unknown, updateGlobalScale?: boolean, options?: IParserOptions): void;
updateFullData(data: IDataValues | IDataValues[], updateGlobalScale?: boolean): void;
setCanvasRect(width: number, height: number): void;
getCanvasRect(): Omit<IRect, 'x' | 'y'>;
getSeriesData(id: StringOrNumber | undefined, index: number | undefined): DataView | undefined;
private _transformSpecScale;
private _createGlobalScale;
updateGlobalScaleDomain(): void;
updateGlobalScale(result: IUpdateSpecResult): void;
updateGlobalScaleTheme(): void;
private _getSpecKeys;
updateSpec(spec: T): {
change: boolean;
reMake: boolean;
reRender: boolean;
reSize: boolean;
reCompile: boolean;
};
updateChartConfig(result: IUpdateSpecResult, oldSpec: IChartSpec): void;
updateDataSpec(): void;
updateRegionSpec(result: IUpdateSpecResult): void;
updateComponentSpec(result: IUpdateSpecResult): void;
updateSeriesSpec(result: IUpdateSpecResult): void;
getCanvas(): HTMLCanvasElement;
private _updateLayoutRect;
setCurrentTheme(): void;
reInit(): void;
clear(): void;
compile(): void;
afterCompile(): void;
compileLayout(): void;
compileBackground(): void;
compileRegions(): void;
compileSeries(): void;
compileComponents(): void;
release(): void;
onLayout(): void;
updateState(state: Record<string, Omit<IMarkStateSpec<unknown>, 'style'>>, filter?: (series: ISeries, mark: IMark, stateKey: string) => boolean): void;
setSelected(datum: MaybeArray<any> | null, filter?: (series: ISeries, mark: IMark) => boolean, region?: IRegionQuerier): void;
setHovered(datum: MaybeArray<Datum> | null, filter?: (series: ISeries, mark: IMark) => boolean, region?: IRegionQuerier): void;
clearState(state: string): void;
clearAllStates(): void;
clearSelected(): void;
clearHovered(): void;
private _initEvent;
protected _enableMarkAnimation(states: string | string[]): void;
protected _disableMarkAnimation(states: string | string[]): void;
filterGraphicsByDatum(datum: MaybeArray<Datum> | null, opt?: {
filter?: (series: ISeries, mark: IMark) => boolean;
region?: IRegionQuerier;
getDatum?: (el: IMarkGraphic, mark: IMark, s: ISeries, r: IRegion) => Datum;
callback?: (el: IMarkGraphic, mark: IMark, s: ISeries, r: IRegion) => void;
regionCallback?: (pickElements: IMarkGraphic[], r: IRegion) => void;
}): IMarkGraphic[];
protected _setStateInDatum(stateKey: string, d: MaybeArray<Datum> | null, filter?: (series: ISeries, mark: IMark) => boolean, region?: IRegionQuerier): void;
setDimensionIndex(value: StringOrNumber, opt: DimensionIndexOption): void;
getColorScheme(): any;
}