zrender-nightly 5.4.4-dev.20231220 → 5.4.4-dev.20231221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/zrender.js +60 -6
- package/dist/zrender.js.map +1 -1
- package/dist/zrender.min.js +1 -1
- package/lib/zrender.d.ts +5 -4
- package/lib/zrender.js +60 -6
- package/package.json +1 -1
- package/src/zrender.ts +67 -11
package/lib/zrender.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ declare class ZRender {
|
|
|
33
33
|
private _stillFrameAccum;
|
|
34
34
|
private _needsRefresh;
|
|
35
35
|
private _needsRefreshHover;
|
|
36
|
+
private _disposed;
|
|
36
37
|
private _darkMode;
|
|
37
38
|
private _backgroundColor;
|
|
38
39
|
constructor(id: number, dom?: HTMLElement, opts?: ZRenderInitOpt);
|
|
@@ -56,13 +57,13 @@ declare class ZRender {
|
|
|
56
57
|
height?: number | string;
|
|
57
58
|
}): void;
|
|
58
59
|
clearAnimation(): void;
|
|
59
|
-
getWidth(): number;
|
|
60
|
-
getHeight(): number;
|
|
60
|
+
getWidth(): number | undefined;
|
|
61
|
+
getHeight(): number | undefined;
|
|
61
62
|
setCursorStyle(cursorStyle: string): void;
|
|
62
63
|
findHover(x: number, y: number): {
|
|
63
64
|
target: Displayable;
|
|
64
65
|
topTarget: Displayable;
|
|
65
|
-
};
|
|
66
|
+
} | undefined;
|
|
66
67
|
on<Ctx>(eventName: ElementEventName, eventHandler: ElementEventCallback<Ctx, ZRenderType>, context?: Ctx): this;
|
|
67
68
|
on<Ctx>(eventName: string, eventHandler: WithThisType<EventCallback<any[]>, unknown extends Ctx ? ZRenderType : Ctx>, context?: Ctx): this;
|
|
68
69
|
off(eventName?: string, eventHandler?: EventCallback): void;
|
|
@@ -89,7 +90,7 @@ export declare type ElementSSRData = zrUtil.HashMap<unknown>;
|
|
|
89
90
|
export declare type ElementSSRDataGetter<T> = (el: Element) => zrUtil.HashMap<T>;
|
|
90
91
|
export declare function getElementSSRData(el: Element): ElementSSRData;
|
|
91
92
|
export declare function registerSSRDataGetter<T>(getter: ElementSSRDataGetter<T>): void;
|
|
92
|
-
export declare const version = "5.4.4-dev.
|
|
93
|
+
export declare const version = "5.4.4-dev.20231221";
|
|
93
94
|
export interface ZRenderType extends ZRender {
|
|
94
95
|
}
|
|
95
96
|
export {};
|
package/lib/zrender.js
CHANGED
|
@@ -68,7 +68,7 @@ var ZRender = (function () {
|
|
|
68
68
|
var ssrMode = opts.ssr || painter.ssrOnly;
|
|
69
69
|
this.storage = storage;
|
|
70
70
|
this.painter = painter;
|
|
71
|
-
var
|
|
71
|
+
var handlerProxy = (!env.node && !env.worker && !ssrMode)
|
|
72
72
|
? new HandlerProxy(painter.getViewportRoot(), painter.root)
|
|
73
73
|
: null;
|
|
74
74
|
var useCoarsePointer = opts.useCoarsePointer;
|
|
@@ -80,7 +80,7 @@ var ZRender = (function () {
|
|
|
80
80
|
if (usePointerSize) {
|
|
81
81
|
pointerSize = zrUtil.retrieve2(opts.pointerSize, defaultPointerSize);
|
|
82
82
|
}
|
|
83
|
-
this.handler = new Handler(storage, painter,
|
|
83
|
+
this.handler = new Handler(storage, painter, handlerProxy, painter.root, pointerSize);
|
|
84
84
|
this.animation = new Animation({
|
|
85
85
|
stage: {
|
|
86
86
|
update: ssrMode ? null : function () { return _this._flush(true); }
|
|
@@ -91,7 +91,7 @@ var ZRender = (function () {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
ZRender.prototype.add = function (el) {
|
|
94
|
-
if (!el) {
|
|
94
|
+
if (this._disposed || !el) {
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
97
|
this.storage.addRoot(el);
|
|
@@ -99,7 +99,7 @@ var ZRender = (function () {
|
|
|
99
99
|
this.refresh();
|
|
100
100
|
};
|
|
101
101
|
ZRender.prototype.remove = function (el) {
|
|
102
|
-
if (!el) {
|
|
102
|
+
if (this._disposed || !el) {
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
105
|
this.storage.delRoot(el);
|
|
@@ -107,12 +107,18 @@ var ZRender = (function () {
|
|
|
107
107
|
this.refresh();
|
|
108
108
|
};
|
|
109
109
|
ZRender.prototype.configLayer = function (zLevel, config) {
|
|
110
|
+
if (this._disposed) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
110
113
|
if (this.painter.configLayer) {
|
|
111
114
|
this.painter.configLayer(zLevel, config);
|
|
112
115
|
}
|
|
113
116
|
this.refresh();
|
|
114
117
|
};
|
|
115
118
|
ZRender.prototype.setBackgroundColor = function (backgroundColor) {
|
|
119
|
+
if (this._disposed) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
116
122
|
if (this.painter.setBackgroundColor) {
|
|
117
123
|
this.painter.setBackgroundColor(backgroundColor);
|
|
118
124
|
}
|
|
@@ -130,6 +136,9 @@ var ZRender = (function () {
|
|
|
130
136
|
return this._darkMode;
|
|
131
137
|
};
|
|
132
138
|
ZRender.prototype.refreshImmediately = function (fromInside) {
|
|
139
|
+
if (this._disposed) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
133
142
|
if (!fromInside) {
|
|
134
143
|
this.animation.update(true);
|
|
135
144
|
}
|
|
@@ -138,10 +147,16 @@ var ZRender = (function () {
|
|
|
138
147
|
this._needsRefresh = false;
|
|
139
148
|
};
|
|
140
149
|
ZRender.prototype.refresh = function () {
|
|
150
|
+
if (this._disposed) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
141
153
|
this._needsRefresh = true;
|
|
142
154
|
this.animation.start();
|
|
143
155
|
};
|
|
144
156
|
ZRender.prototype.flush = function () {
|
|
157
|
+
if (this._disposed) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
145
160
|
this._flush(false);
|
|
146
161
|
};
|
|
147
162
|
ZRender.prototype._flush = function (fromInside) {
|
|
@@ -173,6 +188,9 @@ var ZRender = (function () {
|
|
|
173
188
|
this._sleepAfterStill = stillFramesCount;
|
|
174
189
|
};
|
|
175
190
|
ZRender.prototype.wakeUp = function () {
|
|
191
|
+
if (this._disposed) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
176
194
|
this.animation.start();
|
|
177
195
|
this._stillFrameAccum = 0;
|
|
178
196
|
};
|
|
@@ -180,42 +198,74 @@ var ZRender = (function () {
|
|
|
180
198
|
this._needsRefreshHover = true;
|
|
181
199
|
};
|
|
182
200
|
ZRender.prototype.refreshHoverImmediately = function () {
|
|
201
|
+
if (this._disposed) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
183
204
|
this._needsRefreshHover = false;
|
|
184
205
|
if (this.painter.refreshHover && this.painter.getType() === 'canvas') {
|
|
185
206
|
this.painter.refreshHover();
|
|
186
207
|
}
|
|
187
208
|
};
|
|
188
209
|
ZRender.prototype.resize = function (opts) {
|
|
210
|
+
if (this._disposed) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
189
213
|
opts = opts || {};
|
|
190
214
|
this.painter.resize(opts.width, opts.height);
|
|
191
215
|
this.handler.resize();
|
|
192
216
|
};
|
|
193
217
|
ZRender.prototype.clearAnimation = function () {
|
|
218
|
+
if (this._disposed) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
194
221
|
this.animation.clear();
|
|
195
222
|
};
|
|
196
223
|
ZRender.prototype.getWidth = function () {
|
|
224
|
+
if (this._disposed) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
197
227
|
return this.painter.getWidth();
|
|
198
228
|
};
|
|
199
229
|
ZRender.prototype.getHeight = function () {
|
|
230
|
+
if (this._disposed) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
200
233
|
return this.painter.getHeight();
|
|
201
234
|
};
|
|
202
235
|
ZRender.prototype.setCursorStyle = function (cursorStyle) {
|
|
236
|
+
if (this._disposed) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
203
239
|
this.handler.setCursorStyle(cursorStyle);
|
|
204
240
|
};
|
|
205
241
|
ZRender.prototype.findHover = function (x, y) {
|
|
242
|
+
if (this._disposed) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
206
245
|
return this.handler.findHover(x, y);
|
|
207
246
|
};
|
|
208
247
|
ZRender.prototype.on = function (eventName, eventHandler, context) {
|
|
209
|
-
this.
|
|
248
|
+
if (!this._disposed) {
|
|
249
|
+
this.handler.on(eventName, eventHandler, context);
|
|
250
|
+
}
|
|
210
251
|
return this;
|
|
211
252
|
};
|
|
212
253
|
ZRender.prototype.off = function (eventName, eventHandler) {
|
|
254
|
+
if (this._disposed) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
213
257
|
this.handler.off(eventName, eventHandler);
|
|
214
258
|
};
|
|
215
259
|
ZRender.prototype.trigger = function (eventName, event) {
|
|
260
|
+
if (this._disposed) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
216
263
|
this.handler.trigger(eventName, event);
|
|
217
264
|
};
|
|
218
265
|
ZRender.prototype.clear = function () {
|
|
266
|
+
if (this._disposed) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
219
269
|
var roots = this.storage.getRoots();
|
|
220
270
|
for (var i = 0; i < roots.length; i++) {
|
|
221
271
|
if (roots[i] instanceof Group) {
|
|
@@ -226,6 +276,9 @@ var ZRender = (function () {
|
|
|
226
276
|
this.painter.clear();
|
|
227
277
|
};
|
|
228
278
|
ZRender.prototype.dispose = function () {
|
|
279
|
+
if (this._disposed) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
229
282
|
this.animation.stop();
|
|
230
283
|
this.clear();
|
|
231
284
|
this.storage.dispose();
|
|
@@ -235,6 +288,7 @@ var ZRender = (function () {
|
|
|
235
288
|
this.storage =
|
|
236
289
|
this.painter =
|
|
237
290
|
this.handler = null;
|
|
291
|
+
this._disposed = true;
|
|
238
292
|
delInstance(this.id);
|
|
239
293
|
};
|
|
240
294
|
return ZRender;
|
|
@@ -272,5 +326,5 @@ export function getElementSSRData(el) {
|
|
|
272
326
|
export function registerSSRDataGetter(getter) {
|
|
273
327
|
ssrDataGetter = getter;
|
|
274
328
|
}
|
|
275
|
-
export var version = '5.4.4-dev.
|
|
329
|
+
export var version = '5.4.4-dev.20231221';
|
|
276
330
|
;
|
package/package.json
CHANGED
package/src/zrender.ts
CHANGED
|
@@ -81,7 +81,7 @@ class ZRender {
|
|
|
81
81
|
|
|
82
82
|
private _needsRefresh = true
|
|
83
83
|
private _needsRefreshHover = true
|
|
84
|
-
|
|
84
|
+
private _disposed: boolean;
|
|
85
85
|
/**
|
|
86
86
|
* If theme is dark mode. It will determine the color strategy for labels.
|
|
87
87
|
*/
|
|
@@ -123,7 +123,7 @@ class ZRender {
|
|
|
123
123
|
this.storage = storage;
|
|
124
124
|
this.painter = painter;
|
|
125
125
|
|
|
126
|
-
const
|
|
126
|
+
const handlerProxy = (!env.node && !env.worker && !ssrMode)
|
|
127
127
|
? new HandlerProxy(painter.getViewportRoot(), painter.root)
|
|
128
128
|
: null;
|
|
129
129
|
|
|
@@ -137,7 +137,7 @@ class ZRender {
|
|
|
137
137
|
pointerSize = zrUtil.retrieve2(opts.pointerSize, defaultPointerSize);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
this.handler = new Handler(storage, painter,
|
|
140
|
+
this.handler = new Handler(storage, painter, handlerProxy, painter.root, pointerSize);
|
|
141
141
|
|
|
142
142
|
this.animation = new Animation({
|
|
143
143
|
stage: {
|
|
@@ -154,7 +154,7 @@ class ZRender {
|
|
|
154
154
|
* 添加元素
|
|
155
155
|
*/
|
|
156
156
|
add(el: Element) {
|
|
157
|
-
if (!el) {
|
|
157
|
+
if (this._disposed || !el) {
|
|
158
158
|
return;
|
|
159
159
|
}
|
|
160
160
|
this.storage.addRoot(el);
|
|
@@ -166,7 +166,7 @@ class ZRender {
|
|
|
166
166
|
* 删除元素
|
|
167
167
|
*/
|
|
168
168
|
remove(el: Element) {
|
|
169
|
-
if (!el) {
|
|
169
|
+
if (this._disposed || !el) {
|
|
170
170
|
return;
|
|
171
171
|
}
|
|
172
172
|
this.storage.delRoot(el);
|
|
@@ -178,6 +178,9 @@ class ZRender {
|
|
|
178
178
|
* Change configuration of layer
|
|
179
179
|
*/
|
|
180
180
|
configLayer(zLevel: number, config: LayerConfig) {
|
|
181
|
+
if (this._disposed) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
181
184
|
if (this.painter.configLayer) {
|
|
182
185
|
this.painter.configLayer(zLevel, config);
|
|
183
186
|
}
|
|
@@ -188,6 +191,9 @@ class ZRender {
|
|
|
188
191
|
* Set background color
|
|
189
192
|
*/
|
|
190
193
|
setBackgroundColor(backgroundColor: string | GradientObject | PatternObject) {
|
|
194
|
+
if (this._disposed) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
191
197
|
if (this.painter.setBackgroundColor) {
|
|
192
198
|
this.painter.setBackgroundColor(backgroundColor);
|
|
193
199
|
}
|
|
@@ -215,6 +221,9 @@ class ZRender {
|
|
|
215
221
|
* Repaint the canvas immediately
|
|
216
222
|
*/
|
|
217
223
|
refreshImmediately(fromInside?: boolean) {
|
|
224
|
+
if (this._disposed) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
218
227
|
// const start = new Date();
|
|
219
228
|
if (!fromInside) {
|
|
220
229
|
// Update animation if refreshImmediately is invoked from outside.
|
|
@@ -234,6 +243,9 @@ class ZRender {
|
|
|
234
243
|
* Mark and repaint the canvas in the next frame of browser
|
|
235
244
|
*/
|
|
236
245
|
refresh() {
|
|
246
|
+
if (this._disposed) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
237
249
|
this._needsRefresh = true;
|
|
238
250
|
// Active the animation again.
|
|
239
251
|
this.animation.start();
|
|
@@ -243,6 +255,9 @@ class ZRender {
|
|
|
243
255
|
* Perform all refresh
|
|
244
256
|
*/
|
|
245
257
|
flush() {
|
|
258
|
+
if (this._disposed) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
246
261
|
this._flush(false);
|
|
247
262
|
}
|
|
248
263
|
|
|
@@ -269,7 +284,7 @@ class ZRender {
|
|
|
269
284
|
}
|
|
270
285
|
else if (this._sleepAfterStill > 0) {
|
|
271
286
|
this._stillFrameAccum++;
|
|
272
|
-
// Stop the
|
|
287
|
+
// Stop the animation after still for 10 frames.
|
|
273
288
|
if (this._stillFrameAccum > this._sleepAfterStill) {
|
|
274
289
|
this.animation.stop();
|
|
275
290
|
}
|
|
@@ -288,6 +303,9 @@ class ZRender {
|
|
|
288
303
|
* Wake up animation loop. But not render.
|
|
289
304
|
*/
|
|
290
305
|
wakeUp() {
|
|
306
|
+
if (this._disposed) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
291
309
|
this.animation.start();
|
|
292
310
|
// Reset the frame count.
|
|
293
311
|
this._stillFrameAccum = 0;
|
|
@@ -304,6 +322,9 @@ class ZRender {
|
|
|
304
322
|
* Refresh hover immediately
|
|
305
323
|
*/
|
|
306
324
|
refreshHoverImmediately() {
|
|
325
|
+
if (this._disposed) {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
307
328
|
this._needsRefreshHover = false;
|
|
308
329
|
if (this.painter.refreshHover && this.painter.getType() === 'canvas') {
|
|
309
330
|
this.painter.refreshHover();
|
|
@@ -318,6 +339,9 @@ class ZRender {
|
|
|
318
339
|
width?: number| string
|
|
319
340
|
height?: number | string
|
|
320
341
|
}) {
|
|
342
|
+
if (this._disposed) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
321
345
|
opts = opts || {};
|
|
322
346
|
this.painter.resize(opts.width, opts.height);
|
|
323
347
|
this.handler.resize();
|
|
@@ -327,20 +351,29 @@ class ZRender {
|
|
|
327
351
|
* Stop and clear all animation immediately
|
|
328
352
|
*/
|
|
329
353
|
clearAnimation() {
|
|
354
|
+
if (this._disposed) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
330
357
|
this.animation.clear();
|
|
331
358
|
}
|
|
332
359
|
|
|
333
360
|
/**
|
|
334
361
|
* Get container width
|
|
335
362
|
*/
|
|
336
|
-
getWidth(): number {
|
|
363
|
+
getWidth(): number | undefined {
|
|
364
|
+
if (this._disposed) {
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
337
367
|
return this.painter.getWidth();
|
|
338
368
|
}
|
|
339
369
|
|
|
340
370
|
/**
|
|
341
371
|
* Get container height
|
|
342
372
|
*/
|
|
343
|
-
getHeight(): number {
|
|
373
|
+
getHeight(): number | undefined {
|
|
374
|
+
if (this._disposed) {
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
344
377
|
return this.painter.getHeight();
|
|
345
378
|
}
|
|
346
379
|
|
|
@@ -349,6 +382,9 @@ class ZRender {
|
|
|
349
382
|
* @param cursorStyle='default' 例如 crosshair
|
|
350
383
|
*/
|
|
351
384
|
setCursorStyle(cursorStyle: string) {
|
|
385
|
+
if (this._disposed) {
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
352
388
|
this.handler.setCursorStyle(cursorStyle);
|
|
353
389
|
}
|
|
354
390
|
|
|
@@ -361,7 +397,10 @@ class ZRender {
|
|
|
361
397
|
findHover(x: number, y: number): {
|
|
362
398
|
target: Displayable
|
|
363
399
|
topTarget: Displayable
|
|
364
|
-
} {
|
|
400
|
+
} | undefined {
|
|
401
|
+
if (this._disposed) {
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
365
404
|
return this.handler.findHover(x, y);
|
|
366
405
|
}
|
|
367
406
|
|
|
@@ -370,7 +409,9 @@ class ZRender {
|
|
|
370
409
|
on<Ctx>(eventName: string, eventHandler: WithThisType<EventCallback<any[]>, unknown extends Ctx ? ZRenderType : Ctx>, context?: Ctx): this
|
|
371
410
|
// eslint-disable-next-line max-len
|
|
372
411
|
on<Ctx>(eventName: string, eventHandler: (...args: any) => any, context?: Ctx): this {
|
|
373
|
-
this.
|
|
412
|
+
if (!this._disposed) {
|
|
413
|
+
this.handler.on(eventName, eventHandler, context);
|
|
414
|
+
}
|
|
374
415
|
return this;
|
|
375
416
|
}
|
|
376
417
|
|
|
@@ -381,6 +422,9 @@ class ZRender {
|
|
|
381
422
|
*/
|
|
382
423
|
// eslint-disable-next-line max-len
|
|
383
424
|
off(eventName?: string, eventHandler?: EventCallback) {
|
|
425
|
+
if (this._disposed) {
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
384
428
|
this.handler.off(eventName, eventHandler);
|
|
385
429
|
}
|
|
386
430
|
|
|
@@ -391,6 +435,9 @@ class ZRender {
|
|
|
391
435
|
* @param event Event object
|
|
392
436
|
*/
|
|
393
437
|
trigger(eventName: string, event?: unknown) {
|
|
438
|
+
if (this._disposed) {
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
394
441
|
this.handler.trigger(eventName, event);
|
|
395
442
|
}
|
|
396
443
|
|
|
@@ -399,6 +446,9 @@ class ZRender {
|
|
|
399
446
|
* Clear all objects and the canvas.
|
|
400
447
|
*/
|
|
401
448
|
clear() {
|
|
449
|
+
if (this._disposed) {
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
402
452
|
const roots = this.storage.getRoots();
|
|
403
453
|
for (let i = 0; i < roots.length; i++) {
|
|
404
454
|
if (roots[i] instanceof Group) {
|
|
@@ -413,6 +463,10 @@ class ZRender {
|
|
|
413
463
|
* Dispose self.
|
|
414
464
|
*/
|
|
415
465
|
dispose() {
|
|
466
|
+
if (this._disposed) {
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
|
|
416
470
|
this.animation.stop();
|
|
417
471
|
|
|
418
472
|
this.clear();
|
|
@@ -425,6 +479,8 @@ class ZRender {
|
|
|
425
479
|
this.painter =
|
|
426
480
|
this.handler = null;
|
|
427
481
|
|
|
482
|
+
this._disposed = true;
|
|
483
|
+
|
|
428
484
|
delInstance(this.id);
|
|
429
485
|
}
|
|
430
486
|
}
|
|
@@ -502,7 +558,7 @@ export function registerSSRDataGetter<T>(getter: ElementSSRDataGetter<T>) {
|
|
|
502
558
|
/**
|
|
503
559
|
* @type {string}
|
|
504
560
|
*/
|
|
505
|
-
export const version = '5.4.4-dev.
|
|
561
|
+
export const version = '5.4.4-dev.20231221';
|
|
506
562
|
|
|
507
563
|
|
|
508
564
|
export interface ZRenderType extends ZRender {};
|