@netless/forge-slide 1.0.0 → 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.
package/dist/Slide.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import EventEmitter from 'eventemitter3';
2
- import { ApplicationInstanceType } from '@netless/forge-room';
2
+ import { ApplicationInstanceType, ForgeWindow } from '@netless/forge-room';
3
3
  import { ForgeSlidePermissionFlag, ForgeSlidePermissions } from './ForgeSlidePermession';
4
4
  export interface SlideEvents {
5
5
  /**
@@ -35,6 +35,7 @@ export declare class SlideForge extends EventEmitter<SlideEvents> implements App
35
35
  readonly permissions: ForgeSlidePermissions;
36
36
  readonly footView: HTMLDivElement;
37
37
  readonly sideBarView: HTMLDivElement;
38
+ readonly window: ForgeWindow | undefined;
38
39
  /**
39
40
  * 当前页面索引, 从 0 开始
40
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Slide.d.ts","sourceRoot":"","sources":["../src/Slide.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,MAAM,WAAW,WAAW;IACxB;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7F;;;OAGG;IACH,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;;OAGG;IACH,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C;;;OAGG;IACH,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAGD,qBAAa,UAAW,SAAQ,YAAY,CAAC,WAAW,CAAE,YAAW,uBAAuB;IAE1F,SAAgB,IAAI,EAAG,cAAc,CAAC;IACtC,SAAgB,WAAW,EAAG,qBAAqB,CAAC;IACpD,SAAgB,QAAQ,EAAG,cAAc,CAAC;IAC1C,SAAgB,WAAW,EAAG,cAAc,CAAC;IAC7C;;SAEK;IACL,SAAgB,SAAS,EAAG,MAAM,CAAC;IACnC;;SAEK;IACL,SAAgB,SAAS,EAAG,MAAM,CAAC;IACnC;;;SAGK;IACE,IAAI,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;SAEK;IACE,QAAQ,EAAG,MAAM,IAAI,CAAC;IAC7B;;SAEK;IACE,QAAQ,EAAG,MAAM,IAAI,CAAC;IAC7B;;SAEK;IACE,QAAQ,EAAG,MAAM,IAAI,CAAC;IAC7B;;SAEK;IACE,QAAQ,EAAG,MAAM,IAAI,CAAC;IAC7B;;SAEK;IACE,aAAa,EAAG,MAAM,IAAI,CAAC;IAElC;;;SAGK;IACE,UAAU,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD;;;SAGK;IACE,MAAM,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD;;;SAGK;IACE,OAAO,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;CAC9E"}
1
+ {"version":3,"file":"Slide.d.ts","sourceRoot":"","sources":["../src/Slide.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,MAAM,WAAW,WAAW;IACxB;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7F;;;OAGG;IACH,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;;OAGG;IACH,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C;;;OAGG;IACH,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAGD,qBAAa,UAAW,SAAQ,YAAY,CAAC,WAAW,CAAE,YAAW,uBAAuB;IAE1F,SAAgB,IAAI,EAAG,cAAc,CAAC;IACtC,SAAgB,WAAW,EAAG,qBAAqB,CAAC;IACpD,SAAgB,QAAQ,EAAG,cAAc,CAAC;IAC1C,SAAgB,WAAW,EAAG,cAAc,CAAC;IAC7C,SAAgB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAa;IAC5D;;SAEK;IACL,SAAgB,SAAS,EAAG,MAAM,CAAC;IACnC;;SAEK;IACL,SAAgB,SAAS,EAAG,MAAM,CAAC;IACnC;;;SAGK;IACE,IAAI,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;SAEK;IACE,QAAQ,EAAG,MAAM,IAAI,CAAC;IAC7B;;SAEK;IACE,QAAQ,EAAG,MAAM,IAAI,CAAC;IAC7B;;SAEK;IACE,QAAQ,EAAG,MAAM,IAAI,CAAC;IAC7B;;SAEK;IACE,QAAQ,EAAG,MAAM,IAAI,CAAC;IAC7B;;SAEK;IACE,aAAa,EAAG,MAAM,IAAI,CAAC;IAElC;;;SAGK;IACE,UAAU,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD;;;SAGK;IACE,MAAM,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD;;;SAGK;IACE,OAAO,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;CAC9E"}
package/dist/index.esm.js CHANGED
@@ -61158,7 +61158,11 @@ var ElementModel = class _ElementModel {
61158
61158
  return this.root.get(_ElementModel.KEYS.pointsMatrix) || [1, 0, 0, 1, 0, 0];
61159
61159
  }
61160
61160
  get points() {
61161
- return this.root.get(_ElementModel.KEYS.points).toArray();
61161
+ const list = this.root.get(_ElementModel.KEYS.points);
61162
+ if (list) {
61163
+ return list.toArray();
61164
+ }
61165
+ return [];
61162
61166
  }
61163
61167
  set ownerId(value) {
61164
61168
  this.root.set(_ElementModel.KEYS.ownerId, value);
@@ -61801,7 +61805,12 @@ var LineTool = class extends WhiteboardTool {
61801
61805
  if (this.elementModel) {
61802
61806
  this.elementModel.dispose();
61803
61807
  }
61804
- this.elementModel = this.modelGetter().createLinePath(true);
61808
+ this.elementModel = null;
61809
+ this.modelGetter().then((model) => {
61810
+ if (model) {
61811
+ this.elementModel = model.createLinePath(true);
61812
+ }
61813
+ });
61805
61814
  this.from = event.point.clone();
61806
61815
  this.to = event.point.clone();
61807
61816
  }
@@ -63693,7 +63702,12 @@ var CurveTool = class extends WhiteboardTool {
63693
63702
  if (this.elementModel) {
63694
63703
  this.elementModel.dispose();
63695
63704
  }
63696
- this.elementModel = this.modelGetter().createCurve(true);
63705
+ this.elementModel = null;
63706
+ this.modelGetter().then((model) => {
63707
+ if (model) {
63708
+ this.elementModel = model.createCurve(true);
63709
+ }
63710
+ });
63697
63711
  }
63698
63712
  onMouseDrag(event) {
63699
63713
  if (this.pointCount > 1024) {
@@ -63720,34 +63734,41 @@ var CurveTool = class extends WhiteboardTool {
63720
63734
  }
63721
63735
  }
63722
63736
  onMouseUp(event) {
63723
- if (this.pointCount < 3 && this.elementModel) {
63724
- this.modelGetter().removeElementItem(this.elementModel.uuid);
63725
- }
63726
- if (this.elementModel) {
63727
- this.elementModel.shadow = "";
63728
- }
63729
- if (this.elementModel && event.event.metaKey) {
63730
- const result = this.recognizer.recognize(this.elementModel.points);
63731
- if (result) {
63732
- this.modelGetter().removeElementItem(this.elementModel.uuid);
63733
- if (/^rectangle/.test(result.shape)) {
63734
- const model = this.modelGetter().createRectangle(false);
63735
- model?.setPoints([result.minX, result.minY, result.maxX, result.maxY]);
63736
- } else if (/^circle/.test(result.shape)) {
63737
- const model = this.modelGetter().createSegmentedPath("ellipse", false);
63738
- const rect = new this.scope.Rectangle(new this.scope.Point(result.minX, result.minY), new this.scope.Point(result.maxX, result.maxY));
63739
- const pathRect = new this.scope.Path.Ellipse(rect);
63740
- const points = serializePath(pathRect);
63741
- model?.setPoints(points);
63742
- } else if (/^triangle/.test(result.shape)) {
63743
- const model = this.modelGetter().createTriangle(false);
63744
- model?.setPoints([result.minX + (result.maxX - result.minX) / 2, result.minY, result.minX, result.maxY, result.maxX, result.maxY]);
63745
- } else if (/^arrow/.test(result.shape)) {
63746
- const model = this.modelGetter().createLinePath(false);
63747
- model?.setPoints([result.minX, (result.maxY + result.minY) / 2, result.maxX, (result.maxY + result.minY) / 2]);
63737
+ this.modelGetter().then((model) => {
63738
+ if (!model) {
63739
+ return;
63740
+ }
63741
+ if (this.pointCount < 3 && this.elementModel) {
63742
+ if (this.elementModel) {
63743
+ model.removeElementItem(this.elementModel.uuid);
63748
63744
  }
63749
63745
  }
63750
- }
63746
+ if (this.elementModel) {
63747
+ this.elementModel.shadow = "";
63748
+ }
63749
+ if (this.elementModel && event.event.metaKey) {
63750
+ const result = this.recognizer.recognize(this.elementModel.points);
63751
+ if (result) {
63752
+ model.removeElementItem(this.elementModel.uuid);
63753
+ if (/^rectangle/.test(result.shape)) {
63754
+ const rect = model.createRectangle(false);
63755
+ rect?.setPoints([result.minX, result.minY, result.maxX, result.maxY]);
63756
+ } else if (/^circle/.test(result.shape)) {
63757
+ const circle = model.createSegmentedPath("ellipse", false);
63758
+ const rect = new this.scope.Rectangle(new this.scope.Point(result.minX, result.minY), new this.scope.Point(result.maxX, result.maxY));
63759
+ const pathRect = new this.scope.Path.Ellipse(rect);
63760
+ const points = serializePath(pathRect);
63761
+ circle?.setPoints(points);
63762
+ } else if (/^triangle/.test(result.shape)) {
63763
+ const triangle = model.createTriangle(false);
63764
+ triangle?.setPoints([result.minX + (result.maxX - result.minX) / 2, result.minY, result.minX, result.maxY, result.maxX, result.maxY]);
63765
+ } else if (/^arrow/.test(result.shape)) {
63766
+ const arrow = model.createLinePath(false);
63767
+ arrow?.setPoints([result.minX, (result.maxY + result.minY) / 2, result.maxX, (result.maxY + result.minY) / 2]);
63768
+ }
63769
+ }
63770
+ }
63771
+ });
63751
63772
  }
63752
63773
  };
63753
63774
  function _defineProperty20(e, r, t) {
@@ -63780,7 +63801,12 @@ var RectangleTool = class extends WhiteboardTool {
63780
63801
  if (this.elementModel) {
63781
63802
  this.elementModel.dispose();
63782
63803
  }
63783
- this.elementModel = this.modelGetter().createRectangle(true);
63804
+ this.elementModel = null;
63805
+ this.modelGetter().then((model) => {
63806
+ if (model) {
63807
+ this.elementModel = model.createRectangle(true);
63808
+ }
63809
+ });
63784
63810
  this.from = event.point.clone();
63785
63811
  this.to = event.point.clone();
63786
63812
  }
@@ -63795,7 +63821,11 @@ var RectangleTool = class extends WhiteboardTool {
63795
63821
  this.elementModel.shadow = "";
63796
63822
  }
63797
63823
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
63798
- this.modelGetter().removeElementItem(this.elementModel.uuid);
63824
+ this.modelGetter().then((model) => {
63825
+ if (model && this.elementModel) {
63826
+ model.removeElementItem(this.elementModel.uuid);
63827
+ }
63828
+ });
63799
63829
  }
63800
63830
  }
63801
63831
  };
@@ -63933,11 +63963,16 @@ var SelectorTool = class extends WhiteboardTool {
63933
63963
  if (this.elementModel) {
63934
63964
  this.elementModel.dispose();
63935
63965
  }
63936
- this.elementModel = this.modelGetter().createSelector();
63937
- this.from = event.point.clone();
63938
- this.to = event.point.clone();
63939
- const rect = new this.scope.Rectangle(this.from, this.to);
63940
- this.elementModel?.setPoints([rect.topLeft.x, rect.topLeft.y, rect.size.width, rect.size.height]);
63966
+ this.elementModel = null;
63967
+ this.modelGetter().then((model) => {
63968
+ if (model) {
63969
+ this.elementModel = model.createSelector();
63970
+ this.from = event.point.clone();
63971
+ this.to = event.point.clone();
63972
+ const rect = new this.scope.Rectangle(this.from, this.to);
63973
+ this.elementModel?.setPoints([rect.topLeft.x, rect.topLeft.y, rect.size.width, rect.size.height]);
63974
+ }
63975
+ });
63941
63976
  this.selectElements.clear();
63942
63977
  }
63943
63978
  onMouseDrag(event) {
@@ -63959,7 +63994,11 @@ var SelectorTool = class extends WhiteboardTool {
63959
63994
  }
63960
63995
  onMouseUp(event) {
63961
63996
  if (this.elementModel) {
63962
- this.modelGetter().removeElementItem(this.elementModel.uuid);
63997
+ this.modelGetter().then((model) => {
63998
+ if (model && this.elementModel) {
63999
+ model.removeElementItem(this.elementModel.uuid);
64000
+ }
64001
+ });
63963
64002
  }
63964
64003
  const elements = Array.from(this.selectElements.keys()).reduce((result, next) => {
63965
64004
  result.push({
@@ -64885,41 +64924,46 @@ var TextTool = class extends WhiteboardTool {
64885
64924
  if (this.elementModel) {
64886
64925
  this.elementModel.dispose();
64887
64926
  }
64888
- this.elementModel = this.modelGetter().createPointText(x, y, true);
64889
- if (this.elementModel === null) {
64890
- return;
64891
- }
64892
- const editorContainer = window.document.createElement("div");
64893
- const canvasBounds = this.canvasElement.getBoundingClientRect();
64894
- editorContainer.style.cssText = `position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;width:${canvasBounds.width}px;height:${canvasBounds.height}px;`;
64895
- const editor = new TextEditor(this.camera);
64896
- editor.setOrigin(x, y);
64897
- editorContainer.appendChild(editor.rootView);
64898
- this.rootView.appendChild(editorContainer);
64899
- editor.setFontSize(this.toolbarModel.fontSize);
64900
- editor.setFontFamily(this.toolbarModel.fontFamily);
64901
- this.camera.triggerZoom();
64902
- editor.on("caretOutRight", () => {
64903
- });
64904
- editor.on("change", (content) => {
64905
- if (this.elementModel) {
64906
- this.elementModel.content = content;
64907
- }
64908
- });
64909
- editor.on("done", () => {
64910
- if (this.elementModel) {
64911
- if (!this.elementModel.content || this.elementModel.content.length === 0) {
64912
- this.modelGetter().removeElementItem(this.elementModel.uuid);
64913
- } else {
64914
- this.elementModel.shadow = "";
64927
+ this.elementModel = null;
64928
+ this.modelGetter().then((model) => {
64929
+ if (model) {
64930
+ this.elementModel = model.createPointText(x, y, true);
64931
+ if (this.elementModel === null) {
64932
+ return;
64915
64933
  }
64934
+ const editorContainer = window.document.createElement("div");
64935
+ const canvasBounds = this.canvasElement.getBoundingClientRect();
64936
+ editorContainer.style.cssText = `position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;width:${canvasBounds.width}px;height:${canvasBounds.height}px;`;
64937
+ const editor = new TextEditor(this.camera);
64938
+ editor.setOrigin(x, y);
64939
+ editorContainer.appendChild(editor.rootView);
64940
+ this.rootView.appendChild(editorContainer);
64941
+ editor.setFontSize(this.toolbarModel.fontSize);
64942
+ editor.setFontFamily(this.toolbarModel.fontFamily);
64943
+ this.camera.triggerZoom();
64944
+ editor.on("caretOutRight", () => {
64945
+ });
64946
+ editor.on("change", (content) => {
64947
+ if (this.elementModel) {
64948
+ this.elementModel.content = content;
64949
+ }
64950
+ });
64951
+ editor.on("done", () => {
64952
+ if (this.elementModel) {
64953
+ if (!this.elementModel.content || this.elementModel.content.length === 0) {
64954
+ model.removeElementItem(this.elementModel.uuid);
64955
+ } else {
64956
+ this.elementModel.shadow = "";
64957
+ }
64958
+ }
64959
+ editor.dispose();
64960
+ this.rootView.removeChild(editorContainer);
64961
+ });
64962
+ setTimeout(() => {
64963
+ editor.focus();
64964
+ }, 30);
64916
64965
  }
64917
- editor.dispose();
64918
- this.rootView.removeChild(editorContainer);
64919
64966
  });
64920
- setTimeout(() => {
64921
- editor.focus();
64922
- }, 30);
64923
64967
  }
64924
64968
  };
64925
64969
  function _defineProperty27(e, r, t) {
@@ -65426,7 +65470,12 @@ var EllipseTool = class extends WhiteboardTool {
65426
65470
  if (this.elementModel) {
65427
65471
  this.elementModel.dispose();
65428
65472
  }
65429
- this.elementModel = this.modelGetter().createSegmentedPath("ellipse", true);
65473
+ this.elementModel = null;
65474
+ this.modelGetter().then((model) => {
65475
+ if (model) {
65476
+ this.elementModel = model.createSegmentedPath("ellipse", true);
65477
+ }
65478
+ });
65430
65479
  this.from = event.point.clone();
65431
65480
  this.to = event.point.clone();
65432
65481
  }
@@ -65441,7 +65490,11 @@ var EllipseTool = class extends WhiteboardTool {
65441
65490
  }
65442
65491
  onMouseUp(event) {
65443
65492
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
65444
- this.modelGetter().removeElementItem(this.elementModel.uuid);
65493
+ this.modelGetter().then((model) => {
65494
+ if (model && this.elementModel) {
65495
+ model.removeElementItem(this.elementModel.uuid);
65496
+ }
65497
+ });
65445
65498
  } else {
65446
65499
  if (this.elementModel) {
65447
65500
  this.elementModel.shadow = "";
@@ -65479,7 +65532,12 @@ var TriangleTool = class extends WhiteboardTool {
65479
65532
  if (this.elementModel) {
65480
65533
  this.elementModel.dispose();
65481
65534
  }
65482
- this.elementModel = this.modelGetter().createTriangle(true);
65535
+ this.elementModel = null;
65536
+ this.modelGetter().then((model) => {
65537
+ if (model) {
65538
+ this.elementModel = model.createTriangle(true);
65539
+ }
65540
+ });
65483
65541
  this.from = event.point.clone();
65484
65542
  this.to = event.point.clone();
65485
65543
  }
@@ -65491,7 +65549,11 @@ var TriangleTool = class extends WhiteboardTool {
65491
65549
  }
65492
65550
  onMouseUp(event) {
65493
65551
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
65494
- this.modelGetter().removeElementItem(this.elementModel.uuid);
65552
+ this.modelGetter().then((model) => {
65553
+ if (model && this.elementModel) {
65554
+ model.removeElementItem(this.elementModel.uuid);
65555
+ }
65556
+ });
65495
65557
  }
65496
65558
  if (this.elementModel) {
65497
65559
  this.elementModel.shadow = "";
@@ -65520,6 +65582,7 @@ var Whiteboard = class extends EventEmitter8 {
65520
65582
  super();
65521
65583
  _defineProperty31(this, "view", void 0);
65522
65584
  _defineProperty31(this, "selfUserId", void 0);
65585
+ _defineProperty31(this, "window", void 0);
65523
65586
  _defineProperty31(this, "permissions", void 0);
65524
65587
  _defineProperty31(this, "tool", void 0);
65525
65588
  _defineProperty31(this, "fontSize", void 0);
@@ -65601,7 +65664,12 @@ var EraserTool = class extends WhiteboardTool {
65601
65664
  if (this.elementModel) {
65602
65665
  this.elementModel.dispose();
65603
65666
  }
65604
- this.elementModel = this.modelGetter().createEraser();
65667
+ this.elementModel = null;
65668
+ this.modelGetter().then((model) => {
65669
+ if (model) {
65670
+ this.elementModel = model.createEraser();
65671
+ }
65672
+ });
65605
65673
  }
65606
65674
  onMouseDrag(event) {
65607
65675
  if (this.pointCount > 1024) {
@@ -65634,7 +65702,11 @@ var EraserTool = class extends WhiteboardTool {
65634
65702
  }
65635
65703
  onMouseUp(_event) {
65636
65704
  if (this.elementModel) {
65637
- this.modelGetter().removeElementItem(this.elementModel.uuid);
65705
+ this.modelGetter().then((model) => {
65706
+ if (model && this.elementModel) {
65707
+ model.removeElementItem(this.elementModel.uuid);
65708
+ }
65709
+ });
65638
65710
  }
65639
65711
  this.trashedElementsModel.removeAllTrashedElementsForSelf();
65640
65712
  }
@@ -65786,7 +65858,12 @@ var LaserPointerTool = class extends WhiteboardTool {
65786
65858
  if (this.elementModel) {
65787
65859
  this.elementModel.dispose();
65788
65860
  }
65789
- this.elementModel = this.modelGetter().createLaserPointer();
65861
+ this.elementModel = null;
65862
+ this.modelGetter().then((model) => {
65863
+ if (model) {
65864
+ this.elementModel = model.createLaserPointer();
65865
+ }
65866
+ });
65790
65867
  }
65791
65868
  onMouseDrag(event) {
65792
65869
  if (this.pointCount > 1024) {
@@ -66396,7 +66473,12 @@ var StraightLineTool = class extends WhiteboardTool {
66396
66473
  if (this.elementModel) {
66397
66474
  this.elementModel.dispose();
66398
66475
  }
66399
- this.elementModel = this.modelGetter().createStraightLine(true);
66476
+ this.elementModel = null;
66477
+ this.modelGetter().then((model) => {
66478
+ if (model) {
66479
+ this.elementModel = model.createStraightLine(true);
66480
+ }
66481
+ });
66400
66482
  this.from = event.point.clone();
66401
66483
  this.to = event.point.clone();
66402
66484
  }
@@ -66411,7 +66493,11 @@ var StraightLineTool = class extends WhiteboardTool {
66411
66493
  this.elementModel.shadow = "";
66412
66494
  }
66413
66495
  if (this.elementModel && this.from && this.from.getDistance(event.point) < 3) {
66414
- this.modelGetter().removeElementItem(this.elementModel.uuid);
66496
+ this.modelGetter().then((model) => {
66497
+ if (model && this.elementModel) {
66498
+ model.removeElementItem(this.elementModel.uuid);
66499
+ }
66500
+ });
66415
66501
  }
66416
66502
  }
66417
66503
  };
@@ -66885,12 +66971,20 @@ var WhiteboardApplication = class extends AbstractApplication {
66885
66971
  }
66886
66972
  }
66887
66973
  });
66888
- _defineProperty43(this, "getCurrentRenderableModel", () => {
66974
+ _defineProperty43(this, "getCurrentRendererModel", () => {
66889
66975
  const layerId = this.userMap(this.userId).get(WhiteboardKeys.currentPage);
66890
- if (!this.layers.has(layerId)) {
66891
- this.emitter.emit("error", 300002, `target page: ${layerId} not found`);
66976
+ if (this.layers.has(layerId)) {
66977
+ return Promise.resolve(this.layers.get(layerId));
66978
+ } else {
66979
+ return waitUntil(() => this.layers.has(layerId), 1e3).then(() => {
66980
+ if (this.layers.has(layerId)) {
66981
+ return this.layers.get(layerId);
66982
+ } else {
66983
+ this.emitter.emit("error", 300002, `target page: ${layerId} not found`);
66984
+ return null;
66985
+ }
66986
+ });
66892
66987
  }
66893
- return this.layers.get(layerId);
66894
66988
  });
66895
66989
  _defineProperty43(this, "handleElementClear", () => {
66896
66990
  this.shadowScope.project.activeLayer.removeChildren();
@@ -67186,11 +67280,17 @@ var WhiteboardApplication = class extends AbstractApplication {
67186
67280
  }
67187
67281
  };
67188
67282
  this.emitter.clearPage = () => {
67189
- const model = this.getCurrentRenderableModel();
67190
- model.elements.doc.transact(() => {
67191
- model.elements.clear();
67192
- }, elementsUndoOrigin);
67193
- model.elementModels.clear();
67283
+ this.getCurrentRendererModel().then((model) => {
67284
+ if (model) {
67285
+ if (model.elements.doc) {
67286
+ model.elements.doc.transact(() => {
67287
+ model.elements.clear();
67288
+ }, elementsUndoOrigin);
67289
+ } else {
67290
+ model.elementModels.clear();
67291
+ }
67292
+ }
67293
+ });
67194
67294
  };
67195
67295
  this.emitter.undo = () => {
67196
67296
  this.undoManager?.undo();
@@ -67412,18 +67512,18 @@ var WhiteboardApplication = class extends AbstractApplication {
67412
67512
  return this.userMap(userId);
67413
67513
  });
67414
67514
  this.tools = {
67415
- pointer: new PointerTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
67416
- curve: new CurveTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
67417
- rectangle: new RectangleTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
67418
- selector: new SelectorTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.selectElementsModel),
67419
- arrow: new LineTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
67420
- line: new StraightLineTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
67421
- text: new TextTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.rootElement, this.canvasElement, this.toolbarModel, this.camera),
67422
- ellipse: new EllipseTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
67423
- triangle: new TriangleTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
67424
- eraser: new EraserTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.trashedElementsModel, this.shadowScope),
67425
- laser: new LaserPointerTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope),
67426
- grab: new GrabTool(this.enableToolEvent, this.getCurrentRenderableModel, this.shadowEmitter, this.paperScope, this.camera)
67515
+ pointer: new PointerTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
67516
+ curve: new CurveTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
67517
+ rectangle: new RectangleTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
67518
+ selector: new SelectorTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.selectElementsModel),
67519
+ arrow: new LineTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
67520
+ line: new StraightLineTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
67521
+ text: new TextTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.rootElement, this.canvasElement, this.toolbarModel, this.camera),
67522
+ ellipse: new EllipseTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
67523
+ triangle: new TriangleTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
67524
+ eraser: new EraserTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.trashedElementsModel, this.shadowScope),
67525
+ laser: new LaserPointerTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope),
67526
+ grab: new GrabTool(this.enableToolEvent, this.getCurrentRendererModel, this.shadowEmitter, this.paperScope, this.camera)
67427
67527
  };
67428
67528
  this.toolbarModel.on("update", (style) => {
67429
67529
  if (this.tools[style.tool]) {
@@ -67741,6 +67841,7 @@ var SlideForge = class extends EventEmitter13 {
67741
67841
  permissions;
67742
67842
  footView;
67743
67843
  sideBarView;
67844
+ window = void 0;
67744
67845
  /**
67745
67846
  * 当前页面索引, 从 0 开始
67746
67847
  */