@netless/forge-whiteboard 1.0.0 → 1.0.2

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 +2 -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 +208 -100
  33. package/dist/whiteboard.esm.js.map +2 -2
  34. package/dist/whiteboard.js +208 -100
  35. package/dist/whiteboard.js.map +2 -2
  36. package/package.json +2 -2
@@ -25863,7 +25863,11 @@ var ElementModel = class _ElementModel {
25863
25863
  return this.root.get(_ElementModel.KEYS.pointsMatrix) || [1, 0, 0, 1, 0, 0];
25864
25864
  }
25865
25865
  get points() {
25866
- return this.root.get(_ElementModel.KEYS.points).toArray();
25866
+ const list = this.root.get(_ElementModel.KEYS.points);
25867
+ if (list) {
25868
+ return list.toArray();
25869
+ }
25870
+ return [];
25867
25871
  }
25868
25872
  set ownerId(value) {
25869
25873
  this.root.set(_ElementModel.KEYS.ownerId, value);
@@ -26527,7 +26531,12 @@ var LineTool = class extends WhiteboardTool {
26527
26531
  if (this.elementModel) {
26528
26532
  this.elementModel.dispose();
26529
26533
  }
26530
- this.elementModel = this.modelGetter().createLinePath(true);
26534
+ this.elementModel = null;
26535
+ this.modelGetter().then((model) => {
26536
+ if (model) {
26537
+ this.elementModel = model.createLinePath(true);
26538
+ }
26539
+ });
26531
26540
  this.from = event.point.clone();
26532
26541
  this.to = event.point.clone();
26533
26542
  }
@@ -28457,7 +28466,12 @@ var CurveTool = class extends WhiteboardTool {
28457
28466
  if (this.elementModel) {
28458
28467
  this.elementModel.dispose();
28459
28468
  }
28460
- this.elementModel = this.modelGetter().createCurve(true);
28469
+ this.elementModel = null;
28470
+ this.modelGetter().then((model) => {
28471
+ if (model) {
28472
+ this.elementModel = model.createCurve(true);
28473
+ }
28474
+ });
28461
28475
  }
28462
28476
  onMouseDrag(event) {
28463
28477
  if (this.pointCount > 1024) {
@@ -28484,34 +28498,41 @@ var CurveTool = class extends WhiteboardTool {
28484
28498
  }
28485
28499
  }
28486
28500
  onMouseUp(event) {
28487
- if (this.pointCount < 3 && this.elementModel) {
28488
- this.modelGetter().removeElementItem(this.elementModel.uuid);
28489
- }
28490
- if (this.elementModel) {
28491
- this.elementModel.shadow = "";
28492
- }
28493
- if (this.elementModel && event.event.metaKey) {
28494
- const result = this.recognizer.recognize(this.elementModel.points);
28495
- if (result) {
28496
- this.modelGetter().removeElementItem(this.elementModel.uuid);
28497
- if (/^rectangle/.test(result.shape)) {
28498
- const model = this.modelGetter().createRectangle(false);
28499
- model?.setPoints([result.minX, result.minY, result.maxX, result.maxY]);
28500
- } else if (/^circle/.test(result.shape)) {
28501
- const model = this.modelGetter().createSegmentedPath("ellipse", false);
28502
- const rect = new this.scope.Rectangle(new this.scope.Point(result.minX, result.minY), new this.scope.Point(result.maxX, result.maxY));
28503
- const pathRect = new this.scope.Path.Ellipse(rect);
28504
- const points = serializePath(pathRect);
28505
- model?.setPoints(points);
28506
- } else if (/^triangle/.test(result.shape)) {
28507
- const model = this.modelGetter().createTriangle(false);
28508
- model?.setPoints([result.minX + (result.maxX - result.minX) / 2, result.minY, result.minX, result.maxY, result.maxX, result.maxY]);
28509
- } else if (/^arrow/.test(result.shape)) {
28510
- const model = this.modelGetter().createLinePath(false);
28511
- model?.setPoints([result.minX, (result.maxY + result.minY) / 2, result.maxX, (result.maxY + result.minY) / 2]);
28501
+ this.modelGetter().then((model) => {
28502
+ if (!model) {
28503
+ return;
28504
+ }
28505
+ if (this.pointCount < 3 && this.elementModel) {
28506
+ if (this.elementModel) {
28507
+ model.removeElementItem(this.elementModel.uuid);
28512
28508
  }
28513
28509
  }
28514
- }
28510
+ if (this.elementModel) {
28511
+ this.elementModel.shadow = "";
28512
+ }
28513
+ if (this.elementModel && event.event.metaKey) {
28514
+ const result = this.recognizer.recognize(this.elementModel.points);
28515
+ if (result) {
28516
+ model.removeElementItem(this.elementModel.uuid);
28517
+ if (/^rectangle/.test(result.shape)) {
28518
+ const rect = model.createRectangle(false);
28519
+ rect?.setPoints([result.minX, result.minY, result.maxX, result.maxY]);
28520
+ } else if (/^circle/.test(result.shape)) {
28521
+ const circle = model.createSegmentedPath("ellipse", false);
28522
+ const rect = new this.scope.Rectangle(new this.scope.Point(result.minX, result.minY), new this.scope.Point(result.maxX, result.maxY));
28523
+ const pathRect = new this.scope.Path.Ellipse(rect);
28524
+ const points = serializePath(pathRect);
28525
+ circle?.setPoints(points);
28526
+ } else if (/^triangle/.test(result.shape)) {
28527
+ const triangle = model.createTriangle(false);
28528
+ triangle?.setPoints([result.minX + (result.maxX - result.minX) / 2, result.minY, result.minX, result.maxY, result.maxX, result.maxY]);
28529
+ } else if (/^arrow/.test(result.shape)) {
28530
+ const arrow = model.createLinePath(false);
28531
+ arrow?.setPoints([result.minX, (result.maxY + result.minY) / 2, result.maxX, (result.maxY + result.minY) / 2]);
28532
+ }
28533
+ }
28534
+ }
28535
+ });
28515
28536
  }
28516
28537
  };
28517
28538
 
@@ -28546,7 +28567,12 @@ var RectangleTool = class extends WhiteboardTool {
28546
28567
  if (this.elementModel) {
28547
28568
  this.elementModel.dispose();
28548
28569
  }
28549
- this.elementModel = this.modelGetter().createRectangle(true);
28570
+ this.elementModel = null;
28571
+ this.modelGetter().then((model) => {
28572
+ if (model) {
28573
+ this.elementModel = model.createRectangle(true);
28574
+ }
28575
+ });
28550
28576
  this.from = event.point.clone();
28551
28577
  this.to = event.point.clone();
28552
28578
  }
@@ -28561,7 +28587,11 @@ var RectangleTool = class extends WhiteboardTool {
28561
28587
  this.elementModel.shadow = "";
28562
28588
  }
28563
28589
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
28564
- this.modelGetter().removeElementItem(this.elementModel.uuid);
28590
+ this.modelGetter().then((model) => {
28591
+ if (model && this.elementModel) {
28592
+ model.removeElementItem(this.elementModel.uuid);
28593
+ }
28594
+ });
28565
28595
  }
28566
28596
  }
28567
28597
  };
