@netless/forge-whiteboard 1.0.0-alpha.1 → 1.0.1

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 (36) hide show
  1. package/dist/Whiteboard.d.ts +2 -1
  2. package/dist/Whiteboard.d.ts.map +1 -1
  3. package/dist/WhiteboardApplication.d.ts +1 -1
  4. package/dist/WhiteboardApplication.d.ts.map +1 -1
  5. package/dist/model/renderable/ElementModel.d.ts.map +1 -1
  6. package/dist/tool/CurveTool.d.ts +1 -1
  7. package/dist/tool/CurveTool.d.ts.map +1 -1
  8. package/dist/tool/EllipseTool.d.ts +1 -1
  9. package/dist/tool/EllipseTool.d.ts.map +1 -1
  10. package/dist/tool/EraserTool.d.ts +1 -1
  11. package/dist/tool/EraserTool.d.ts.map +1 -1
  12. package/dist/tool/GrabTool.d.ts +1 -1
  13. package/dist/tool/GrabTool.d.ts.map +1 -1
  14. package/dist/tool/LaserPointerTool.d.ts +1 -1
  15. package/dist/tool/LaserPointerTool.d.ts.map +1 -1
  16. package/dist/tool/LineTool.d.ts +1 -1
  17. package/dist/tool/LineTool.d.ts.map +1 -1
  18. package/dist/tool/PointerTool.d.ts +1 -1
  19. package/dist/tool/PointerTool.d.ts.map +1 -1
  20. package/dist/tool/RectangleTool.d.ts +1 -1
  21. package/dist/tool/RectangleTool.d.ts.map +1 -1
  22. package/dist/tool/SelectorTool.d.ts +1 -1
  23. package/dist/tool/SelectorTool.d.ts.map +1 -1
  24. package/dist/tool/StraightLineTool.d.ts +1 -1
  25. package/dist/tool/StraightLineTool.d.ts.map +1 -1
  26. package/dist/tool/TextTool.d.ts +1 -1
  27. package/dist/tool/TextTool.d.ts.map +1 -1
  28. package/dist/tool/TriangleTool.d.ts +1 -1
  29. package/dist/tool/TriangleTool.d.ts.map +1 -1
  30. package/dist/tool/WhiteboardTool.d.ts +2 -2
  31. package/dist/tool/WhiteboardTool.d.ts.map +1 -1
  32. package/dist/whiteboard.esm.js +199 -99
  33. package/dist/whiteboard.esm.js.map +2 -2
  34. package/dist/whiteboard.js +199 -99
  35. package/dist/whiteboard.js.map +2 -2
  36. package/package.json +2 -2
@@ -25853,7 +25853,11 @@ var ElementModel = class _ElementModel {
25853
25853
  return this.root.get(_ElementModel.KEYS.pointsMatrix) || [1, 0, 0, 1, 0, 0];
25854
25854
  }
25855
25855
  get points() {
25856
- return this.root.get(_ElementModel.KEYS.points).toArray();
25856
+ const list = this.root.get(_ElementModel.KEYS.points);
25857
+ if (list) {
25858
+ return list.toArray();
25859
+ }
25860
+ return [];
25857
25861
  }
