@visactor/vrender-core 1.1.12 → 1.1.14

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.
Files changed (74) hide show
  1. package/cjs/canvas/conical-gradient.js +1 -1
  2. package/cjs/canvas/constants.js +1 -1
  3. package/cjs/canvas/empty-context.js +1 -1
  4. package/cjs/canvas/index.js +1 -1
  5. package/cjs/canvas/util.js +1 -1
  6. package/cjs/common/bezier-utils.js +1 -2
  7. package/cjs/common/contribution-store-state.js +2 -1
  8. package/cjs/common/path-svg.js +1 -2
  9. package/cjs/common/render-command-list.js +2 -1
  10. package/cjs/common/seg-context.js +1 -1
  11. package/cjs/common/simplify.js +1 -1
  12. package/cjs/common/sort.js +1 -1
  13. package/cjs/common/split-path.js +1 -1
  14. package/cjs/common/text.js +1 -1
  15. package/cjs/core/contributions/layerHandler/modules.js +4 -2
  16. package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
  17. package/cjs/core/stage.d.ts +10 -3
  18. package/cjs/core/stage.js +39 -20
  19. package/cjs/core/stage.js.map +1 -1
  20. package/cjs/event/event-manager.d.ts +29 -1
  21. package/cjs/event/event-manager.js +161 -42
  22. package/cjs/event/event-manager.js.map +1 -1
  23. package/cjs/event/event-system.d.ts +19 -3
  24. package/cjs/event/event-system.js +110 -62
  25. package/cjs/event/event-system.js.map +1 -1
  26. package/cjs/event/federated-event/base-event.js +3 -1
  27. package/cjs/event/federated-event/base-event.js.map +1 -1
  28. package/cjs/event/input-source.d.ts +7 -0
  29. package/cjs/event/input-source.js +37 -0
  30. package/cjs/event/input-source.js.map +1 -0
  31. package/cjs/interface/event.d.ts +9 -0
  32. package/cjs/interface/event.js.map +1 -1
  33. package/cjs/interface/stage.d.ts +10 -2
  34. package/cjs/interface/stage.js.map +1 -1
  35. package/cjs/render/contributions/render/draw-interceptor.js +13 -3
  36. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  37. package/dist/index.es.js +622 -145
  38. package/es/canvas/conical-gradient.js +1 -1
  39. package/es/canvas/constants.js +1 -1
  40. package/es/canvas/empty-context.js +1 -1
  41. package/es/canvas/index.js +1 -1
  42. package/es/canvas/util.js +1 -1
  43. package/es/common/bezier-utils.js +1 -2
  44. package/es/common/contribution-store-state.js +2 -1
  45. package/es/common/path-svg.js +1 -2
  46. package/es/common/render-command-list.js +2 -1
  47. package/es/common/seg-context.js +1 -1
  48. package/es/common/simplify.js +1 -1
  49. package/es/common/sort.js +1 -1
  50. package/es/common/split-path.js +1 -1
  51. package/es/common/text.js +1 -1
  52. package/es/core/contributions/layerHandler/modules.js +6 -2
  53. package/es/core/contributions/layerHandler/modules.js.map +1 -1
  54. package/es/core/stage.d.ts +10 -3
  55. package/es/core/stage.js +40 -21
  56. package/es/core/stage.js.map +1 -1
  57. package/es/event/event-manager.d.ts +29 -1
  58. package/es/event/event-manager.js +162 -41
  59. package/es/event/event-manager.js.map +1 -1
  60. package/es/event/event-system.d.ts +19 -3
  61. package/es/event/event-system.js +110 -62
  62. package/es/event/event-system.js.map +1 -1
  63. package/es/event/federated-event/base-event.js +2 -1
  64. package/es/event/federated-event/base-event.js.map +1 -1
  65. package/es/event/input-source.d.ts +7 -0
  66. package/es/event/input-source.js +29 -0
  67. package/es/event/input-source.js.map +1 -0
  68. package/es/interface/event.d.ts +9 -0
  69. package/es/interface/event.js.map +1 -1
  70. package/es/interface/stage.d.ts +10 -2
  71. package/es/interface/stage.js.map +1 -1
  72. package/es/render/contributions/render/draw-interceptor.js +12 -3
  73. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  74. package/package.json +3 -3
