@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.esm.js +180 -75
- package/dist/slide.esm.js.map +2 -2
- package/dist/slide.js +226 -121
- package/dist/slide.js.map +2 -2
- package/package.json +3 -3
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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",
|
|
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.
|
|
61515
|
-
thinning:
|
|
61516
|
-
streamline
|
|
61517
|
-
simulatePressure:
|
|
61516
|
+
smoothing: 0.7,
|
|
61517
|
+
thinning: 0.5,
|
|
61518
|
+
streamline,
|
|
61519
|
+
simulatePressure: !hasRealPressure,
|
|
61518
61520
|
start: {
|
|
61519
|
-
taper
|
|
61521
|
+
taper,
|
|
61520
61522
|
cap: true
|
|
61521
61523
|
},
|
|
61522
61524
|
end: {
|
|
61523
|
-
taper
|
|
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 +=
|
|
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
|
-
|
|
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.
|
|
61584
|
-
|
|
61585
|
-
|
|
61586
|
-
|
|
61587
|
-
|
|
61588
|
-
|
|
61589
|
-
|
|
61590
|
-
|
|
61591
|
-
|
|
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 <
|
|
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 -
|
|
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
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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 =
|
|
64040
|
+
const MIN_DISTANCE = 2;
|
|
63971
64041
|
if (this.elementModel) {
|
|
63972
|
-
|
|
63973
|
-
let
|
|
63974
|
-
|
|
63975
|
-
|
|
63976
|
-
|
|
63977
|
-
|
|
63978
|
-
|
|
63979
|
-
|
|
63980
|
-
|
|
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(
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
65786
|
+
(0, import_forge_room9.removeObserver)(this.requestUserMap(userId), cb);
|
|
65706
65787
|
}
|
|
65707
65788
|
});
|
|
65708
|
-
(0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
66376
|
-
(0,
|
|
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,
|
|
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,
|
|
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
|
-
|
|
67468
|
-
|
|
67469
|
-
this.
|
|
67470
|
-
this.
|
|
67471
|
-
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
69120
|
+
await import_forge_room17.kvStore.setItem(imageUrl, JSON.stringify(preview));
|
|
69016
69121
|
return preview.src;
|
|
69017
69122
|
}
|
|
69018
69123
|
applySlideState = async () => {
|