import { ScaleLinear } from 'd3-scale'; import { Ani } from '../ani/Ani'; import { Component } from '../component/Component'; import { TextOptions } from '../component/Text'; import { Stage } from '../Stage'; export interface BaseChartOptions { interpolateInitValue?: number; aniTime?: [number, number]; fadeTime?: [number, number]; freezeTime?: [number, number]; ignoreNaN?: boolean; position?: { x: number; y: number; }; shape?: { width: number; height: number; }; margin?: { left: number; top: number; bottom: number; right: number; }; xTickFormat?: (n: number | { valueOf: () => number; }) => string; yTickFormat?: (n: number | { valueOf: () => number; }) => string; showAxis?: boolean; showXAxis?: boolean; showYAxis?: boolean; idField?: string; colorField?: string | KeyGenerate; imageField?: string | KeyGenerate; dateField?: string; valueField?: string; /** * 数据消失和进入时的动画时间 */ dataFadeMS?: number; valueKeys?: string[]; valueFormat?: (cData: any) => string; labelFormat?: (id: string, meta: Map, data: Map) => string; dateFormat?: string; visualRange?: 'total' | 'current' | 'history' | [number, number]; dataName?: string; metaName?: string; maxIntervalMS?: number; } export type KeyGenerate = ((id: string) => string) | ((id: string, meta: Map) => string) | ((id: string, meta: Map, data: Map) => string); export declare abstract class BaseChart extends Ani { yAxisWidth: number; xAxisHeight: number; yAxisPadding: number; xAxisPadding: number; maxIntervalMS: number; dataGroupByDate: Map; visualRange: 'total' | 'current' | 'history' | [number, number]; interpolateInitValue: number; indexToDate: Map; nonstandardDate: any; dataFadeMS: number; showAxis: boolean; showXAxis: boolean; showYAxis: boolean; ignoreNaN: boolean; constructor(options?: BaseChartOptions); tickKeyFrameDuration: number; dataScales: Map; idField: string; colorField: string | KeyGenerate; imageField: string | KeyGenerate; dateField: string; valueField: string; valueKeys: string[]; imageKey: string; shape: { width: number; height: number; }; position: { x: number; y: number; }; margin: { left: number; top: number; right: number; bottom: number; }; aniTime: [number, number]; freezeTime: [number, number]; fadeTime: [number, number]; data: any[]; dataGroupByID: Map; meta: Map; dataName: string; metaName: string; alphaScale: ScaleLinear; secToDate: ScaleLinear; dateFormat: string; xTickFormat: (n: number | { valueOf(): number; }) => string; yTickFormat: (n: number | { valueOf(): number; }) => string; totallyMax: number; totallyMin: number; currentMax: number; currentMin: number; historyMax: number; historyMin: number; setup(stage: Stage, parent: Ani): Promise; setData(): void; private setDataScales; private removeDumplicate; private insertNaN; getComponent(sec: number): Component | null; setMeta(): void; valueFormat: (cData: any) => string; labelFormat: KeyGenerate; private setAlphaScale; private setDefaultAniTime; getCurrentData(sec: number, filter?: boolean): any[]; protected getScalesBySec(sec: number): { x: ScaleLinear; y: ScaleLinear; }; protected getAxis(sec: number, scales: { x: any; y: any; }): { yAxis: Component; xAxis: Component; }; protected getAxisComponent(format: (v: number | { valueOf: () => number; }) => string, scale0: ScaleLinear, scale1: ScaleLinear, pos: number, count: number, text: TextOptions, type: 'x' | 'y', sec: number, secRange: [number, number], scale: ScaleLinear): Component; protected tickKeySecRange(sec: number): [number, number]; }