25858
25862
  set ownerId(value) {
25859
25863
  this.root.set(_ElementModel.KEYS.ownerId, value);
@@ -26517,7 +26521,12 @@ var LineTool = class extends WhiteboardTool {
26517
26521
  if (this.elementModel) {
26518
26522
  this.elementModel.dispose();
26519
26523
  }
26520
- this.elementModel = this.modelGetter().createLinePath(true);
26524
+ this.elementModel = null;
26525
+ this.modelGetter().then((model) => {
26526
+ if (model) {
26527
+ this.elementModel = model.createLinePath(true);
26528
+ }
26529
+ });
26521
26530
  this.from = event.point.clone();
26522
26531
  this.to = event.point.clone();
26523
26532
  }
@@ -28447,7 +28456,12 @@ var CurveTool = class extends WhiteboardTool {
28447
28456
  if (this.elementModel) {
28448
28457
  this.elementModel.dispose();
28449
28458
  }
28450
- this.elementModel = this.modelGetter().createCurve(true);
28459
+ this.elementModel = null;
28460
+ this.modelGetter().then((model) => {
28461
+ if (model) {
28462
+ this.elementModel = model.createCurve(true);
28463
+ }
28464
+ });
28451
28465
  }
28452
28466
  onMouseDrag(event) {
28453
28467
  if (this.pointCount > 1024) {
@@ -28474,34 +28488,41 @@ var CurveTool = class extends WhiteboardTool {
28474
28488
  }
28475
28489
  }
28476
28490
  onMouseUp(event) {
28477
- if (this.pointCount < 3 && this.elementModel) {
28478
- this.modelGetter().removeElementItem(this.elementModel.uuid);
28479
- }
28480
- if (this.elementModel) {
28481
- this.elementModel.shadow = "";
28482
- }
28483
- if (this.elementModel && event.event.metaKey) {
28484
- const result = this.recognizer.recognize(this.elementModel.points);
28485
- if (result) {
28486
- this.modelGetter().removeElementItem(this.elementModel.uuid);
28487
- if (/^rectangle/.test(result.shape)) {
28488
- const model = this.modelGetter().createRectangle(false);
28489
- model?.setPoints([result.minX, result.minY, result.maxX, result.maxY]);
28490
- } else if (/^circle/.test(result.shape)) {
28491
- const model = this.modelGetter().createSegmentedPath("ellipse", false);
28492
- const rect = new this.scope.Rectangle(new this.scope.Point(result.minX, result.minY), new this.scope.Point(result.maxX, result.maxY));
28493
- const pathRect = new this.scope.Path.Ellipse(rect);
28494
- const points = serializePath(pathRect);
28495
- model?.setPoints(points);
28496
- } else if (/^triangle/.test(result.shape)) {
28497
- const model = this.modelGetter().createTriangle(false);
28498
- model?.setPoints([result.minX + (result.maxX - result.minX) / 2, result.minY, result.minX, result.maxY, result.maxX, result.maxY]);
28499
- } else if (/^arrow/.test(result.shape)) {
28500
- const model = this.modelGetter().createLinePath(false);
28501
- model?.setPoints([result.minX, (result.maxY + result.minY) / 2, result.maxX, (result.maxY + result.minY) / 2]);
28491
+ this.modelGetter().then((model) => {
28492
+ if (!model) {
28493
+ return;
28494
+ }
28495
+ if (this.pointCount < 3 && this.elementModel) {
28496
+ if (this.elementModel) {
28497
+ model.removeElementItem(this.elementModel.uuid);
28502
28498
  }
28503
28499
  }
28504
- }
28500
+ if (this.elementModel) {
28501
+ this.elementModel.shadow = "";
28502
+ }
28503
+ if (this.elementModel && event.event.metaKey) {
28504
+ const result = this.recognizer.recognize(this.elementModel.points);
28505
+ if (result) {
28506
+ model.removeElementItem(this.elementModel.uuid);
28507
+ if (/^rectangle/.test(result.shape)) {
28508
+ const rect = model.createRectangle(false);
28509
+ rect?.setPoints([result.minX, result.minY, result.maxX, result.maxY]);
28510
+ } else if (/^circle/.test(result.shape)) {
28511
+ const circle = model.createSegmentedPath("ellipse", false);
28512
+ const rect = new this.scope.Rectangle(new this.scope.Point(result.minX, result.minY), new this.scope.Point(result.maxX, result.maxY));
28513
+ const pathRect = new this.scope.Path.Ellipse(rect);
28514
+ const points = serializePath(pathRect);
28515
+ circle?.setPoints(points);
28516
+ } else if (/^triangle/.test(result.shape)) {
28517
+ const triangle = model.createTriangle(false);
28518
+ triangle?.setPoints([result.minX + (result.maxX - result.minX) / 2, result.minY, result.minX, result.maxY, result.maxX, result.maxY]);
28519
+ } else if (/^arrow/.test(result.shape)) {
28520
+ const arrow = model.createLinePath(false);
28521
+ arrow?.setPoints([result.minX, (result.maxY + result.minY) / 2, result.maxX, (result.maxY + result.minY) / 2]);
28522
+ }
28523
+ }
28524
+ }
28525
+ });
28505
28526
  }
28506
28527
  };
28507
28528
 
@@ -28536,7 +28557,12 @@ var RectangleTool = class extends WhiteboardTool {
28536
28557
  if (this.elementModel) {
28537
28558
  this.elementModel.dispose();
28538
28559
  }
28539
- this.elementModel = this.modelGetter().createRectangle(true);
28560
+ this.elementModel = null;
28561
+ this.modelGetter().then((model) => {
28562
+ if (model) {
28563
+ this.elementModel = model.createRectangle(true);
28564
+ }
28565
+ });
28540
28566
  this.from = event.point.clone();
28541
28567
  this.to = event.point.clone();
28542
28568
  }
@@ -28551,7 +28577,11 @@ var RectangleTool = class extends WhiteboardTool {
28551
28577
  this.elementModel.shadow = "";
28552
28578
  }
28553
28579
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
28554
- this.modelGetter().removeElementItem(this.elementModel.uuid);
28580
+ this.modelGetter().then((model) => {
28581
+ if (model && this.elementModel) {
28582
+ model.removeElementItem(this.elementModel.uuid);
28583
+ }
28584
+ });
28555
28585
  }
28556
28586
  }
28557
28587
  };