@@ -128,4 +128,4 @@ function createConicalGradient(context, stops, x, y, deltaAngle, startAngle, end
128
128
 
129
129
  ConicalPatternStore.cache = {}, ConicalPatternStore.ImageSize = [ 20, 40, 80, 160, 320, 640, 1280, 2560 ],
130
130
  exports.getConicGradientAt = getConicGradientAt, exports.createConicalGradient = createConicalGradient;
131
- //# sourceMappingURL=conical-gradient.js.map
131
+ //# sourceMappingURL=conical-gradient.js.map
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Context2dFactory = exports.CanvasFactory = void 0, exports.CanvasFactory = Symbol.for("CanvasFactory"),
6
6
  exports.Context2dFactory = Symbol.for("Context2dFactory");
7
- //# sourceMappingURL=constants.js.map
7
+ //# sourceMappingURL=constants.js.map
@@ -205,4 +205,4 @@ class EmptyContext2d {
205
205
  }
206
206
 
207
207
  exports.EmptyContext2d = EmptyContext2d;
208
- //# sourceMappingURL=empty-context.js.map
208
+ //# sourceMappingURL=empty-context.js.map
@@ -19,4 +19,4 @@ Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
20
  }), __exportStar(require("./constants"), exports), __exportStar(require("./empty-context"), exports),
21
21
  __exportStar(require("./contributions/base-canvas"), exports), __exportStar(require("./conical-gradient"), exports);
22
- //# sourceMappingURL=index.js.map
22
+ //# sourceMappingURL=index.js.map
@@ -400,4 +400,4 @@ function containStroke(commands, lineWidth, x, y) {
400
400
  }
401
401
 
402
402
  exports.contain = contain, exports.containStroke = containStroke;
403
- //# sourceMappingURL=util.js.map
403
+ //# sourceMappingURL=util.js.map
@@ -46,5 +46,4 @@ function quadLength(p0, p1, p2, iterationCount) {
46
46
 
47
47
  exports.snapLength = snapLength, exports.cubicLength = cubicLength, exports.cubicCalc = cubicCalc,
48
48
  exports.cubicPointAt = cubicPointAt, exports.quadCalc = quadCalc, exports.quadPointAt = quadPointAt,
49
- exports.quadLength = quadLength;
50
- //# sourceMappingURL=bezier-utils.js.map
49
+ exports.quadLength = quadLength;
@@ -16,4 +16,5 @@ Object.defineProperty(exports, "__esModule", {
16
16
  value: !0
17
17
  }), exports.getContributionStoreState = exports.CONTRIBUTION_STORE_STATE_SYMBOL = void 0,
18
18
  exports.CONTRIBUTION_STORE_STATE_SYMBOL = Symbol.for("@visactor/vrender-core/contribution-store-state"),
19
- exports.getContributionStoreState = getContributionStoreState;
19
+ exports.getContributionStoreState = getContributionStoreState;
20
+ //# sourceMappingURL=contribution-store-state.js.map
@@ -60,5 +60,4 @@ exports.enumCommandMap = {
60
60
  M: 6,
61
61
  Q: 7,
62
62
  R: 8
63
- }, exports.parseSvgPath = parseSvgPath;
64
- //# sourceMappingURL=path-svg.js.map
63
+ }, exports.parseSvgPath = parseSvgPath;
@@ -13,4 +13,5 @@ function renderCommandList(commandList, context, x = 0, y = 0, sx = 1, sy = 1, z
13
13
  }
14
14
  }
15
15
 
16
- exports.renderCommandList = renderCommandList;
16
+ exports.renderCommandList = renderCommandList;
17
+ //# sourceMappingURL=render-command-list.js.map
@@ -95,4 +95,4 @@ class ReflectSegContext extends SegContext {
95
95
  }
96
96
 
97
97
  exports.ReflectSegContext = ReflectSegContext;
