echarts
Version:
Apache ECharts is a powerful, interactive charting and data visualization library for browser
1,259 lines (1,229 loc) • 408 kB
TypeScript
interface GradientObject {
id?: number;
type: string;
colorStops: GradientColorStop[];
global?: boolean;
}
interface GradientColorStop {
offset: number;
color: string;
}
declare class Gradient {
id?: number;
type: string;
colorStops: GradientColorStop[];
global: boolean;
constructor(colorStops: GradientColorStop[]);
addColorStop(offset: number, color: string): void;
}
interface RadialGradientObject extends GradientObject {
type: 'radial';
x: number;
y: number;
r: number;
}
declare class RadialGradient extends Gradient {
type: 'radial';
x: number;
y: number;
r: number;
constructor(x: number, y: number, r: number, colorStops?: GradientColorStop[], globalCoord?: boolean);
}
interface LinearGradientObject extends GradientObject {
type: 'linear';
x: number;
y: number;
x2: number;
y2: number;
}
declare class LinearGradient extends Gradient {
type: 'linear';
x: number;
y: number;
x2: number;
y2: number;
constructor(x: number, y: number, x2: number, y2: number, colorStops?: GradientColorStop[], globalCoord?: boolean);
}
declare type Dictionary<T> = {
[key: string]: T;
};
declare type ArrayLike$1<T> = {
[key: number]: T;
length: number;
};
declare type ImageLike = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
declare type TextVerticalAlign = 'top' | 'middle' | 'bottom';
declare type TextAlign = 'left' | 'center' | 'right';
declare type FontWeight = 'normal' | 'bold' | 'bolder' | 'lighter' | number;
declare type FontStyle = 'normal' | 'italic' | 'oblique';
declare type BuiltinTextPosition = 'left' | 'right' | 'top' | 'bottom' | 'inside' | 'insideLeft' | 'insideRight' | 'insideTop' | 'insideBottom' | 'insideTopLeft' | 'insideTopRight' | 'insideBottomLeft' | 'insideBottomRight';
declare type ZREventProperties = {
zrX: number;
zrY: number;
zrDelta: number;
zrEventControl: 'no_globalout' | 'only_globalout';
zrByTouch: boolean;
};
declare type ZRRawMouseEvent = MouseEvent & ZREventProperties;
declare type ZRRawTouchEvent = TouchEvent & ZREventProperties;
declare type ZRRawPointerEvent = TouchEvent & ZREventProperties;
declare type ZRRawEvent = ZRRawMouseEvent | ZRRawTouchEvent | ZRRawPointerEvent;
declare type ElementEventName = 'click' | 'dblclick' | 'mousewheel' | 'mouseout' | 'mouseover' | 'mouseup' | 'mousedown' | 'mousemove' | 'contextmenu' | 'drag' | 'dragstart' | 'dragend' | 'dragenter' | 'dragleave' | 'dragover' | 'drop' | 'globalout';
declare type ElementEventNameWithOn = 'onclick' | 'ondblclick' | 'onmousewheel' | 'onmouseout' | 'onmouseup' | 'onmousedown' | 'onmousemove' | 'oncontextmenu' | 'ondrag' | 'ondragstart' | 'ondragend' | 'ondragenter' | 'ondragleave' | 'ondragover' | 'ondrop';
declare type PropType<TObj, TProp extends keyof TObj> = TObj[TProp];
declare type FunctionPropertyNames<T> = {
[K in keyof T]: T[K] extends Function ? K : never;
}[keyof T];
declare type MapToType<T extends Dictionary<any>, S> = {
[P in keyof T]: T[P] extends Dictionary<any> ? MapToType<T[P], S> : S;
};
declare type KeyOfDistributive<T> = T extends unknown ? keyof T : never;
declare type WithThisType<Func extends (...args: any) => any, This> = (this: This, ...args: Parameters<Func>) => ReturnType<Func>;
declare type SVGVNodeAttrs = Record<string, string | number | undefined | boolean>;
interface SVGVNode {
tag: string;
attrs: SVGVNodeAttrs;
children?: SVGVNode[];
text?: string;
elm?: Node;
key: string;
}
declare type ImagePatternRepeat = 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
interface PatternObjectBase {
id?: number;
type?: 'pattern';
x?: number;
y?: number;
rotation?: number;
scaleX?: number;
scaleY?: number;
}
interface ImagePatternObject extends PatternObjectBase {
image: ImageLike | string;
repeat?: ImagePatternRepeat;
imageWidth?: number;
imageHeight?: number;
}
interface SVGPatternObject extends PatternObjectBase {
svgElement?: SVGVNode;
svgWidth?: number;
svgHeight?: number;
}
declare type PatternObject = ImagePatternObject | SVGPatternObject;
declare const nativeSlice: (start?: number, end?: number) => any[];
declare function guid(): number;
declare function logError(...args: any[]): void;
declare function clone<T extends any>(source: T): T;
declare function merge<T extends Dictionary<any>, S extends Dictionary<any>>(target: T, source: S, overwrite?: boolean): T & S;
declare function merge<T extends any, S extends any>(target: T, source: S, overwrite?: boolean): T | S;
declare function mergeAll(targetAndSources: any[], overwrite?: boolean): any;
declare function extend<T extends Dictionary<any>, S extends Dictionary<any>>(target: T, source: S): T & S;
declare function defaults<T extends Dictionary<any>, S extends Dictionary<any>>(target: T, source: S, overlay?: boolean): T & S;
declare const createCanvas: () => HTMLCanvasElement;
declare function indexOf<T>(array: T[] | readonly T[] | ArrayLike$1<T>, value: T): number;
declare function inherits(clazz: Function, baseClazz: Function): void;
declare function mixin<T, S>(target: T | Function, source: S | Function, override?: boolean): void;
declare function isArrayLike(data: any): data is ArrayLike$1<any>;
declare function each<I extends Dictionary<any> | any[] | readonly any[] | ArrayLike$1<any>, Context>(arr: I, cb: (this: Context, value: I extends (infer T)[] | readonly (infer T)[] | ArrayLike$1<infer T> ? T : I extends Dictionary<any> ? I extends Record<infer K, infer T> ? T : unknown : unknown, index?: I extends any[] | readonly any[] | ArrayLike$1<any> ? number : keyof I & string, arr?: I) => void, context?: Context): void;
declare function map<T, R, Context>(arr: readonly T[], cb: (this: Context, val: T, index?: number, arr?: readonly T[]) => R, context?: Context): R[];
declare function reduce<T, S, Context>(arr: readonly T[], cb: (this: Context, previousValue: S, currentValue: T, currentIndex?: number, arr?: readonly T[]) => S, memo?: S, context?: Context): S;
declare function filter<T, Context>(arr: readonly T[], cb: (this: Context, value: T, index: number, arr: readonly T[]) => boolean, context?: Context): T[];
declare function find<T, Context>(arr: readonly T[], cb: (this: Context, value: T, index?: number, arr?: readonly T[]) => boolean, context?: Context): T;
declare function keys<T extends object>(obj: T): (KeyOfDistributive<T> & string)[];
declare type Bind1<F, Ctx> = F extends (this: Ctx, ...args: infer A) => infer R ? (...args: A) => R : unknown;
declare type Bind2<F, Ctx, T1> = F extends (this: Ctx, a: T1, ...args: infer A) => infer R ? (...args: A) => R : unknown;
declare type Bind3<F, Ctx, T1, T2> = F extends (this: Ctx, a: T1, b: T2, ...args: infer A) => infer R ? (...args: A) => R : unknown;
declare type Bind4<F, Ctx, T1, T2, T3> = F extends (this: Ctx, a: T1, b: T2, c: T3, ...args: infer A) => infer R ? (...args: A) => R : unknown;
declare type Bind5<F, Ctx, T1, T2, T3, T4> = F extends (this: Ctx, a: T1, b: T2, c: T3, d: T4, ...args: infer A) => infer R ? (...args: A) => R : unknown;
declare type BindFunc<Ctx> = (this: Ctx, ...arg: any[]) => any;
interface FunctionBind {
<F extends BindFunc<Ctx>, Ctx>(func: F, ctx: Ctx): Bind1<F, Ctx>;
<F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0]>(func: F, ctx: Ctx, a: T1): Bind2<F, Ctx, T1>;
<F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1]>(func: F, ctx: Ctx, a: T1, b: T2): Bind3<F, Ctx, T1, T2>;
<F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2]>(func: F, ctx: Ctx, a: T1, b: T2, c: T3): Bind4<F, Ctx, T1, T2, T3>;
<F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2], T4 extends Parameters<F>[3]>(func: F, ctx: Ctx, a: T1, b: T2, c: T3, d: T4): Bind5<F, Ctx, T1, T2, T3, T4>;
}
declare const bind: FunctionBind;
declare type Curry1<F, T1> = F extends (a: T1, ...args: infer A) => infer R ? (...args: A) => R : unknown;
declare type Curry2<F, T1, T2> = F extends (a: T1, b: T2, ...args: infer A) => infer R ? (...args: A) => R : unknown;
declare type Curry3<F, T1, T2, T3> = F extends (a: T1, b: T2, c: T3, ...args: infer A) => infer R ? (...args: A) => R : unknown;
declare type Curry4<F, T1, T2, T3, T4> = F extends (a: T1, b: T2, c: T3, d: T4, ...args: infer A) => infer R ? (...args: A) => R : unknown;
declare type CurryFunc = (...arg: any[]) => any;
declare function curry<F extends CurryFunc, T1 extends Parameters<F>[0]>(func: F, a: T1): Curry1<F, T1>;
declare function curry<F extends CurryFunc, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1]>(func: F, a: T1, b: T2): Curry2<F, T1, T2>;
declare function curry<F extends CurryFunc, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2]>(func: F, a: T1, b: T2, c: T3): Curry3<F, T1, T2, T3>;
declare function curry<F extends CurryFunc, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2], T4 extends Parameters<F>[3]>(func: F, a: T1, b: T2, c: T3, d: T4): Curry4<F, T1, T2, T3, T4>;
declare function isArray(value: any): value is any[];
declare function isFunction(value: any): value is Function;
declare function isString(value: any): value is string;
declare function isStringSafe(value: any): value is string;
declare function isNumber(value: any): value is number;
declare function isObject<T = unknown>(value: T): value is (object & T);
declare function isBuiltInObject(value: any): boolean;
declare function isTypedArray(value: any): boolean;
declare function isDom(value: any): value is HTMLElement;
declare function isGradientObject(value: any): value is GradientObject;
declare function isImagePatternObject(value: any): value is ImagePatternObject;
declare function isRegExp(value: unknown): value is RegExp;
declare function eqNaN(value: any): boolean;
declare function retrieve<T>(...args: T[]): T;
declare function retrieve2<T, R>(value0: T, value1: R): T | R;
declare function retrieve3<T, R, W>(value0: T, value1: R, value2: W): T | R | W;
declare type SliceParams = Parameters<typeof nativeSlice>;
declare function slice<T>(arr: ArrayLike$1<T>, ...args: SliceParams): T[];
declare function normalizeCssArray(val: number | number[]): number[];
declare function assert(condition: any, message?: string): void;
declare function trim(str: string): string;
declare function setAsPrimitive(obj: any): void;
declare function isPrimitive(obj: any): boolean;
interface MapInterface<T, KEY extends string | number = string | number> {
delete(key: KEY): boolean;
has(key: KEY): boolean;
get(key: KEY): T | undefined;
set(key: KEY, value: T): this;
keys(): KEY[];
forEach(callback: (value: T, key: KEY) => void): void;
}
declare class HashMap<T, KEY extends string | number = string | number> {
data: MapInterface<T, KEY>;
constructor(obj?: HashMap<T, KEY> | {
[key in KEY]?: T;
} | KEY[]);
hasKey(key: KEY): boolean;
get(key: KEY): T;
set(key: KEY, value: T): T;
each<Context>(cb: (this: Context, value?: T, key?: KEY) => void, context?: Context): void;
keys(): KEY[];
removeKey(key: KEY): void;
}
declare function createHashMap<T, KEY extends string | number = string | number>(obj?: HashMap<T, KEY> | {
[key in KEY]?: T;
} | KEY[]): HashMap<T, KEY>;
declare function concatArray<T, R>(a: ArrayLike$1<T>, b: ArrayLike$1<R>): ArrayLike$1<T | R>;
declare function createObject<T>(proto?: object, properties?: T): T;
declare function disableUserSelect(dom: HTMLElement): void;
declare function hasOwn(own: object, prop: string): boolean;
declare function noop(): void;
declare const RADIAN_TO_DEGREE: number;
declare const util_d_curry: typeof curry;
declare const util_d_guid: typeof guid;
declare const util_d_logError: typeof logError;
declare const util_d_clone: typeof clone;
declare const util_d_merge: typeof merge;
declare const util_d_mergeAll: typeof mergeAll;
declare const util_d_extend: typeof extend;
declare const util_d_defaults: typeof defaults;
declare const util_d_createCanvas: typeof createCanvas;
declare const util_d_indexOf: typeof indexOf;
declare const util_d_inherits: typeof inherits;
declare const util_d_mixin: typeof mixin;
declare const util_d_isArrayLike: typeof isArrayLike;
declare const util_d_each: typeof each;
declare const util_d_map: typeof map;
declare const util_d_reduce: typeof reduce;
declare const util_d_filter: typeof filter;
declare const util_d_find: typeof find;
declare const util_d_keys: typeof keys;
type util_d_Bind1<F, Ctx> = Bind1<F, Ctx>;
type util_d_Bind2<F, Ctx, T1> = Bind2<F, Ctx, T1>;
type util_d_Bind3<F, Ctx, T1, T2> = Bind3<F, Ctx, T1, T2>;
type util_d_Bind4<F, Ctx, T1, T2, T3> = Bind4<F, Ctx, T1, T2, T3>;
type util_d_Bind5<F, Ctx, T1, T2, T3, T4> = Bind5<F, Ctx, T1, T2, T3, T4>;
declare const util_d_bind: typeof bind;
type util_d_Curry1<F, T1> = Curry1<F, T1>;
type util_d_Curry2<F, T1, T2> = Curry2<F, T1, T2>;
type util_d_Curry3<F, T1, T2, T3> = Curry3<F, T1, T2, T3>;
type util_d_Curry4<F, T1, T2, T3, T4> = Curry4<F, T1, T2, T3, T4>;
declare const util_d_isArray: typeof isArray;
declare const util_d_isFunction: typeof isFunction;
declare const util_d_isString: typeof isString;
declare const util_d_isStringSafe: typeof isStringSafe;
declare const util_d_isNumber: typeof isNumber;
declare const util_d_isObject: typeof isObject;
declare const util_d_isBuiltInObject: typeof isBuiltInObject;
declare const util_d_isTypedArray: typeof isTypedArray;
declare const util_d_isDom: typeof isDom;
declare const util_d_isGradientObject: typeof isGradientObject;
declare const util_d_isImagePatternObject: typeof isImagePatternObject;
declare const util_d_isRegExp: typeof isRegExp;
declare const util_d_eqNaN: typeof eqNaN;
declare const util_d_retrieve: typeof retrieve;
declare const util_d_retrieve2: typeof retrieve2;
declare const util_d_retrieve3: typeof retrieve3;
declare const util_d_slice: typeof slice;
declare const util_d_normalizeCssArray: typeof normalizeCssArray;
declare const util_d_assert: typeof assert;
declare const util_d_trim: typeof trim;
declare const util_d_setAsPrimitive: typeof setAsPrimitive;
declare const util_d_isPrimitive: typeof isPrimitive;
type util_d_HashMap<T, KEY extends string | number = string | number> = HashMap<T, KEY>;
declare const util_d_HashMap: typeof HashMap;
declare const util_d_createHashMap: typeof createHashMap;
declare const util_d_concatArray: typeof concatArray;
declare const util_d_createObject: typeof createObject;
declare const util_d_disableUserSelect: typeof disableUserSelect;
declare const util_d_hasOwn: typeof hasOwn;
declare const util_d_noop: typeof noop;
declare const util_d_RADIAN_TO_DEGREE: typeof RADIAN_TO_DEGREE;
declare namespace util_d {
export {
util_d_curry as curry,
util_d_guid as guid,
util_d_logError as logError,
util_d_clone as clone,
util_d_merge as merge,
util_d_mergeAll as mergeAll,
util_d_extend as extend,
util_d_defaults as defaults,
util_d_createCanvas as createCanvas,
util_d_indexOf as indexOf,
util_d_inherits as inherits,
util_d_mixin as mixin,
util_d_isArrayLike as isArrayLike,
util_d_each as each,
util_d_map as map,
util_d_reduce as reduce,
util_d_filter as filter,
util_d_find as find,
util_d_keys as keys,
util_d_Bind1 as Bind1,
util_d_Bind2 as Bind2,
util_d_Bind3 as Bind3,
util_d_Bind4 as Bind4,
util_d_Bind5 as Bind5,
util_d_bind as bind,
util_d_Curry1 as Curry1,
util_d_Curry2 as Curry2,
util_d_Curry3 as Curry3,
util_d_Curry4 as Curry4,
util_d_isArray as isArray,
util_d_isFunction as isFunction,
util_d_isString as isString,
util_d_isStringSafe as isStringSafe,
util_d_isNumber as isNumber,
util_d_isObject as isObject,
util_d_isBuiltInObject as isBuiltInObject,
util_d_isTypedArray as isTypedArray,
util_d_isDom as isDom,
util_d_isGradientObject as isGradientObject,
util_d_isImagePatternObject as isImagePatternObject,
util_d_isRegExp as isRegExp,
util_d_eqNaN as eqNaN,
util_d_retrieve as retrieve,
util_d_retrieve2 as retrieve2,
util_d_retrieve3 as retrieve3,
util_d_slice as slice,
util_d_normalizeCssArray as normalizeCssArray,
util_d_assert as assert,
util_d_trim as trim,
util_d_setAsPrimitive as setAsPrimitive,
util_d_isPrimitive as isPrimitive,
util_d_HashMap as HashMap,
util_d_createHashMap as createHashMap,
util_d_concatArray as concatArray,
util_d_createObject as createObject,
util_d_disableUserSelect as disableUserSelect,
util_d_hasOwn as hasOwn,
util_d_noop as noop,
util_d_RADIAN_TO_DEGREE as RADIAN_TO_DEGREE,
};
}
declare type EventCallbackSingleParam<EvtParam = any> = EvtParam extends any ? (params: EvtParam) => boolean | void : never;
declare type EventCallback<EvtParams = any[]> = EvtParams extends any[] ? (...args: EvtParams) => boolean | void : never;
declare type EventQuery = string | Object;
declare type CbThis<Ctx, Impl> = unknown extends Ctx ? Impl : Ctx;
declare type DefaultEventDefinition = Dictionary<EventCallback<any[]>>;
interface EventProcessor<EvtDef = DefaultEventDefinition> {
normalizeQuery?: (query: EventQuery) => EventQuery;
filter?: (eventType: keyof EvtDef, query: EventQuery) => boolean;
afterTrigger?: (eventType: keyof EvtDef) => void;
}
declare class Eventful<EvtDef extends DefaultEventDefinition = DefaultEventDefinition> {
private _$handlers;
protected _$eventProcessor: EventProcessor<EvtDef>;
constructor(eventProcessors?: EventProcessor<EvtDef>);
on<Ctx, EvtNm extends keyof EvtDef>(event: EvtNm, handler: WithThisType<EvtDef[EvtNm], CbThis<Ctx, this>>, context?: Ctx): this;
on<Ctx, EvtNm extends keyof EvtDef>(event: EvtNm, query: EventQuery, handler: WithThisType<EvtDef[EvtNm], CbThis<Ctx, this>>, context?: Ctx): this;
isSilent(eventName: keyof EvtDef): boolean;
off(eventType?: keyof EvtDef, handler?: Function): this;
trigger<EvtNm extends keyof EvtDef>(eventType: EvtNm, ...args: Parameters<EvtDef[EvtNm]>): this;
triggerWithContext(type: keyof EvtDef, ...args: any[]): this;
}
declare type VectorArray = number[];
declare function create(x?: number, y?: number): VectorArray;
declare function copy<T extends VectorArray>(out: T, v: VectorArray): T;
declare function clone$1(v: VectorArray): VectorArray;
declare function set<T extends VectorArray>(out: T, a: number, b: number): T;
declare function add<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T;
declare function scaleAndAdd<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray, a: number): T;
declare function sub<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T;
declare function len(v: VectorArray): number;
declare const length: typeof len;
declare function lenSquare(v: VectorArray): number;
declare const lengthSquare: typeof lenSquare;
declare function mul<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T;
declare function div<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T;
declare function dot(v1: VectorArray, v2: VectorArray): number;
declare function scale<T extends VectorArray>(out: T, v: VectorArray, s: number): T;
declare function normalize<T extends VectorArray>(out: T, v: VectorArray): T;
declare function distance(v1: VectorArray, v2: VectorArray): number;
declare const dist: typeof distance;
declare function distanceSquare(v1: VectorArray, v2: VectorArray): number;
declare const distSquare: typeof distanceSquare;
declare function negate<T extends VectorArray>(out: T, v: VectorArray): T;
declare function lerp<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray, t: number): T;
declare function applyTransform<T extends VectorArray>(out: T, v: VectorArray, m: MatrixArray): T;
declare function min<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T;
declare function max<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T;
type vector_d_VectorArray = VectorArray;
declare const vector_d_create: typeof create;
declare const vector_d_copy: typeof copy;
declare const vector_d_set: typeof set;
declare const vector_d_add: typeof add;
declare const vector_d_scaleAndAdd: typeof scaleAndAdd;
declare const vector_d_sub: typeof sub;
declare const vector_d_len: typeof len;
declare const vector_d_length: typeof length;
declare const vector_d_lenSquare: typeof lenSquare;
declare const vector_d_lengthSquare: typeof lengthSquare;
declare const vector_d_mul: typeof mul;
declare const vector_d_div: typeof div;
declare const vector_d_dot: typeof dot;
declare const vector_d_scale: typeof scale;
declare const vector_d_normalize: typeof normalize;
declare const vector_d_distance: typeof distance;
declare const vector_d_dist: typeof dist;
declare const vector_d_distanceSquare: typeof distanceSquare;
declare const vector_d_distSquare: typeof distSquare;
declare const vector_d_negate: typeof negate;
declare const vector_d_lerp: typeof lerp;
declare const vector_d_applyTransform: typeof applyTransform;
declare const vector_d_min: typeof min;
declare const vector_d_max: typeof max;
declare namespace vector_d {
export {
vector_d_VectorArray as VectorArray,
vector_d_create as create,
vector_d_copy as copy,
clone$1 as clone,
vector_d_set as set,
vector_d_add as add,
vector_d_scaleAndAdd as scaleAndAdd,
vector_d_sub as sub,
vector_d_len as len,
vector_d_length as length,
vector_d_lenSquare as lenSquare,
vector_d_lengthSquare as lengthSquare,
vector_d_mul as mul,
vector_d_div as div,
vector_d_dot as dot,
vector_d_scale as scale,
vector_d_normalize as normalize,
vector_d_distance as distance,
vector_d_dist as dist,
vector_d_distanceSquare as distanceSquare,
vector_d_distSquare as distSquare,
vector_d_negate as negate,
vector_d_lerp as lerp,
vector_d_applyTransform as applyTransform,
vector_d_min as min,
vector_d_max as max,
};
}
declare type MatrixArray = number[];
declare function create$1(): MatrixArray;
declare function identity(out: MatrixArray): MatrixArray;
declare function copy$1(out: MatrixArray, m: MatrixArray): MatrixArray;
declare function mul$1(out: MatrixArray, m1: MatrixArray, m2: MatrixArray): MatrixArray;
declare function translate(out: MatrixArray, a: MatrixArray, v: VectorArray): MatrixArray;
declare function rotate(out: MatrixArray, a: MatrixArray, rad: number, pivot?: VectorArray): MatrixArray;
declare function scale$1(out: MatrixArray, a: MatrixArray, v: VectorArray): MatrixArray;
declare function invert(out: MatrixArray, a: MatrixArray): MatrixArray | null;
declare function clone$2(a: MatrixArray): MatrixArray;
type matrix_d_MatrixArray = MatrixArray;
declare const matrix_d_identity: typeof identity;
declare const matrix_d_translate: typeof translate;
declare const matrix_d_rotate: typeof rotate;
declare const matrix_d_invert: typeof invert;
declare namespace matrix_d {
export {
matrix_d_MatrixArray as MatrixArray,
create$1 as create,
matrix_d_identity as identity,
copy$1 as copy,
mul$1 as mul,
matrix_d_translate as translate,
matrix_d_rotate as rotate,
scale$1 as scale,
matrix_d_invert as invert,
clone$2 as clone,
};
}
interface PointLike {
x: number;
y: number;
}
declare class Point {
x: number;
y: number;
constructor(x?: number, y?: number);
copy(other: PointLike): this;
clone(): Point;
set(x: number, y: number): this;
equal(other: PointLike): boolean;
add(other: PointLike): this;
scale(scalar: number): void;
scaleAndAdd(other: PointLike, scalar: number): void;
sub(other: PointLike): this;
dot(other: PointLike): number;
len(): number;
lenSquare(): number;
normalize(): this;
distance(other: PointLike): number;
distanceSquare(other: Point): number;
negate(): this;
transform(m: MatrixArray): this;
toArray(out: number[]): number[];
fromArray(input: number[]): void;
static set(p: PointLike, x: number, y: number): void;
static copy(p: PointLike, p2: PointLike): void;
static len(p: PointLike): number;
static lenSquare(p: PointLike): number;
static dot(p0: PointLike, p1: PointLike): number;
static add(out: PointLike, p0: PointLike, p1: PointLike): void;
static sub(out: PointLike, p0: PointLike, p1: PointLike): void;
static scale(out: PointLike, p0: PointLike, scalar: number): void;
static scaleAndAdd(out: PointLike, p0: PointLike, p1: PointLike, scalar: number): void;
static lerp(out: PointLike, p0: PointLike, p1: PointLike, t: number): void;
}
declare class BoundingRect {
x: number;
y: number;
width: number;
height: number;
constructor(x: number, y: number, width: number, height: number);
union(other: BoundingRect): void;
applyTransform(m: MatrixArray): void;
calculateTransform(b: RectLike): MatrixArray;
intersect(b: RectLike, mtv?: PointLike): boolean;
contain(x: number, y: number): boolean;
clone(): BoundingRect;
copy(other: RectLike): void;
plain(): RectLike;
isFinite(): boolean;
isZero(): boolean;
static create(rect: RectLike): BoundingRect;
static copy(target: RectLike, source: RectLike): void;
static applyTransform(target: RectLike, source: RectLike, m: MatrixArray): void;
}
declare type RectLike = {
x: number;
y: number;
width: number;
height: number;
};
interface ExtendedCanvasRenderingContext2D extends CanvasRenderingContext2D {
dpr?: number;
}
declare class PathProxy {
dpr: number;
data: number[] | Float32Array;
private _version;
private _saveData;
private _pendingPtX;
private _pendingPtY;
private _pendingPtDist;
private _ctx;
private _xi;
private _yi;
private _x0;
private _y0;
private _len;
private _pathSegLen;
private _pathLen;
private _ux;
private _uy;
static CMD: {
M: number;
L: number;
C: number;
Q: number;
A: number;
Z: number;
R: number;
};
constructor(notSaveData?: boolean);
increaseVersion(): void;
getVersion(): number;
setScale(sx: number, sy: number, segmentIgnoreThreshold?: number): void;
setDPR(dpr: number): void;
setContext(ctx: ExtendedCanvasRenderingContext2D): void;
getContext(): ExtendedCanvasRenderingContext2D;
beginPath(): this;
reset(): void;
moveTo(x: number, y: number): this;
lineTo(x: number, y: number): this;
bezierCurveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): this;
quadraticCurveTo(x1: number, y1: number, x2: number, y2: number): this;
arc(cx: number, cy: number, r: number, startAngle: number, endAngle: number, anticlockwise?: boolean): this;
arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
rect(x: number, y: number, w: number, h: number): this;
closePath(): this;
fill(ctx: CanvasRenderingContext2D): void;
stroke(ctx: CanvasRenderingContext2D): void;
len(): number;
setData(data: Float32Array | number[]): void;
appendPath(path: PathProxy | PathProxy[]): void;
addData(cmd: number, a?: number, b?: number, c?: number, d?: number, e?: number, f?: number, g?: number, h?: number): void;
private _drawPendingPt;
private _expandData;
toStatic(): void;
getBoundingRect(): BoundingRect;
private _calculateLength;
rebuildPath(ctx: PathRebuilder, percent: number): void;
clone(): PathProxy;
private static initDefaultProps;
}
interface PathRebuilder {
moveTo(x: number, y: number): void;
lineTo(x: number, y: number): void;
bezierCurveTo(x: number, y: number, x2: number, y2: number, x3: number, y3: number): void;
quadraticCurveTo(x: number, y: number, x2: number, y2: number): void;
arc(cx: number, cy: number, r: number, startAngle: number, endAngle: number, anticlockwise: boolean): void;
ellipse(cx: number, cy: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise: boolean): void;
rect(x: number, y: number, width: number, height: number): void;
closePath(): void;
}
declare type easingFunc = (percent: number) => number;
declare type AnimationEasing = keyof typeof easingFuncs | easingFunc;
declare const easingFuncs: {
linear(k: number): number;
quadraticIn(k: number): number;
quadraticOut(k: number): number;
quadraticInOut(k: number): number;
cubicIn(k: number): number;
cubicOut(k: number): number;
cubicInOut(k: number): number;
quarticIn(k: number): number;
quarticOut(k: number): number;
quarticInOut(k: number): number;
quinticIn(k: number): number;
quinticOut(k: number): number;
quinticInOut(k: number): number;
sinusoidalIn(k: number): number;
sinusoidalOut(k: number): number;
sinusoidalInOut(k: number): number;
exponentialIn(k: number): number;
exponentialOut(k: number): number;
exponentialInOut(k: number): number;
circularIn(k: number): number;
circularOut(k: number): number;
circularInOut(k: number): number;
elasticIn(k: number): number;
elasticOut(k: number): number;
elasticInOut(k: number): number;
backIn(k: number): number;
backOut(k: number): number;
backInOut(k: number): number;
bounceIn(k: number): number;
bounceOut(k: number): number;
bounceInOut(k: number): number;
};
interface Stage {
update?: () => void;
}
interface AnimationOption {
stage?: Stage;
}
declare class Animation extends Eventful {
stage: Stage;
private _head;
private _tail;
private _running;
private _time;
private _pausedTime;
private _pauseStart;
private _paused;
constructor(opts?: AnimationOption);
addClip(clip: Clip): void;
addAnimator(animator: Animator<any>): void;
removeClip(clip: Clip): void;
removeAnimator(animator: Animator<any>): void;
update(notTriggerFrameAndStageUpdate?: boolean): void;
_startLoop(): void;
start(): void;
stop(): void;
pause(): void;
resume(): void;
clear(): void;
isFinished(): boolean;
animate<T>(target: T, options: {
loop?: boolean;
}): Animator<T>;
}
declare type OnframeCallback = (percent: number) => void;
declare type ondestroyCallback = () => void;
declare type onrestartCallback = () => void;
interface ClipProps {
life?: number;
delay?: number;
loop?: boolean;
easing?: AnimationEasing;
onframe?: OnframeCallback;
ondestroy?: ondestroyCallback;
onrestart?: onrestartCallback;
}
declare class Clip {
private _life;
private _delay;
private _inited;
private _startTime;
private _pausedTime;
private _paused;
animation: Animation;
loop: boolean;
easing: AnimationEasing;
easingFunc: (p: number) => number;
next: Clip;
prev: Clip;
onframe: OnframeCallback;
ondestroy: ondestroyCallback;
onrestart: onrestartCallback;
constructor(opts: ClipProps);
step(globalTime: number, deltaTime: number): boolean;
pause(): void;
resume(): void;
setEasing(easing: AnimationEasing): void;
}
declare type ValueType = 0 | 1 | 2 | 3 | 4 | 5 | 6;
declare type Keyframe = {
time: number;
value: unknown;
percent: number;
rawValue: unknown;
easing?: AnimationEasing;
easingFunc?: (percent: number) => number;
additiveValue?: unknown;
};
declare class Track {
keyframes: Keyframe[];
propName: string;
valType: ValueType;
discrete: boolean;
_invalid: boolean;
private _finished;
private _needsSort;
private _additiveTrack;
private _additiveValue;
private _lastFr;
private _lastFrP;
constructor(propName: string);
isFinished(): boolean;
setFinished(): void;
needsAnimate(): boolean;
getAdditiveTrack(): Track;
addKeyframe(time: number, rawValue: unknown, easing?: AnimationEasing): Keyframe;
prepare(maxTime: number, additiveTrack?: Track): void;
step(target: any, percent: number): void;
private _addToTarget;
}
declare type DoneCallback = () => void;
declare type AbortCallback = () => void;
declare type OnframeCallback$1<T> = (target: T, percent: number) => void;
declare class Animator<T> {
animation?: Animation;
targetName?: string;
scope?: string;
__fromStateTransition?: string;
private _tracks;
private _trackKeys;
private _target;
private _loop;
private _delay;
private _maxTime;
private _force;
private _paused;
private _started;
private _allowDiscrete;
private _additiveAnimators;
private _doneCbs;
private _onframeCbs;
private _abortedCbs;
private _clip;
constructor(target: T, loop: boolean, allowDiscreteAnimation?: boolean, additiveTo?: Animator<any>[]);
getMaxTime(): number;
getDelay(): number;
getLoop(): boolean;
getTarget(): T;
changeTarget(target: T): void;
when(time: number, props: Dictionary<any>, easing?: AnimationEasing): this;
whenWithKeys(time: number, props: Dictionary<any>, propNames: string[], easing?: AnimationEasing): this;
pause(): void;
resume(): void;
isPaused(): boolean;
duration(duration: number): this;
private _doneCallback;
private _abortedCallback;
private _setTracksFinished;
private _getAdditiveTrack;
start(easing?: AnimationEasing): this;
stop(forwardToLast?: boolean): void;
delay(time: number): this;
during(cb: OnframeCallback$1<T>): this;
done(cb: DoneCallback): this;
aborted(cb: AbortCallback): this;
getClip(): Clip;
getTrack(propName: string): Track;
getTracks(): Track[];
stopTracks(propNames: string[], forwardToLast?: boolean): boolean;
saveTo(target: T, trackKeys?: readonly string[], firstOrLast?: boolean): void;
__changeFinalValue(finalProps: Dictionary<any>, trackKeys?: readonly string[]): void;
}
interface PathStyleProps extends CommonStyleProps {
fill?: string | PatternObject | LinearGradientObject | RadialGradientObject;
stroke?: string | PatternObject | LinearGradientObject | RadialGradientObject;
decal?: PatternObject;
strokePercent?: number;
strokeNoScale?: boolean;
fillOpacity?: number;
strokeOpacity?: number;
lineDash?: false | number[] | 'solid' | 'dashed' | 'dotted';
lineDashOffset?: number;
lineWidth?: number;
lineCap?: CanvasLineCap;
lineJoin?: CanvasLineJoin;
miterLimit?: number;
strokeFirst?: boolean;
}
interface PathProps extends DisplayableProps {
strokeContainThreshold?: number;
segmentIgnoreThreshold?: number;
subPixelOptimize?: boolean;
style?: PathStyleProps;
shape?: Dictionary<any>;
autoBatch?: boolean;
__value?: (string | number)[] | (string | number);
buildPath?: (ctx: PathProxy | CanvasRenderingContext2D, shapeCfg: Dictionary<any>, inBatch?: boolean) => void;
}
declare type PathKey = keyof PathProps;
declare type PathPropertyType = PropType<PathProps, PathKey>;
declare type PathStatePropNames = DisplayableStatePropNames | 'shape';
declare type PathState = Pick<PathProps, PathStatePropNames> & {
hoverLayer?: boolean;
};
interface Path<Props extends PathProps = PathProps> {
animate(key?: '', loop?: boolean): Animator<this>;
animate(key: 'style', loop?: boolean): Animator<this['style']>;
animate(key: 'shape', loop?: boolean): Animator<this['shape']>;
getState(stateName: string): PathState;
ensureState(stateName: string): PathState;
states: Dictionary<PathState>;
stateProxy: (stateName: string) => PathState;
}
declare class Path<Props extends PathProps = PathProps> extends Displayable<Props> {
path: PathProxy;
strokeContainThreshold: number;
segmentIgnoreThreshold: number;
subPixelOptimize: boolean;
style: PathStyleProps;
autoBatch: boolean;
private _rectStroke;
protected _normalState: PathState;
protected _decalEl: Path;
shape: Dictionary<any>;
constructor(opts?: Props);
update(): void;
getDecalElement(): Path<PathProps>;
protected _init(props?: Props): void;
protected getDefaultStyle(): Props['style'];
protected getDefaultShape(): {};
protected canBeInsideText(): boolean;
protected getInsideTextFill(): "#333" | "#ccc" | "#eee";
protected getInsideTextStroke(textFill?: string): string;
buildPath(ctx: PathProxy | CanvasRenderingContext2D, shapeCfg: Dictionary<any>, inBatch?: boolean): void;
pathUpdated(): void;
getUpdatedPathProxy(inBatch?: boolean): PathProxy;
createPathProxy(): void;
hasStroke(): boolean;
hasFill(): boolean;
getBoundingRect(): BoundingRect;
contain(x: number, y: number): boolean;
dirtyShape(): void;
dirty(): void;
animateShape(loop: boolean): Animator<this["shape"]>;
updateDuringAnimation(targetKey: string): void;
attrKV(key: PathKey, value: PathPropertyType): void;
setShape(obj: Props['shape']): this;
setShape<T extends keyof Props['shape']>(obj: T, value: Props['shape'][T]): this;
shapeChanged(): boolean;
createStyle(obj?: Props['style']): Props["style"];
protected _innerSaveToNormal(toState: PathState): void;
protected _applyStateObj(stateName: string, state: PathState, normalState: PathState, keepCurrentStates: boolean, transition: boolean, animationCfg: ElementAnimateConfig): void;
protected _mergeStates(states: PathState[]): PathState;
getAnimationStyleProps(): MapToType<PathProps, boolean>;
isZeroArea(): boolean;
static extend<Shape extends Dictionary<any>>(defaultProps: {
type?: string;
shape?: Shape;
style?: PathStyleProps;
beforeBrush?: Displayable['beforeBrush'];
afterBrush?: Displayable['afterBrush'];
getBoundingRect?: Displayable['getBoundingRect'];
calculateTextPosition?: Element['calculateTextPosition'];
buildPath(this: Path, ctx: CanvasRenderingContext2D | PathProxy, shape: Shape, inBatch?: boolean): void;
init?(this: Path, opts: PathProps): void;
}): {
new (opts?: PathProps & {
shape: Shape;
}): Path;
};
protected static initDefaultProps: void;
}
declare class Transformable {
parent: Transformable;
x: number;
y: number;
scaleX: number;
scaleY: number;
skewX: number;
skewY: number;
rotation: number;
anchorX: number;
anchorY: number;
originX: number;
originY: number;
globalScaleRatio: number;
transform: MatrixArray;
invTransform: MatrixArray;
getLocalTransform(m?: MatrixArray): MatrixArray;
setPosition(arr: number[]): void;
setScale(arr: number[]): void;
setSkew(arr: number[]): void;
setOrigin(arr: number[]): void;
needLocalTransform(): boolean;
updateTransform(): void;
private _resolveGlobalScaleRatio;
getComputedTransform(): MatrixArray;
setLocalTransform(m: VectorArray): void;
decomposeTransform(): void;
getGlobalScale(out?: VectorArray): VectorArray;
transformCoordToLocal(x: number, y: number): number[];
transformCoordToGlobal(x: number, y: number): number[];
getLineScale(): number;
copyTransform(source: Transformable): void;
static getLocalTransform(target: Transformable, m?: MatrixArray): MatrixArray;
private static initDefaultProps;
}
declare const TRANSFORMABLE_PROPS: readonly ["x", "y", "originX", "originY", "anchorX", "anchorY", "rotation", "scaleX", "scaleY", "skewX", "skewY"];
declare type TransformProp = (typeof TRANSFORMABLE_PROPS)[number];
interface TSpanStyleProps extends PathStyleProps {
x?: number;
y?: number;
text?: string;
font?: string;
fontSize?: number;
fontWeight?: FontWeight;
fontStyle?: FontStyle;
fontFamily?: string;
textAlign?: CanvasTextAlign;
textBaseline?: CanvasTextBaseline;
}
interface TSpanProps extends DisplayableProps {
style?: TSpanStyleProps;
}
declare class TSpan extends Displayable<TSpanProps> {
style: TSpanStyleProps;
hasStroke(): boolean;
hasFill(): boolean;
createStyle(obj?: TSpanStyleProps): TSpanStyleProps;
setBoundingRect(rect: BoundingRect): void;
getBoundingRect(): BoundingRect;
protected static initDefaultProps: void;
}
interface ImageStyleProps extends CommonStyleProps {
image?: string | ImageLike;
x?: number;
y?: number;
width?: number;
height?: number;
sx?: number;
sy?: number;
sWidth?: number;
sHeight?: number;
}
interface ImageProps extends DisplayableProps {
style?: ImageStyleProps;
onload?: (image: ImageLike) => void;
}
declare class ZRImage extends Displayable<ImageProps> {
style: ImageStyleProps;
__image: ImageLike;
__imageSrc: string;
onload: (image: ImageLike) => void;
createStyle(obj?: ImageStyleProps): ImageStyleProps;
private _getSize;
getWidth(): number;
getHeight(): number;
getAnimationStyleProps(): MapToType<ImageProps, boolean>;
getBoundingRect(): BoundingRect;
}
declare class RectShape {
r?: number | number[];
x: number;
y: number;
width: number;
height: number;
}
interface RectProps extends PathProps {
shape?: Partial<RectShape>;
}
declare class Rect extends Path<RectProps> {
shape: RectShape;
constructor(opts?: RectProps);
getDefaultShape(): RectShape;
buildPath(ctx: CanvasRenderingContext2D, shape: RectShape): void;
isZeroArea(): boolean;
}
interface GroupProps extends ElementProps {
}
declare class Group extends Element<GroupProps> {
readonly isGroup = true;
private _children;
constructor(opts?: GroupProps);
childrenRef(): Element<ElementProps>[];
children(): Element<ElementProps>[];
childAt(idx: number): Element;
childOfName(name: string): Element;
childCount(): number;
add(child: Element): Group;
addBefore(child: Element, nextSibling: Element): this;
replace(oldChild: Element, newChild: Element): this;
replaceAt(child: Element, index: number): this;
_doAdd(child: Element): void;
remove(child: Element): this;
removeAll(): this;
eachChild<Context>(cb: (this: Context, el: Element, index?: number) => void, context?: Context): this;
traverse<T>(cb: (this: T, el: Element) => boolean | void, context?: T): this;
addSelfToZr(zr: ZRenderType): void;
removeSelfFromZr(zr: ZRenderType): void;
getBoundingRect(includeChildren?: Element[]): BoundingRect;
}
interface GroupLike extends Element {
childrenRef(): Element[];
}
interface TextStylePropsPart {
text?: string;
fill?: string;
stroke?: string;
strokeNoScale?: boolean;
opacity?: number;
fillOpacity?: number;
strokeOpacity?: number;
lineWidth?: number;
lineDash?: false | number[];
lineDashOffset?: number;
borderDash?: false | number[];
borderDashOffset?: number;
font?: string;
textFont?: string;
fontStyle?: FontStyle;
fontWeight?: FontWeight;
fontFamily?: string;
fontSize?: number | string;
align?: TextAlign;
verticalAlign?: TextVerticalAlign;
lineHeight?: number;
width?: number | string;
height?: number;
tag?: string;
textShadowColor?: string;
textShadowBlur?: number;
textShadowOffsetX?: number;
textShadowOffsetY?: number;
backgroundColor?: string | {
image: ImageLike | string;
};
padding?: number | number[];
margin?: number;
borderColor?: string;
borderWidth?: number;
borderRadius?: number | number[];
shadowColor?: string;
shadowBlur?: number;
shadowOffsetX?: number;
shadowOffsetY?: number;
}
interface TextStyleProps extends TextStylePropsPart {
text?: string;
x?: number;
y?: number;
width?: number;
rich?: Dictionary<TextStylePropsPart>;
overflow?: 'break' | 'breakAll' | 'truncate' | 'none';
lineOverflow?: 'truncate';
ellipsis?: string;
placeholder?: string;
truncateMinChar?: number;
}
interface TextProps extends DisplayableProps {
style?: TextStyleProps;
zlevel?: number;
z?: number;
z2?: number;
culling?: boolean;
cursor?: string;
}
declare type TextState = Pick<TextProps, DisplayableStatePropNames> & ElementCommonState;
declare type DefaultTextStyle = Pick<TextStyleProps, 'fill' | 'stroke' | 'align' | 'verticalAlign'> & {
autoStroke?: boolean;
};
interface ZRText {
animate(key?: '', loop?: boolean): Animator<this>;
animate(key: 'style', loop?: boolean): Animator<this['style']>;
getState(stateName: string): TextState;
ensureState(stateName: string): TextState;
states: Dictionary<TextState>;
stateProxy: (stateName: string) => TextState;
}
declare class ZRText extends Displayable<TextProps> implements GroupLike {
type: string;
style: TextStyleProps;
overlap: 'hidden' | 'show' | 'blur';
innerTransformable: Transformable;
isTruncated: boolean;
private _children;
private _childCursor;
private _defaultStyle;
constructor(opts?: TextProps);
childrenRef(): (ZRImage | Rect | TSpan)[];
update(): void;
updateTransform(): void;
getLocalTransform(m?: MatrixArray): MatrixArray;
getComputedTransform(): MatrixArray;
private _updateSubTexts;
addSelfToZr(zr: ZRenderType): void;
removeSelfFromZr(zr: ZRenderType): void;
getBoundingRect(): BoundingRect;
setDefaultTextStyle(defaultTextStyle: DefaultTextStyle): void;
setTextContent(textContent: never): void;
protected _mergeStyle(targetStyle: TextStyleProps, sourceStyle: TextStyleProps): TextStyleProps;
private _mergeRich;
getAnimationStyleProps(): MapToType<TextProps, boolean>;
private _getOrCreateChild;
private _updatePlainTexts;
private _updateRichTexts;
private _placeToken;
private _renderBackground;
static makeFont(style: TextStylePropsPart): string;
}
interface TextPositionCalculationResult {
x: number;
y: number;
align: TextAlign;
verticalAlign: TextVerticalAlign;
}
declare class PolylineShape {
points: VectorArray[];
percent?: number;
smooth?: number;
smoothConstraint?: VectorArray[];
}
interface PolylineProps extends PathProps {
shape?: Partial<PolylineShape>;
}
declare class Polyline extends Path<PolylineProps> {
shape: PolylineShape;
constructor(opts?: PolylineProps);
getDefaultStyle(): {
stroke: string;
fill: string;
};
getDefaultShape(): PolylineShape;
buildPath(ctx: CanvasRenderingContext2D, shape: PolylineShape): void;
}
interface ElementAnimateConfig {
duration?: number;
delay?: number;
easing?: AnimationEasing;
during?: (percent: number) => void;
done?: Function;
aborted?: Function;
scope?: string;
force?: boolean;
additive?: boolean;
setToFinal?: boolean;
}
interface ElementTextConfig {
position?: BuiltinTextPosition | (number | string)[];
rotation?: number;
layoutRect?: RectLike;
offset?: number[];
origin?: (number | string)[] | 'center';
distance?: number;
local?: boolean;
insideFill?: string;
insideStroke?: string;
outsideFill?: string;
outsideStroke?: string;
inside?: boolean;
}
interface ElementTextGuideLineConfig {
anchor?: Point;
showAbove?: boolean;
candidates?: ('left' | 'top' | 'right' | 'bottom')[];
}
interface ElementEvent {
type: ElementEventName;
event: ZRRawEvent;
target: Element;
topTarget: Element;
cancelBubble: boolean;
offsetX: number;
offsetY: number;
gestureEvent: string;
pinchX: number;
pinchY: number;
pinchScale: number;
wheelDelta: number;
zrByTouch: boolean;
which: number;
stop: (this: ElementEvent) => void;
}
declare type ElementEventCallback<Ctx, Impl> = (this: CbThis$1<Ctx, Impl>, e: ElementEvent) => boolean | void;
declare type CbThis$1<Ctx, Impl> = unknown extends Ctx ? Impl : Ctx;
interface ElementEventHandlerProps {
onclick: ElementEventCallback<unknown, unknown>;
ondblclick: ElementEventCallback<unknown, unknown>;
onmouseover: ElementEventCallback<unknown, unknown>;
onmouseout: ElementEventCallback<unknown, unknown>;
onmousemove: ElementEventCallback<unknown, unknown>;
onmousewheel: ElementEventCallback<unknown, unknown>;
onmousedown: ElementEventCallback<unknown, unknown>;
onmouseup: ElementEventCallback<unknown, unknown>;
oncontextmenu: ElementEventCallback<unknown, unknown>;
ondrag: ElementEventCallback<unknown, unknown>;
ondragstart: ElementEventCallback<unknown, unknown>;
ondragend: ElementEventCallback<unknown, unknown>;
ondragenter: ElementEventCallback<unknown, unknown>;
ondragleave: ElementEventCallback<unknown, unknown>;
ondragover: ElementEventCallback<unknown, unknown>;
ondrop: ElementEventCallback<unknown, unknown>;
}
interface ElementProps extends Partial<ElementEventHandlerProps>, Partial<Pick<Transformable, TransformProp>> {
name?: string;
ignore?: boolean;
isGroup?: boolean;
draggable?: boolean | 'horizontal' | 'vertical';
silent?: boolean;
ignoreClip?: boolean;
globalScaleRatio?: number;
textConfig?: ElementTextConfig;
textContent?: ZRText;
clipPath?: Path;
drift?: Element['drift'];
extra?: Dictionary<unknown>;
anid?: string;
}
declare const PRIMARY_STATES_KEYS: ["x" | "y" | "originX" | "originY" | "anchorX" | "anchorY" | "rotation" | "scaleX" | "scaleY" | "skewX" | "skewY", "ignore"];
declare type ElementStatePropNames = (typeof PRIMARY_STATES_KEYS)[number] | 'textConfig';
declare type ElementState = Pick<ElementProps, ElementStatePropNames> & ElementCommonS