zrender-nightly 5.4.4-dev.20231220 → 5.4.4-dev.20231222

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/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.20231220";
93
+ export declare const version = "5.4.4-dev.20231222";
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 handerProxy = (!env.node && !env.worker && !ssrMode)
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, handerProxy, painter.root, pointerSize);
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.handler.on(eventName, eventHandler, context);
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.20231220';
329
+ export var version = '5.4.4-dev.20231222';
276
330
  ;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zrender-nightly",
3
- "version": "5.4.4-dev.20231220",
3
+ "version": "5.4.4-dev.20231222",
4
4
  "description": "A lightweight graphic library providing 2d draw for Apache ECharts",
5
5
  "keywords": [
6
6
  "canvas",
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 handerProxy = (!env.node && !env.worker && !ssrMode)
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, handerProxy, painter.root, pointerSize);
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 animiation after still for 10 frames.
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.handler.on(eventName, eventHandler, context);
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.20231220';
561
+ export const version = '5.4.4-dev.20231222';
506
562
 
507
563
 
508
564
  export interface ZRenderType extends ZRender {};