@netless/forge-slide 1.1.1 → 1.1.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.
package/dist/slide.js CHANGED
@@ -35313,36 +35313,37 @@ var Y = __toESM(require("yjs"), 1);
35313
35313
  var import_forge_room3 = require("@netless/forge-room");
35314
35314
  var Y3 = __toESM(require("yjs"), 1);
35315
35315
  var Y4 = __toESM(require("yjs"), 1);
35316
+ var import_forge_room4 = require("@netless/forge-room");
35316
35317
  var Y5 = __toESM(require("yjs"), 1);
35317
35318
  var Y6 = __toESM(require("yjs"), 1);
35318
- var import_forge_room4 = require("@netless/forge-room");
35319
+ var import_forge_room5 = require("@netless/forge-room");
35319
35320
  var Y7 = __toESM(require("yjs"), 1);
35320
35321
  var Y8 = __toESM(require("yjs"), 1);
35321
35322
  var Y9 = __toESM(require("yjs"), 1);
35322
35323
  var Y10 = __toESM(require("yjs"), 1);
35323
- var import_forge_room5 = require("@netless/forge-room");
35324
+ var import_forge_room6 = require("@netless/forge-room");
35324
35325
  var Y11 = __toESM(require("yjs"), 1);
35325
35326
  var import_eventemitter32 = __toESM(require("eventemitter3"), 1);
35326
- var import_forge_room6 = require("@netless/forge-room");
35327
+ var import_forge_room7 = require("@netless/forge-room");
35327
35328
  var Y13 = __toESM(require("yjs"), 1);
35328
35329
  var import_eventemitter33 = __toESM(require("eventemitter3"), 1);
35329
- var import_forge_room7 = require("@netless/forge-room");
35330
+ var import_forge_room8 = require("@netless/forge-room");
35330
35331
  var import_eventemitter34 = __toESM(require("eventemitter3"), 1);
35331
35332
  var import_eventemitter35 = require("eventemitter3");
35332
35333
  var import_eventemitter36 = __toESM(require("eventemitter3"), 1);
35333
35334
  var import_eventemitter37 = __toESM(require("eventemitter3"), 1);
35334
- var import_forge_room8 = require("@netless/forge-room");
35335
+ var import_forge_room9 = require("@netless/forge-room");
35335
35336
  var import_eventemitter38 = __toESM(require("eventemitter3"), 1);
35336
35337
  var Y14 = __toESM(require("yjs"), 1);
35337
35338
  var import_eventemitter39 = __toESM(require("eventemitter3"), 1);
35338
- var import_forge_room9 = require("@netless/forge-room");
35339
- var import_eventemitter310 = __toESM(require("eventemitter3"), 1);
35340
35339
  var import_forge_room10 = require("@netless/forge-room");
35341
- var import_eventemitter311 = __toESM(require("eventemitter3"), 1);
35340
+ var import_eventemitter310 = __toESM(require("eventemitter3"), 1);
35342
35341
  var import_forge_room11 = require("@netless/forge-room");
35342
+ var import_eventemitter311 = __toESM(require("eventemitter3"), 1);
35343
35343
  var import_forge_room12 = require("@netless/forge-room");
35344
- var import_eventemitter312 = __toESM(require("eventemitter3"), 1);
35345
35344
  var import_forge_room13 = require("@netless/forge-room");
35345
+ var import_eventemitter312 = __toESM(require("eventemitter3"), 1);
35346
+ var import_forge_room14 = require("@netless/forge-room");
35346
35347
  var __create2 = Object.create;
35347
35348
  var __defProp2 = Object.defineProperty;