@@ -28695,11 +28725,16 @@ var SelectorTool = class extends WhiteboardTool {
28695
28725
  if (this.elementModel) {
28696
28726
  this.elementModel.dispose();
28697
28727
  }
28698
- this.elementModel = this.modelGetter().createSelector();
28699
- this.from = event.point.clone();
28700
- this.to = event.point.clone();
28701
- const rect = new this.scope.Rectangle(this.from, this.to);
28702
- this.elementModel?.setPoints([rect.topLeft.x, rect.topLeft.y, rect.size.width, rect.size.height]);
28728
+ this.elementModel = null;
28729
+ this.modelGetter().then((model) => {
28730
+ if (model) {
28731
+ this.elementModel = model.createSelector();
28732
+ this.from = event.point.clone();
28733
+ this.to = event.point.clone();
28734
+ const rect = new this.scope.Rectangle(this.from, this.to);
28735
+ this.elementModel?.setPoints([rect.topLeft.x, rect.topLeft.y, rect.size.width, rect.size.height]);
28736
+ }
28737
+ });
28703
28738
  this.selectElements.clear();
28704
28739
  }
28705
28740
  onMouseDrag(event) {
@@ -28721,7 +28756,11 @@ var SelectorTool = class extends WhiteboardTool {
28721
28756
  }
28722
28757
  onMouseUp(event) {
28723
28758
  if (this.elementModel) {
28724
- this.modelGetter().removeElementItem(this.elementModel.uuid);
28759
+ this.modelGetter().then((model) => {
28760
+ if (model && this.elementModel) {
28761
+ model.removeElementItem(this.elementModel.uuid);
28762
+ }
28763
+ });
28725
28764
  }
28726
28765
  const elements = Array.from(this.selectElements.keys()).reduce((result, next) => {
28727
28766
  result.push({
@@ -29666,41 +29705,46 @@ var TextTool = class extends WhiteboardTool {
29666
29705
  if (this.elementModel) {
29667
29706
  this.elementModel.dispose();
29668
29707
  }
29669
- this.elementModel = this.modelGetter().createPointText(x, y, true);
29670
- if (this.elementModel === null) {
29671
- return;
29672
- }
29673
- const editorContainer = window.document.createElement("div");
29674
- const canvasBounds = this.canvasElement.getBoundingClientRect();
29675
- editorContainer.style.cssText = `position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;width:${canvasBounds.width}px;height:${canvasBounds.height}px;`;
29676
- const editor = new TextEditor(this.camera);
29677
- editor.setOrigin(x, y);
29678
- editorContainer.appendChild(editor.rootView);
29679
- this.rootView.appendChild(editorContainer);
29680
- editor.setFontSize(this.toolbarModel.fontSize);
29681
- editor.setFontFamily(this.toolbarModel.fontFamily);
29682
- this.camera.triggerZoom();
29683
- editor.on("caretOutRight", () => {
29684
- });
29685
- editor.on("change", (content) => {
29686
- if (this.elementModel) {
29687
- this.elementModel.content = content;
29688
- }
29689
- });
29690
- editor.on("done", () => {
29691
- if (this.elementModel) {
29692
- if (!this.elementModel.content || this.elementModel.content.length === 0) {
29693
- this.modelGetter().removeElementItem(this.elementModel.uuid);
29694
- } else {
29695
- this.elementModel.shadow = "";
29708
+ this.elementModel = null;
29709
+ this.modelGetter().then((model) => {
29710
+ if (model) {
29711
+ this.elementModel = model.createPointText(x, y, true);
29712
+ if (this.elementModel === null) {
29713
+ return;
29696
29714
  }
29715
+ const editorContainer = window.document.createElement("div");
29716
+ const canvasBounds = this.canvasElement.getBoundingClientRect();
29717
+ editorContainer.style.cssText = `position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;width:${canvasBounds.width}px;height:${canvasBounds.height}px;`;
29718
+ const editor = new TextEditor(this.camera);
29719
+ editor.setOrigin(x, y);
29720
+ editorContainer.appendChild(editor.rootView);
29721
+ this.rootView.appendChild(editorContainer);
29722
+ editor.setFontSize(this.toolbarModel.fontSize);
29723
+ editor.setFontFamily(this.toolbarModel.fontFamily);
29724
+ this.camera.triggerZoom();
29725
+ editor.on("caretOutRight", () => {
29726
+ });
29727
+ editor.on("change", (content) => {
29728
+ if (this.elementModel) {
29729
+ this.elementModel.content = content;
29730
+ }
29731
+ });
29732
+ editor.on("done", () => {
29733
+ if (this.elementModel) {
29734
+ if (!this.elementModel.content || this.elementModel.content.length === 0) {
29735
+ model.removeElementItem(this.elementModel.uuid);
29736
+ } else {
29737
+ this.elementModel.shadow = "";
29738
+ }
29739
+ }
29740
+ editor.dispose();
29741
+ this.rootView.removeChild(editorContainer);
29742
+ });
29743
+ setTimeout(() => {
29744
+ editor.focus();
29745
+ }, 30);
29697
29746
  }
29698
- editor.dispose();
29699
- this.rootView.removeChild(editorContainer);
29700
29747
  });
29701
- setTimeout(() => {
29702
- editor.focus();
29703
- }, 30);
29704
29748
  }
29705
29749
  };
29706
29750
 
@@ -30218,7 +30262,12 @@ var EllipseTool = class extends WhiteboardTool {
30218
30262
  if (this.elementModel) {
30219
30263
  this.elementModel.dispose();
30220
30264
  }
30221
- this.elementModel = this.modelGetter().createSegmentedPath("ellipse", true);
30265
+ this.elementModel = null;
30266
+ this.modelGetter().then((model) => {
30267
+ if (model) {
30268
+ this.elementModel = model.createSegmentedPath("ellipse", true);
30269
+ }
30270
+ });
30222
30271
  this.from = event.point.clone();
30223
30272
  this.to = event.point.clone();
30224
30273
  }
@@ -30233,7 +30282,11 @@ var EllipseTool = class extends WhiteboardTool {
30233
30282
  }
30234
30283
  onMouseUp(event) {
30235
30284
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
30236
- this.modelGetter().removeElementItem(this.elementModel.uuid);
30285
+ this.modelGetter().then((model) => {
30286
+ if (model && this.elementModel) {
30287
+ model.removeElementItem(this.elementModel.uuid);
30288
+ }
30289
+ });
30237
30290
  } else {
30238
30291
  if (this.elementModel) {
30239
30292
  this.elementModel.shadow = "";
@@ -30273,7 +30326,12 @@ var TriangleTool = class extends WhiteboardTool {
30273
30326
  if (this.elementModel) {
30274
30327
  this.elementModel.dispose();
30275
30328
  }
30276
- this.elementModel = this.modelGetter().createTriangle(true);
30329
+ this.elementModel = null;
30330
+ this.modelGetter().then((model) => {
30331
+ if (model) {
30332
+ this.elementModel = model.createTriangle(true);
30333
+ }
30334
+ });
30277
30335
  this.from = event.point.clone();
30278
30336
  this.to = event.point.clone();
30279
30337
  }
@@ -30285,7 +30343,11 @@ var TriangleTool = class extends WhiteboardTool {
30285
30343
  }
30286
30344
  onMouseUp(event) {
30287
30345
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
30288
- this.modelGetter().removeElementItem(this.elementModel.uuid);
30346
+ this.modelGetter().then((model) => {
30347
+ if (model && this.elementModel) {
30348
+ model.removeElementItem(this.elementModel.uuid);
30349
+ }
30350
+ });
30289
30351
  }
30290
30352
  if (this.elementModel) {
30291
30353
  this.elementModel.shadow = "";
@@ -30317,6 +30379,7 @@ var Whiteboard = class extends EventEmitter8 {
30317
30379
  super();
30318
30380
  _defineProperty31(this, "view", void 0);
30319
30381
  _defineProperty31(this, "selfUserId", void 0);
30382
+ _defineProperty31(this, "window", void 0);
30320
30383
  _defineProperty31(this, "permissions", void 0);
30321
30384
  _defineProperty31(this, "tool", void 0);
30322
30385
  _defineProperty31(this, "fontSize", void 0);
@@ -30400,7 +30463,12 @@ var EraserTool = class extends WhiteboardTool {
30400
30463
  if (this.elementModel) {
30401
30464
  this.elementModel.dispose();
30402
30465
  }
30403
- this.elementModel = this.modelGetter().createEraser();
30466
+ this.elementModel = null;
30467
+ this.modelGetter().then((model) => {
30468
+ if (model) {
30469
+ this.elementModel = model.createEraser();
30470
+ }
30471
+ });
30404
30472
  }
30405
30473
  onMouseDrag(event) {
30406
30474
  if (this.pointCount > 1024) {
@@ -30433,7 +30501,11 @@ var EraserTool = class extends WhiteboardTool {
30433
30501
  }
30434
30502
  onMouseUp(_event) {
30435
30503
  if (this.elementModel) {
30436
- this.modelGetter().removeElementItem(this.elementModel.uuid);
30504
+ this.modelGetter().then((model) => {
30505
+ if (model && this.elementModel) {
30506
+ model.removeElementItem(this.elementModel.uuid);
30507
+ }
30508
+ });
30437
30509
  }
30438
30510
  this.trashedElementsModel.removeAllTrashedElementsForSelf();
30439
30511
  }
@@ -30592,7 +30664,12 @@ var LaserPointerTool = class extends WhiteboardTool {
30592
30664
  if (this.elementModel) {
30593
30665
  this.elementModel.dispose();
30594
30666
  }
30595
- this.elementModel = this.modelGetter().createLaserPointer();
30667
+ this.elementModel = null;
30668
+ this.modelGetter().then((model) => {
30669
+ if (model) {
30670
+ this.elementModel = model.createLaserPointer();
30671
+ }
30672
+ });
30596
30673
  }
30597
30674
  onMouseDrag(event) {
30598
30675
  if (this.pointCount > 1024) {
@@ -31218,7 +31295,12 @@ var StraightLineTool = class extends WhiteboardTool {
31218
31295
  if (this.elementModel) {
31219
31296
  this.elementModel.dispose();
31220
31297
  }
31221
- this.elementModel = this.modelGetter().createStraightLine(true);
31298
+ this.elementModel = null;
31299
+ this.modelGetter().then((model) => {
31300
+ if (model) {
31301
+ this.elementModel = model.createStraightLine(true);
31302
+ }
31303
+ });
31222
31304
  this.from = event.point.clone();
31223
31305
  this.to = event.point.clone();
31224
31306
  }
@@ -31233,7 +31315,11 @@ var StraightLineTool = class extends WhiteboardTool {
31233
31315
  this.elementModel.shadow = "";
31234
31316
  }
31235
31317
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
31236
- this.modelGetter().removeElementItem(this.elementModel.uuid);
31318
+ this.modelGetter().then((model) => {
31319
+ if (model && this.elementModel) {
31320
+ model.removeElementItem(this.elementModel.uuid);
31321
+ }
31322
+ });
31237
31323
  }
31238
31324
  }
31239
31325
  };
@@ -31720,12 +31806,20 @@ var WhiteboardApplication = class extends AbstractApplication {
31720
31806
  }
31721
31807
  }
31722
31808
  });
31723
- _defineProperty43(this, "getCurrentRenderableModel", () => {
31809
+ _defineProperty43(this, "getCurrentRendererModel", () => {
31724
31810
  const layerId = this.userMap(this.userId).get(WhiteboardKeys.currentPage);
31725
- if (!this.layers.has(layerId)) {
31726
- this.emitter.emit("error", 300002, `target page: ${layerId} not found`);
31811
+ if (this.layers.has(layerId)) {
31812
+ return Promise.resolve(this.layers.get(layerId));
31813
+ } else {
31814
+ return waitUntil(() => this.layers.has(layerId), 1e3).then(() => {
31815
+ if (this.layers.has(layerId)) {
31816
+ return this.layers.get(layerId);
31817
+ } else {
31818
+ this.emitter.emit("error", 300002, `target page: ${layerId} not found`);
31819
+ return null;
31820
+ }
31821
+ });
31727
31822
  }
31728
- return this.layers.get(layerId);
31729
31823
  });
31730
31824
  _defineProperty43(this, "handleElementClear", () => {
31731
31825
  this.shadowScope.project.activeLayer.removeChildren();
@@ -32021,11 +32115,17 @@ var WhiteboardApplication = class extends AbstractApplication {
32021
32115
  }
32022
32116
  };
32023
32117
  this.emitter.clearPage = () => {
32024
- const model = this.getCurrentRenderableModel();
32025
- model.elements.doc.transact(() => {
32026
- model.elements.clear();
32027
- }, elementsUndoOrigin);
32028
- model.elementModels.clear();
32118
+ this.getCurrentRendererModel().then((model) => {
32119
+ if (model) {
32120
+ if (model.elements.doc) {
32121
+ model.elements.doc.transact(() => {
32122
+ model.elements.clear();
32123
+ }, elementsUndoOrigin);
32124
+ } else {
32125
+ model.elementModels.clear();
32126
+ }
32127
+ }
32128
+ });
32029
32129
  };
32030
32130
  this.emitter.undo = () => {
32031
32131
  this.undoManager?.undo();
@@ -32247,18 +32347,18 @@ var WhiteboardApplication = class extends AbstractApplication {
32247
32347
  return this.userMap(userId);
32248
32348
  });
32249
32349
  this.tools = {
32250
- pointer: new PointerTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32251
- curve: new CurveTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32252
- rectangle: new RectangleTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32253
- selector: new SelectorTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.selectElementsModel),
32254
- arrow: new LineTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32255
- line: new StraightLineTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32256
- text: new TextTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.rootElement, this.canvasElement, this.toolbarModel, this.camera),
32257
- ellipse: new EllipseTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32258
- triangle: new TriangleTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32259
- eraser: new EraserTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.trashedElementsModel, this.shadowScope),
32260
- laser: new LaserPointerTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32261
- grab: new GrabTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.camera)
32350
+ pointer: new PointerTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32351
+ curve: new CurveTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32352
+ rectangle: new RectangleTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32353
+ selector: new SelectorTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.selectElementsModel),
32354
+ arrow: new LineTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32355
+ line: new StraightLineTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32356
+ text: new TextTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.rootElement, this.canvasElement, this.toolbarModel, this.camera),
32357
+ ellipse: new EllipseTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32358
+ triangle: new TriangleTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32359
+ eraser: new EraserTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.trashedElementsModel, this.shadowScope),
32360
+ laser: new LaserPointerTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32361
+ grab: new GrabTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.camera)
32262
32362
  };
32263
32363
  this.toolbarModel.on("update", (style) => {
32264
32364
  if (this.tools[style.tool]) {