98
- //# sourceMappingURL=seg-context.js.map
98
+ //# sourceMappingURL=seg-context.js.map
@@ -36,4 +36,4 @@ function flatten_simplify(points, tolerance, highestQuality) {
36
36
  Object.defineProperty(exports, "__esModule", {
37
37
  value: !0
38
38
  }), exports.flatten_simplify = void 0, exports.flatten_simplify = flatten_simplify;
39
- //# sourceMappingURL=simplify.js.map
39
+ //# sourceMappingURL=simplify.js.map
@@ -101,4 +101,4 @@ Object.defineProperty(exports, "__esModule", {
101
101
  value: !0
102
102
  }), exports.findNextGraphic = exports.foreachAsync = exports.foreach = void 0, exports.foreach = foreach,
103
103
  exports.foreachAsync = foreachAsync, exports.findNextGraphic = findNextGraphic;
104
- //# sourceMappingURL=sort.js.map
104
+ //# sourceMappingURL=sort.js.map
@@ -269,4 +269,4 @@ const splitPath = (path, count) => {
269
269
  };
270
270
 
271
271
  exports.splitPath = splitPath;
272
- //# sourceMappingURL=split-path.js.map
272
+ //# sourceMappingURL=split-path.js.map
@@ -34,4 +34,4 @@ function textAttributesToStyle(attrs) {
34
34
 
35
35
  exports.textDrawOffsetY = textDrawOffsetY, exports.textDrawOffsetX = textDrawOffsetX,
36
36
  exports.textLayoutOffsetY = textLayoutOffsetY, exports.textAttributesToStyle = textAttributesToStyle;
37
- //# sourceMappingURL=text.js.map
37
+ //# sourceMappingURL=text.js.map
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.bindLayerHandlerModules = void 0;
6
6
 
7
- const constants_1 = require("../../constants"), canvas2d_contribution_1 = require("./canvas2d-contribution");
7
+ const constants_1 = require("../../constants"), canvas2d_contribution_1 = require("./canvas2d-contribution"), empty_contribution_1 = require("./empty-contribution");
8
8
 
9
9
  function bindLayerHandlerModules({bind: bind}) {
10
- bind(canvas2d_contribution_1.CanvasLayerHandlerContribution).toSelf(), bind(constants_1.StaticLayerHandlerContribution).toService(canvas2d_contribution_1.CanvasLayerHandlerContribution);
10
+ bind(canvas2d_contribution_1.CanvasLayerHandlerContribution).toSelf(), bind(empty_contribution_1.EmptyLayerHandlerContribution).toSelf(),
11
+ bind(constants_1.StaticLayerHandlerContribution).toService(canvas2d_contribution_1.CanvasLayerHandlerContribution),
12
+ bind(constants_1.VirtualLayerHandlerContribution).toService(empty_contribution_1.EmptyLayerHandlerContribution);
11
13
  }
12
14
 
13
15
  exports.bindLayerHandlerModules = bindLayerHandlerModules, exports.default = bindLayerHandlerModules;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/layerHandler/modules.ts"],"names":[],"mappings":";;;AAAA,+CAIyB;AACzB,mEAAyE;AAIzE,SAAgB,uBAAuB,CAAC,EAAE,IAAI,EAAiB;IAC7D,IAAI,CAAC,sDAA8B,CAAC,CAAC,MAAM,EAAE,CAAC;IAG9C,IAAI,CAAC,0CAA8B,CAAC,CAAC,SAAS,CAAC,sDAA8B,CAAC,CAAC;AAUjF,CAAC;AAdD,0DAcC;AAED,kBAAe,uBAAuB,CAAC","file":"modules.js","sourcesContent":["import {\n // DynamicLayerHandlerContribution,\n StaticLayerHandlerContribution\n // VirtualLayerHandlerContribution\n} from '../../constants';\nimport { CanvasLayerHandlerContribution } from './canvas2d-contribution';\n// import { EmptyLayerHandlerContribution } from './empty-contribution';\n// import { OffscreenLayerHandlerContribution } from './offscreen2d-contribution';\n\nexport function bindLayerHandlerModules({ bind }: { bind: any }) {\n bind(CanvasLayerHandlerContribution).toSelf();\n // bind(OffscreenLayerHandlerContribution).toSelf();\n // bind(EmptyLayerHandlerContribution).toSelf();\n bind(StaticLayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // bind(DynamicLayerHandlerContribution).toService(OffscreenLayerHandlerContribution);\n // bind(VirtualLayerHandlerContribution).toService(EmptyLayerHandlerContribution);\n // try {\n // if (typeof OffscreenCanvas === 'function') {\n // bind(LayerHandlerContribution).toService(OffscreenLayerHandlerContribution);\n // }\n // } catch (err) {\n // bind(LayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // }\n}\n\nexport default bindLayerHandlerModules;\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/layerHandler/modules.ts"],"names":[],"mappings":";;;AAAA,+CAIyB;AACzB,mEAAyE;AACzE,6DAAqE;AAGrE,SAAgB,uBAAuB,CAAC,EAAE,IAAI,EAAiB;IAC7D,IAAI,CAAC,sDAA8B,CAAC,CAAC,MAAM,EAAE,CAAC;IAE9C,IAAI,CAAC,kDAA6B,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7C,IAAI,CAAC,0CAA8B,CAAC,CAAC,SAAS,CAAC,sDAA8B,CAAC,CAAC;IAE/E,IAAI,CAAC,2CAA+B,CAAC,CAAC,SAAS,CAAC,kDAA6B,CAAC,CAAC;AAQjF,CAAC;AAdD,0DAcC;AAED,kBAAe,uBAAuB,CAAC","file":"modules.js","sourcesContent":["import {\n // DynamicLayerHandlerContribution,\n StaticLayerHandlerContribution,\n VirtualLayerHandlerContribution\n} from '../../constants';\nimport { CanvasLayerHandlerContribution } from './canvas2d-contribution';\nimport { EmptyLayerHandlerContribution } from './empty-contribution';\n// import { OffscreenLayerHandlerContribution } from './offscreen2d-contribution';\n\nexport function bindLayerHandlerModules({ bind }: { bind: any }) {\n bind(CanvasLayerHandlerContribution).toSelf();\n // bind(OffscreenLayerHandlerContribution).toSelf();\n bind(EmptyLayerHandlerContribution).toSelf();\n bind(StaticLayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // bind(DynamicLayerHandlerContribution).toService(OffscreenLayerHandlerContribution);\n bind(VirtualLayerHandlerContribution).toService(EmptyLayerHandlerContribution);\n // try {\n // if (typeof OffscreenCanvas === 'function') {\n // bind(LayerHandlerContribution).toService(OffscreenLayerHandlerContribution);\n // }\n // } catch (err) {\n // bind(LayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // }\n}\n\nexport default bindLayerHandlerModules;\n"]}
@@ -1,6 +1,7 @@
1
1
  import { type IAABBBounds, type IBounds, type IBoundsLike, type IMatrix } from '@visactor/vutils';
2
- import type { IGraphic, IExportType, IStage, IStageParams, ILayer, IColor, IOption3D, ICamera, vec3, IDirectionLight, ITicker, IRenderService, IPickerService, IPluginService, ISyncHook, IDrawContext, IWindow, ILayerService, ITimeline, IOptimizeType, LayerMode, PickResult, IPlugin, IGraphicService, IRenderServiceDrawParams } from '../interface';
2
+ import type { IGraphic, IExportType, IStage, IStageParams, ILayer, IColor, IOption3D, ICamera, vec3, IDirectionLight, ITicker, IRenderService, IPickerService, IPluginService, ISyncHook, IDrawContext, IWindow, ILayerService, ITimeline, IOptimizeType, LayerMode, PickResult, IPlugin, IGraphicService, IRenderServiceDrawParams, IRenderToOptions } from '../interface';
3
3
  import type { Layer } from './layer';
4
+ import { FederatedMouseEvent } from '../event';
4
5
  import { Group } from '../graphic/group';
5
6
  import { type IStageFactoryDeps } from '../factory';
6
7
  import { type SharedStateScope } from '../graphic/state/shared-state-scope';
@@ -147,6 +148,7 @@ export declare class Stage extends Group implements IStage {
147
148
  sortLayer(cb: (ILayer1: ILayer, layer2: ILayer) => number): void;
148
149
  removeLayer(ILayerId: number): ILayer | false;
149
150
  tryInitInteractiveLayer(): void;
151
+ private prepareRenderLayers;
150
152
  clearViewBox(color?: string): void;
151
153
  render(layers?: ILayer[], params?: Partial<IDrawContext>): void;
152
154
  protected combineLayersToWindow(): void;
@@ -168,12 +170,17 @@ export declare class Stage extends Group implements IStage {
168
170
  setStage(stage?: IStage): void;
169
171
  dirty(b: IBounds, matrix?: IMatrix): void;
170
172
  getLayer(name: string): undefined | ILayer;
171
- renderTo(window: IWindow): void;
173
+ renderTo(window: IWindow, _params?: {
174
+ x: number;
175
+ y: number;
176
+ width: number;
177
+ height: number;
178
+ }, options?: IRenderToOptions): void;
172
179
  renderToNewWindow(fullImage?: boolean, viewBox?: IAABBBounds): IWindow;
173
180
  toCanvas(fullImage?: boolean, viewBox?: IAABBBounds): HTMLCanvasElement | null;
174
181
  setCursor(mode?: string): void;
175
182
  getCursor(): string;
176
- eventPointTransform(e: PointerEvent | WheelEvent | TouchEvent): {
183
+ eventPointTransform(e: PointerEvent | WheelEvent | TouchEvent | FederatedMouseEvent): {
177
184
  x: number;
178
185
  y: number;
179
186
  };
package/cjs/core/stage.js CHANGED
@@ -349,31 +349,37 @@ class Stage extends group_1.Group {
349
349
  layerMode: layerMode,
350
350
  canvasId: canvasId
351
351
  });
352
- return this.appendChild(layer), layer;
352
+ return this.appendChild(layer), this.interactiveLayer && layer !== this.interactiveLayer && this.appendChild(this.interactiveLayer),
353
+ layer;
353
354
  }
354
355
  sortLayer(cb) {
355
356
  const children = this.children;
356
357
  children.sort(cb), this.removeAllChild(), children.forEach((c => {
357
358
  this.appendChild(c);
358
- }));
359
+ })), this.interactiveLayer && this.appendChild(this.interactiveLayer);
359
360
  }
360
361
  removeLayer(ILayerId) {
361
362
  return this.removeChild(this.findChildByUid(ILayerId));
362
363
  }
363
364
  tryInitInteractiveLayer() {
364
- "released" !== this.releaseStatus && this.supportInteractiveLayer && !this.interactiveLayer && (this.interactiveLayer = this.createLayer(),
365
+ "released" !== this.releaseStatus && this.supportInteractiveLayer && !this.interactiveLayer && (this.interactiveLayer = this.createLayer(void 0, this.params.interactiveLayerMode),
365
366
  this.interactiveLayer.name = "_builtin_interactive", this.interactiveLayer.attribute.pickable = !1,
366
367
  this.nextFrameRenderLayerSet.add(this.interactiveLayer));
367
368
  }
369
+ prepareRenderLayers() {
370
+ "virtual" === this.params.interactiveLayerMode && this.tryInitInteractiveLayer(),
371
+ this.layerService.prepareStageLayer(this);
372
+ }
368
373
  clearViewBox(color) {
369
374
  this.window.clearViewBox(color);
370
375
  }
371
376
  render(layers, params) {
372
377
  if ("released" === this.releaseStatus) return;
378
+ if (this.params.requestRender) return void this.params.requestRender();
373
379
  this.startAnimate();
374
380
  const state = this.state;
375
- this.state = "rendering", this.layerService.prepareStageLayer(this), this._skipRender || (this.lastRenderparams = params,
376
- this.hooks.beforeRender.call(this), this._skipRender || (this.renderLayerList(this.children),
381
+ this.state = "rendering", this._skipRender || (this.lastRenderparams = params, this.hooks.beforeRender.call(this),
382
+ this._skipRender || (this.prepareRenderLayers(), this.renderLayerList(this.children),
377
383
  this.combineLayersToWindow(), this.nextFrameRenderLayerSet.clear()), this.hooks.afterRender.call(this)),
378
384
  this.state = state, this._skipRender && this._skipRender++;
379
385
  }
@@ -389,11 +395,11 @@ class Stage extends group_1.Group {
389
395
  }
390
396
  }
391
397
  renderNextFrame(layers, force) {
392
- this.nextFrameRenderLayerSet.size !== this.childrenCount && (layers || this).forEach((layer => {
398
+ "released" !== this.releaseStatus && (this.params.requestRender ? "rendering" !== this.state && this.params.requestRender() : (this.nextFrameRenderLayerSet.size !== this.childrenCount && (layers || this).forEach((layer => {
393
399
  this.nextFrameRenderLayerSet.add(layer);
394
400
  })), this.willNextFrameRender || (this.willNextFrameRender = !0, this.global.getSpecifiedRequestAnimationFrame(this.rafId)((() => {
395
401
  this._doRenderInThisFrame(), this.willNextFrameRender = !1;
396
- })));
402
+ })))));
397
403
  }
398
404
  ensureRootSharedStateScope(themeStateDefinitions) {
399
405
  return this.rootSharedStateScope ? (this.rootSharedStateScope.ownerStage = this,
@@ -404,8 +410,8 @@ class Stage extends group_1.Group {
404
410
  if ("released" === this.releaseStatus) return;
405
411
  this.startAnimate();
406
412
  const state = this.state;
407
- this.state = "rendering", this.layerService.prepareStageLayer(this), this.nextFrameRenderLayerSet.size && !this._skipRender && (this.hooks.beforeRender.call(this),
408
- this._skipRender || (this.renderLayerList(Array.from(this.nextFrameRenderLayerSet.values()), this.lastRenderparams || {}),
413
+ this.state = "rendering", this.nextFrameRenderLayerSet.size && !this._skipRender && (this.hooks.beforeRender.call(this),
414
+ this._skipRender || (this.prepareRenderLayers(), this.renderLayerList(Array.from(this.nextFrameRenderLayerSet.values()), this.lastRenderparams || {}),
409
415
  this.combineLayersToWindow(), this.nextFrameRenderLayerSet.clear()), this.hooks.afterRender.call(this)),
410
416
  this.state = state, this._skipRender && this._skipRender++;
411
417
  }
@@ -504,17 +510,26 @@ class Stage extends group_1.Group {
504
510
  getLayer(name) {
505
511
  return this.children.filter((layer => layer.name === name))[0];
506
512
  }
507
- renderTo(window) {
508
- "released" !== this.releaseStatus && this.forEachChildren(((layer, i) => {
509
- layer.drawTo(window, {
510
- renderService: this.renderService,
511
- viewBox: window.getViewBox(),
512
- transMatrix: window.getViewBoxTransform(),
513
- background: layer === this.defaultLayer ? this.background : void 0,
514
- clear: 0 === i,
515
- updateBounds: !(!this.dirtyBounds || this.dirtyBounds.empty())
516
- });
517
- }));
513
+ renderTo(window, _params, options) {
514
+ if ("released" === this.releaseStatus) return;
515
+ const state = this.state;
516
+ this.state = "rendering";
517
+ try {
518
+ this.params.requestRender && this.hooks.beforeRender.call(this), this.prepareRenderLayers(),
519
+ this.forEachChildren(((layer, i) => {
520
+ var _a, _b;
521
+ layer.drawTo(window, {
522
+ renderService: this.renderService,
523
+ viewBox: null !== (_a = null == options ? void 0 : options.viewBox) && void 0 !== _a ? _a : window.getViewBox(),
524
+ transMatrix: null !== (_b = null == options ? void 0 : options.transMatrix) && void 0 !== _b ? _b : window.getViewBoxTransform(),
525
+ background: layer === this.defaultLayer ? this.background : void 0,
526
+ clear: 0 === i && !1 !== (null == options ? void 0 : options.clear),
527
+ updateBounds: !(!this.dirtyBounds || this.dirtyBounds.empty())
528
+ });
529
+ })), this.params.requestRender && this.hooks.afterRender.call(this);
530
+ } finally {
531
+ this.state = state;
532
+ }
518
533
  }
519
534
  renderToNewWindow(fullImage = !0, viewBox) {
520
535
  if ("released" === this.releaseStatus) return;
@@ -546,6 +561,10 @@ class Stage extends group_1.Group {
546
561
  return this._cursor;
547
562
  }
548
563
  eventPointTransform(e) {
564
+ if (e instanceof event_1.FederatedMouseEvent) return {
565
+ x: e.viewX,
566
+ y: e.viewY
567
+ };
549
568
  const point = this.global.mapToCanvasPoint(e, this.window);
550
569
  return this.stage.window.pointTransform(point.x, point.y);
551
570
  }