@@ -28705,11 +28735,16 @@ var SelectorTool = class extends WhiteboardTool {
28705
28735
  if (this.elementModel) {
28706
28736
  this.elementModel.dispose();
28707
28737
  }
28708
- this.elementModel = this.modelGetter().createSelector();
28709
- this.from = event.point.clone();
28710
- this.to = event.point.clone();
28711
- const rect = new this.scope.Rectangle(this.from, this.to);
28712
- this.elementModel?.setPoints([rect.topLeft.x, rect.topLeft.y, rect.size.width, rect.size.height]);
28738
+ this.elementModel = null;
28739
+ this.modelGetter().then((model) => {
28740
+ if (model) {
28741
+ this.elementModel = model.createSelector();
28742
+ this.from = event.point.clone();
28743
+ this.to = event.point.clone();
28744
+ const rect = new this.scope.Rectangle(this.from, this.to);
28745
+ this.elementModel?.setPoints([rect.topLeft.x, rect.topLeft.y, rect.size.width, rect.size.height]);
28746
+ }
28747
+ });
28713
28748
  this.selectElements.clear();
28714
28749
  }
28715
28750
  onMouseDrag(event) {
@@ -28731,7 +28766,11 @@ var SelectorTool = class extends WhiteboardTool {
28731
28766
  }
28732
28767
  onMouseUp(event) {
28733
28768
  if (this.elementModel) {
28734
- this.modelGetter().removeElementItem(this.elementModel.uuid);
28769
+ this.modelGetter().then((model) => {
28770
+ if (model && this.elementModel) {
28771
+ model.removeElementItem(this.elementModel.uuid);
28772
+ }
28773
+ });
28735
28774
  }
28736
28775
  const elements = Array.from(this.selectElements.keys()).reduce((result, next) => {
28737
28776
  result.push({
@@ -29676,41 +29715,46 @@ var TextTool = class extends WhiteboardTool {
29676
29715
  if (this.elementModel) {
29677
29716
  this.elementModel.dispose();
29678
29717
  }
29679
- this.elementModel = this.modelGetter().createPointText(x, y, true);
29680
- if (this.elementModel === null) {
29681
- return;
29682
- }
29683
- const editorContainer = window.document.createElement("div");
29684
- const canvasBounds = this.canvasElement.getBoundingClientRect();
29685
- editorContainer.style.cssText = `position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;width:${canvasBounds.width}px;height:${canvasBounds.height}px;`;
29686
- const editor = new TextEditor(this.camera);
29687
- editor.setOrigin(x, y);
29688
- editorContainer.appendChild(editor.rootView);
29689
- this.rootView.appendChild(editorContainer);
29690
- editor.setFontSize(this.toolbarModel.fontSize);
29691
- editor.setFontFamily(this.toolbarModel.fontFamily);
29692
- this.camera.triggerZoom();
29693
- editor.on("caretOutRight", () => {
29694
- });
29695
- editor.on("change", (content) => {
29696
- if (this.elementModel) {
29697
- this.elementModel.content = content;
29698
- }
29699
- });
29700
- editor.on("done", () => {
29701
- if (this.elementModel) {
29702
- if (!this.elementModel.content || this.elementModel.content.length === 0) {
29703
- this.modelGetter().removeElementItem(this.elementModel.uuid);
29704
- } else {
29705
- this.elementModel.shadow = "";
29718
+ this.elementModel = null;
29719
+ this.modelGetter().then((model) => {
29720
+ if (model) {
29721
+ this.elementModel = model.createPointText(x, y, true);
29722
+ if (this.elementModel === null) {
29723
+ return;
29706
29724
  }
29725
+ const editorContainer = window.document.createElement("div");
29726
+ const canvasBounds = this.canvasElement.getBoundingClientRect();
29727
+ editorContainer.style.cssText = `position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;width:${canvasBounds.width}px;height:${canvasBounds.height}px;`;
29728
+ const editor = new TextEditor(this.camera);
29729
+ editor.setOrigin(x, y);
29730
+ editorContainer.appendChild(editor.rootView);
29731
+ this.rootView.appendChild(editorContainer);
29732
+ editor.setFontSize(this.toolbarModel.fontSize);
29733
+ editor.setFontFamily(this.toolbarModel.fontFamily);
29734
+ this.camera.triggerZoom();
29735
+ editor.on("caretOutRight", () => {
29736
+ });
29737
+ editor.on("change", (content) => {
29738
+ if (this.elementModel) {
29739
+ this.elementModel.content = content;
29740
+ }
29741
+ });
29742
+ editor.on("done", () => {
29743
+ if (this.elementModel) {
29744
+ if (!this.elementModel.content || this.elementModel.content.length === 0) {
29745
+ model.removeElementItem(this.elementModel.uuid);
29746
+ } else {
29747
+ this.elementModel.shadow = "";
29748
+ }
29749
+ }
29750
+ editor.dispose();
29751
+ this.rootView.removeChild(editorContainer);
29752
+ });
29753
+ setTimeout(() => {
29754
+ editor.focus();
29755
+ }, 30);
29707
29756
  }
29708
- editor.dispose();
29709
- this.rootView.removeChild(editorContainer);
29710
29757
  });
29711
- setTimeout(() => {
29712
- editor.focus();
29713
- }, 30);
29714
29758
  }
29715
29759
  };
29716
29760
 
@@ -30228,7 +30272,12 @@ var EllipseTool = class extends WhiteboardTool {
30228
30272
  if (this.elementModel) {
30229
30273
  this.elementModel.dispose();
30230
30274
  }
30231
- this.elementModel = this.modelGetter().createSegmentedPath("ellipse", true);
30275
+ this.elementModel = null;
30276
+ this.modelGetter().then((model) => {
30277
+ if (model) {
30278
+ this.elementModel = model.createSegmentedPath("ellipse", true);
30279
+ }
30280
+ });
30232
30281
  this.from = event.point.clone();
30233
30282
  this.to = event.point.clone();
30234
30283
  }
@@ -30243,7 +30292,11 @@ var EllipseTool = class extends WhiteboardTool {
30243
30292
  }
30244
30293
  onMouseUp(event) {
30245
30294
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
30246
- this.modelGetter().removeElementItem(this.elementModel.uuid);
30295
+ this.modelGetter().then((model) => {
30296
+ if (model && this.elementModel) {
30297
+ model.removeElementItem(this.elementModel.uuid);
30298
+ }
30299
+ });
30247
30300
  } else {
30248
30301
  if (this.elementModel) {
30249
30302
  this.elementModel.shadow = "";
@@ -30283,7 +30336,12 @@ var TriangleTool = class extends WhiteboardTool {
30283
30336
  if (this.elementModel) {
30284
30337
  this.elementModel.dispose();
30285
30338
  }
30286
- this.elementModel = this.modelGetter().createTriangle(true);
30339
+ this.elementModel = null;
30340
+ this.modelGetter().then((model) => {
30341
+ if (model) {
30342
+ this.elementModel = model.createTriangle(true);
30343
+ }
30344
+ });
30287
30345
  this.from = event.point.clone();
30288
30346
  this.to = event.point.clone();
30289
30347
  }
@@ -30295,7 +30353,11 @@ var TriangleTool = class extends WhiteboardTool {
30295
30353
  }
30296
30354
  onMouseUp(event) {
30297
30355
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
30298
- this.modelGetter().removeElementItem(this.elementModel.uuid);
30356
+ this.modelGetter().then((model) => {
30357
+ if (model && this.elementModel) {
30358
+ model.removeElementItem(this.elementModel.uuid);
30359
+ }
30360
+ });
30299
30361
  }
30300
30362
  if (this.elementModel) {
30301
30363
  this.elementModel.shadow = "";
@@ -30327,6 +30389,7 @@ var Whiteboard = class extends import_eventemitter38.default {
30327
30389
  super();
30328
30390
  _defineProperty31(this, "view", void 0);
30329
30391
  _defineProperty31(this, "selfUserId", void 0);
30392
+ _defineProperty31(this, "window", void 0);
30330
30393
  _defineProperty31(this, "permissions", void 0);
30331
30394
  _defineProperty31(this, "tool", void 0);
30332
30395
  _defineProperty31(this, "fontSize", void 0);
@@ -30410,7 +30473,12 @@ var EraserTool = class extends WhiteboardTool {
30410
30473
  if (this.elementModel) {
30411
30474
  this.elementModel.dispose();
30412
30475
  }
30413
- this.elementModel = this.modelGetter().createEraser();
30476
+ this.elementModel = null;
30477
+ this.modelGetter().then((model) => {
30478
+ if (model) {
30479
+ this.elementModel = model.createEraser();
30480
+ }
30481
+ });
30414
30482
  }
30415
30483
  onMouseDrag(event) {
30416
30484
  if (this.pointCount > 1024) {
@@ -30443,7 +30511,11 @@ var EraserTool = class extends WhiteboardTool {
30443
30511
  }
30444
30512
  onMouseUp(_event) {
30445
30513
  if (this.elementModel) {
30446
- this.modelGetter().removeElementItem(this.elementModel.uuid);
30514
+ this.modelGetter().then((model) => {
30515
+ if (model && this.elementModel) {
30516
+ model.removeElementItem(this.elementModel.uuid);
30517
+ }
30518
+ });
30447
30519
  }
30448
30520
  this.trashedElementsModel.removeAllTrashedElementsForSelf();
30449
30521
  }
@@ -30602,7 +30674,12 @@ var LaserPointerTool = class extends WhiteboardTool {
30602
30674
  if (this.elementModel) {
30603
30675
  this.elementModel.dispose();
30604
30676
  }
30605
- this.elementModel = this.modelGetter().createLaserPointer();
30677
+ this.elementModel = null;
30678
+ this.modelGetter().then((model) => {
30679
+ if (model) {
30680
+ this.elementModel = model.createLaserPointer();
30681
+ }
30682
+ });
30606
30683
  }
30607
30684
  onMouseDrag(event) {
30608
30685
  if (this.pointCount > 1024) {
@@ -31228,7 +31305,12 @@ var StraightLineTool = class extends WhiteboardTool {
31228
31305
  if (this.elementModel) {
31229
31306
  this.elementModel.dispose();
31230
31307
  }
31231
- this.elementModel = this.modelGetter().createStraightLine(true);
31308
+ this.elementModel = null;
31309
+ this.modelGetter().then((model) => {
31310
+ if (model) {
31311
+ this.elementModel = model.createStraightLine(true);
31312
+ }
31313
+ });
31232
31314
  this.from = event.point.clone();
31233
31315
  this.to = event.point.clone();
31234
31316
  }
@@ -31243,7 +31325,11 @@ var StraightLineTool = class extends WhiteboardTool {
31243
31325
  this.elementModel.shadow = "";
31244
31326
  }
31245
31327
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
31246
- this.modelGetter().removeElementItem(this.elementModel.uuid);
31328
+ this.modelGetter().then((model) => {
31329
+ if (model && this.elementModel) {
31330
+ model.removeElementItem(this.elementModel.uuid);
31331
+ }
31332
+ });
31247
31333
  }
31248
31334
  }
31249
31335
  };
@@ -31527,7 +31613,7 @@ var AsyncMap = class {
31527
31613
  if (!window.__forge_gl_wb_status__) {
31528
31614
  window.__forge_gl_wb_status__ = new AsyncMap();
31529
31615
  }
31530
- var WhiteboardApplication = class extends import_forge_room12.AbstractApplication {
31616
+ var WhiteboardApplication = class _WhiteboardApplication extends import_forge_room12.AbstractApplication {
31531
31617
  get undoManager() {
31532
31618
  const page = this.pageModel.getCurrentPage(this.userId);
31533
31619
  if (page) {
@@ -31730,12 +31816,20 @@ var WhiteboardApplication = class extends import_forge_room12.AbstractApplicatio
31730
31816
  }
31731
31817
  }
31732
31818
  });
31733
- _defineProperty43(this, "getCurrentRenderableModel", () => {
31819
+ _defineProperty43(this, "getCurrentRendererModel", () => {
31734
31820
  const layerId = this.userMap(this.userId).get(WhiteboardKeys.currentPage);
31735
- if (!this.layers.has(layerId)) {
31736
- this.emitter.emit("error", 300002, `target page: ${layerId} not found`);
31821
+ if (this.layers.has(layerId)) {
31822
+ return Promise.resolve(this.layers.get(layerId));
31823
+ } else {
31824
+ return waitUntil(() => this.layers.has(layerId), 1e3).then(() => {
31825
+ if (this.layers.has(layerId)) {
31826
+ return this.layers.get(layerId);
31827
+ } else {
31828
+ this.emitter.emit("error", 300002, `target page: ${layerId} not found`);
31829
+ return null;
31830
+ }
31831
+ });
31737
31832
  }
31738
- return this.layers.get(layerId);
31739
31833
  });
31740
31834
  _defineProperty43(this, "handleElementClear", () => {
31741
31835
  this.shadowScope.project.activeLayer.removeChildren();
@@ -32031,11 +32125,17 @@ var WhiteboardApplication = class extends import_forge_room12.AbstractApplicatio
32031
32125
  }
32032
32126
  };
32033
32127
  this.emitter.clearPage = () => {
32034
- const model = this.getCurrentRenderableModel();
32035
- model.elements.doc.transact(() => {
32036
- model.elements.clear();
32037
- }, elementsUndoOrigin);
32038
- model.elementModels.clear();
32128
+ this.getCurrentRendererModel().then((model) => {
32129
+ if (model) {
32130
+ if (model.elements.doc) {
32131
+ model.elements.doc.transact(() => {
32132
+ model.elements.clear();
32133
+ }, elementsUndoOrigin);
32134
+ } else {
32135
+ model.elementModels.clear();
32136
+ }
32137
+ }
32138
+ });
32039
32139
  };
32040
32140
  this.emitter.undo = () => {
32041
32141
  this.undoManager?.undo();
@@ -32070,9 +32170,11 @@ var WhiteboardApplication = class extends import_forge_room12.AbstractApplicatio
32070
32170
  this.liveCursor.showLiveCursor = value;
32071
32171
  };
32072
32172
  this.emitter.updateViewport = (width, height) => {
32173
+ (0, import_forge_room12.log)(`call updateViewport with width: ${width}, height: ${height}`);
32073
32174
  this.updateOptionSize(width, height);
32074
32175
  };
32075
32176
  this.emitter.__setMainCanvasVisible = (visible) => {
32177
+ (0, import_forge_room12.log)(`call __setMainCanvasVisible with visible: ${visible}`);
32076
32178
  this.canvasElement.style.opacity = visible ? "1" : "0";
32077
32179
  };
32078
32180
  this.emitter.on("error", (errorCode, errorMessage) => {
@@ -32086,6 +32188,7 @@ var WhiteboardApplication = class extends import_forge_room12.AbstractApplicatio
32086
32188
  return that.delayTranslateOut;
32087
32189
  },
32088
32190
  set(value) {
32191
+ (0, import_forge_room12.log)(`call __delayTranslateOut with value: ${value}`);
32089
32192
  that.delayTranslateOut = value;
32090
32193
  }
32091
32194
  });
@@ -32183,6 +32286,8 @@ var WhiteboardApplication = class extends import_forge_room12.AbstractApplicatio
32183
32286
  return this.getMap(`user/${userId}`);
32184
32287
  }
32185
32288
  async initialize(option) {
32289
+ _WhiteboardApplication.instanceCount.set(this.appId, (_WhiteboardApplication.instanceCount.get(this.appId) ?? 0) + 1);
32290
+ (0, import_forge_room12.log)(`whiteboard ${this.appId} initialize. instance count: ${_WhiteboardApplication.instanceCount.get(this.appId) ?? 0}`, {}, "info");
32186
32291
  this.permissions = new WhiteboardPermissions(this.userManager, (userId) => {
32187
32292
  return this.userMap(userId);
32188
32293
  });
@@ -32257,18 +32362,18 @@ var WhiteboardApplication = class extends import_forge_room12.AbstractApplicatio
32257
32362
  return this.userMap(userId);
32258
32363
  });
32259
32364
  this.tools = {
32260
- pointer: new PointerTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32261
- curve: new CurveTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32262
- rectangle: new RectangleTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32263
- selector: new SelectorTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.selectElementsModel),
32264
- arrow: new LineTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32265
- line: new StraightLineTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32266
- text: new TextTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.rootElement, this.canvasElement, this.toolbarModel, this.camera),
32267
- ellipse: new EllipseTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32268
- triangle: new TriangleTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32269
- eraser: new EraserTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.trashedElementsModel, this.shadowScope),
32270
- laser: new LaserPointerTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
32271
- grab: new GrabTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.camera)
32365
+ pointer: new PointerTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32366
+ curve: new CurveTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32367
+ rectangle: new RectangleTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32368
+ selector: new SelectorTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.selectElementsModel),
32369
+ arrow: new LineTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32370
+ line: new StraightLineTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32371
+ text: new TextTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.rootElement, this.canvasElement, this.toolbarModel, this.camera),
32372
+ ellipse: new EllipseTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32373
+ triangle: new TriangleTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32374
+ eraser: new EraserTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.trashedElementsModel, this.shadowScope),
32375
+ laser: new LaserPointerTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
32376
+ grab: new GrabTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.camera)
32272
32377
  };
32273
32378
  this.toolbarModel.on("update", (style) => {
32274
32379
  if (this.tools[style.tool]) {
@@ -32539,6 +32644,7 @@ var WhiteboardApplication = class extends import_forge_room12.AbstractApplicatio
32539
32644
  this.camera.updateInitSize(new import_paper.default.Size(width, height));
32540
32645
  }
32541
32646
  async dispose(removeSubDoc) {
32647
+ _WhiteboardApplication.instanceCount.set(this.appId, (_WhiteboardApplication.instanceCount.get(this.appId) ?? 0) - 1);
32542
32648
  if (removeSubDoc) {
32543
32649
  this.deleteSubDoc(this.appId);
32544
32650
  }
@@ -32571,8 +32677,10 @@ var WhiteboardApplication = class extends import_forge_room12.AbstractApplicatio
32571
32677
  this.emitter.indexedNavigation.dispose();
32572
32678
  this.permissions.dispose();
32573
32679
  (0, import_forge_room13.removeObserver)(this.userMap(this.userId), this.handleSyncedWhiteboardStatusChange);
32680
+ (0, import_forge_room12.log)(`whiteboard ${this.appId} disposed. instance count: ${_WhiteboardApplication.instanceCount.get(this.appId) ?? 0}`, {}, "info");
32574
32681
  }
32575
32682
  };
32683
+ _defineProperty43(WhiteboardApplication, "instanceCount", /* @__PURE__ */ new Map());
32576
32684
  _defineProperty43(WhiteboardApplication, "applicationName", WHITEBOARD_APP_NAME);
32577
32685
  /*! Bundled license information:
32578
32686