35348
35349
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -58613,7 +58614,7 @@ var require_lodash = __commonJS2({
58613
58614
  result2.__values__ = wrapper.__values__;
58614
58615
  return result2;
58615
58616
  }
58616
- function chunk8(array, size2, guard) {
58617
+ function chunk7(array, size2, guard) {
58617
58618
  if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) {
58618
58619
  size2 = 1;
58619
58620
  } else {
@@ -60485,7 +60486,7 @@ var require_lodash = __commonJS2({
60485
60486
  lodash.bindKey = bindKey;
60486
60487
  lodash.castArray = castArray;
60487
60488
  lodash.chain = chain;
60488
- lodash.chunk = chunk8;
60489
+ lodash.chunk = chunk7;
60489
60490
  lodash.compact = compact;
60490
60491
  lodash.concat = concat;
60491
60492
  lodash.cond = cond;
@@ -61109,7 +61110,6 @@ function me(e, t = {}) {
61109
61110
  function ae(e, t = {}) {
61110
61111
  return ce(me(e, t), t);
61111
61112
  }
61112
- var import_lodash = __toESM2(require_lodash(), 1);
61113
61113
  function _defineProperty(e, r, t) {
61114
61114
  return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
61115
61115
  }
@@ -61492,35 +61492,37 @@ var CurveModel = class extends ElementModel {
61492
61492
  constructor(root, scope, liveCursor, isPerformanceMode) {
61493
61493
  super(root, scope, liveCursor, isPerformanceMode);
61494
61494
  _defineProperty3(this, "item", null);
61495
- _defineProperty3(this, "debugPath", void 0);
61496
61495
  _defineProperty3(this, "debug", false);
61497
61496
  _defineProperty3(this, "clearLocalPointsWhenYPointsChange", false);
61498
61497
  _defineProperty3(this, "shouldUseLocalPoints", true);
61499
- _defineProperty3(this, "localPointsPick", 4);
61498
+ _defineProperty3(this, "localPointsPick", 6);
61500
61499
  if (!this.root.doc || !this.root.has("type")) {
61501
61500
  this.root.set("type", "curve");
61502
61501
  }
61503
61502
  if (!this.root.doc || !this.root.has("points")) {
61504
61503
  this.root.set("points", new Y2.Array());
61505
61504
  }
61506
- this.debugPath = new scope.Path();
61507
61505
  }
61508
61506
  average(a2, b2) {
61509
61507
  return (a2 + b2) / 2;
61510
61508
  }
61511
61509
  parsePoints(points) {
61510
+ const hasRealPressure = points.some((p) => p.length >= 3 && p[2] > 0);
61511
+ const viewScale = this.scope.project.view.matrix.scaling.x || 1;
61512
+ const taper = this.strokeWidth * 5 / viewScale;
61513
+ const streamline = Math.min(0.7, 0.7 * viewScale);
61512
61514
  return ae(points, {
61513
61515
  size: this.strokeWidth,
61514
- smoothing: 0.5,
61515
- thinning: -0.5,
61516
- streamline: 0.5,
61517
- simulatePressure: true,
61516
+ smoothing: 0.7,
61517
+ thinning: 0.5,
61518
+ streamline,
61519
+ simulatePressure: !hasRealPressure,
61518
61520
  start: {
61519
- taper: this.strokeWidth * 10,
61521
+ taper,
61520
61522
  cap: true
61521
61523
  },
61522
61524
  end: {
61523
- taper: this.strokeWidth * 20,
61525
+ taper,
61524
61526
  cap: true
61525
61527
  }
61526
61528
  });
@@ -61529,10 +61531,11 @@ var CurveModel = class extends ElementModel {
61529
61531
  const points = this.localPoints.length === 0 ? this.points : this.localPoints;
61530
61532
  const matrix = new this.scope.Matrix(this.pointsMatrix);
61531
61533
  const output = [];
61532
- for (let i = 0, len = points.length; i < len; i += 2) {
61534
+ for (let i = 0, len = points.length; i < len; i += 3) {
61533
61535
  const p = new this.scope.Point(points[i], points[i + 1]);
61534
61536
  const tp = p.transform(matrix);
61535
- output.push([tp.x, tp.y]);
61537
+ const pressure = points[i + 2] ?? 0;
61538
+ output.push([tp.x, tp.y, pressure]);
61536
61539
  }
61537
61540
  return output;
61538
61541
  }
@@ -61561,34 +61564,30 @@ var CurveModel = class extends ElementModel {
61561
61564
  }
61562
61565
  return path;
61563
61566
  }
61564
- updateDebugPath() {
61565
- this.debugPath = new this.scope.Path();
61566
- const points = (0, import_lodash.chunk)(this.points, 2);
61567
- for (let i = 0, len = points.length; i < len; i++) {
61568
- const point = new this.scope.Point(points[i][0], points[i][1]);
61569
- if (i === 0) {
61570
- this.debugPath.moveTo(point);
61571
- } else {
61572
- this.debugPath.lineTo(point);
61573
- }
61574
- this.debugPath.strokeWidth = 1;
61575
- this.debugPath.strokeColor = new this.scope.Color(1, 0, 0, 1);
61576
- }
61577
- }
61578
61567
  onVectorUpdate() {
61579
61568
  if (!this.item) {
61580
61569
  return;
61581
61570
  }
61571
+ const matrixedPts = this.matrixedPoints();
61582
61572
  if (this.debug) {
61583
- this.debugPath.remove();
61584
- this.updateDebugPath();
61585
- }
61586
- const points = this.parsePoints(this.matrixedPoints());
61587
- const path = this.createPath(points);
61588
- this.item.removeSegments();
61589
- this.item.addSegments(path.segments);
61590
- if (this.debug) {
61591
- this.item.addChild(this.debugPath);
61573
+ const path = new this.scope.Path();
61574
+ for (let i = 0; i < matrixedPts.length; i++) {
61575
+ const p = new this.scope.Point(matrixedPts[i][0], matrixedPts[i][1]);
61576
+ if (i === 0) {
61577
+ path.moveTo(p);
61578
+ } else {
61579
+ path.lineTo(p);
61580
+ }
61581
+ }
61582
+ this.item.removeSegments();
61583
+ this.item.addSegments(path.segments);
61584
+ this.item.fillColor = null;
61585
+ this.item.strokeWidth = this.strokeWidth;
61586
+ } else {
61587
+ const points = this.parsePoints(matrixedPts);
61588
+ const path = this.createPath(points);
61589
+ this.item.removeSegments();
61590
+ this.item.addSegments(path.segments);
61592
61591
  }
61593
61592
  }
61594
61593
  createPaperItem() {
@@ -61611,11 +61610,11 @@ var CurveModel = class extends ElementModel {
61611
61610
  }
61612
61611
  liveCursorPoint() {
61613
61612
  const yArray = this.root.get(ElementModel.KEYS.points);
61614
- if (yArray.length < 2) {
61613
+ if (yArray.length < 3) {
61615
61614
  return null;
61616
61615
  }
61617
61616
  const len = yArray.length;
61618
- const point = new this.scope.Point(yArray.get(len - 2), yArray.get(len - 1));
61617
+ const point = new this.scope.Point(yArray.get(len - 3), yArray.get(len - 2));
61619
61618
  return point.transform(new this.scope.Matrix(this.pointsMatrix));
61620
61619
  }
61621
61620
  onStyleKeyUpdate(key) {
@@ -61708,7 +61707,7 @@ var SelectorModel = class extends ElementModel {
61708
61707
  onStyleKeyUpdate(_key) {
61709
61708
  }
61710
61709
  };
61711
- var import_lodash2 = __toESM2(require_lodash(), 1);
61710
+ var import_lodash = __toESM2(require_lodash(), 1);
61712
61711
  function _defineProperty5(e, r, t) {
61713
61712
  return (r = _toPropertyKey5(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
61714
61713
  }
@@ -61741,7 +61740,7 @@ function serializePath(path) {
61741
61740
  }, []);
61742
61741
  }
61743
61742
  function deserializePath(points, scope, matrix) {
61744
- const segmentGroup = (0, import_lodash2.chunk)(points, 6);
61743
+ const segmentGroup = (0, import_lodash.chunk)(points, 6);
61745
61744
  const path = new scope.Path();
61746
61745
  path.segments = segmentGroup.map((v) => deserializeSegment(v, scope, matrix));
61747
61746
  return path;
@@ -61751,7 +61750,27 @@ var AnimationFrame = class {
61751
61750
  _defineProperty5(this, "callbacks", []);
61752
61751
  _defineProperty5(this, "lastTime", 0);
61753
61752
  _defineProperty5(this, "fps", 45);
61753
+ _defineProperty5(this, "lastCallbackTime", 0);
61754
+ _defineProperty5(this, "fpsBuffer", []);
61755
+ _defineProperty5(this, "FPS_REPORT_INTERVAL", 2700);
61754
61756
  _defineProperty5(this, "handleCallbacks", () => {
61757
+ const now = performance.now();
61758
+ if (this.lastCallbackTime > 0) {
61759
+ const actualFps = 1e3 / (now - this.lastCallbackTime);
61760
+ this.fpsBuffer.push(actualFps);
61761
+ if (this.fpsBuffer.length >= this.FPS_REPORT_INTERVAL) {
61762
+ const avg = this.fpsBuffer.reduce((a2, b2) => a2 + b2, 0) / this.fpsBuffer.length;
61763
+ const min = Math.min(...this.fpsBuffer);
61764
+ const sorted = [...this.fpsBuffer].sort((a2, b2) => a2 - b2);
61765
+ const p90 = sorted[Math.floor(sorted.length * 0.9)];
61766
+ (0, import_forge_room4.metrics)().gauge("fps", Math.round(avg), {
61767
+ min: Math.round(min),
61768
+ p90: Math.round(p90)
61769
+ });
61770
+ this.fpsBuffer = [];
61771
+ }
61772
+ }
61773
+ this.lastCallbackTime = now;
61755
61774
  const functions = this.callbacks;
61756
61775
  this.callbacks = [];
61757
61776
  for (let i = 0, l2 = functions.length; i < l2; i++) {
@@ -61859,7 +61878,7 @@ var SegmentsModel = class extends ElementModel {
61859
61878
  onStyleKeyUpdate(_key) {
61860
61879
  }
61861
61880
  };
61862
- var import_lodash4 = __toESM2(require_lodash(), 1);
61881
+ var import_lodash3 = __toESM2(require_lodash(), 1);
61863
61882
  function _defineProperty7(e, r, t) {
61864
61883
  return (r = _toPropertyKey7(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
61865
61884
  }
@@ -61877,6 +61896,8 @@ function _toPrimitive7(t, r) {
61877
61896
  }
61878
61897
  return ("string" === r ? String : Number)(t);
61879
61898
  }
61899
+ var DRAG_FPS = 10;
61900
+ var DRAG_FRAME_MS = 1e3 / DRAG_FPS;
61880
61901
  var WhiteboardTool = class {
61881
61902
  constructor(enableToolEvent, modelGetter, shadowEmitter, scope) {
61882
61903
  _defineProperty7(this, "modelGetter", void 0);
@@ -61885,24 +61906,60 @@ var WhiteboardTool = class {
61885
61906
  _defineProperty7(this, "shadowEmitter", void 0);
61886
61907
  _defineProperty7(this, "enableToolEvent", void 0);
61887
61908
  _defineProperty7(this, "eventAvailable", false);
61909
+ _defineProperty7(this, "lastDragTime", 0);
61910
+ _defineProperty7(this, "dragRafId", 0);
61911
+ _defineProperty7(this, "pendingDragEvent", null);
61888
61912
  _defineProperty7(this, "onMouseDownSelf", (event) => {
61889
61913
  this.eventAvailable = this.enableToolEvent();
61890
61914
  if (!this.eventAvailable) {
61891
61915
  return;
61892
61916
  }
61917
+ this.lastDragTime = 0;
61918
+ if (this.dragRafId) {
61919
+ cancelAnimationFrame(this.dragRafId);
61920
+ this.dragRafId = 0;
61921
+ }
61922
+ this.pendingDragEvent = null;
61893
61923
  this.shadowEmitter.setActive(true);
61894
61924
  this.onMouseDown(event);
61895
61925
  });
61926
+ _defineProperty7(this, "flushPendingDrag", () => {
61927
+ this.dragRafId = 0;
61928
+ if (this.pendingDragEvent) {
61929
+ this.lastDragTime = performance.now();
61930
+ const event = this.pendingDragEvent;
61931
+ this.pendingDragEvent = null;
61932
+ this.onMouseDrag(event);
61933
+ }
61934
+ });
61896
61935
  _defineProperty7(this, "onMouseDragSelf", (event) => {
61897
61936
  if (!this.eventAvailable) {
61898
61937
  return;
61899
61938
  }
61900
- this.onMouseDrag(event);
61939
+ const now = performance.now();
61940
+ if (now - this.lastDragTime >= DRAG_FRAME_MS) {
61941
+ this.lastDragTime = now;
61942
+ this.pendingDragEvent = null;
61943
+ this.onMouseDrag(event);
61944
+ } else {
61945
+ this.pendingDragEvent = event;
61946
+ if (!this.dragRafId) {
61947
+ this.dragRafId = requestAnimationFrame(this.flushPendingDrag);
61948
+ }
61949
+ }
61901
61950
  });
61902
61951
  _defineProperty7(this, "onMouseUpSelf", (event) => {
61903
61952
  if (!this.eventAvailable) {
61904
61953
  return;
61905
61954
  }
61955
+ if (this.dragRafId) {
61956
+ cancelAnimationFrame(this.dragRafId);
61957
+ this.dragRafId = 0;
61958
+ }
61959
+ if (this.pendingDragEvent) {
61960
+ this.onMouseDrag(this.pendingDragEvent);
61961
+ this.pendingDragEvent = null;
61962
+ }
61906
61963
  this.onMouseUp(event);
61907
61964
  this.shadowEmitter.setActive(false);
61908
61965
  });
@@ -61916,7 +61973,7 @@ var WhiteboardTool = class {
61916
61973
  this.tool.onMouseUp = this.onMouseUpSelf;
61917
61974
  }
61918
61975
  };
61919
- var import_lodash3 = __toESM2(require_lodash(), 1);
61976
+ var import_lodash2 = __toESM2(require_lodash(), 1);
61920
61977
  function _defineProperty8(e, r, t) {
61921
61978
  return (r = _toPropertyKey8(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
61922
61979
  }
@@ -61965,7 +62022,7 @@ var LineTool = class extends WhiteboardTool {
61965
62022
  const point = path.getPointAt(distance);
61966
62023
  return [point.x, point.y];
61967
62024
  });
61968
- this.elementModel.setPoints((0, import_lodash3.flattenDeep)(points));
62025
+ this.elementModel.setPoints((0, import_lodash2.flattenDeep)(points));
61969
62026
  }
61970
62027
  }
61971
62028
  onMouseUp(_event) {
@@ -62046,7 +62103,7 @@ var LineModel = class extends ElementModel {
62046
62103
  }
62047
62104
  renderLine() {
62048
62105
  const matrix = new this.scope.Matrix(this.pointsMatrix);
62049
- const papperPoints = (0, import_lodash4.chunk)(this.drawPoints, 2).map((item) => {
62106
+ const papperPoints = (0, import_lodash3.chunk)(this.drawPoints, 2).map((item) => {
62050
62107
  return new this.scope.Point(item[0], item[1]).transform(matrix);
62051
62108
  });
62052
62109
  const path = new this.scope.Path();
@@ -62182,7 +62239,7 @@ var LineControlPoint = class {
62182
62239
  const invertedPoint = point.transform(pointsMatrix.inverted());
62183
62240
  const points = this.model["drawPoints"];
62184
62241
  this.position = invertedPoint;
62185
- const clonedPoints = (0, import_lodash4.cloneDeep)(points);
62242
+ const clonedPoints = (0, import_lodash3.cloneDeep)(points);
62186
62243
  clonedPoints[this.options.index * 2] = invertedPoint.x;
62187
62244
  clonedPoints[this.options.index * 2 + 1] = invertedPoint.y;
62188
62245
  this.model.setPoints(clonedPoints);
@@ -62268,7 +62325,7 @@ var PointTextModel = class extends ElementModel {
62268
62325
  }, 60);
62269
62326
  }
62270
62327
  subDispose() {
62271
- (0, import_forge_room4.removeObserver)(this.root, this.handleTextPropChange);
62328
+ (0, import_forge_room5.removeObserver)(this.root, this.handleTextPropChange);
62272
62329
  }
62273
62330
  liveCursorPoint() {
62274
62331
  const points = this.points;
@@ -62648,7 +62705,7 @@ var RectangleModel = class extends ElementModel {
62648
62705
  }
62649
62706
  };
62650
62707
  var elementsUndoOrigin = "elementsUndoOrigin";
62651
- var import_lodash5 = __toESM2(require_lodash(), 1);
62708
+ var import_lodash4 = __toESM2(require_lodash(), 1);
62652
62709
  function _defineProperty13(e, r, t) {
62653
62710
  return (r = _toPropertyKey13(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
62654
62711
  }
@@ -62716,7 +62773,7 @@ var EraserModel = class extends ElementModel {
62716
62773
  return path;
62717
62774
  }
62718
62775
  parsePoints(points) {
62719
- const groupPoints = (0, import_lodash5.chunk)(points, 2);
62776
+ const groupPoints = (0, import_lodash4.chunk)(points, 2);
62720
62777
  return ae(groupPoints, {
62721
62778
  size: this.strokeWidth,
62722
62779
  smoothing: 0.5,
@@ -62734,7 +62791,7 @@ var EraserModel = class extends ElementModel {
62734
62791
  });
62735
62792
  }
62736
62793
  matrixedPoints() {
62737
- const currentPoints = (0, import_lodash5.chunk)(this.drawPoints, 2).slice(this.sliceBegin);
62794
+ const currentPoints = (0, import_lodash4.chunk)(this.drawPoints, 2).slice(this.sliceBegin);
62738
62795
  return currentPoints.map((_ref) => {
62739
62796
  let [x, y] = _ref;
62740
62797
  return new this.scope.Point(x, y);
@@ -62797,7 +62854,7 @@ var EraserModel = class extends ElementModel {
62797
62854
  return point.transform(new this.scope.Matrix(this.pointsMatrix));
62798
62855
  }
62799
62856
  };
62800
- var import_lodash6 = __toESM2(require_lodash(), 1);
62857
+ var import_lodash5 = __toESM2(require_lodash(), 1);
62801
62858
  function _defineProperty14(e, r, t) {
62802
62859
  return (r = _toPropertyKey14(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
62803
62860
  }
@@ -62914,7 +62971,7 @@ var LaserPointerModel = class extends ElementModel {
62914
62971
  const matrix = new this.scope.Matrix(this.pointsMatrix);
62915
62972
  const points = this.cachedPoints || this.points;
62916
62973
  console.log("[][][] ,", this.points.length, this.cachedPoints?.length, this.localPoints.length);
62917
- const groupPoints = (0, import_lodash6.chunk)(points, 2).slice(this.sliceBegin);
62974
+ const groupPoints = (0, import_lodash5.chunk)(points, 2).slice(this.sliceBegin);
62918
62975
  return groupPoints.map((_ref) => {
62919
62976
  let [x, y] = _ref;
62920
62977
  return matrix.transform([x, y]);
@@ -62980,7 +63037,7 @@ var WhiteboardPermissionFlag = function(WhiteboardPermissionFlag2) {
62980
63037
  WhiteboardPermissionFlag2[WhiteboardPermissionFlag2["all"] = WhiteboardPermissionFlag2.draw | WhiteboardPermissionFlag2.editSelf | WhiteboardPermissionFlag2.editOthers | WhiteboardPermissionFlag2.deleteSelf | WhiteboardPermissionFlag2.deleteOthers | WhiteboardPermissionFlag2.mainView | WhiteboardPermissionFlag2.setOthersView] = "all";
62981
63038
  return WhiteboardPermissionFlag2;
62982
63039
  }({});
62983
- var WhiteboardPermissions = class extends import_forge_room5.AbstractApplicationPermissions {
63040
+ var WhiteboardPermissions = class extends import_forge_room6.AbstractApplicationPermissions {
62984
63041
  /**
62985
63042
  * 解析权限列表组合
62986
63043
  * @param {number} value - 权限数字值
@@ -62990,7 +63047,7 @@ var WhiteboardPermissions = class extends import_forge_room5.AbstractApplication
62990
63047
  return [WhiteboardPermissionFlag.draw, WhiteboardPermissionFlag.editSelf, WhiteboardPermissionFlag.editOthers, WhiteboardPermissionFlag.deleteSelf, WhiteboardPermissionFlag.deleteOthers, WhiteboardPermissionFlag.mainView, WhiteboardPermissionFlag.setOthersView].filter((v) => (v & value) !== 0);
62991
63048
  }
62992
63049
  };
62993
- var import_lodash7 = __toESM2(require_lodash(), 1);
63050
+ var import_lodash6 = __toESM2(require_lodash(), 1);
62994
63051
  function _defineProperty15(e, r, t) {
62995
63052
  return (r = _toPropertyKey15(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
62996
63053
  }
@@ -63049,7 +63106,7 @@ var StraightLineModel = class extends ElementModel {
63049
63106
  }
63050
63107
  renderLine() {
63051
63108
  const matrix = new this.scope.Matrix(this.pointsMatrix);
63052
- const papperPoints = (0, import_lodash7.chunk)(this.drawPoints, 2).map((item) => {
63109
+ const papperPoints = (0, import_lodash6.chunk)(this.drawPoints, 2).map((item) => {
63053
63110
  return new this.scope.Point(item[0], item[1]).transform(matrix);
63054
63111
  });
63055
63112
  const path = new this.scope.Path();
@@ -63663,7 +63720,7 @@ var RenderableModel = class extends import_eventemitter3.default {
63663
63720
  });
63664
63721
  }
63665
63722
  };
63666
- var import_lodash8 = __toESM2(require_lodash(), 1);
63723
+ var import_lodash7 = __toESM2(require_lodash(), 1);
63667
63724
  function Point(x, y) {
63668
63725
  this.X = x;
63669
63726
  this.Y = y;
@@ -63906,7 +63963,7 @@ var Recognizer = class {
63906
63963
  let maxX = -Number.MAX_VALUE;
63907
63964
  let minY = Number.MAX_VALUE;
63908
63965
  let maxY = -Number.MAX_VALUE;
63909
- const result = this.dollar.Recognize((0, import_lodash8.chunk)(points, 2).map((v) => {
63966
+ const result = this.dollar.Recognize((0, import_lodash7.chunk)(points, 3).map((v) => {
63910
63967
  minX = Math.min(minX, v[0]);
63911
63968
  maxX = Math.max(maxX, v[0]);
63912
63969
  minY = Math.min(minY, v[1]);
@@ -63948,11 +64005,24 @@ var CurveTool = class extends WhiteboardTool {
63948
64005
  _defineProperty19(this, "elementModel", null);
63949
64006
  _defineProperty19(this, "recognizer", new Recognizer());
63950
64007
  _defineProperty19(this, "pointCount", 0);
64008
+ _defineProperty19(this, "pendingPoints", []);
64009
+ _defineProperty19(this, "flushRafId", 0);
63951
64010
  _defineProperty19(this, "showLiveCursor", true);
63952
- this.tool.minDistance = 20;
64011
+ _defineProperty19(this, "flushPendingPoints", () => {
64012
+ this.flushRafId = 0;
64013
+ if (this.elementModel && this.pendingPoints.length > 0) {
64014
+ this.elementModel.appendPoints(this.pendingPoints);
64015
+ this.pendingPoints = [];
64016
+ }
64017
+ });
63953
64018
  }
63954
64019
  onMouseDown(_event) {
63955
64020
  this.pointCount = 0;
64021
+ this.pendingPoints = [];
64022
+ if (this.flushRafId) {
64023
+ cancelAnimationFrame(this.flushRafId);
64024
+ this.flushRafId = 0;
64025
+ }
63956
64026
  if (this.elementModel) {
63957
64027
  this.elementModel.dispose();
63958
64028
  }
@@ -63967,27 +64037,38 @@ var CurveTool = class extends WhiteboardTool {
63967
64037
  if (this.pointCount > 1024) {
63968
64038
  return;
63969
64039
  }
63970
- const MIN_DISTANCE = 4;
64040
+ const MIN_DISTANCE = 2;
63971
64041
  if (this.elementModel) {
63972
- const len = this.elementModel.points.length;
63973
- let last = {
63974
- x: 0,
63975
- y: 0
63976
- };
63977
- if (len >= 2) {
63978
- last = {
63979
- x: this.elementModel.points[len - 2],
63980
- y: this.elementModel.points[len - 1]
63981
- };
64042
+ let lastX = 0;
64043
+ let lastY = 0;
64044
+ if (this.pendingPoints.length >= 3) {
64045
+ lastX = this.pendingPoints[this.pendingPoints.length - 3];
64046
+ lastY = this.pendingPoints[this.pendingPoints.length - 2];
64047
+ } else {
64048
+ const len = this.elementModel.points.length;
64049
+ if (len >= 3) {
64050
+ lastX = this.elementModel.points[len - 3];
64051
+ lastY = this.elementModel.points[len - 2];
64052
+ }
63982
64053
  }
63983
- const dist = Math.max(Math.abs(last.x - event.point.x), Math.abs(last.y - event.point.y));
64054
+ const dist = Math.max(Math.abs(lastX - event.point.x), Math.abs(lastY - event.point.y));
63984
64055
  if (dist >= MIN_DISTANCE) {
63985
64056
  this.pointCount += 1;
63986
- this.elementModel.appendPoints([Math.round(event.point.x), Math.round(event.point.y)]);
64057
+ const nativeEvent = event.event;
64058
+ const pressure = nativeEvent.pointerType === "pen" && nativeEvent.pressure > 0 ? nativeEvent.pressure : 0;
64059
+ this.pendingPoints.push(event.point.x, event.point.y, pressure);
64060
+ if (!this.flushRafId) {
64061
+ this.flushRafId = requestAnimationFrame(this.flushPendingPoints);
64062
+ }
63987
64063
  }
63988
64064
  }
63989
64065
  }
63990
64066
  onMouseUp(event) {
64067
+ if (this.flushRafId) {
64068
+ cancelAnimationFrame(this.flushRafId);
64069
+ this.flushRafId = 0;
64070
+ }
64071
+ this.flushPendingPoints();
63991
64072
  this.modelGetter().then((model) => {
63992
64073
  if (!model) {
63993
64074
  return;
@@ -64179,7 +64260,7 @@ var ToolbarModel = class extends import_eventemitter32.default {
64179
64260
  });
64180
64261
  }
64181
64262
  dispose() {
64182
- (0, import_forge_room6.removeObserver)(this.root, this.handleRootUpdate);
64263
+ (0, import_forge_room7.removeObserver)(this.root, this.handleRootUpdate);
64183
64264
  this.removeAllListeners();
64184
64265
  }
64185
64266
  };
@@ -64317,7 +64398,7 @@ var SelectElementsModel = class extends import_eventemitter33.default {
64317
64398
  }
64318
64399
  const cb = this.observers.get(user.id);
64319
64400
  if (cb) {
64320
- (0, import_forge_room7.removeDeepObserver)(this.requestUserMap(user.id), cb);
64401
+ (0, import_forge_room8.removeDeepObserver)(this.requestUserMap(user.id), cb);
64321
64402
  this.observers.delete(user.id);
64322
64403
  }
64323
64404
  });
@@ -64326,7 +64407,7 @@ var SelectElementsModel = class extends import_eventemitter33.default {
64326
64407
  this.handleUserSelectElementsChange(user.id, evts);
64327
64408
  };
64328
64409
  if (this.observers.has(user.id)) {
64329
- (0, import_forge_room7.removeDeepObserver)(this.requestUserMap(user.id), this.observers.get(user.id));
64410
+ (0, import_forge_room8.removeDeepObserver)(this.requestUserMap(user.id), this.observers.get(user.id));
64330
64411
  this.observers.delete(user.id);
64331
64412
  }
64332
64413
  this.requestUserMap(user.id).observeDeep(observer);
@@ -64349,7 +64430,7 @@ var SelectElementsModel = class extends import_eventemitter33.default {
64349
64430
  this.handleUserSelectElementsChange(userId, evts);
64350
64431
  };
64351
64432
  if (this.observers.has(userId)) {
64352
- (0, import_forge_room7.removeDeepObserver)(this.requestUserMap(userId), this.observers.get(userId));
64433
+ (0, import_forge_room8.removeDeepObserver)(this.requestUserMap(userId), this.observers.get(userId));
64353
64434
  }
64354
64435
  this.requestUserMap(userId).observeDeep(observer);
64355
64436
  this.observers.set(userId, observer);
@@ -64413,7 +64494,7 @@ var SelectElementsModel = class extends import_eventemitter33.default {
64413
64494
  }
64414
64495
  dispose() {
64415
64496
  for (const [key, value] of this.observers.entries()) {
64416
- (0, import_forge_room7.removeDeepObserver)(this.requestUserMap(key), value);
64497
+ (0, import_forge_room8.removeDeepObserver)(this.requestUserMap(key), value);
64417
64498
  }
64418
64499
  this.observers.clear();
64419
64500
  this.userManager.off("leave", this.handleUserLeave);
@@ -65386,14 +65467,14 @@ var Camera = class extends import_eventemitter36.default {
65386
65467
  }
65387
65468
  const cb = this.observers.get(user.id);
65388
65469
  if (cb) {
65389
- (0, import_forge_room8.removeObserver)(this.requestUserMap(user.id), cb);
65470
+ (0, import_forge_room9.removeObserver)(this.requestUserMap(user.id), cb);
65390
65471
  }
65391
65472
  });
65392
65473
  _defineProperty28(this, "handleUserJoin", (user) => {
65393
65474
  if (this.observers.has(user.id)) {
65394
65475
  const cb = this.observers.get(user.id);
65395
65476
  if (cb) {
65396
- (0, import_forge_room8.removeObserver)(this.requestUserMap(user.id), cb);
65477
+ (0, import_forge_room9.removeObserver)(this.requestUserMap(user.id), cb);
65397
65478
  this.observers.delete(user.id);
65398
65479
  }
65399
65480
  }
@@ -65505,7 +65586,7 @@ var Camera = class extends import_eventemitter36.default {
65505
65586
  this.handleViewMatrixUpdate(userId, evt);
65506
65587
  };
65507
65588
  if (this.observers.has(userId)) {
65508
- (0, import_forge_room8.removeObserver)(this.requestUserMap(userId), observer);
65589
+ (0, import_forge_room9.removeObserver)(this.requestUserMap(userId), observer);
65509
65590
  }
65510
65591
  this.requestUserMap(userId).observe(observer);
65511
65592
  this.observers.set(userId, observer);
@@ -65702,10 +65783,10 @@ var Camera = class extends import_eventemitter36.default {
65702
65783
  Array.from(this.observers.keys()).forEach((userId) => {
65703
65784
  const cb = this.observers.get(userId);
65704
65785
  if (cb) {
65705
- (0, import_forge_room8.removeObserver)(this.requestUserMap(userId), cb);
65786
+ (0, import_forge_room9.removeObserver)(this.requestUserMap(userId), cb);
65706
65787
  }
65707
65788
  });
65708
- (0, import_forge_room8.removeObserver)(this.whiteboardAttrsMap, this.handleMainCameraChange);
65789
+ (0, import_forge_room9.removeObserver)(this.whiteboardAttrsMap, this.handleMainCameraChange);
65709
65790
  this.userManager.off("join", this.handleUserJoin);
65710
65791
  this.userManager.off("leave", this.handleUserLeave);
65711
65792
  this.gesture.removeAllListeners();
@@ -66021,14 +66102,14 @@ var TrashedElementsModel = class extends import_eventemitter39.default {
66021
66102
  }
66022
66103
  const cb = this.observers.get(user.id);
66023
66104
  if (cb) {
66024
- (0, import_forge_room9.removeDeepObserver)(this.requestUserMap(user.id), cb);
66105
+ (0, import_forge_room10.removeDeepObserver)(this.requestUserMap(user.id), cb);
66025
66106
  }
66026
66107
  });
66027
66108
  _defineProperty33(this, "handleUserJoin", (user) => {
66028
66109
  if (this.observers.has(user.id)) {
66029
66110
  const cb = this.observers.get(user.id);
66030
66111
  if (cb) {
66031
- (0, import_forge_room9.removeDeepObserver)(this.requestUserMap(user.id), cb);
66112
+ (0, import_forge_room10.removeDeepObserver)(this.requestUserMap(user.id), cb);
66032
66113
  this.observers.delete(user.id);
66033
66114
  }
66034
66115
  }
@@ -66036,7 +66117,7 @@ var TrashedElementsModel = class extends import_eventemitter39.default {
66036
66117
  this.handleUserTrashElementsChange(user.id, evts);
66037
66118
  };
66038
66119
  if (this.observers.has(user.id)) {
66039
- (0, import_forge_room9.removeDeepObserver)(this.requestUserMap(user.id), this.observers.get(user.id));
66120
+ (0, import_forge_room10.removeDeepObserver)(this.requestUserMap(user.id), this.observers.get(user.id));
66040
66121
  }
66041
66122
  this.requestUserMap(user.id).observeDeep(observer);
66042
66123
  this.observers.set(user.id, observer);
@@ -66050,7 +66131,7 @@ var TrashedElementsModel = class extends import_eventemitter39.default {
66050
66131
  this.handleUserTrashElementsChange(userId, evts);
66051
66132
  };
66052
66133
  if (this.observers.has(userId)) {
66053
- (0, import_forge_room9.removeDeepObserver)(this.requestUserMap(userId), userId);
66134
+ (0, import_forge_room10.removeDeepObserver)(this.requestUserMap(userId), userId);
66054
66135
  }
66055
66136
  this.requestUserMap(userId).observeDeep(observer);
66056
66137
  this.observers.set(userId, observer);
@@ -66112,7 +66193,7 @@ var TrashedElementsModel = class extends import_eventemitter39.default {
66112
66193
  }
66113
66194
  dispose() {
66114
66195
  for (const [key, value] of this.observers.entries()) {
66115
- (0, import_forge_room9.removeDeepObserver)(this.requestUserMap(key), value);
66196
+ (0, import_forge_room10.removeDeepObserver)(this.requestUserMap(key), value);
66116
66197
  }
66117
66198
  this.observers.clear();
66118
66199
  this.userManager.off("leave", this.handleUserLeave);
@@ -66218,7 +66299,7 @@ var PageModel = class extends import_eventemitter310.default {
66218
66299
  }
66219
66300
  const cb = this.observers.get(user.id);
66220
66301
  if (cb) {
66221
- (0, import_forge_room10.removeObserver)(this.requestUserMap(user.id), cb);
66302
+ (0, import_forge_room11.removeObserver)(this.requestUserMap(user.id), cb);
66222
66303
  }
66223
66304
  });
66224
66305
  _defineProperty35(this, "handleUserJoin", (user) => {
@@ -66232,7 +66313,7 @@ var PageModel = class extends import_eventemitter310.default {
66232
66313
  if (cameraMode === "main") {
66233
66314
  const targetPage = this.whiteboardAttrsMap.get(WhiteboardKeys.currentPage);
66234
66315
  if (!this.pageMap.has(targetPage) && targetPage !== "_i_") {
66235
- (0, import_forge_room10.log)(`main page {${targetPage}} not found.`, {}, "error");
66316
+ (0, import_forge_room11.log)(`main page {${targetPage}} not found.`, {}, "error");
66236
66317
  return;
66237
66318
  }
66238
66319
  this.requestUserMap(this.userManager.selfId).set(WhiteboardKeys.currentPage, targetPage);
@@ -66279,7 +66360,7 @@ var PageModel = class extends import_eventemitter310.default {
66279
66360
  if (this.observers.has(userId)) {
66280
66361
  const cb = this.observers.get(userId);
66281
66362
  if (cb) {
66282
- (0, import_forge_room10.removeObserver)(this.requestUserMap(userId), cb);
66363
+ (0, import_forge_room11.removeObserver)(this.requestUserMap(userId), cb);
66283
66364
  this.observers.delete(userId);
66284
66365
  }
66285
66366
  }
@@ -66368,12 +66449,12 @@ var PageModel = class extends import_eventemitter310.default {
66368
66449
  dispose() {
66369
66450
  for (const entry of this.observers.entries()) {
66370
66451
  const [userId, observer] = entry;
66371
- (0, import_forge_room10.removeObserver)(this.requestUserMap(userId), observer);
66452
+ (0, import_forge_room11.removeObserver)(this.requestUserMap(userId), observer);
66372
66453
  }
66373
66454
  this.userManager.off("join", this.handleUserJoin);
66374
66455
  this.userManager.off("leave", this.handleUserLeave);
66375
- (0, import_forge_room10.removeObserver)(this.whiteboardAttrsMap, this.handleMainPageChange);
66376
- (0, import_forge_room10.removeObserver)(this.pageMap, this.handlePageMapChange);
66456
+ (0, import_forge_room11.removeObserver)(this.whiteboardAttrsMap, this.handleMainPageChange);
66457
+ (0, import_forge_room11.removeObserver)(this.pageMap, this.handlePageMapChange);
66377
66458
  }
66378
66459
  };
66379
66460
  var delay = (value) => new Promise((resolve) => setTimeout(resolve, value));
@@ -66409,7 +66490,7 @@ var IndexedNavigation = class extends import_eventemitter311.default {
66409
66490
  return this.list[key] && this.list[key].prev === "";
66410
66491
  });
66411
66492
  if (!headId) {
66412
- (0, import_forge_room11.log)("indexed navigation confusion", {
66493
+ (0, import_forge_room12.log)("indexed navigation confusion", {
66413
66494
  list: JSON.stringify(this.list)
66414
66495
  }, "error");
66415
66496
  throw new Error("indexed navigation confusion");
@@ -66725,7 +66806,7 @@ var IndexedNavigation = class extends import_eventemitter311.default {
66725
66806
  }
66726
66807
  }
66727
66808
  dispose() {
66728
- (0, import_forge_room12.removeObserver)(this.indexedPageMap, this.handleIndexedPageMapUpdate);
66809
+ (0, import_forge_room13.removeObserver)(this.indexedPageMap, this.handleIndexedPageMapUpdate);
66729
66810
  this.pageModel.off("switchPage");
66730
66811
  this.pageModel.off("pagesChange");
66731
66812
  }
@@ -67136,6 +67217,7 @@ var WhiteboardApplication = class _WhiteboardApplication extends import_forge_ro
67136
67217
  _defineProperty43(this, "permissions", void 0);
67137
67218
  _defineProperty43(this, "inputType", "any");
67138
67219
  _defineProperty43(this, "isPenEvent", false);
67220
+ _defineProperty43(this, "activePenPointerId", null);
67139
67221
  _defineProperty43(this, "hasPenInput", null);
67140
67222
  _defineProperty43(this, "disableViewModelUpdate", false);
67141
67223
  _defineProperty43(this, "internalResizeObserver", true);
@@ -67464,11 +67546,34 @@ var WhiteboardApplication = class _WhiteboardApplication extends import_forge_ro
67464
67546
  this.imageSets.setAttribute("data-image-sets", "");
67465
67547
  this.rootElement.appendChild(this.imageSets);
67466
67548
  document.body.addEventListener("pointerdown", (evt) => {
67467
- this.isPenEvent = evt.pointerType === "pen";
67468
- if (evt.pointerType === "pen" && this.hasPenInput === null) {
67469
- this.hasPenInput = true;
67470
- this.inputType = "pen";
67471
- this.emitter.emit("inputTypeChange", this.inputType);
67549
+ if (evt.pointerType === "pen") {
67550
+ this.isPenEvent = true;
67551
+ this.activePenPointerId = evt.pointerId;
67552
+ if (this.hasPenInput === null) {
67553
+ this.hasPenInput = true;
67554
+ this.inputType = "pen";
67555
+ this.emitter.emit("inputTypeChange", this.inputType);
67556
+ }
67557
+ } else {
67558
+ if (this.activePenPointerId === null) {
67559
+ this.isPenEvent = false;
67560
+ }
67561
+ }
67562
+ }, {
67563
+ capture: true
67564
+ });
67565
+ document.body.addEventListener("pointerup", (evt) => {
67566
+ if (evt.pointerId === this.activePenPointerId) {
67567
+ this.activePenPointerId = null;
67568
+ this.isPenEvent = false;
67569
+ }
67570
+ }, {
67571
+ capture: true
67572
+ });
67573
+ document.body.addEventListener("pointercancel", (evt) => {
67574
+ if (evt.pointerId === this.activePenPointerId) {
67575
+ this.activePenPointerId = null;
67576
+ this.isPenEvent = false;
67472
67577
  }
67473
67578
  }, {
67474
67579
  capture: true
@@ -68206,7 +68311,7 @@ var WhiteboardApplication = class _WhiteboardApplication extends import_forge_ro
68206
68311
  this.toolbarModel.dispose();
68207
68312
  this.emitter.indexedNavigation.dispose();
68208
68313
  this.permissions.dispose();
68209
- (0, import_forge_room13.removeObserver)(this.userMap(this.userId), this.handleSyncedWhiteboardStatusChange);
68314
+ (0, import_forge_room14.removeObserver)(this.userMap(this.userId), this.handleSyncedWhiteboardStatusChange);
68210
68315
  (0, import_forge_room.log)(`whiteboard ${this.appId} disposed. instance count: ${_WhiteboardApplication.instanceCount.get(this.appId) ?? 0}`, {}, "info");
68211
68316
  }
68212
68317
  };
@@ -68215,7 +68320,7 @@ _defineProperty43(WhiteboardApplication, "applicationName", WHITEBOARD_APP_NAME)
68215
68320
 
68216
68321
  // src/SlideApplication.ts
68217
68322
  var import_slide = __toESM(require_Slide());
68218
- var import_forge_room16 = require("@netless/forge-room");
68323
+ var import_forge_room17 = require("@netless/forge-room");
68219
68324
 
68220
68325
  // src/Slide.ts
68221
68326
  var import_eventemitter313 = __toESM(require("eventemitter3"));
@@ -68286,7 +68391,7 @@ var SlideForge = class extends import_eventemitter313.default {
68286
68391
  };
68287
68392
 
68288
68393
  // src/ForgeSlidePermession.ts
68289
- var import_forge_room14 = require("@netless/forge-room");
68394
+ var import_forge_room15 = require("@netless/forge-room");
68290
68395
  var ForgeSlidePermissionFlag = /* @__PURE__ */ ((ForgeSlidePermissionFlag2) => {
68291
68396
  ForgeSlidePermissionFlag2[ForgeSlidePermissionFlag2["none"] = 0] = "none";
68292
68397
  ForgeSlidePermissionFlag2[ForgeSlidePermissionFlag2["changeStep"] = 1] = "changeStep";
@@ -68295,7 +68400,7 @@ var ForgeSlidePermissionFlag = /* @__PURE__ */ ((ForgeSlidePermissionFlag2) => {
68295
68400
  ForgeSlidePermissionFlag2[ForgeSlidePermissionFlag2["all"] = 7] = "all";
68296
68401
  return ForgeSlidePermissionFlag2;
68297
68402
  })(ForgeSlidePermissionFlag || {});
68298
- var ForgeSlidePermissions = class extends import_forge_room14.AbstractApplicationPermissions {
68403
+ var ForgeSlidePermissions = class extends import_forge_room15.AbstractApplicationPermissions {
68299
68404
  /**
68300
68405
  * 解析权限列表组合
68301
68406
  * @param {number} value - 权限数字值
@@ -68472,7 +68577,7 @@ var FooterView = class extends import_eventemitter314.default {
68472
68577
 
68473
68578
  // src/SiderBarView.ts
68474
68579
  var import_eventemitter315 = __toESM(require("eventemitter3"));
68475
- var import_forge_room15 = require("@netless/forge-room");
68580
+ var import_forge_room16 = require("@netless/forge-room");
68476
68581
  var SideBarView = class extends import_eventemitter315.default {
68477
68582
  root = document.createElement("div");
68478
68583
  isShow = false;
@@ -68557,13 +68662,13 @@ var SideBarView = class extends import_eventemitter315.default {
68557
68662
  pageIndexContainer.style.color = "#5f5f5f";
68558
68663
  const previewUrl = `${this.prefix}/${this.taskId}/preview/${pageIndex}.png`;
68559
68664
  const preview = document.createElement("img");
68560
- const cachePreview = await import_forge_room15.kvStore.getItem(previewUrl);
68665
+ const cachePreview = await import_forge_room16.kvStore.getItem(previewUrl);
68561
68666
  if (cachePreview) {
68562
68667
  const { src } = JSON.parse(cachePreview);
68563
68668
  preview.src = src;
68564
68669
  } else {
68565
68670
  const previewInfo = await this.getPreviewImage(previewUrl);
68566
- await import_forge_room15.kvStore.setItem(previewUrl, JSON.stringify(previewInfo));
68671
+ await import_forge_room16.kvStore.setItem(previewUrl, JSON.stringify(previewInfo));
68567
68672
  const { src } = previewInfo;
68568
68673
  preview.src = src;
68569
68674
  }
@@ -68768,7 +68873,7 @@ var slidePool = new SlidePool();
68768
68873
 
68769
68874
  // src/SlideApplication.ts
68770
68875
  var Slide_APP_NAME = "forge_slide";
68771
- var SlideApplication = class _SlideApplication extends import_forge_room16.AbstractApplication {
68876
+ var SlideApplication = class _SlideApplication extends import_forge_room17.AbstractApplication {
68772
68877
  static applicationName = Slide_APP_NAME;
68773
68878
  static slidePool = new SlidePool();
68774
68879
  name = Slide_APP_NAME;
@@ -68987,7 +69092,7 @@ var SlideApplication = class _SlideApplication extends import_forge_room16.Abstr
68987
69092
  const imageUrl = this.getPreviewImageUrl(pageIndex);
68988
69093
  let preview = null;
68989
69094
  try {
68990
- const result = await import_forge_room16.kvStore.getItem(imageUrl);
69095
+ const result = await import_forge_room17.kvStore.getItem(imageUrl);
68991
69096
  preview = result ? JSON.parse(result) : null;
68992
69097
  } catch (e) {
68993
69098
  console.warn("kvStore getItem error", e);
@@ -68996,14 +69101,14 @@ var SlideApplication = class _SlideApplication extends import_forge_room16.Abstr
68996
69101
  return { width: preview.width, height: preview.height };
68997
69102
  }
68998
69103
  preview = await this.sideBar.getPreviewImage(imageUrl);
68999
- await import_forge_room16.kvStore.setItem(imageUrl, JSON.stringify(preview));
69104
+ await import_forge_room17.kvStore.setItem(imageUrl, JSON.stringify(preview));
69000
69105
  return { width: preview.width, height: preview.height };
69001
69106
  }
69002
69107
  async getImageContent(pageIndex) {
69003
69108
  const imageUrl = this.getPreviewImageUrl(pageIndex);
69004
69109
  let preview = null;
69005
69110
  try {
69006
- const result = await import_forge_room16.kvStore.getItem(imageUrl);
69111
+ const result = await import_forge_room17.kvStore.getItem(imageUrl);
69007
69112
  preview = result ? JSON.parse(result) : null;
69008
69113
  } catch (e) {
69009
69114
  console.warn("kvStore getItem error", e);
@@ -69012,7 +69117,7 @@ var SlideApplication = class _SlideApplication extends import_forge_room16.Abstr
69012
69117
  return preview.src;
69013
69118
  }
69014
69119
  preview = await this.sideBar.getPreviewImage(imageUrl);
69015
- await import_forge_room16.kvStore.setItem(imageUrl, JSON.stringify(preview));
69120
+ await import_forge_room17.kvStore.setItem(imageUrl, JSON.stringify(preview));
69016
69121
  return preview.src;
69017
69122
  }
69018
69123
  applySlideState = async () => {