import * as graphic from '../../util/graphic.js';
|
import SeriesData from '../../data/SeriesData.js';
|
import { StageHandlerProgressParams, LineStyleOption, LineLabelOption, ColorString, AnimationOptionMixin, ZRStyleProps, StatesOptionMixin, DisplayState, LabelOption, DefaultEmphasisFocus, BlurScope } from '../../util/types.js';
|
import Model from '../../model/Model.js';
|
import Element from 'zrender/lib/Element.js';
|
interface LineLike extends graphic.Group {
|
updateData(data: SeriesData, idx: number, scope?: LineDrawSeriesScope): void;
|
updateLayout(data: SeriesData, idx: number): void;
|
fadeOut?(cb: () => void): void;
|
}
|
interface LineLikeCtor {
|
new (data: SeriesData, idx: number, scope?: LineDrawSeriesScope): LineLike;
|
}
|
interface LineDrawStateOption {
|
lineStyle?: LineStyleOption;
|
label?: LineLabelOption;
|
}
|
export interface LineDrawModelOption extends LineDrawStateOption, StatesOptionMixin<LineDrawStateOption, {
|
emphasis?: {
|
focus?: DefaultEmphasisFocus;
|
};
|
}> {
|
effect?: {
|
show?: boolean;
|
period?: number;
|
delay?: number | ((idx: number) => number);
|
/**
|
* If move with constant speed px/sec
|
* period will be ignored if this property is > 0,
|
*/
|
constantSpeed?: number;
|
symbol?: string;
|
symbolSize?: number | number[];
|
loop?: boolean;
|
roundTrip?: boolean;
|
/**
|
* Length of trail, 0 - 1
|
*/
|
trailLength?: number;
|
/**
|
* Default to be same with lineStyle.color
|
*/
|
color?: ColorString;
|
};
|
}
|
declare type ListForLineDraw = SeriesData<Model<LineDrawModelOption & AnimationOptionMixin>>;
|
export interface LineDrawSeriesScope {
|
lineStyle?: ZRStyleProps;
|
emphasisLineStyle?: ZRStyleProps;
|
blurLineStyle?: ZRStyleProps;
|
selectLineStyle?: ZRStyleProps;
|
labelStatesModels: Record<DisplayState, Model<LabelOption>>;
|
focus?: DefaultEmphasisFocus;
|
blurScope?: BlurScope;
|
emphasisDisabled?: boolean;
|
}
|
declare class LineDraw {
|
group: graphic.Group;
|
private _LineCtor;
|
private _lineData;
|
private _seriesScope;
|
private _progressiveEls;
|
constructor(LineCtor?: LineLikeCtor);
|
updateData(lineData: ListForLineDraw): void;
|
updateLayout(): void;
|
incrementalPrepareUpdate(lineData: ListForLineDraw): void;
|
incrementalUpdate(taskParams: StageHandlerProgressParams, lineData: ListForLineDraw): void;
|
remove(): void;
|
eachRendered(cb: (el: Element) => boolean | void): void;
|
private _doAdd;
|
private _doUpdate;
|
}
|
export default LineDraw;
|