@netless/forge-slide 0.1.1-alpha.1 → 0.1.1-alpha.10
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/build.mjs +21 -21
- package/dist/{FoorerView.d.ts → FooterView.d.ts} +5 -2
- package/dist/FooterView.d.ts.map +1 -0
- package/dist/ForgeSlidePermession.d.ts +7 -46
- package/dist/ForgeSlidePermession.d.ts.map +1 -1
- package/dist/SiderBarView.d.ts +7 -6
- package/dist/SiderBarView.d.ts.map +1 -1
- package/dist/Slide.d.ts +30 -29
- package/dist/Slide.d.ts.map +1 -1
- package/dist/SlideApplication.d.ts +14 -3
- package/dist/SlideApplication.d.ts.map +1 -1
- package/dist/SlidePool.d.ts +22 -0
- package/dist/SlidePool.d.ts.map +1 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.esm.js +1001 -808
- package/dist/index.esm.js.map +4 -4
- package/dist/index.js +1004 -811
- package/dist/index.js.map +4 -4
- package/package.json +7 -7
- package/src/FooterView.ts +132 -0
- package/src/ForgeSlidePermession.ts +13 -120
- package/src/SiderBarView.ts +93 -71
- package/src/Slide.ts +29 -28
- package/src/SlideApplication.ts +534 -419
- package/src/SlidePool.ts +110 -0
- package/src/icons.ts +5 -5
- package/src/index.ts +4 -4
- package/src/utils.ts +42 -42
- package/dist/FoorerView.d.ts.map +0 -1
- package/src/FoorerView.ts +0 -109
package/dist/index.esm.js
CHANGED
|
@@ -30,9 +30,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
30
30
|
mod
|
|
31
31
|
));
|
|
32
32
|
|
|
33
|
-
// ../../node_modules/.pnpm/@netless+slide@1.4.
|
|
33
|
+
// ../../node_modules/.pnpm/@netless+slide@1.4.21/node_modules/@netless/slide/lib/Slide.js
|
|
34
34
|
var require_Slide = __commonJS({
|
|
35
|
-
"../../node_modules/.pnpm/@netless+slide@1.4.
|
|
35
|
+
"../../node_modules/.pnpm/@netless+slide@1.4.21/node_modules/@netless/slide/lib/Slide.js"(exports, module) {
|
|
36
36
|
module.exports = function(t) {
|
|
37
37
|
var e = {};
|
|
38
38
|
function i(n) {
|
|
@@ -5703,7 +5703,7 @@ var require_Slide = __commonJS({
|
|
|
5703
5703
|
}
|
|
5704
5704
|
return void 0 === d && (d = setTimeout(b2, e2)), c;
|
|
5705
5705
|
}
|
|
5706
|
-
return e2 = o(e2) || 0, n(i2) && (m = !!i2.leading, u = (g = "maxWait" in i2) ? s(o(i2.maxWait) || 0, e2) : u, v = "trailing" in i2 ? !!i2.trailing : v), E.cancel = function() {
|
|
5706
|
+
return e2 = o(e2) || 0, n(i2) && (m = !!i2.leading, u = (g = "maxWait" in i2) ? s(o(i2.maxWait) || 0, e2) : u, v = "trailing" in i2 ? !!i2.trailing : v), console.log("max wait", u), E.cancel = function() {
|
|
5707
5707
|
void 0 !== d && clearTimeout(d), f = 0, l2 = p = h = d = void 0;
|
|
5708
5708
|
}, E.flush = function() {
|
|
5709
5709
|
return void 0 === d ? c : T(r());
|
|
@@ -29372,6 +29372,7 @@ void main(void){
|
|
|
29372
29372
|
const r3 = e2[t3], o3 = e2[t3 + 1], [s3, a3] = o3.split(",").map((t4) => Number(t4) / 100);
|
|
29373
29373
|
i2.push(r3), n2.push({ x: s3, y: a3 });
|
|
29374
29374
|
}
|
|
29375
|
+
if (n2.length < 4) return false;
|
|
29375
29376
|
if (this.isSquare(i2, n2)) return true;
|
|
29376
29377
|
for (let t3 = 0; t3 < 3; t3++) {
|
|
29377
29378
|
const e3 = n2[t3], i3 = n2[t3 + 1];
|
|
@@ -29786,7 +29787,9 @@ void main(void){
|
|
|
29786
29787
|
}
|
|
29787
29788
|
this.delayHide();
|
|
29788
29789
|
}
|
|
29789
|
-
}, this.targetId = t2.targetId, this.ctx = t2.ctx, this.height = t2.height, this.width = t2.width, this.target = t2.target, this.media = t2.media, this.info = t2.info, this.shapeId = t2.shapeId, this.canvasElement = t2.canvasElement, "video" === this.media.type && (this.isVideo = true), this.getMedianContainer(), this.createMediaController(), this.info.cut && (this.start = null !== (e2 = this.info.cut.start) && void 0 !== e2 ? e2 : 0, this.end = null !== (i2 = this.info.cut.end) && void 0 !== i2 ? i2 : 0), this.info.bookmarkList && (this.bookmarkList = this.info.bookmarkList.sort((t3, e3) => t3.time - e3.time))
|
|
29790
|
+
}, this.targetId = t2.targetId, this.ctx = t2.ctx, this.height = t2.height, this.width = t2.width, this.target = t2.target, this.media = t2.media, this.info = t2.info, this.shapeId = t2.shapeId, this.canvasElement = t2.canvasElement, "video" === this.media.type && (this.isVideo = true), this.getMedianContainer(), this.createMediaController(), this.info.cut && (this.start = null !== (e2 = this.info.cut.start) && void 0 !== e2 ? e2 : 0, this.end = null !== (i2 = this.info.cut.end) && void 0 !== i2 ? i2 : 0), this.info.bookmarkList && (this.bookmarkList = this.info.bookmarkList.sort((t3, e3) => t3.time - e3.time)), this.ctx.globalEventHub.on("togglePlayStatus", (t3) => {
|
|
29791
|
+
t3 === this.targetId && (this.media.isPlaying ? this.pauseMediaFromCtrl(false) : this.playMediaFromCtrl(false));
|
|
29792
|
+
});
|
|
29790
29793
|
}
|
|
29791
29794
|
getMedianContainer() {
|
|
29792
29795
|
var t2;
|
|
@@ -30307,9 +30310,10 @@ void main(void){
|
|
|
30307
30310
|
const a3 = null === (t2 = this.backgroundGraphics) || void 0 === t2 ? void 0 : t2.getPictureMask();
|
|
30308
30311
|
if ((null === (e2 = this.backgroundGraphics) || void 0 === e2 ? void 0 : e2.isNeedMask(s2.width, s2.height)) && a3 && (s2.mask = a3, this.effectContainer.addChild(a3)), s2.width = this.designWidth, s2.height = this.designHeight, s2 instanceof im && this.ctx.slideScopeEventHub.on("slide-render", this.onSlideRenderPlayGif), this.effectContainer.addChild(s2), this.media) {
|
|
30309
30312
|
let t3 = this.media.src;
|
|
30310
|
-
|
|
30311
|
-
|
|
30312
|
-
|
|
30313
|
+
const [e3, i3] = t3.split("dynamicConvert");
|
|
30314
|
+
if (i3 && (t3 = `${this.ctx.prefix}${i3}`), "audio" === this.media.type && /mp4$/.test(t3) && (t3 = t3.replace(/mp4$/, "mp3")), this.ctx.urlInterrupter) {
|
|
30315
|
+
const e4 = Date.now();
|
|
30316
|
+
t3 = yield this.ctx.urlInterrupter(t3), this.ctx.logger.info("redirect media url by interrupter. time: " + (Date.now() - e4), this.ctx.taskId);
|
|
30313
30317
|
}
|
|
30314
30318
|
this.ctx.loaderDelegate && (t3 = this.ctx.loaderDelegate.redirectMedia(t3), this.ctx.logger.info(`redirect media url to ${t3} by delegate.`, this.ctx.taskId)), this.media.src = t3;
|
|
30315
30319
|
}
|
|
@@ -30759,12 +30763,18 @@ void main(void){
|
|
|
30759
30763
|
if ("num" === e2 && this.timingTarget) {
|
|
30760
30764
|
const e3 = new I_(t4, this.timingTarget);
|
|
30761
30765
|
this.keyFrames.push([t4.time, e3]);
|
|
30766
|
+
} else if ("str" === e2 && this.timingTarget) {
|
|
30767
|
+
const e3 = new R_(t4, this.timingTarget);
|
|
30768
|
+
this.keyFrames.push([t4.time, e3]);
|
|
30762
30769
|
}
|
|
30763
30770
|
}
|
|
30764
30771
|
const t3 = { time: 1, val: { type: "string", value: this.json.to }, fmla: "" };
|
|
30765
30772
|
if ("num" === e2 && this.timingTarget) {
|
|
30766
30773
|
const e3 = new I_(t3, this.timingTarget);
|
|
30767
30774
|
this.keyFrames.push([t3.time, e3]);
|
|
30775
|
+
} else if ("str" === e2 && this.timingTarget) {
|
|
30776
|
+
const e3 = new R_(t3, this.timingTarget);
|
|
30777
|
+
this.keyFrames.push([t3.time, e3]);
|
|
30768
30778
|
}
|
|
30769
30779
|
} else if (this.json.by) {
|
|
30770
30780
|
const i2 = { time: 0, val: { type: "string", value: this.json.cBhvr.attrList[0] }, fmla: "" };
|
|
@@ -31129,7 +31139,8 @@ void main(void){
|
|
|
31129
31139
|
const { json: e2, isIterate: i2, isSub: n2, eventHub: r2, ctx: o2, parent: s2, iterateType: a3, iterateIndex: l3, iterateId: h2, isInInteractiveSeq: u2, fromSeqId: c2 } = t2;
|
|
31130
31140
|
this.json = e2, this.id = e2.cMediaNode.ctn.id, this.commonTimeNode = new Ey({ json: e2.cMediaNode.ctn, isSub: n2, eventHubs: { global: r2, runtime: this.runtimeNodeEventHub }, ctx: o2, parent: s2, isIterate: i2, iterateType: a3, iterateIndex: l3, iterateId: h2, isInInteractiveSeq: u2, fromSeqId: c2 });
|
|
31131
31141
|
let d2 = e2.cMediaNode.tgtEl;
|
|
31132
|
-
|
|
31142
|
+
const [p2, f2] = d2.split("dynamicConvert");
|
|
31143
|
+
f2 && (d2 = `${o2.prefix}${f2}`), o2.loaderDelegate && (d2 = o2.loaderDelegate.redirectMedia(d2), o2.logger.info(`redirect media url from ${e2.cMediaNode.tgtEl} to ${d2} by delegate.`, o2.taskId)), this.audio = new c_(d2, o2.runningAudio, void 0, { enableWebAudio: o2.enableWebAudio }), o2.activeMedia.add(this.audio), this.commonTimeNode.on("timelineStart", () => {
|
|
31133
31144
|
this.audio.volume(o2.volumeAdjuster.volume), this.audio.play();
|
|
31134
31145
|
}), this.commonTimeNode.on("seekToStart", this.stopAudio), this.commonTimeNode.on("seekToEnd", this.stopAudio), this.commonTimeNode.on("timeNodeDestroy", this.destroy), this.ctx = o2, this.ctx.volumeAdjuster.on("update", this.onVolumeUpdate);
|
|
31135
31146
|
}
|
|
@@ -31992,7 +32003,7 @@ void main(void){
|
|
|
31992
32003
|
createCtx(t2) {
|
|
31993
32004
|
const { task: e2 } = this.stageStates[t2];
|
|
31994
32005
|
e2.addMTask(() => Dy(this, void 0, void 0, function* () {
|
|
31995
|
-
const e3 = new Gm(this.loader), i2 = new Za.a(), n2 = { taskId: this.taskId, mode: this.mode, renderer: this.renderer, graphicsTexture: new Km(this.maxResolution), stageWidth: 0, stageHeight: 0, ticker: this.ticker, timingTargets: new $m(i2), eventHub: i2, view: this.view, medias: /* @__PURE__ */ Object.create(null), lastViewedIndex: 0, conflictTimeNodeManager: new Qm(), clock: this.clock, spriteTexture: e3, slideIndex: t2, objectPoolGroup: this.objPoolGroup, hasBackgroundFillShape: false, slideScopeEventHub: new Za.a(), logger: this.logger, sdfManager: this.sdfManager, loaderDelegate: this.loaderDelegate, runningAudio: this.runningAudio, activeMedia: this.activeMedia, isPlayerPaused: this.isPlayerPaused, timingEventHub: new Za.a(), maxResolution: this.maxResolution, animatedIds: /* @__PURE__ */ new Set(), volumeAdjuster: this.volumeAdjuster, forceCanvas: this.forceCanvas, globalEventHub: this.globalEventHub, latestChangeFullscreenTargetId: "", isRendering: false, urlInterrupter: this.urlInterrupter, enableWebAudio: this.enableWebAudio };
|
|
32006
|
+
const e3 = new Gm(this.loader), i2 = new Za.a(), n2 = { taskId: this.taskId, prefix: this.url, mode: this.mode, renderer: this.renderer, graphicsTexture: new Km(this.maxResolution), stageWidth: 0, stageHeight: 0, ticker: this.ticker, timingTargets: new $m(i2), eventHub: i2, view: this.view, medias: /* @__PURE__ */ Object.create(null), lastViewedIndex: 0, conflictTimeNodeManager: new Qm(), clock: this.clock, spriteTexture: e3, slideIndex: t2, objectPoolGroup: this.objPoolGroup, hasBackgroundFillShape: false, slideScopeEventHub: new Za.a(), logger: this.logger, sdfManager: this.sdfManager, loaderDelegate: this.loaderDelegate, runningAudio: this.runningAudio, activeMedia: this.activeMedia, isPlayerPaused: this.isPlayerPaused, timingEventHub: new Za.a(), maxResolution: this.maxResolution, animatedIds: /* @__PURE__ */ new Set(), volumeAdjuster: this.volumeAdjuster, forceCanvas: this.forceCanvas, globalEventHub: this.globalEventHub, latestChangeFullscreenTargetId: "", isRendering: false, urlInterrupter: this.urlInterrupter, enableWebAudio: this.enableWebAudio };
|
|
31996
32007
|
this.stageCtxs[t2] = n2;
|
|
31997
32008
|
}), "@StagePool[createCtx]");
|
|
31998
32009
|
}
|
|
@@ -32288,11 +32299,15 @@ void main(void){
|
|
|
32288
32299
|
this.app.view.addEventListener("mouseover", e4, false);
|
|
32289
32300
|
const r3 = { handleEvent: () => {
|
|
32290
32301
|
this.fullscreenOnMousemove({ index: i3, targetId: n3 });
|
|
32302
|
+
} }, o3 = { handleEvent: () => {
|
|
32303
|
+
var t5;
|
|
32304
|
+
null === (t5 = this.currentStage) || void 0 === t5 || t5.ctx.globalEventHub.emit("togglePlayStatus", n3);
|
|
32291
32305
|
} };
|
|
32292
|
-
this.app.view.addEventListener("mousemove", r3, false), this.cacheFunctionMap.set("mouseover", e4), this.cacheFunctionMap.set("mousemove", r3), this.cacheFunctionMap.set("mouseout", t4);
|
|
32306
|
+
this.app.view.addEventListener("mousemove", r3, false), this.app.view.addEventListener("click", o3, false), this.cacheFunctionMap.set("click", o3), this.cacheFunctionMap.set("mouseover", e4), this.cacheFunctionMap.set("mousemove", r3), this.cacheFunctionMap.set("mouseout", t4);
|
|
32293
32307
|
} else {
|
|
32294
32308
|
const t4 = { handleEvent: () => {
|
|
32295
|
-
|
|
32309
|
+
var t5;
|
|
32310
|
+
this.fullscreenOnMousemove({ index: i3, targetId: n3 }), null === (t5 = this.currentStage) || void 0 === t5 || t5.ctx.globalEventHub.emit("togglePlayStatus", n3);
|
|
32296
32311
|
} };
|
|
32297
32312
|
this.app.view.addEventListener("touchstart", t4, false), this.cacheFunctionMap.set("touchstart", t4);
|
|
32298
32313
|
}
|
|
@@ -32602,7 +32617,7 @@ void main(void){
|
|
|
32602
32617
|
});
|
|
32603
32618
|
}
|
|
32604
32619
|
clearFullscreenEventListenersWithAppView() {
|
|
32605
|
-
["mousemove", "mouseout", "mouseover", "touchstart", "pointerdown"].forEach((t2) => {
|
|
32620
|
+
["mousemove", "click", "mouseout", "mouseover", "touchstart", "pointerdown"].forEach((t2) => {
|
|
32606
32621
|
this.cacheFunctionMap.has(t2) && (this.app.view.removeEventListener(t2, this.cacheFunctionMap.get(t2), false), this.cacheFunctionMap.delete(t2));
|
|
32607
32622
|
});
|
|
32608
32623
|
}
|
|
@@ -34224,23 +34239,44 @@ void main(void){
|
|
|
34224
34239
|
};
|
|
34225
34240
|
}
|
|
34226
34241
|
};
|
|
34227
|
-
function sT(t2, e2, i2, n2) {
|
|
34242
|
+
function sT(t2, e2, i2, n2, r2) {
|
|
34228
34243
|
return rT(this, void 0, void 0, function() {
|
|
34229
|
-
var
|
|
34230
|
-
return oT(this, function(
|
|
34231
|
-
switch (
|
|
34244
|
+
var o2, s2, a3, l3, h2, u2;
|
|
34245
|
+
return oT(this, function(c2) {
|
|
34246
|
+
switch (c2.label) {
|
|
34232
34247
|
case 0:
|
|
34233
|
-
return
|
|
34248
|
+
return o2 = document.createElement("div"), (s2 = new yT({ anchor: o2, renderOptions: { minFPS: 1, maxFPS: 1, resolution: 1, maxResolutionLevel: i2, forceCanvas: true }, mode: "local", interactive: false, useLocalCache: true })).setResource(t2, e2), [4, s2.getSlideCountAsync()];
|
|
34234
34249
|
case 1:
|
|
34235
|
-
|
|
34250
|
+
a3 = c2.sent(), c2.label = 2;
|
|
34236
34251
|
case 2:
|
|
34237
|
-
|
|
34252
|
+
if (c2.trys.push([2, 12, 13, 14]), !(r2 && r2.length > 0)) return [3, 7];
|
|
34253
|
+
l3 = r2.filter(function(t3, e3) {
|
|
34254
|
+
return r2.indexOf(t3) === e3;
|
|
34255
|
+
}), u2 = 0, c2.label = 3;
|
|
34238
34256
|
case 3:
|
|
34239
|
-
l3.
|
|
34257
|
+
return u2 < l3.length ? (h2 = l3[u2]) > 0 && h2 <= a3 ? [4, s2.player.stagePool.preload(h2, true)] : [3, 5] : [3, 6];
|
|
34240
34258
|
case 4:
|
|
34241
|
-
|
|
34259
|
+
c2.sent(), n2(Math.round((u2 + 1) / l3.length * 100) / 100), c2.label = 5;
|
|
34242
34260
|
case 5:
|
|
34243
|
-
return
|
|
34261
|
+
return u2++, [3, 3];
|
|
34262
|
+
case 6:
|
|
34263
|
+
return [3, 11];
|
|
34264
|
+
case 7:
|
|
34265
|
+
u2 = 1, c2.label = 8;
|
|
34266
|
+
case 8:
|
|
34267
|
+
return u2 <= a3 ? [4, s2.player.stagePool.preload(u2, true)] : [3, 11];
|
|
34268
|
+
case 9:
|
|
34269
|
+
c2.sent(), n2(Math.round(u2 / a3 * 100) / 100), c2.label = 10;
|
|
34270
|
+
case 10:
|
|
34271
|
+
return u2++, [3, 8];
|
|
34272
|
+
case 11:
|
|
34273
|
+
return [3, 14];
|
|
34274
|
+
case 12:
|
|
34275
|
+
throw c2.sent();
|
|
34276
|
+
case 13:
|
|
34277
|
+
return s2.destroy(), [7];
|
|
34278
|
+
case 14:
|
|
34279
|
+
return [2];
|
|
34244
34280
|
}
|
|
34245
34281
|
});
|
|
34246
34282
|
});
|
|
@@ -34376,7 +34412,7 @@ void main(void){
|
|
|
34376
34412
|
}
|
|
34377
34413
|
var mT = { syncDispatch: "syncDispatch", syncReceive: "syncReceive", syncEventLag: "syncEventLag", renderStart: "renderStart", renderEnd: "renderEnd", renderError: "renderError", slideChange: "slideChange", mainSeqStepStart: "mainSeqStepStart", mainSeqStepEnd: "mainSeqStepEnd", animateStart: "animateStart", animateEnd: "animateEnd", stateChange: "stateChange", slideStepEnd: "slideEnd", slideStepStart: "slideStart" }, gT = { taskId: "", url: "", currentSlideIndex: -1, mainSeqStep: -1, mainSeqState: null, mediaState: /* @__PURE__ */ Object.create(null), interactiveSeqState: /* @__PURE__ */ Object.create(null) }, vT = "";
|
|
34378
34414
|
try {
|
|
34379
|
-
vT = "1.4.
|
|
34415
|
+
vT = "1.4.20";
|
|
34380
34416
|
} catch (t2) {
|
|
34381
34417
|
vT = "dev";
|
|
34382
34418
|
}
|
|
@@ -34395,7 +34431,7 @@ void main(void){
|
|
|
34395
34431
|
return n3.frameResizeHandler();
|
|
34396
34432
|
}), n3.timestamp = function() {
|
|
34397
34433
|
return Date.now();
|
|
34398
|
-
}, n3.mode = "local", n3.enableGlobalClick = false, n3.lastEmitedState = null, n3.playerController = null, n3.isInitResized = false, n3.cacheImage = document.createElement("img"), n3.isTouchStart = false, n3.touchStartId = void 0, n3.taskId = "", n3.volumeAdjuster = new Hy(), n3.designWidth = 0, n3.designHeight = 0, n3._slideCount = 0, n3._dispatchIncrId = 0, n3._receiveIncrId = 0, n3.resizeView = Ky()(n3._resizeView.bind(n3), 50), n3.handleViewClick = Ky()(n3._handleViewClick.bind(n3), 300), n3.resourceList = [], n3._updateVolumeByStaticAdjuster = function(t3) {
|
|
34434
|
+
}, n3.mode = "local", n3.enableGlobalClick = false, n3.lastEmitedState = null, n3.playerController = null, n3.isInitResized = false, n3.cacheImage = document.createElement("img"), n3.isTouchStart = false, n3.touchStartId = void 0, n3.taskId = "", n3.volumeAdjuster = new Hy(), n3.designWidth = 0, n3.designHeight = 0, n3._slideCount = 0, n3._dispatchIncrId = 0, n3._receiveIncrId = 0, n3.resizeView = Ky()(n3._resizeView.bind(n3), 50), n3.handleViewClick = Ky()(n3._handleViewClick.bind(n3), 300, { leading: true }), n3.resourceList = [], n3._updateVolumeByStaticAdjuster = function(t3) {
|
|
34399
34435
|
n3.volumeAdjuster.volume = t3;
|
|
34400
34436
|
}, n3.recoverHandler = function(t3) {
|
|
34401
34437
|
if ("@slide/_recover_" === t3.data.type && t3.data.slideId === n3.randomId) {
|
|
@@ -34577,7 +34613,7 @@ void main(void){
|
|
|
34577
34613
|
return o2.setInteractive(this.interactive), o2.updateConfig(t3.renderOptions || {}), o2.on(Vy.renderStart, function(t4) {
|
|
34578
34614
|
r2.isLoading = true, r2.emit(mT.renderStart, t4), window.postMessage({ type: "@slide/_render_start_", taskId: r2.taskId, index: t4 }, "*");
|
|
34579
34615
|
}), o2.on(Vy.renderEnd, function(t4) {
|
|
34580
|
-
r2.isLoading = false, r2.player && (r2.designHeight = r2.player.designHeight, r2.designWidth = r2.player.designWidth, r2.cacheImage.style.width = r2.player.designWidth + "px", r2.cacheImage.style.height = r2.player.designHeight + "px", r2._slideCount = r2.player.slideCount), r2.emit(mT.renderEnd, t4), window.postMessage({ type: "@slide/_render_end_", taskId: r2.taskId, index: t4 }, "*");
|
|
34616
|
+
r2.isLoading = false, r2.player && (r2.designHeight = r2.player.designHeight, r2.designWidth = r2.player.designWidth, r2.cacheImage.style.width = r2.player.designWidth + "px", r2.cacheImage.style.height = r2.player.designHeight + "px", r2.cacheImage.style.maxWidth = r2.player.designWidth + "px", r2.cacheImage.style.minWidth = r2.player.designHeight + "px", r2._slideCount = r2.player.slideCount), r2.emit(mT.renderEnd, t4), window.postMessage({ type: "@slide/_render_end_", taskId: r2.taskId, index: t4 }, "*");
|
|
34581
34617
|
}), o2.on(Vy.slideChange, function(t4) {
|
|
34582
34618
|
r2.__slideState.currentSlideIndex = t4, r2.emitStateChange(), r2.emit(mT.slideChange, t4);
|
|
34583
34619
|
}), o2.on(Vy.mainSeqStateChange, function(t4) {
|
|
@@ -35105,22 +35141,27 @@ void main(void){
|
|
|
35105
35141
|
}(Za.a);
|
|
35106
35142
|
null == _T || _T.clear().catch(function() {
|
|
35107
35143
|
}), window.addEventListener("__slide_log__", yT.handleLogDownload), window.addEventListener("message", function(t2) {
|
|
35144
|
+
var e2;
|
|
35108
35145
|
if ("@slide/_request_log_" === t2.data.type) yT.handleLogReport(t2.data.sessionId).catch(function() {
|
|
35109
35146
|
});
|
|
35110
35147
|
else if ("@slide/_request_frozen_" === t2.data.type) yT.handleFrozenAllSlide();
|
|
35111
35148
|
else if ("@slide/_request_release_" === t2.data.type) yT.handleReleaseAllSlide();
|
|
35112
35149
|
else if ("@slide/_update_volume_" === t2.data.type) {
|
|
35113
|
-
var
|
|
35150
|
+
var i2 = 0.5;
|
|
35114
35151
|
try {
|
|
35115
|
-
|
|
35152
|
+
i2 = parseFloat(t2.data.volume.toString());
|
|
35116
35153
|
} catch (t3) {
|
|
35117
35154
|
}
|
|
35118
|
-
yT.volumeAdjuster.volume =
|
|
35119
|
-
} else "@slide/_get_volume_" === t2.data.type
|
|
35120
|
-
|
|
35121
|
-
|
|
35122
|
-
|
|
35123
|
-
|
|
35155
|
+
yT.volumeAdjuster.volume = i2;
|
|
35156
|
+
} else if ("@slide/_get_volume_" === t2.data.type) window.postMessage({ type: "@slide/_report_volume_", volume: yT.volumeAdjuster.volume, customMessage: "@slide/_report_volume_" }, "*");
|
|
35157
|
+
else if ("@slide/_preload_slide_" === t2.data.type) {
|
|
35158
|
+
var n2 = null !== (e2 = t2.data.sessionId) && void 0 !== e2 ? e2 : Math.random().toString(32).substr(2);
|
|
35159
|
+
yT.preloadResource(t2.data.taskId, t2.data.prefix, t2.data.maxResolutionLevel, function(e3) {
|
|
35160
|
+
window.postMessage({ type: "@slide/_preload_slide_progress_", sessionId: n2, taskId: t2.data.taskId, progress: e3 }, "*");
|
|
35161
|
+
}, t2.data.pages).catch(function(e3) {
|
|
35162
|
+
window.postMessage({ type: "@slide/_preload_slide_error_", sessionId: n2, taskId: t2.data.taskId, error: e3 }, "*");
|
|
35163
|
+
});
|
|
35164
|
+
}
|
|
35124
35165
|
}), window.setInterval(function() {
|
|
35125
35166
|
yT.flushLog().catch(function() {
|
|
35126
35167
|
});
|
|
@@ -35133,7 +35174,7 @@ void main(void){
|
|
|
35133
35174
|
import { AbstractApplication, log as log3 } from "@netless/forge-room";
|
|
35134
35175
|
import * as Y15 from "yjs";
|
|
35135
35176
|
import * as Y12 from "yjs";
|
|
35136
|
-
import
|
|
35177
|
+
import EventEmitter from "eventemitter3";
|
|
35137
35178
|
import { v4 as uuidv4 } from "uuid";
|
|
35138
35179
|
import * as Y2 from "yjs";
|
|
35139
35180
|
import * as Y from "yjs";
|
|
@@ -35145,23 +35186,23 @@ import * as Y7 from "yjs";
|
|
|
35145
35186
|
import * as Y8 from "yjs";
|
|
35146
35187
|
import * as Y9 from "yjs";
|
|
35147
35188
|
import * as Y10 from "yjs";
|
|
35148
|
-
import
|
|
35189
|
+
import { AbstractApplicationPermissions } from "@netless/forge-room";
|
|
35149
35190
|
import * as Y11 from "yjs";
|
|
35150
|
-
import
|
|
35191
|
+
import EventEmitter2 from "eventemitter3";
|
|
35151
35192
|
import * as Y13 from "yjs";
|
|
35152
|
-
import
|
|
35193
|
+
import EventEmitter3 from "eventemitter3";
|
|
35194
|
+
import EventEmitter5 from "eventemitter3";
|
|
35195
|
+
import { EventEmitter as EventEmitter4 } from "eventemitter3";
|
|
35196
|
+
import EventEmitter7 from "eventemitter3";
|
|
35153
35197
|
import EventEmitter6 from "eventemitter3";
|
|
35154
|
-
import { EventEmitter as EventEmitter5 } from "eventemitter3";
|
|
35155
35198
|
import EventEmitter8 from "eventemitter3";
|
|
35156
|
-
import EventEmitter7 from "eventemitter3";
|
|
35157
|
-
import EventEmitter9 from "eventemitter3";
|
|
35158
35199
|
import * as Y14 from "yjs";
|
|
35200
|
+
import EventEmitter9 from "eventemitter3";
|
|
35159
35201
|
import EventEmitter10 from "eventemitter3";
|
|
35160
|
-
import EventEmitter11 from "eventemitter3";
|
|
35161
35202
|
import { log } from "@netless/forge-room";
|
|
35162
|
-
import
|
|
35203
|
+
import EventEmitter11 from "eventemitter3";
|
|
35163
35204
|
import { log as log2 } from "@netless/forge-room";
|
|
35164
|
-
import
|
|
35205
|
+
import EventEmitter12 from "eventemitter3";
|
|
35165
35206
|
var __create2 = Object.create;
|
|
35166
35207
|
var __defProp2 = Object.defineProperty;
|
|
35167
35208
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
@@ -58936,7 +58977,7 @@ var require_lodash = __commonJS2({
|
|
|
58936
58977
|
var defer = baseRest(function(func, args) {
|
|
58937
58978
|
return baseDelay(func, 1, args);
|
|
58938
58979
|
});
|
|
58939
|
-
var
|
|
58980
|
+
var delay2 = baseRest(function(func, wait, args) {
|
|
58940
58981
|
return baseDelay(func, toNumber(wait) || 0, args);
|
|
58941
58982
|
});
|
|
58942
58983
|
function flip(func) {
|
|
@@ -60050,7 +60091,7 @@ var require_lodash = __commonJS2({
|
|
|
60050
60091
|
lodash.defaults = defaults;
|
|
60051
60092
|
lodash.defaultsDeep = defaultsDeep;
|
|
60052
60093
|
lodash.defer = defer;
|
|
60053
|
-
lodash.delay =
|
|
60094
|
+
lodash.delay = delay2;
|
|
60054
60095
|
lodash.difference = difference;
|
|
60055
60096
|
lodash.differenceBy = differenceBy;
|
|
60056
60097
|
lodash.differenceWith = differenceWith;
|
|
@@ -60843,6 +60884,10 @@ var ElementModel = class _ElementModel {
|
|
|
60843
60884
|
const ext = this.styleKeys();
|
|
60844
60885
|
return Array.from(new Set(["dashArray", "strokeColor", "fillColor", "strokeWidth"].filter((v) => ext.exclude.indexOf(v) < 0).concat(ext.include)));
|
|
60845
60886
|
}
|
|
60887
|
+
dispose() {
|
|
60888
|
+
this.subDispose();
|
|
60889
|
+
this.root.unobserveDeep(this.handlePropChange);
|
|
60890
|
+
}
|
|
60846
60891
|
};
|
|
60847
60892
|
_defineProperty(ElementModel, "KEYS", {
|
|
60848
60893
|
index: "index",
|
|
@@ -60912,12 +60957,15 @@ var CurveModel = class extends ElementModel {
|
|
|
60912
60957
|
constructor(root, scope) {
|
|
60913
60958
|
super(root, scope);
|
|
60914
60959
|
_defineProperty3(this, "item", null);
|
|
60960
|
+
_defineProperty3(this, "debugPath", void 0);
|
|
60961
|
+
_defineProperty3(this, "debug", false);
|
|
60915
60962
|
if (!this.root.has("type")) {
|
|
60916
60963
|
this.root.set("type", "curve");
|
|
60917
60964
|
}
|
|
60918
60965
|
if (!this.root.has("points")) {
|
|
60919
60966
|
this.root.set("points", new Y2.Array());
|
|
60920
60967
|
}
|
|
60968
|
+
this.debugPath = new scope.Path();
|
|
60921
60969
|
}
|
|
60922
60970
|
average(a2, b2) {
|
|
60923
60971
|
return (a2 + b2) / 2;
|
|
@@ -60926,23 +60974,23 @@ var CurveModel = class extends ElementModel {
|
|
|
60926
60974
|
const groupPoints = (0, import_lodash.chunk)(points, 2);
|
|
60927
60975
|
return ae(groupPoints, {
|
|
60928
60976
|
size: this.strokeWidth,
|
|
60929
|
-
smoothing: 0,
|
|
60930
|
-
thinning: 0.5,
|
|
60977
|
+
smoothing: 0.5,
|
|
60978
|
+
thinning: -0.5,
|
|
60931
60979
|
streamline: 0.5,
|
|
60932
60980
|
simulatePressure: true,
|
|
60933
60981
|
start: {
|
|
60934
|
-
taper: 10,
|
|
60982
|
+
taper: this.strokeWidth * 10,
|
|
60935
60983
|
cap: true
|
|
60936
60984
|
},
|
|
60937
60985
|
end: {
|
|
60938
|
-
taper:
|
|
60986
|
+
taper: this.strokeWidth * 20,
|
|
60939
60987
|
cap: true
|
|
60940
60988
|
}
|
|
60941
60989
|
});
|
|
60942
60990
|
}
|
|
60943
60991
|
matrixedPoints() {
|
|
60944
|
-
const
|
|
60945
|
-
return
|
|
60992
|
+
const currentPoints = (0, import_lodash.chunk)(this.points, 2);
|
|
60993
|
+
return currentPoints.map((_ref) => {
|
|
60946
60994
|
let [x, y] = _ref;
|
|
60947
60995
|
return new this.scope.Point(x, y);
|
|
60948
60996
|
}).map((p) => p.transform(new this.scope.Matrix(this.pointsMatrix))).reduce((result, next) => {
|
|
@@ -60976,27 +61024,41 @@ var CurveModel = class extends ElementModel {
|
|
|
60976
61024
|
}
|
|
60977
61025
|
return path;
|
|
60978
61026
|
}
|
|
60979
|
-
|
|
60980
|
-
|
|
60981
|
-
const
|
|
60982
|
-
|
|
61027
|
+
updateDebugPath() {
|
|
61028
|
+
this.debugPath = new this.scope.Path();
|
|
61029
|
+
const points = (0, import_lodash.chunk)(this.points, 2);
|
|
61030
|
+
for (let i = 0, len = points.length; i < len; i++) {
|
|
61031
|
+
const point = new this.scope.Point(points[i][0], points[i][1]);
|
|
61032
|
+
if (i === 0) {
|
|
61033
|
+
this.debugPath.moveTo(point);
|
|
61034
|
+
} else {
|
|
61035
|
+
this.debugPath.lineTo(point);
|
|
61036
|
+
}
|
|
61037
|
+
this.debugPath.strokeWidth = 1;
|
|
61038
|
+
this.debugPath.strokeColor = new this.scope.Color(1, 0, 0, 1);
|
|
61039
|
+
}
|
|
60983
61040
|
}
|
|
60984
61041
|
onVectorUpdate() {
|
|
60985
61042
|
if (!this.item) {
|
|
60986
61043
|
return;
|
|
60987
61044
|
}
|
|
61045
|
+
if (this.debug) {
|
|
61046
|
+
this.debugPath.remove();
|
|
61047
|
+
this.updateDebugPath();
|
|
61048
|
+
}
|
|
61049
|
+
const points = this.parsePoints(this.matrixedPoints());
|
|
61050
|
+
const path = this.createPath(points);
|
|
60988
61051
|
this.item.removeSegments();
|
|
60989
|
-
this.item.addSegments(
|
|
60990
|
-
this.
|
|
61052
|
+
this.item.addSegments(path.segments);
|
|
61053
|
+
if (this.debug) {
|
|
61054
|
+
this.item.addChild(this.debugPath);
|
|
61055
|
+
}
|
|
60991
61056
|
}
|
|
60992
61057
|
createPaperItem() {
|
|
60993
61058
|
this.item = new this.scope.Path();
|
|
60994
|
-
this.item.strokeCap = "round";
|
|
60995
|
-
this.item.strokeJoin = "round";
|
|
60996
|
-
this.item.strokeScaling = false;
|
|
60997
61059
|
this.item.strokeColor = new this.scope.Color(this.strokeColor);
|
|
60998
61060
|
this.item.fillColor = new this.scope.Color(this.strokeColor);
|
|
60999
|
-
this.
|
|
61061
|
+
this.onVectorUpdate();
|
|
61000
61062
|
}
|
|
61001
61063
|
editorConfig() {
|
|
61002
61064
|
return new EditorConfig();
|
|
@@ -61006,8 +61068,8 @@ var CurveModel = class extends ElementModel {
|
|
|
61006
61068
|
}
|
|
61007
61069
|
styleKeys() {
|
|
61008
61070
|
return {
|
|
61009
|
-
include: ["strokeColor"],
|
|
61010
|
-
exclude: ["
|
|
61071
|
+
include: ["strokeColor", "strokeWidth"],
|
|
61072
|
+
exclude: ["dashArray", "fillColor"]
|
|
61011
61073
|
};
|
|
61012
61074
|
}
|
|
61013
61075
|
onStyleKeyUpdate(key) {
|
|
@@ -61017,8 +61079,12 @@ var CurveModel = class extends ElementModel {
|
|
|
61017
61079
|
if (key === "strokeColor") {
|
|
61018
61080
|
this.item.strokeColor = new this.scope.Color(this.strokeColor);
|
|
61019
61081
|
this.item.fillColor = new this.scope.Color(this.strokeColor);
|
|
61082
|
+
} else if (key === "strokeWidth") {
|
|
61083
|
+
this.onVectorUpdate();
|
|
61020
61084
|
}
|
|
61021
61085
|
}
|
|
61086
|
+
subDispose() {
|
|
61087
|
+
}
|
|
61022
61088
|
};
|
|
61023
61089
|
function _defineProperty4(e, r, t) {
|
|
61024
61090
|
return (r = _toPropertyKey4(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
@@ -61050,14 +61116,12 @@ var SelectorModel = class extends ElementModel {
|
|
|
61050
61116
|
this.root.set("points", initPoints);
|
|
61051
61117
|
}
|
|
61052
61118
|
}
|
|
61119
|
+
subDispose() {
|
|
61120
|
+
}
|
|
61053
61121
|
createPaperRect() {
|
|
61054
61122
|
const scope = this.scope;
|
|
61055
61123
|
const bounds = new scope.Rectangle(new scope.Point(this.points[0], this.points[1]), new scope.Size(this.points[2], this.points[3]));
|
|
61056
|
-
return new scope.Path.Rectangle(
|
|
61057
|
-
bounds,
|
|
61058
|
-
new scope.Point(this.points[4], this.points[4])
|
|
61059
|
-
// 圆角
|
|
61060
|
-
);
|
|
61124
|
+
return new scope.Path.Rectangle(bounds, new scope.Point(this.points[4], this.points[4]));
|
|
61061
61125
|
}
|
|
61062
61126
|
onVectorUpdate() {
|
|
61063
61127
|
if (!this.item) {
|
|
@@ -61083,7 +61147,7 @@ var SelectorModel = class extends ElementModel {
|
|
|
61083
61147
|
exclude: []
|
|
61084
61148
|
};
|
|
61085
61149
|
}
|
|
61086
|
-
onStyleKeyUpdate(
|
|
61150
|
+
onStyleKeyUpdate(_key) {
|
|
61087
61151
|
}
|
|
61088
61152
|
};
|
|
61089
61153
|
var import_lodash2 = __toESM2(require_lodash(), 1);
|
|
@@ -61130,7 +61194,7 @@ var AnimationFrame = class {
|
|
|
61130
61194
|
_defineProperty5(this, "lastTime", 0);
|
|
61131
61195
|
_defineProperty5(this, "fps", 45);
|
|
61132
61196
|
_defineProperty5(this, "handleCallbacks", () => {
|
|
61133
|
-
|
|
61197
|
+
const functions = this.callbacks;
|
|
61134
61198
|
this.callbacks = [];
|
|
61135
61199
|
for (let i = 0, l2 = functions.length; i < l2; i++) {
|
|
61136
61200
|
functions[i]();
|
|
@@ -61181,6 +61245,8 @@ var SegmentsModel = class extends ElementModel {
|
|
|
61181
61245
|
this.root.set("points", new Y4.Array());
|
|
61182
61246
|
}
|
|
61183
61247
|
}
|
|
61248
|
+
subDispose() {
|
|
61249
|
+
}
|
|
61184
61250
|
onVectorUpdate() {
|
|
61185
61251
|
if (!this.item) {
|
|
61186
61252
|
return;
|
|
@@ -61215,7 +61281,7 @@ var SegmentsModel = class extends ElementModel {
|
|
|
61215
61281
|
exclude: []
|
|
61216
61282
|
};
|
|
61217
61283
|
}
|
|
61218
|
-
onStyleKeyUpdate(
|
|
61284
|
+
onStyleKeyUpdate(_key) {
|
|
61219
61285
|
}
|
|
61220
61286
|
};
|
|
61221
61287
|
var import_lodash4 = __toESM2(require_lodash(), 1);
|
|
@@ -61302,6 +61368,9 @@ var LineTool = class extends WhiteboardTool {
|
|
|
61302
61368
|
this.tool.minDistance = 1;
|
|
61303
61369
|
}
|
|
61304
61370
|
onMouseDown(event) {
|
|
61371
|
+
if (this.elementModel) {
|
|
61372
|
+
this.elementModel.dispose();
|
|
61373
|
+
}
|
|
61305
61374
|
this.elementModel = this.modelGetter().createLinePath(true);
|
|
61306
61375
|
this.from = event.point.clone();
|
|
61307
61376
|
this.to = event.point.clone();
|
|
@@ -61375,6 +61444,8 @@ var LineModel = class extends ElementModel {
|
|
|
61375
61444
|
this.root.set("tailArrow", "normal");
|
|
61376
61445
|
}
|
|
61377
61446
|
}
|
|
61447
|
+
subDispose() {
|
|
61448
|
+
}
|
|
61378
61449
|
onVectorUpdate() {
|
|
61379
61450
|
if (!this.item) {
|
|
61380
61451
|
return;
|
|
@@ -61411,7 +61482,7 @@ var LineModel = class extends ElementModel {
|
|
|
61411
61482
|
this.item.addChildren(this.renderLine());
|
|
61412
61483
|
}
|
|
61413
61484
|
createArrow(path) {
|
|
61414
|
-
|
|
61485
|
+
const [headPath, tailPath] = [new this.scope.Path(), new this.scope.Path()];
|
|
61415
61486
|
if (!path) {
|
|
61416
61487
|
return [headPath, tailPath];
|
|
61417
61488
|
}
|
|
@@ -61465,7 +61536,7 @@ var LineModel = class extends ElementModel {
|
|
|
61465
61536
|
exclude: ["fillColor"]
|
|
61466
61537
|
};
|
|
61467
61538
|
}
|
|
61468
|
-
onStyleKeyUpdate(
|
|
61539
|
+
onStyleKeyUpdate(_key) {
|
|
61469
61540
|
this.onVectorUpdate();
|
|
61470
61541
|
}
|
|
61471
61542
|
};
|
|
@@ -61585,6 +61656,9 @@ var PointTextModel = class extends ElementModel {
|
|
|
61585
61656
|
}, 60);
|
|
61586
61657
|
}
|
|
61587
61658
|
}
|
|
61659
|
+
subDispose() {
|
|
61660
|
+
this.root.unobserve(this.handleTextPropChange);
|
|
61661
|
+
}
|
|
61588
61662
|
getInternalMeasurement() {
|
|
61589
61663
|
if (!this.item) {
|
|
61590
61664
|
return null;
|
|
@@ -61687,6 +61761,8 @@ var TriangleModel = class extends ElementModel {
|
|
|
61687
61761
|
this.root.set("points", new Y7.Array());
|
|
61688
61762
|
}
|
|
61689
61763
|
}
|
|
61764
|
+
subDispose() {
|
|
61765
|
+
}
|
|
61690
61766
|
createPaperItem() {
|
|
61691
61767
|
this.item = new this.scope.Path();
|
|
61692
61768
|
this.item.strokeCap = "butt";
|
|
@@ -61743,7 +61819,7 @@ var TriangleModel = class extends ElementModel {
|
|
|
61743
61819
|
exclude: []
|
|
61744
61820
|
};
|
|
61745
61821
|
}
|
|
61746
|
-
onStyleKeyUpdate(
|
|
61822
|
+
onStyleKeyUpdate(_key) {
|
|
61747
61823
|
}
|
|
61748
61824
|
};
|
|
61749
61825
|
function _defineProperty12(e, r, t) {
|
|
@@ -61779,6 +61855,8 @@ var RectangleModel = class extends ElementModel {
|
|
|
61779
61855
|
this.root.set("radius", 0);
|
|
61780
61856
|
}
|
|
61781
61857
|
}
|
|
61858
|
+
subDispose() {
|
|
61859
|
+
}
|
|
61782
61860
|
createSegments() {
|
|
61783
61861
|
const [a2, b2, c, d] = this.points;
|
|
61784
61862
|
const matrix = new this.scope.Matrix(this.pointsMatrix);
|
|
@@ -61910,7 +61988,7 @@ var RectangleModel = class extends ElementModel {
|
|
|
61910
61988
|
exclude: []
|
|
61911
61989
|
};
|
|
61912
61990
|
}
|
|
61913
|
-
onStyleKeyUpdate(
|
|
61991
|
+
onStyleKeyUpdate(_key) {
|
|
61914
61992
|
}
|
|
61915
61993
|
};
|
|
61916
61994
|
var elementsUndoOrigin = "elementsUndoOrigin";
|
|
@@ -62046,9 +62124,11 @@ var EraserModel = class extends ElementModel {
|
|
|
62046
62124
|
exclude: []
|
|
62047
62125
|
};
|
|
62048
62126
|
}
|
|
62049
|
-
onStyleKeyUpdate(
|
|
62127
|
+
onStyleKeyUpdate(_key) {
|
|
62050
62128
|
return;
|
|
62051
62129
|
}
|
|
62130
|
+
subDispose() {
|
|
62131
|
+
}
|
|
62052
62132
|
};
|
|
62053
62133
|
var import_lodash6 = __toESM2(require_lodash(), 1);
|
|
62054
62134
|
function _defineProperty14(e, r, t) {
|
|
@@ -62202,27 +62282,12 @@ var LaserPointerModel = class extends ElementModel {
|
|
|
62202
62282
|
exclude: []
|
|
62203
62283
|
};
|
|
62204
62284
|
}
|
|
62205
|
-
onStyleKeyUpdate(
|
|
62285
|
+
onStyleKeyUpdate(_key) {
|
|
62206
62286
|
return;
|
|
62207
62287
|
}
|
|
62208
|
-
|
|
62209
|
-
function _defineProperty15(e, r, t) {
|
|
62210
|
-
return (r = _toPropertyKey15(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
62211
|
-
}
|
|
62212
|
-
function _toPropertyKey15(t) {
|
|
62213
|
-
var i = _toPrimitive15(t, "string");
|
|
62214
|
-
return "symbol" == typeof i ? i : i + "";
|
|
62215
|
-
}
|
|
62216
|
-
function _toPrimitive15(t, r) {
|
|
62217
|
-
if ("object" != typeof t || !t) return t;
|
|
62218
|
-
var e = t[Symbol.toPrimitive];
|
|
62219
|
-
if (void 0 !== e) {
|
|
62220
|
-
var i = e.call(t, r || "default");
|
|
62221
|
-
if ("object" != typeof i) return i;
|
|
62222
|
-
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
62288
|
+
subDispose() {
|
|
62223
62289
|
}
|
|
62224
|
-
|
|
62225
|
-
}
|
|
62290
|
+
};
|
|
62226
62291
|
var WhiteboardPermissionFlag = function(WhiteboardPermissionFlag2) {
|
|
62227
62292
|
WhiteboardPermissionFlag2[WhiteboardPermissionFlag2["none"] = 0] = "none";
|
|
62228
62293
|
WhiteboardPermissionFlag2[WhiteboardPermissionFlag2["draw"] = 1] = "draw";
|
|
@@ -62235,117 +62300,25 @@ var WhiteboardPermissionFlag = function(WhiteboardPermissionFlag2) {
|
|
|
62235
62300
|
WhiteboardPermissionFlag2[WhiteboardPermissionFlag2["all"] = WhiteboardPermissionFlag2.draw | WhiteboardPermissionFlag2.editSelf | WhiteboardPermissionFlag2.editOthers | WhiteboardPermissionFlag2.deleteSelf | WhiteboardPermissionFlag2.deleteOthers | WhiteboardPermissionFlag2.mainView | WhiteboardPermissionFlag2.setOthersView] = "all";
|
|
62236
62301
|
return WhiteboardPermissionFlag2;
|
|
62237
62302
|
}({});
|
|
62238
|
-
var WhiteboardPermissions = class extends
|
|
62239
|
-
constructor(userManager, requestUserMap) {
|
|
62240
|
-
super();
|
|
62241
|
-
_defineProperty15(this, "requestUserMap", void 0);
|
|
62242
|
-
_defineProperty15(this, "userManager", void 0);
|
|
62243
|
-
_defineProperty15(this, "observers", /* @__PURE__ */ new Map());
|
|
62244
|
-
_defineProperty15(this, "handleUserLeave", (user) => {
|
|
62245
|
-
const cb = this.observers.get(user.id);
|
|
62246
|
-
if (cb) {
|
|
62247
|
-
this.requestUserMap(user.id).unobserve(cb);
|
|
62248
|
-
}
|
|
62249
|
-
});
|
|
62250
|
-
_defineProperty15(this, "handleUserJoin", (user) => {
|
|
62251
|
-
this.addObserve(user.id);
|
|
62252
|
-
});
|
|
62253
|
-
this.userManager = userManager;
|
|
62254
|
-
this.requestUserMap = requestUserMap;
|
|
62255
|
-
this.createModel(this.userManager.selfId);
|
|
62256
|
-
this.userManager.userIdList().forEach((userId) => {
|
|
62257
|
-
this.addObserve(userId);
|
|
62258
|
-
});
|
|
62259
|
-
this.userManager.on("join", this.handleUserJoin);
|
|
62260
|
-
this.userManager.on("leave", this.handleUserLeave);
|
|
62261
|
-
}
|
|
62262
|
-
addObserve(userId) {
|
|
62263
|
-
if (this.observers.has(userId)) {
|
|
62264
|
-
return;
|
|
62265
|
-
}
|
|
62266
|
-
const observer = (evt) => {
|
|
62267
|
-
this.handleUserPermissionChange(userId, evt);
|
|
62268
|
-
};
|
|
62269
|
-
this.observers.set(userId, observer);
|
|
62270
|
-
this.requestUserMap(userId).observe(observer);
|
|
62271
|
-
}
|
|
62272
|
-
createModel(userId) {
|
|
62273
|
-
const userMap = this.requestUserMap(userId);
|
|
62274
|
-
if (!userMap.has("permission")) {
|
|
62275
|
-
userMap.set("permission", 0);
|
|
62276
|
-
}
|
|
62277
|
-
}
|
|
62278
|
-
handleUserPermissionChange(userId, evt) {
|
|
62279
|
-
for (const [key, value] of evt.changes.keys.entries()) {
|
|
62280
|
-
if (key === "permission") {
|
|
62281
|
-
if (value.action === "add" || value.action === "update") {
|
|
62282
|
-
const newValue = this.requestUserMap(userId).get("permission");
|
|
62283
|
-
this.emit("change", userId, this.resolveFlags(newValue), newValue);
|
|
62284
|
-
}
|
|
62285
|
-
}
|
|
62286
|
-
}
|
|
62287
|
-
}
|
|
62303
|
+
var WhiteboardPermissions = class extends AbstractApplicationPermissions {
|
|
62288
62304
|
/**
|
|
62289
|
-
|
|
62290
|
-
|
|
62291
|
-
|
|
62292
|
-
|
|
62305
|
+
* 解析权限列表组合
|
|
62306
|
+
* @param {number} value - 权限数字值
|
|
62307
|
+
* @return {WhiteboardPermissionFlag[]} - 权限列表
|
|
62308
|
+
*/
|
|
62293
62309
|
resolveFlags(value) {
|
|
62294
62310
|
return [WhiteboardPermissionFlag.draw, WhiteboardPermissionFlag.editSelf, WhiteboardPermissionFlag.editOthers, WhiteboardPermissionFlag.deleteSelf, WhiteboardPermissionFlag.deleteOthers, WhiteboardPermissionFlag.mainView, WhiteboardPermissionFlag.setOthersView].filter((v) => (v & value) !== 0);
|
|
62295
62311
|
}
|
|
62296
|
-
/**
|
|
62297
|
-
* 获取权限列表组合对应的数值
|
|
62298
|
-
* @param { string } userId 不传表示获取自己
|
|
62299
|
-
*/
|
|
62300
|
-
getPermissionValue(userId) {
|
|
62301
|
-
return this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0;
|
|
62302
|
-
}
|
|
62303
|
-
/**
|
|
62304
|
-
* 获取权限列表
|
|
62305
|
-
* @param {string=} userId 可选, 不传表示获取自己
|
|
62306
|
-
*/
|
|
62307
|
-
getPermissionFlags(userId) {
|
|
62308
|
-
const value = this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0;
|
|
62309
|
-
return this.resolveFlags(value);
|
|
62310
|
-
}
|
|
62311
|
-
/**
|
|
62312
|
-
* 返回对应 userId 是否有相应权限
|
|
62313
|
-
* @param {string=} userId 可选, 不传表示返回自己是否有相应权限
|
|
62314
|
-
* @param {WhiteboardPermissionFlag} flag
|
|
62315
|
-
*/
|
|
62316
|
-
hasPermission(flag, userId) {
|
|
62317
|
-
return ((this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0) & flag) !== 0;
|
|
62318
|
-
}
|
|
62319
|
-
/**
|
|
62320
|
-
* 添加权限
|
|
62321
|
-
* @param {WhiteboardPermissionFlag} flag 权限标记
|
|
62322
|
-
* @param {string=} userId 可选, 为 userId 添加权限, 不传表示为自己添加权限
|
|
62323
|
-
*/
|
|
62324
|
-
addPermission(flag, userId) {
|
|
62325
|
-
const userMap = this.requestUserMap(userId ?? this.userManager.selfId);
|
|
62326
|
-
const oldValue = userMap.get("permission") ?? 0;
|
|
62327
|
-
this.requestUserMap(userId ?? this.userManager.selfId).set("permission", oldValue | flag);
|
|
62328
|
-
}
|
|
62329
|
-
/**
|
|
62330
|
-
* 移除权限
|
|
62331
|
-
* @param {WhiteboardPermissionFlag} flag 权限标记
|
|
62332
|
-
* @param {string=} userId 可选, 为 userId 移除权限, 不传表示为自己移除权限
|
|
62333
|
-
*/
|
|
62334
|
-
removePermission(flag, userId) {
|
|
62335
|
-
const userMap = this.requestUserMap(userId ?? this.userManager.selfId);
|
|
62336
|
-
const oldValue = userMap.get("permission") ?? 0;
|
|
62337
|
-
this.requestUserMap(userId ?? this.userManager.selfId).set("permission", oldValue & ~flag);
|
|
62338
|
-
}
|
|
62339
62312
|
};
|
|
62340
62313
|
var import_lodash7 = __toESM2(require_lodash(), 1);
|
|
62341
|
-
function
|
|
62342
|
-
return (r =
|
|
62314
|
+
function _defineProperty15(e, r, t) {
|
|
62315
|
+
return (r = _toPropertyKey15(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
62343
62316
|
}
|
|
62344
|
-
function
|
|
62345
|
-
var i =
|
|
62317
|
+
function _toPropertyKey15(t) {
|
|
62318
|
+
var i = _toPrimitive15(t, "string");
|
|
62346
62319
|
return "symbol" == typeof i ? i : i + "";
|
|
62347
62320
|
}
|
|
62348
|
-
function
|
|
62321
|
+
function _toPrimitive15(t, r) {
|
|
62349
62322
|
if ("object" != typeof t || !t) return t;
|
|
62350
62323
|
var e = t[Symbol.toPrimitive];
|
|
62351
62324
|
if (void 0 !== e) {
|
|
@@ -62358,7 +62331,7 @@ function _toPrimitive16(t, r) {
|
|
|
62358
62331
|
var StraightLineModel = class extends ElementModel {
|
|
62359
62332
|
constructor(root, scope) {
|
|
62360
62333
|
super(root, scope);
|
|
62361
|
-
|
|
62334
|
+
_defineProperty15(this, "item", null);
|
|
62362
62335
|
if (!this.root.has("type")) {
|
|
62363
62336
|
this.root.set("type", "line");
|
|
62364
62337
|
}
|
|
@@ -62366,6 +62339,8 @@ var StraightLineModel = class extends ElementModel {
|
|
|
62366
62339
|
this.root.set("points", new Y11.Array());
|
|
62367
62340
|
}
|
|
62368
62341
|
}
|
|
62342
|
+
subDispose() {
|
|
62343
|
+
}
|
|
62369
62344
|
onVectorUpdate() {
|
|
62370
62345
|
if (!this.item) {
|
|
62371
62346
|
return;
|
|
@@ -62439,7 +62414,7 @@ var StraightLineModel = class extends ElementModel {
|
|
|
62439
62414
|
exclude: ["fillColor"]
|
|
62440
62415
|
};
|
|
62441
62416
|
}
|
|
62442
|
-
onStyleKeyUpdate(
|
|
62417
|
+
onStyleKeyUpdate(_key) {
|
|
62443
62418
|
if (!this.item) {
|
|
62444
62419
|
return;
|
|
62445
62420
|
}
|
|
@@ -62448,14 +62423,14 @@ var StraightLineModel = class extends ElementModel {
|
|
|
62448
62423
|
this.item.addSegments(path.segments);
|
|
62449
62424
|
}
|
|
62450
62425
|
};
|
|
62451
|
-
function
|
|
62452
|
-
return (r =
|
|
62426
|
+
function _defineProperty16(e, r, t) {
|
|
62427
|
+
return (r = _toPropertyKey16(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
62453
62428
|
}
|
|
62454
|
-
function
|
|
62455
|
-
var i =
|
|
62429
|
+
function _toPropertyKey16(t) {
|
|
62430
|
+
var i = _toPrimitive16(t, "string");
|
|
62456
62431
|
return "symbol" == typeof i ? i : i + "";
|
|
62457
62432
|
}
|
|
62458
|
-
function
|
|
62433
|
+
function _toPrimitive16(t, r) {
|
|
62459
62434
|
if ("object" != typeof t || !t) return t;
|
|
62460
62435
|
var e = t[Symbol.toPrimitive];
|
|
62461
62436
|
if (void 0 !== e) {
|
|
@@ -62465,22 +62440,22 @@ function _toPrimitive17(t, r) {
|
|
|
62465
62440
|
}
|
|
62466
62441
|
return ("string" === r ? String : Number)(t);
|
|
62467
62442
|
}
|
|
62468
|
-
var RenderableModel = class extends
|
|
62443
|
+
var RenderableModel = class extends EventEmitter {
|
|
62469
62444
|
get uuid() {
|
|
62470
62445
|
return uuidv4();
|
|
62471
62446
|
}
|
|
62472
62447
|
constructor(layerId, shadowEmitter, elements, scope, toolbarModel, userManager, hasPermission) {
|
|
62473
62448
|
super();
|
|
62474
|
-
|
|
62475
|
-
|
|
62476
|
-
|
|
62477
|
-
|
|
62478
|
-
|
|
62479
|
-
|
|
62480
|
-
|
|
62481
|
-
|
|
62482
|
-
|
|
62483
|
-
|
|
62449
|
+
_defineProperty16(this, "scope", void 0);
|
|
62450
|
+
_defineProperty16(this, "toolbarModel", void 0);
|
|
62451
|
+
_defineProperty16(this, "userManager", void 0);
|
|
62452
|
+
_defineProperty16(this, "elementModels", void 0);
|
|
62453
|
+
_defineProperty16(this, "elements", void 0);
|
|
62454
|
+
_defineProperty16(this, "layerId", void 0);
|
|
62455
|
+
_defineProperty16(this, "maxIndex", -1);
|
|
62456
|
+
_defineProperty16(this, "hasPermission", void 0);
|
|
62457
|
+
_defineProperty16(this, "shadowEmitter", void 0);
|
|
62458
|
+
_defineProperty16(this, "onElementsChange", (event) => {
|
|
62484
62459
|
for (const [key, value] of event.changes.keys.entries()) {
|
|
62485
62460
|
if (value.action === "add") {
|
|
62486
62461
|
const root = this.elements.get(key);
|
|
@@ -62659,7 +62634,7 @@ var RenderableModel = class extends EventEmitter2 {
|
|
|
62659
62634
|
return segmentsModel;
|
|
62660
62635
|
}
|
|
62661
62636
|
createSelector() {
|
|
62662
|
-
let
|
|
62637
|
+
let _shadow = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
|
|
62663
62638
|
if (!this.hasPermission(WhiteboardPermissionFlag.editSelf) && !this.hasPermission(WhiteboardPermissionFlag.deleteOthers)) {
|
|
62664
62639
|
return null;
|
|
62665
62640
|
}
|
|
@@ -62716,7 +62691,11 @@ var RenderableModel = class extends EventEmitter2 {
|
|
|
62716
62691
|
});
|
|
62717
62692
|
}
|
|
62718
62693
|
dispose() {
|
|
62694
|
+
this.elements.unobserve(this.onElementsChange);
|
|
62719
62695
|
this.elements.clear();
|
|
62696
|
+
Array.from(this.elementModels.values()).forEach((model) => {
|
|
62697
|
+
model.dispose();
|
|
62698
|
+
});
|
|
62720
62699
|
}
|
|
62721
62700
|
};
|
|
62722
62701
|
var import_lodash8 = __toESM2(require_lodash(), 1);
|
|
@@ -62755,10 +62734,10 @@ var AnglePrecision = Deg2Rad(2);
|
|
|
62755
62734
|
var Phi = 0.5 * (-1 + Math.sqrt(5));
|
|
62756
62735
|
function DollarRecognizer() {
|
|
62757
62736
|
this.Unistrokes = new Array(3);
|
|
62758
|
-
this.Unistrokes[0] = new Unistroke("triangle", new
|
|
62759
|
-
this.Unistrokes[1] = new Unistroke("rectangle", new
|
|
62760
|
-
this.Unistrokes[2] = new Unistroke("circle", new
|
|
62761
|
-
this.Unistrokes[3] = new Unistroke("arrow", new
|
|
62737
|
+
this.Unistrokes[0] = new Unistroke("triangle", [new Point(137, 139), new Point(135, 141), new Point(133, 144), new Point(132, 146), new Point(130, 149), new Point(128, 151), new Point(126, 155), new Point(123, 160), new Point(120, 166), new Point(116, 171), new Point(112, 177), new Point(107, 183), new Point(102, 188), new Point(100, 191), new Point(95, 195), new Point(90, 199), new Point(86, 203), new Point(82, 206), new Point(80, 209), new Point(75, 213), new Point(73, 213), new Point(70, 216), new Point(67, 219), new Point(64, 221), new Point(61, 223), new Point(60, 225), new Point(62, 226), new Point(65, 225), new Point(67, 226), new Point(74, 226), new Point(77, 227), new Point(85, 229), new Point(91, 230), new Point(99, 231), new Point(108, 232), new Point(116, 233), new Point(125, 233), new Point(134, 234), new Point(145, 233), new Point(153, 232), new Point(160, 233), new Point(170, 234), new Point(177, 235), new Point(179, 236), new Point(186, 237), new Point(193, 238), new Point(198, 239), new Point(200, 237), new Point(202, 239), new Point(204, 238), new Point(206, 234), new Point(205, 230), new Point(202, 222), new Point(197, 216), new Point(192, 207), new Point(186, 198), new Point(179, 189), new Point(174, 183), new Point(170, 178), new Point(164, 171), new Point(161, 168), new Point(154, 160), new Point(148, 155), new Point(143, 150), new Point(138, 148), new Point(136, 148)]);
|
|
62738
|
+
this.Unistrokes[1] = new Unistroke("rectangle", [new Point(78, 149), new Point(78, 153), new Point(78, 157), new Point(78, 160), new Point(79, 162), new Point(79, 164), new Point(79, 167), new Point(79, 169), new Point(79, 173), new Point(79, 178), new Point(79, 183), new Point(80, 189), new Point(80, 193), new Point(80, 198), new Point(80, 202), new Point(81, 208), new Point(81, 210), new Point(81, 216), new Point(82, 222), new Point(82, 224), new Point(82, 227), new Point(83, 229), new Point(83, 231), new Point(85, 230), new Point(88, 232), new Point(90, 233), new Point(92, 232), new Point(94, 233), new Point(99, 232), new Point(102, 233), new Point(106, 233), new Point(109, 234), new Point(117, 235), new Point(123, 236), new Point(126, 236), new Point(135, 237), new Point(142, 238), new Point(145, 238), new Point(152, 238), new Point(154, 239), new Point(165, 238), new Point(174, 237), new Point(179, 236), new Point(186, 235), new Point(191, 235), new Point(195, 233), new Point(197, 233), new Point(200, 233), new Point(201, 235), new Point(201, 233), new Point(199, 231), new Point(198, 226), new Point(198, 220), new Point(196, 207), new Point(195, 195), new Point(195, 181), new Point(195, 173), new Point(195, 163), new Point(194, 155), new Point(192, 145), new Point(192, 143), new Point(192, 138), new Point(191, 135), new Point(191, 133), new Point(191, 130), new Point(190, 128), new Point(188, 129), new Point(186, 129), new Point(181, 132), new Point(173, 131), new Point(162, 131), new Point(151, 132), new Point(149, 132), new Point(138, 132), new Point(136, 132), new Point(122, 131), new Point(120, 131), new Point(109, 130), new Point(107, 130), new Point(90, 132), new Point(81, 133), new Point(76, 133)]);
|
|
62739
|
+
this.Unistrokes[2] = new Unistroke("circle", [new Point(127, 141), new Point(124, 140), new Point(120, 139), new Point(118, 139), new Point(116, 139), new Point(111, 140), new Point(109, 141), new Point(104, 144), new Point(100, 147), new Point(96, 152), new Point(93, 157), new Point(90, 163), new Point(87, 169), new Point(85, 175), new Point(83, 181), new Point(82, 190), new Point(82, 195), new Point(83, 200), new Point(84, 205), new Point(88, 213), new Point(91, 216), new Point(96, 219), new Point(103, 222), new Point(108, 224), new Point(111, 224), new Point(120, 224), new Point(133, 223), new Point(142, 222), new Point(152, 218), new Point(160, 214), new Point(167, 210), new Point(173, 204), new Point(178, 198), new Point(179, 196), new Point(182, 188), new Point(182, 177), new Point(178, 167), new Point(170, 150), new Point(163, 138), new Point(152, 130), new Point(143, 129), new Point(140, 131), new Point(129, 136), new Point(126, 139)]);
|
|
62740
|
+
this.Unistrokes[3] = new Unistroke("arrow", [new Point(68, 222), new Point(70, 220), new Point(73, 218), new Point(75, 217), new Point(77, 215), new Point(80, 213), new Point(82, 212), new Point(84, 210), new Point(87, 209), new Point(89, 208), new Point(92, 206), new Point(95, 204), new Point(101, 201), new Point(106, 198), new Point(112, 194), new Point(118, 191), new Point(124, 187), new Point(127, 186), new Point(132, 183), new Point(138, 181), new Point(141, 180), new Point(146, 178), new Point(154, 173), new Point(159, 171), new Point(161, 170), new Point(166, 167), new Point(168, 167), new Point(171, 166), new Point(174, 164), new Point(177, 162), new Point(180, 160), new Point(182, 158), new Point(183, 156), new Point(181, 154), new Point(178, 153), new Point(171, 153), new Point(164, 153), new Point(160, 153), new Point(150, 154), new Point(147, 155), new Point(141, 157), new Point(137, 158), new Point(135, 158), new Point(137, 158), new Point(140, 157), new Point(143, 156), new Point(151, 154), new Point(160, 152), new Point(170, 149), new Point(179, 147), new Point(185, 145), new Point(192, 144), new Point(196, 144), new Point(198, 144), new Point(200, 144), new Point(201, 147), new Point(199, 149), new Point(194, 157), new Point(191, 160), new Point(186, 167), new Point(180, 176), new Point(177, 179), new Point(171, 187), new Point(169, 189), new Point(165, 194), new Point(164, 196)]);
|
|
62762
62741
|
this.Recognize = function(points, useProtractor) {
|
|
62763
62742
|
var t0 = Date.now();
|
|
62764
62743
|
var candidate = new Unistroke("", points);
|
|
@@ -62819,7 +62798,7 @@ function RotateBy(points, radians) {
|
|
|
62819
62798
|
var c = Centroid(points);
|
|
62820
62799
|
var cos = Math.cos(radians);
|
|
62821
62800
|
var sin = Math.sin(radians);
|
|
62822
|
-
var newpoints =
|
|
62801
|
+
var newpoints = [];
|
|
62823
62802
|
for (var i = 0; i < points.length; i++) {
|
|
62824
62803
|
var qx = (points[i].X - c.X) * cos - (points[i].Y - c.Y) * sin + c.X;
|
|
62825
62804
|
var qy = (points[i].X - c.X) * sin + (points[i].Y - c.Y) * cos + c.Y;
|
|
@@ -62829,7 +62808,7 @@ function RotateBy(points, radians) {
|
|
|
62829
62808
|
}
|
|
62830
62809
|
function ScaleTo(points, size) {
|
|
62831
62810
|
var B2 = BoundingBox(points);
|
|
62832
|
-
var newpoints =
|
|
62811
|
+
var newpoints = [];
|
|
62833
62812
|
for (var i = 0; i < points.length; i++) {
|
|
62834
62813
|
var qx = points[i].X * (size / B2.Width);
|
|
62835
62814
|
var qy = points[i].Y * (size / B2.Height);
|
|
@@ -62839,7 +62818,7 @@ function ScaleTo(points, size) {
|
|
|
62839
62818
|
}
|
|
62840
62819
|
function TranslateTo(points, pt) {
|
|
62841
62820
|
var c = Centroid(points);
|
|
62842
|
-
var newpoints =
|
|
62821
|
+
var newpoints = [];
|
|
62843
62822
|
for (var i = 0; i < points.length; i++) {
|
|
62844
62823
|
var qx = points[i].X + pt.X - c.X;
|
|
62845
62824
|
var qy = points[i].Y + pt.Y - c.Y;
|
|
@@ -62849,14 +62828,14 @@ function TranslateTo(points, pt) {
|
|
|
62849
62828
|
}
|
|
62850
62829
|
function Vectorize(points) {
|
|
62851
62830
|
var sum = 0;
|
|
62852
|
-
var vector =
|
|
62853
|
-
for (
|
|
62831
|
+
var vector = [];
|
|
62832
|
+
for (let i = 0; i < points.length; i++) {
|
|
62854
62833
|
vector[vector.length] = points[i].X;
|
|
62855
62834
|
vector[vector.length] = points[i].Y;
|
|
62856
62835
|
sum += points[i].X * points[i].X + points[i].Y * points[i].Y;
|
|
62857
62836
|
}
|
|
62858
62837
|
var magnitude = Math.sqrt(sum);
|
|
62859
|
-
for (
|
|
62838
|
+
for (let i = 0; i < vector.length; i++)
|
|
62860
62839
|
vector[i] /= magnitude;
|
|
62861
62840
|
return vector;
|
|
62862
62841
|
}
|
|
@@ -62936,14 +62915,14 @@ function Distance(p1, p2) {
|
|
|
62936
62915
|
function Deg2Rad(d) {
|
|
62937
62916
|
return d * Math.PI / 180;
|
|
62938
62917
|
}
|
|
62939
|
-
function
|
|
62940
|
-
return (r =
|
|
62918
|
+
function _defineProperty17(e, r, t) {
|
|
62919
|
+
return (r = _toPropertyKey17(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
62941
62920
|
}
|
|
62942
|
-
function
|
|
62943
|
-
var i =
|
|
62921
|
+
function _toPropertyKey17(t) {
|
|
62922
|
+
var i = _toPrimitive17(t, "string");
|
|
62944
62923
|
return "symbol" == typeof i ? i : i + "";
|
|
62945
62924
|
}
|
|
62946
|
-
function
|
|
62925
|
+
function _toPrimitive17(t, r) {
|
|
62947
62926
|
if ("object" != typeof t || !t) return t;
|
|
62948
62927
|
var e = t[Symbol.toPrimitive];
|
|
62949
62928
|
if (void 0 !== e) {
|
|
@@ -62955,7 +62934,7 @@ function _toPrimitive18(t, r) {
|
|
|
62955
62934
|
}
|
|
62956
62935
|
var Recognizer = class {
|
|
62957
62936
|
constructor() {
|
|
62958
|
-
|
|
62937
|
+
_defineProperty17(this, "dollar", new DollarRecognizer());
|
|
62959
62938
|
}
|
|
62960
62939
|
recognize(points) {
|
|
62961
62940
|
let minX = Number.MAX_VALUE;
|
|
@@ -62981,14 +62960,14 @@ var Recognizer = class {
|
|
|
62981
62960
|
return null;
|
|
62982
62961
|
}
|
|
62983
62962
|
};
|
|
62984
|
-
function
|
|
62985
|
-
return (r =
|
|
62963
|
+
function _defineProperty18(e, r, t) {
|
|
62964
|
+
return (r = _toPropertyKey18(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
62986
62965
|
}
|
|
62987
|
-
function
|
|
62988
|
-
var i =
|
|
62966
|
+
function _toPropertyKey18(t) {
|
|
62967
|
+
var i = _toPrimitive18(t, "string");
|
|
62989
62968
|
return "symbol" == typeof i ? i : i + "";
|
|
62990
62969
|
}
|
|
62991
|
-
function
|
|
62970
|
+
function _toPrimitive18(t, r) {
|
|
62992
62971
|
if ("object" != typeof t || !t) return t;
|
|
62993
62972
|
var e = t[Symbol.toPrimitive];
|
|
62994
62973
|
if (void 0 !== e) {
|
|
@@ -63001,22 +62980,40 @@ function _toPrimitive19(t, r) {
|
|
|
63001
62980
|
var CurveTool = class extends WhiteboardTool {
|
|
63002
62981
|
constructor(enableToolEvent, modelGetter, shadowEmitter, scope) {
|
|
63003
62982
|
super(enableToolEvent, modelGetter, shadowEmitter, scope);
|
|
63004
|
-
|
|
63005
|
-
|
|
63006
|
-
|
|
62983
|
+
_defineProperty18(this, "elementModel", null);
|
|
62984
|
+
_defineProperty18(this, "recognizer", new Recognizer());
|
|
62985
|
+
_defineProperty18(this, "pointCount", 0);
|
|
63007
62986
|
this.tool.minDistance = 1;
|
|
63008
62987
|
}
|
|
63009
|
-
onMouseDown(
|
|
62988
|
+
onMouseDown(_event) {
|
|
63010
62989
|
this.pointCount = 0;
|
|
62990
|
+
if (this.elementModel) {
|
|
62991
|
+
this.elementModel.dispose();
|
|
62992
|
+
}
|
|
63011
62993
|
this.elementModel = this.modelGetter().createCurve(true);
|
|
63012
62994
|
}
|
|
63013
62995
|
onMouseDrag(event) {
|
|
63014
62996
|
if (this.pointCount > 1024) {
|
|
63015
62997
|
return;
|
|
63016
62998
|
}
|
|
62999
|
+
const MIN_DISTANCE = 4;
|
|
63017
63000
|
if (this.elementModel) {
|
|
63018
|
-
this.
|
|
63019
|
-
|
|
63001
|
+
const len = this.elementModel.points.length;
|
|
63002
|
+
let last = {
|
|
63003
|
+
x: 0,
|
|
63004
|
+
y: 0
|
|
63005
|
+
};
|
|
63006
|
+
if (len >= 2) {
|
|
63007
|
+
last = {
|
|
63008
|
+
x: this.elementModel.points[len - 2],
|
|
63009
|
+
y: this.elementModel.points[len - 1]
|
|
63010
|
+
};
|
|
63011
|
+
}
|
|
63012
|
+
const dist = Math.max(Math.abs(last.x - event.point.x), Math.abs(last.y - event.point.y));
|
|
63013
|
+
if (dist >= MIN_DISTANCE) {
|
|
63014
|
+
this.pointCount += 1;
|
|
63015
|
+
this.elementModel.appendPoints([Math.round(event.point.x), Math.round(event.point.y)]);
|
|
63016
|
+
}
|
|
63020
63017
|
}
|
|
63021
63018
|
}
|
|
63022
63019
|
onMouseUp(event) {
|
|
@@ -63050,14 +63047,14 @@ var CurveTool = class extends WhiteboardTool {
|
|
|
63050
63047
|
}
|
|
63051
63048
|
}
|
|
63052
63049
|
};
|
|
63053
|
-
function
|
|
63054
|
-
return (r =
|
|
63050
|
+
function _defineProperty19(e, r, t) {
|
|
63051
|
+
return (r = _toPropertyKey19(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
63055
63052
|
}
|
|
63056
|
-
function
|
|
63057
|
-
var i =
|
|
63053
|
+
function _toPropertyKey19(t) {
|
|
63054
|
+
var i = _toPrimitive19(t, "string");
|
|
63058
63055
|
return "symbol" == typeof i ? i : i + "";
|
|
63059
63056
|
}
|
|
63060
|
-
function
|
|
63057
|
+
function _toPrimitive19(t, r) {
|
|
63061
63058
|
if ("object" != typeof t || !t) return t;
|
|
63062
63059
|
var e = t[Symbol.toPrimitive];
|
|
63063
63060
|
if (void 0 !== e) {
|
|
@@ -63070,12 +63067,15 @@ function _toPrimitive20(t, r) {
|
|
|
63070
63067
|
var RectangleTool = class extends WhiteboardTool {
|
|
63071
63068
|
constructor(enableToolEvent, modelGetter, shadowEmitter, scope) {
|
|
63072
63069
|
super(enableToolEvent, modelGetter, shadowEmitter, scope);
|
|
63073
|
-
|
|
63074
|
-
|
|
63075
|
-
|
|
63070
|
+
_defineProperty19(this, "elementModel", null);
|
|
63071
|
+
_defineProperty19(this, "from", null);
|
|
63072
|
+
_defineProperty19(this, "to", null);
|
|
63076
63073
|
this.tool.minDistance = 1;
|
|
63077
63074
|
}
|
|
63078
63075
|
onMouseDown(event) {
|
|
63076
|
+
if (this.elementModel) {
|
|
63077
|
+
this.elementModel.dispose();
|
|
63078
|
+
}
|
|
63079
63079
|
this.elementModel = this.modelGetter().createRectangle(true);
|
|
63080
63080
|
this.from = event.point.clone();
|
|
63081
63081
|
this.to = event.point.clone();
|
|
@@ -63095,14 +63095,14 @@ var RectangleTool = class extends WhiteboardTool {
|
|
|
63095
63095
|
}
|
|
63096
63096
|
}
|
|
63097
63097
|
};
|
|
63098
|
-
function
|
|
63099
|
-
return (r =
|
|
63098
|
+
function _defineProperty20(e, r, t) {
|
|
63099
|
+
return (r = _toPropertyKey20(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
63100
63100
|
}
|
|
63101
|
-
function
|
|
63102
|
-
var i =
|
|
63101
|
+
function _toPropertyKey20(t) {
|
|
63102
|
+
var i = _toPrimitive20(t, "string");
|
|
63103
63103
|
return "symbol" == typeof i ? i : i + "";
|
|
63104
63104
|
}
|
|
63105
|
-
function
|
|
63105
|
+
function _toPrimitive20(t, r) {
|
|
63106
63106
|
if ("object" != typeof t || !t) return t;
|
|
63107
63107
|
var e = t[Symbol.toPrimitive];
|
|
63108
63108
|
if (void 0 !== e) {
|
|
@@ -63121,7 +63121,7 @@ var TOOLBAR_KEYS = {
|
|
|
63121
63121
|
strokeWidth: "strokeWidth",
|
|
63122
63122
|
dashArray: "dashArray"
|
|
63123
63123
|
};
|
|
63124
|
-
var ToolbarModel = class extends
|
|
63124
|
+
var ToolbarModel = class extends EventEmitter2 {
|
|
63125
63125
|
get currentTool() {
|
|
63126
63126
|
return this.root.get(TOOLBAR_KEYS.tool);
|
|
63127
63127
|
}
|
|
@@ -63166,8 +63166,8 @@ var ToolbarModel = class extends EventEmitter3 {
|
|
|
63166
63166
|
}
|
|
63167
63167
|
constructor(root, defaultStyle) {
|
|
63168
63168
|
super();
|
|
63169
|
-
|
|
63170
|
-
|
|
63169
|
+
_defineProperty20(this, "root", void 0);
|
|
63170
|
+
_defineProperty20(this, "handleRootUpdate", (evt) => {
|
|
63171
63171
|
for (const [key, value] of evt.changes.keys.entries()) {
|
|
63172
63172
|
if (Object.keys(TOOLBAR_KEYS).indexOf(key) >= 0 && (value.action === "add" || value.action === "update")) {
|
|
63173
63173
|
this.emit("update", {
|
|
@@ -63190,15 +63190,19 @@ var ToolbarModel = class extends EventEmitter3 {
|
|
|
63190
63190
|
}
|
|
63191
63191
|
});
|
|
63192
63192
|
}
|
|
63193
|
+
dispose() {
|
|
63194
|
+
this.root.unobserve(this.handleRootUpdate);
|
|
63195
|
+
this.removeAllListeners();
|
|
63196
|
+
}
|
|
63193
63197
|
};
|
|
63194
|
-
function
|
|
63195
|
-
return (r =
|
|
63198
|
+
function _defineProperty21(e, r, t) {
|
|
63199
|
+
return (r = _toPropertyKey21(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
63196
63200
|
}
|
|
63197
|
-
function
|
|
63198
|
-
var i =
|
|
63201
|
+
function _toPropertyKey21(t) {
|
|
63202
|
+
var i = _toPrimitive21(t, "string");
|
|
63199
63203
|
return "symbol" == typeof i ? i : i + "";
|
|
63200
63204
|
}
|
|
63201
|
-
function
|
|
63205
|
+
function _toPrimitive21(t, r) {
|
|
63202
63206
|
if ("object" != typeof t || !t) return t;
|
|
63203
63207
|
var e = t[Symbol.toPrimitive];
|
|
63204
63208
|
if (void 0 !== e) {
|
|
@@ -63211,16 +63215,19 @@ function _toPrimitive22(t, r) {
|
|
|
63211
63215
|
var SelectorTool = class extends WhiteboardTool {
|
|
63212
63216
|
constructor(enableToolEvent, renderableModel, shadowEmitter, scope, selectElementsModel) {
|
|
63213
63217
|
super(enableToolEvent, renderableModel, shadowEmitter, scope);
|
|
63214
|
-
|
|
63215
|
-
|
|
63216
|
-
|
|
63217
|
-
|
|
63218
|
-
|
|
63218
|
+
_defineProperty21(this, "elementModel", null);
|
|
63219
|
+
_defineProperty21(this, "from", null);
|
|
63220
|
+
_defineProperty21(this, "to", null);
|
|
63221
|
+
_defineProperty21(this, "selectElementsModel", void 0);
|
|
63222
|
+
_defineProperty21(this, "selectElements", /* @__PURE__ */ new Map());
|
|
63219
63223
|
this.selectElementsModel = selectElementsModel;
|
|
63220
63224
|
}
|
|
63221
63225
|
onMouseDown(event) {
|
|
63222
63226
|
this.from = null;
|
|
63223
63227
|
this.to = null;
|
|
63228
|
+
if (this.elementModel) {
|
|
63229
|
+
this.elementModel.dispose();
|
|
63230
|
+
}
|
|
63224
63231
|
this.elementModel = this.modelGetter().createSelector();
|
|
63225
63232
|
this.from = event.point.clone();
|
|
63226
63233
|
this.to = event.point.clone();
|
|
@@ -63276,14 +63283,14 @@ var WhiteboardKeys = {
|
|
|
63276
63283
|
viewMatrix: "viewMatrix",
|
|
63277
63284
|
cameraMode: "cameraMode"
|
|
63278
63285
|
};
|
|
63279
|
-
function
|
|
63280
|
-
return (r =
|
|
63286
|
+
function _defineProperty22(e, r, t) {
|
|
63287
|
+
return (r = _toPropertyKey22(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
63281
63288
|
}
|
|
63282
|
-
function
|
|
63283
|
-
var i =
|
|
63289
|
+
function _toPropertyKey22(t) {
|
|
63290
|
+
var i = _toPrimitive22(t, "string");
|
|
63284
63291
|
return "symbol" == typeof i ? i : i + "";
|
|
63285
63292
|
}
|
|
63286
|
-
function
|
|
63293
|
+
function _toPrimitive22(t, r) {
|
|
63287
63294
|
if ("object" != typeof t || !t) return t;
|
|
63288
63295
|
var e = t[Symbol.toPrimitive];
|
|
63289
63296
|
if (void 0 !== e) {
|
|
@@ -63293,7 +63300,7 @@ function _toPrimitive23(t, r) {
|
|
|
63293
63300
|
}
|
|
63294
63301
|
return ("string" === r ? String : Number)(t);
|
|
63295
63302
|
}
|
|
63296
|
-
var SelectElementsModel = class extends
|
|
63303
|
+
var SelectElementsModel = class extends EventEmitter3 {
|
|
63297
63304
|
get hasEditSelfPermission() {
|
|
63298
63305
|
return this.hasPermission(WhiteboardPermissionFlag.editSelf);
|
|
63299
63306
|
}
|
|
@@ -63302,24 +63309,28 @@ var SelectElementsModel = class extends EventEmitter4 {
|
|
|
63302
63309
|
}
|
|
63303
63310
|
constructor(userManager, requestUserMap, hasPermission) {
|
|
63304
63311
|
super();
|
|
63305
|
-
|
|
63306
|
-
|
|
63307
|
-
|
|
63308
|
-
|
|
63309
|
-
|
|
63312
|
+
_defineProperty22(this, "requestUserMap", void 0);
|
|
63313
|
+
_defineProperty22(this, "userManager", void 0);
|
|
63314
|
+
_defineProperty22(this, "hasPermission", void 0);
|
|
63315
|
+
_defineProperty22(this, "observers", /* @__PURE__ */ new Map());
|
|
63316
|
+
_defineProperty22(this, "handleUserLeave", (user) => {
|
|
63310
63317
|
const cb = this.observers.get(user.id);
|
|
63311
63318
|
if (cb) {
|
|
63312
63319
|
this.requestUserMap(user.id).unobserveDeep(cb);
|
|
63320
|
+
this.observers.delete(user.id);
|
|
63313
63321
|
}
|
|
63314
63322
|
});
|
|
63315
|
-
|
|
63323
|
+
_defineProperty22(this, "handleUserJoin", (user) => {
|
|
63316
63324
|
const observer = (evts) => {
|
|
63317
63325
|
this.handleUserSelectElementsChange(user.id, evts);
|
|
63318
63326
|
};
|
|
63327
|
+
if (this.observers.has(user.id)) {
|
|
63328
|
+
this.requestUserMap(user.id).unobserveDeep(this.observers.get(user.id));
|
|
63329
|
+
}
|
|
63319
63330
|
this.requestUserMap(user.id).observeDeep(observer);
|
|
63320
63331
|
this.observers.set(user.id, observer);
|
|
63321
63332
|
});
|
|
63322
|
-
|
|
63333
|
+
_defineProperty22(this, "handleUserSelectElementsChange", (userId, evts) => {
|
|
63323
63334
|
for (const evt of evts) {
|
|
63324
63335
|
if (evt.target.get("inner-map-id") === WhiteboardKeys.selectElements) {
|
|
63325
63336
|
const elementIds = Array.from(evt.target.keys()).filter((v) => v !== "inner-map-id");
|
|
@@ -63335,6 +63346,9 @@ var SelectElementsModel = class extends EventEmitter4 {
|
|
|
63335
63346
|
const observer = (evts) => {
|
|
63336
63347
|
this.handleUserSelectElementsChange(userId, evts);
|
|
63337
63348
|
};
|
|
63349
|
+
if (this.observers.has(userId)) {
|
|
63350
|
+
this.requestUserMap(userId).unobserveDeep(this.observers.get(userId));
|
|
63351
|
+
}
|
|
63338
63352
|
this.requestUserMap(userId).observeDeep(observer);
|
|
63339
63353
|
this.observers.set(userId, observer);
|
|
63340
63354
|
});
|
|
@@ -63389,25 +63403,22 @@ var SelectElementsModel = class extends EventEmitter4 {
|
|
|
63389
63403
|
});
|
|
63390
63404
|
}
|
|
63391
63405
|
dispose() {
|
|
63392
|
-
this.
|
|
63393
|
-
|
|
63394
|
-
|
|
63395
|
-
this.requestUserMap(userId).unobserveDeep(cb);
|
|
63396
|
-
}
|
|
63397
|
-
});
|
|
63406
|
+
for (const [key, value] of this.observers.entries()) {
|
|
63407
|
+
this.requestUserMap(key).unobserveDeep(value);
|
|
63408
|
+
}
|
|
63398
63409
|
this.observers.clear();
|
|
63399
63410
|
this.userManager.off("leave", this.handleUserLeave);
|
|
63400
63411
|
this.userManager.off("join", this.handleUserJoin);
|
|
63401
63412
|
}
|
|
63402
63413
|
};
|
|
63403
|
-
function
|
|
63404
|
-
return (r =
|
|
63414
|
+
function _defineProperty23(e, r, t) {
|
|
63415
|
+
return (r = _toPropertyKey23(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
63405
63416
|
}
|
|
63406
|
-
function
|
|
63407
|
-
var i =
|
|
63417
|
+
function _toPropertyKey23(t) {
|
|
63418
|
+
var i = _toPrimitive23(t, "string");
|
|
63408
63419
|
return "symbol" == typeof i ? i : i + "";
|
|
63409
63420
|
}
|
|
63410
|
-
function
|
|
63421
|
+
function _toPrimitive23(t, r) {
|
|
63411
63422
|
if ("object" != typeof t || !t) return t;
|
|
63412
63423
|
var e = t[Symbol.toPrimitive];
|
|
63413
63424
|
if (void 0 !== e) {
|
|
@@ -63417,31 +63428,31 @@ function _toPrimitive24(t, r) {
|
|
|
63417
63428
|
}
|
|
63418
63429
|
return ("string" === r ? String : Number)(t);
|
|
63419
63430
|
}
|
|
63420
|
-
var TextEditor = class extends
|
|
63431
|
+
var TextEditor = class extends EventEmitter4 {
|
|
63421
63432
|
constructor(camera) {
|
|
63422
63433
|
super();
|
|
63423
|
-
|
|
63424
|
-
|
|
63425
|
-
|
|
63426
|
-
|
|
63427
|
-
|
|
63428
|
-
|
|
63429
|
-
|
|
63430
|
-
|
|
63434
|
+
_defineProperty23(this, "rootView", void 0);
|
|
63435
|
+
_defineProperty23(this, "content", void 0);
|
|
63436
|
+
_defineProperty23(this, "camera", void 0);
|
|
63437
|
+
_defineProperty23(this, "originX", 0);
|
|
63438
|
+
_defineProperty23(this, "originY", 0);
|
|
63439
|
+
_defineProperty23(this, "rotation", 0);
|
|
63440
|
+
_defineProperty23(this, "scale", 1);
|
|
63441
|
+
_defineProperty23(this, "handleContentInput", () => {
|
|
63431
63442
|
this.emit("change", this.content.textContent ?? "");
|
|
63432
63443
|
this.translateCaretIntoView();
|
|
63433
63444
|
});
|
|
63434
|
-
|
|
63445
|
+
_defineProperty23(this, "handleContentKeydown", (evt) => {
|
|
63435
63446
|
if (/^Arrow/.test(evt.key)) {
|
|
63436
63447
|
setTimeout(() => {
|
|
63437
63448
|
this.translateCaretIntoView();
|
|
63438
63449
|
}, 50);
|
|
63439
63450
|
}
|
|
63440
63451
|
});
|
|
63441
|
-
|
|
63452
|
+
_defineProperty23(this, "handleContentBlur", () => {
|
|
63442
63453
|
this.emit("done", this.content.textContent ?? "");
|
|
63443
63454
|
});
|
|
63444
|
-
|
|
63455
|
+
_defineProperty23(this, "handleRootClick", (evt) => {
|
|
63445
63456
|
if (evt.target === this.rootView) {
|
|
63446
63457
|
evt.stopPropagation();
|
|
63447
63458
|
evt.preventDefault();
|
|
@@ -63450,12 +63461,12 @@ var TextEditor = class extends EventEmitter5 {
|
|
|
63450
63461
|
});
|
|
63451
63462
|
this.camera = camera;
|
|
63452
63463
|
this.rootView = document.createElement("div");
|
|
63453
|
-
this.rootView.style.cssText =
|
|
63464
|
+
this.rootView.style.cssText = "position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden;";
|
|
63454
63465
|
this.content = document.createElement("div");
|
|
63455
63466
|
this.content.setAttribute("spellcheck", "false");
|
|
63456
63467
|
this.content.textContent = "";
|
|
63457
63468
|
this.content.setAttribute("contenteditable", "plaintext-only");
|
|
63458
|
-
this.content.style.cssText =
|
|
63469
|
+
this.content.style.cssText = "white-space: nowrap;border:1px solid red;text-wrap:nowrap;caret-color:red;line-height:1.2em;position:absolute;z-index:2;color:transparent;outline:none;";
|
|
63459
63470
|
this.content.style.transformOrigin = "0 0";
|
|
63460
63471
|
this.rootView.appendChild(this.content);
|
|
63461
63472
|
this.content.addEventListener("input", this.handleContentInput);
|
|
@@ -63531,14 +63542,14 @@ var TextEditor = class extends EventEmitter5 {
|
|
|
63531
63542
|
this.rootView.removeEventListener("pointerdown", this.handleRootClick);
|
|
63532
63543
|
}
|
|
63533
63544
|
};
|
|
63534
|
-
function
|
|
63535
|
-
return (r =
|
|
63545
|
+
function _defineProperty24(e, r, t) {
|
|
63546
|
+
return (r = _toPropertyKey24(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
63536
63547
|
}
|
|
63537
|
-
function
|
|
63538
|
-
var i =
|
|
63548
|
+
function _toPropertyKey24(t) {
|
|
63549
|
+
var i = _toPrimitive24(t, "string");
|
|
63539
63550
|
return "symbol" == typeof i ? i : i + "";
|
|
63540
63551
|
}
|
|
63541
|
-
function
|
|
63552
|
+
function _toPrimitive24(t, r) {
|
|
63542
63553
|
if ("object" != typeof t || !t) return t;
|
|
63543
63554
|
var e = t[Symbol.toPrimitive];
|
|
63544
63555
|
if (void 0 !== e) {
|
|
@@ -63558,7 +63569,7 @@ var ANCHOR_STYLE = {
|
|
|
63558
63569
|
b: "cursor:s-resize;bottom:-3px;left:50%;translate:-50%;",
|
|
63559
63570
|
br: "cursor:se-resize;bottom:-3px;right:-3px"
|
|
63560
63571
|
};
|
|
63561
|
-
var Bounds = class extends
|
|
63572
|
+
var Bounds = class extends EventEmitter5 {
|
|
63562
63573
|
get width() {
|
|
63563
63574
|
return this.maxX - this.minX;
|
|
63564
63575
|
}
|
|
@@ -63573,12 +63584,12 @@ var Bounds = class extends EventEmitter6 {
|
|
|
63573
63584
|
}
|
|
63574
63585
|
constructor(binding, scope) {
|
|
63575
63586
|
super();
|
|
63576
|
-
|
|
63577
|
-
|
|
63578
|
-
|
|
63579
|
-
|
|
63580
|
-
|
|
63581
|
-
|
|
63587
|
+
_defineProperty24(this, "minX", 0);
|
|
63588
|
+
_defineProperty24(this, "minY", 0);
|
|
63589
|
+
_defineProperty24(this, "maxX", 0);
|
|
63590
|
+
_defineProperty24(this, "maxY", 0);
|
|
63591
|
+
_defineProperty24(this, "binding", void 0);
|
|
63592
|
+
_defineProperty24(this, "scope", void 0);
|
|
63582
63593
|
this.binding = binding;
|
|
63583
63594
|
this.scope = scope;
|
|
63584
63595
|
}
|
|
@@ -63697,35 +63708,35 @@ var Bounds = class extends EventEmitter6 {
|
|
|
63697
63708
|
this.maxY = maxY;
|
|
63698
63709
|
}
|
|
63699
63710
|
};
|
|
63700
|
-
var Editor = class extends
|
|
63711
|
+
var Editor = class extends EventEmitter5 {
|
|
63701
63712
|
constructor(scope, shadowScope, shadowEmitter, canvasElement, camera, initConfig) {
|
|
63702
63713
|
super();
|
|
63703
|
-
|
|
63704
|
-
|
|
63705
|
-
|
|
63706
|
-
|
|
63707
|
-
|
|
63708
|
-
|
|
63709
|
-
|
|
63710
|
-
|
|
63711
|
-
|
|
63712
|
-
|
|
63713
|
-
|
|
63714
|
-
|
|
63715
|
-
|
|
63716
|
-
|
|
63717
|
-
|
|
63718
|
-
|
|
63719
|
-
|
|
63720
|
-
|
|
63721
|
-
|
|
63722
|
-
|
|
63723
|
-
|
|
63724
|
-
|
|
63725
|
-
|
|
63726
|
-
|
|
63727
|
-
|
|
63728
|
-
|
|
63714
|
+
_defineProperty24(this, "rootView", void 0);
|
|
63715
|
+
_defineProperty24(this, "frame", void 0);
|
|
63716
|
+
_defineProperty24(this, "rotator", void 0);
|
|
63717
|
+
_defineProperty24(this, "scope", void 0);
|
|
63718
|
+
_defineProperty24(this, "shadowScope", void 0);
|
|
63719
|
+
_defineProperty24(this, "shadowContainer", void 0);
|
|
63720
|
+
_defineProperty24(this, "ctrlUserMap", void 0);
|
|
63721
|
+
_defineProperty24(this, "viewerId", void 0);
|
|
63722
|
+
_defineProperty24(this, "ctrlId", void 0);
|
|
63723
|
+
_defineProperty24(this, "ctrlNickName", void 0);
|
|
63724
|
+
_defineProperty24(this, "editMode", null);
|
|
63725
|
+
_defineProperty24(this, "editCtrlName", null);
|
|
63726
|
+
_defineProperty24(this, "editAnchor", null);
|
|
63727
|
+
_defineProperty24(this, "lastEditPoint", null);
|
|
63728
|
+
_defineProperty24(this, "bounds", void 0);
|
|
63729
|
+
_defineProperty24(this, "targets", []);
|
|
63730
|
+
_defineProperty24(this, "editorConfig", null);
|
|
63731
|
+
_defineProperty24(this, "aspectRatio", -1);
|
|
63732
|
+
_defineProperty24(this, "uniformScale", false);
|
|
63733
|
+
_defineProperty24(this, "camera", void 0);
|
|
63734
|
+
_defineProperty24(this, "canvasElement", void 0);
|
|
63735
|
+
_defineProperty24(this, "resizeObserver", void 0);
|
|
63736
|
+
_defineProperty24(this, "anchors", []);
|
|
63737
|
+
_defineProperty24(this, "title", null);
|
|
63738
|
+
_defineProperty24(this, "shadowEmitter", void 0);
|
|
63739
|
+
_defineProperty24(this, "handleMatrix", (matrix) => {
|
|
63729
63740
|
if (this.shadowContainer) {
|
|
63730
63741
|
const next = matrix.appended(this.shadowContainer.data.shadowMatrix ?? new this.shadowScope.Matrix());
|
|
63731
63742
|
this.shadowContainer.data.shadowMatrix = next;
|
|
@@ -63735,7 +63746,7 @@ var Editor = class extends EventEmitter6 {
|
|
|
63735
63746
|
this.targets.forEach((target) => target.appendPointsMatrix(matrix));
|
|
63736
63747
|
}
|
|
63737
63748
|
});
|
|
63738
|
-
|
|
63749
|
+
_defineProperty24(this, "handlePointerDown", (evt) => {
|
|
63739
63750
|
if (!evt.target) {
|
|
63740
63751
|
return;
|
|
63741
63752
|
}
|
|
@@ -63791,14 +63802,14 @@ var Editor = class extends EventEmitter6 {
|
|
|
63791
63802
|
};
|
|
63792
63803
|
}
|
|
63793
63804
|
});
|
|
63794
|
-
|
|
63805
|
+
_defineProperty24(this, "handlePointerMove", (evt) => {
|
|
63795
63806
|
evt.preventDefault();
|
|
63796
63807
|
if (!evt.target) {
|
|
63797
63808
|
return;
|
|
63798
63809
|
}
|
|
63799
63810
|
if (this.editMode === "matrix" && this.editAnchor && this.lastEditPoint) {
|
|
63800
63811
|
const offsetX = evt.pageX - this.lastEditPoint.x;
|
|
63801
|
-
|
|
63812
|
+
const offsetY = evt.pageY - this.lastEditPoint.y;
|
|
63802
63813
|
this.bounds.offsetBy(this.editAnchor, offsetX, offsetY, this.uniformScale ? this.aspectRatio : -1);
|
|
63803
63814
|
this.lastEditPoint = {
|
|
63804
63815
|
x: evt.pageX,
|
|
@@ -63823,7 +63834,7 @@ var Editor = class extends EventEmitter6 {
|
|
|
63823
63834
|
}
|
|
63824
63835
|
if (this.editMode === "translate" && this.lastEditPoint) {
|
|
63825
63836
|
const offsetX = evt.pageX - this.lastEditPoint.x;
|
|
63826
|
-
|
|
63837
|
+
const offsetY = evt.pageY - this.lastEditPoint.y;
|
|
63827
63838
|
this.bounds.translate(offsetX, offsetY);
|
|
63828
63839
|
this.updateBoundsByShadow();
|
|
63829
63840
|
this.lastEditPoint = {
|
|
@@ -63842,7 +63853,7 @@ var Editor = class extends EventEmitter6 {
|
|
|
63842
63853
|
}
|
|
63843
63854
|
}
|
|
63844
63855
|
});
|
|
63845
|
-
|
|
63856
|
+
_defineProperty24(this, "handlePointerUp", (evt) => {
|
|
63846
63857
|
evt.preventDefault();
|
|
63847
63858
|
this.resetShadow();
|
|
63848
63859
|
this.shadowEmitter.setActive(false);
|
|
@@ -63859,7 +63870,7 @@ var Editor = class extends EventEmitter6 {
|
|
|
63859
63870
|
this.lastEditPoint = null;
|
|
63860
63871
|
this.uniformScale = false;
|
|
63861
63872
|
});
|
|
63862
|
-
|
|
63873
|
+
_defineProperty24(this, "handleFrameDBClick", (evt) => {
|
|
63863
63874
|
if (evt.target === this.frame && this.targets.length === 1) {
|
|
63864
63875
|
if (this.targets[0].type === "point-text") {
|
|
63865
63876
|
this.frame.style.display = "none";
|
|
@@ -63867,7 +63878,7 @@ var Editor = class extends EventEmitter6 {
|
|
|
63867
63878
|
}
|
|
63868
63879
|
}
|
|
63869
63880
|
});
|
|
63870
|
-
|
|
63881
|
+
_defineProperty24(this, "updateBounds", () => {
|
|
63871
63882
|
let minX = Number.MAX_VALUE;
|
|
63872
63883
|
let maxX = -Number.MAX_VALUE;
|
|
63873
63884
|
let minY = Number.MAX_VALUE;
|
|
@@ -63900,7 +63911,7 @@ var Editor = class extends EventEmitter6 {
|
|
|
63900
63911
|
this.ctrlId = initConfig.ctrlId;
|
|
63901
63912
|
this.ctrlNickName = initConfig.ctrlNickName;
|
|
63902
63913
|
this.rootView = document.createElement("div");
|
|
63903
|
-
this.rootView.style.cssText =
|
|
63914
|
+
this.rootView.style.cssText = "position:absolute;display:none;width:100%;height:100%;top:50%;left:50%;transform:translate(-50%,-50%);";
|
|
63904
63915
|
this.frame = document.createElement("div");
|
|
63905
63916
|
this.frame.style.position = "absolute";
|
|
63906
63917
|
this.frame.style.padding = "8px";
|
|
@@ -63921,7 +63932,7 @@ var Editor = class extends EventEmitter6 {
|
|
|
63921
63932
|
} else {
|
|
63922
63933
|
this.title = document.createElement("div");
|
|
63923
63934
|
this.title.textContent = `${this.ctrlNickName}`;
|
|
63924
|
-
this.title.style.cssText =
|
|
63935
|
+
this.title.style.cssText = "color:#fff;font-size:12px;padding: 0.2em 0.4em;border-radius: 0.4em;position: absolute;top: 0%;left: 0;margin: -0.4em;transform: translate(-100%, -100%);";
|
|
63925
63936
|
this.frame.appendChild(this.title);
|
|
63926
63937
|
this.rootView.style.pointerEvents = "none";
|
|
63927
63938
|
}
|
|
@@ -64117,14 +64128,14 @@ var Editor = class extends EventEmitter6 {
|
|
|
64117
64128
|
this.resizeObserver.disconnect();
|
|
64118
64129
|
}
|
|
64119
64130
|
};
|
|
64120
|
-
function
|
|
64121
|
-
return (r =
|
|
64131
|
+
function _defineProperty25(e, r, t) {
|
|
64132
|
+
return (r = _toPropertyKey25(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
64122
64133
|
}
|
|
64123
|
-
function
|
|
64124
|
-
var i =
|
|
64134
|
+
function _toPropertyKey25(t) {
|
|
64135
|
+
var i = _toPrimitive25(t, "string");
|
|
64125
64136
|
return "symbol" == typeof i ? i : i + "";
|
|
64126
64137
|
}
|
|
64127
|
-
function
|
|
64138
|
+
function _toPrimitive25(t, r) {
|
|
64128
64139
|
if ("object" != typeof t || !t) return t;
|
|
64129
64140
|
var e = t[Symbol.toPrimitive];
|
|
64130
64141
|
if (void 0 !== e) {
|
|
@@ -64137,13 +64148,13 @@ function _toPrimitive26(t, r) {
|
|
|
64137
64148
|
var TextTool = class extends WhiteboardTool {
|
|
64138
64149
|
constructor(enableToolEvent, model, shadowEmitter, scope, rootView, canvasElement, toolbarModel, camera) {
|
|
64139
64150
|
super(enableToolEvent, model, shadowEmitter, scope);
|
|
64140
|
-
|
|
64141
|
-
|
|
64142
|
-
|
|
64143
|
-
|
|
64144
|
-
|
|
64145
|
-
|
|
64146
|
-
|
|
64151
|
+
_defineProperty25(this, "from", null);
|
|
64152
|
+
_defineProperty25(this, "to", null);
|
|
64153
|
+
_defineProperty25(this, "rootView", void 0);
|
|
64154
|
+
_defineProperty25(this, "canvasElement", void 0);
|
|
64155
|
+
_defineProperty25(this, "elementModel", null);
|
|
64156
|
+
_defineProperty25(this, "toolbarModel", void 0);
|
|
64157
|
+
_defineProperty25(this, "camera", void 0);
|
|
64147
64158
|
this.rootView = rootView;
|
|
64148
64159
|
this.canvasElement = canvasElement;
|
|
64149
64160
|
this.toolbarModel = toolbarModel;
|
|
@@ -64152,7 +64163,7 @@ var TextTool = class extends WhiteboardTool {
|
|
|
64152
64163
|
onMouseDown(event) {
|
|
64153
64164
|
this.from = event.point.clone();
|
|
64154
64165
|
}
|
|
64155
|
-
onMouseDrag(
|
|
64166
|
+
onMouseDrag(_event) {
|
|
64156
64167
|
}
|
|
64157
64168
|
onMouseUp(event) {
|
|
64158
64169
|
this.to = event.point.clone();
|
|
@@ -64164,6 +64175,9 @@ var TextTool = class extends WhiteboardTool {
|
|
|
64164
64175
|
}
|
|
64165
64176
|
}
|
|
64166
64177
|
createPointEditor(x, y) {
|
|
64178
|
+
if (this.elementModel) {
|
|
64179
|
+
this.elementModel.dispose();
|
|
64180
|
+
}
|
|
64167
64181
|
this.elementModel = this.modelGetter().createPointText(x, y, true);
|
|
64168
64182
|
if (this.elementModel === null) {
|
|
64169
64183
|
return;
|
|
@@ -64202,14 +64216,14 @@ var TextTool = class extends WhiteboardTool {
|
|
|
64202
64216
|
}, 30);
|
|
64203
64217
|
}
|
|
64204
64218
|
};
|
|
64205
|
-
function
|
|
64206
|
-
return (r =
|
|
64219
|
+
function _defineProperty26(e, r, t) {
|
|
64220
|
+
return (r = _toPropertyKey26(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
64207
64221
|
}
|
|
64208
|
-
function
|
|
64209
|
-
var i =
|
|
64222
|
+
function _toPropertyKey26(t) {
|
|
64223
|
+
var i = _toPrimitive26(t, "string");
|
|
64210
64224
|
return "symbol" == typeof i ? i : i + "";
|
|
64211
64225
|
}
|
|
64212
|
-
function
|
|
64226
|
+
function _toPrimitive26(t, r) {
|
|
64213
64227
|
if ("object" != typeof t || !t) return t;
|
|
64214
64228
|
var e = t[Symbol.toPrimitive];
|
|
64215
64229
|
if (void 0 !== e) {
|
|
@@ -64219,14 +64233,14 @@ function _toPrimitive27(t, r) {
|
|
|
64219
64233
|
}
|
|
64220
64234
|
return ("string" === r ? String : Number)(t);
|
|
64221
64235
|
}
|
|
64222
|
-
var Gesture = class extends
|
|
64236
|
+
var Gesture = class extends EventEmitter6 {
|
|
64223
64237
|
constructor(element, scope) {
|
|
64224
64238
|
super();
|
|
64225
|
-
|
|
64226
|
-
|
|
64227
|
-
|
|
64228
|
-
|
|
64229
|
-
|
|
64239
|
+
_defineProperty26(this, "element", void 0);
|
|
64240
|
+
_defineProperty26(this, "scope", void 0);
|
|
64241
|
+
_defineProperty26(this, "lastVector", null);
|
|
64242
|
+
_defineProperty26(this, "lastPoint", null);
|
|
64243
|
+
_defineProperty26(this, "onTouchStart", (evt) => {
|
|
64230
64244
|
if (evt.touches.length > 1) {
|
|
64231
64245
|
evt.preventDefault();
|
|
64232
64246
|
evt.stopPropagation();
|
|
@@ -64239,7 +64253,7 @@ var Gesture = class extends EventEmitter7 {
|
|
|
64239
64253
|
this.lastVector = p2.subtract(p1);
|
|
64240
64254
|
this.lastPoint = p1;
|
|
64241
64255
|
});
|
|
64242
|
-
|
|
64256
|
+
_defineProperty26(this, "onTouchMove", (evt) => {
|
|
64243
64257
|
if (this.lastVector && this.lastPoint && evt.touches.length === 2) {
|
|
64244
64258
|
evt.preventDefault();
|
|
64245
64259
|
evt.stopPropagation();
|
|
@@ -64270,7 +64284,7 @@ var Gesture = class extends EventEmitter7 {
|
|
|
64270
64284
|
this.lastPoint = null;
|
|
64271
64285
|
}
|
|
64272
64286
|
});
|
|
64273
|
-
|
|
64287
|
+
_defineProperty26(this, "onTouchEnd", () => {
|
|
64274
64288
|
this.lastVector = null;
|
|
64275
64289
|
this.lastPoint = null;
|
|
64276
64290
|
});
|
|
@@ -64281,14 +64295,14 @@ var Gesture = class extends EventEmitter7 {
|
|
|
64281
64295
|
this.element.addEventListener("touchend", this.onTouchEnd);
|
|
64282
64296
|
}
|
|
64283
64297
|
};
|
|
64284
|
-
function
|
|
64285
|
-
return (r =
|
|
64298
|
+
function _defineProperty27(e, r, t) {
|
|
64299
|
+
return (r = _toPropertyKey27(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
64286
64300
|
}
|
|
64287
|
-
function
|
|
64288
|
-
var i =
|
|
64301
|
+
function _toPropertyKey27(t) {
|
|
64302
|
+
var i = _toPrimitive27(t, "string");
|
|
64289
64303
|
return "symbol" == typeof i ? i : i + "";
|
|
64290
64304
|
}
|
|
64291
|
-
function
|
|
64305
|
+
function _toPrimitive27(t, r) {
|
|
64292
64306
|
if ("object" != typeof t || !t) return t;
|
|
64293
64307
|
var e = t[Symbol.toPrimitive];
|
|
64294
64308
|
if (void 0 !== e) {
|
|
@@ -64298,7 +64312,7 @@ function _toPrimitive28(t, r) {
|
|
|
64298
64312
|
}
|
|
64299
64313
|
return ("string" === r ? String : Number)(t);
|
|
64300
64314
|
}
|
|
64301
|
-
var Camera = class extends
|
|
64315
|
+
var Camera = class extends EventEmitter7 {
|
|
64302
64316
|
get inherentMatrix() {
|
|
64303
64317
|
const inherentMatrix = new this.scope.Matrix();
|
|
64304
64318
|
inherentMatrix.scale(this.inherentScale, [0, 0]);
|
|
@@ -64310,31 +64324,31 @@ var Camera = class extends EventEmitter8 {
|
|
|
64310
64324
|
}
|
|
64311
64325
|
constructor(initSize, maxScale, dom, userManager, scope, whiteboardAttrsMap, hasPermission, requestUserMap, _paperSize, _domSize) {
|
|
64312
64326
|
super();
|
|
64313
|
-
|
|
64314
|
-
|
|
64315
|
-
|
|
64316
|
-
|
|
64327
|
+
_defineProperty27(this, "scope", void 0);
|
|
64328
|
+
_defineProperty27(this, "dom", void 0);
|
|
64329
|
+
_defineProperty27(this, "lastTriggerTime", 0);
|
|
64330
|
+
_defineProperty27(this, "lastDelta", {
|
|
64317
64331
|
x: 0,
|
|
64318
64332
|
y: 0
|
|
64319
64333
|
});
|
|
64320
|
-
|
|
64321
|
-
|
|
64322
|
-
|
|
64323
|
-
|
|
64324
|
-
|
|
64325
|
-
|
|
64326
|
-
|
|
64327
|
-
|
|
64328
|
-
|
|
64329
|
-
|
|
64330
|
-
|
|
64331
|
-
|
|
64332
|
-
|
|
64333
|
-
|
|
64334
|
-
|
|
64335
|
-
|
|
64336
|
-
|
|
64337
|
-
|
|
64334
|
+
_defineProperty27(this, "requestUserMap", void 0);
|
|
64335
|
+
_defineProperty27(this, "userManager", void 0);
|
|
64336
|
+
_defineProperty27(this, "observers", /* @__PURE__ */ new Map());
|
|
64337
|
+
_defineProperty27(this, "whiteboardAttrsMap", void 0);
|
|
64338
|
+
_defineProperty27(this, "paperSize", void 0);
|
|
64339
|
+
_defineProperty27(this, "domSize", void 0);
|
|
64340
|
+
_defineProperty27(this, "hasPermission", void 0);
|
|
64341
|
+
_defineProperty27(this, "gesture", void 0);
|
|
64342
|
+
_defineProperty27(this, "inherentScale", 1);
|
|
64343
|
+
_defineProperty27(this, "maxScale", void 0);
|
|
64344
|
+
_defineProperty27(this, "initSize", void 0);
|
|
64345
|
+
_defineProperty27(this, "bound", void 0);
|
|
64346
|
+
_defineProperty27(this, "boundTiemoutId", void 0);
|
|
64347
|
+
_defineProperty27(this, "enableByMouse", true);
|
|
64348
|
+
_defineProperty27(this, "enableByTouch", true);
|
|
64349
|
+
_defineProperty27(this, "boundaryColor", "#F44336");
|
|
64350
|
+
_defineProperty27(this, "enableBoundaryHighlight", true);
|
|
64351
|
+
_defineProperty27(this, "handleMainCameraChange", (evt) => {
|
|
64338
64352
|
const userMap = this.requestUserMap(this.userManager.selfId);
|
|
64339
64353
|
const cameraMode = userMap.get(WhiteboardKeys.cameraMode);
|
|
64340
64354
|
if (cameraMode !== "main") {
|
|
@@ -64351,20 +64365,23 @@ var Camera = class extends EventEmitter8 {
|
|
|
64351
64365
|
}
|
|
64352
64366
|
}
|
|
64353
64367
|
});
|
|
64354
|
-
|
|
64368
|
+
_defineProperty27(this, "handleUserLeave", (user) => {
|
|
64355
64369
|
const cb = this.observers.get(user.id);
|
|
64356
64370
|
if (cb) {
|
|
64357
64371
|
this.requestUserMap(user.id).unobserve(cb);
|
|
64358
64372
|
}
|
|
64359
64373
|
});
|
|
64360
|
-
|
|
64374
|
+
_defineProperty27(this, "handleUserJoin", (user) => {
|
|
64361
64375
|
const observer = (evt) => {
|
|
64362
64376
|
this.handleViewMatrixUpdate(user.id, evt);
|
|
64363
64377
|
};
|
|
64378
|
+
if (this.observers.has(user.id)) {
|
|
64379
|
+
this.requestUserMap(user.id).unobserve(observer);
|
|
64380
|
+
}
|
|
64364
64381
|
this.requestUserMap(user.id).observe(observer);
|
|
64365
64382
|
this.observers.set(user.id, observer);
|
|
64366
64383
|
});
|
|
64367
|
-
|
|
64384
|
+
_defineProperty27(this, "handleViewMatrixUpdate", (userId, evt) => {
|
|
64368
64385
|
const cameraMode = this.requestUserMap(this.userManager.selfId).get(WhiteboardKeys.cameraMode);
|
|
64369
64386
|
for (const [key, value] of evt.changes.keys.entries()) {
|
|
64370
64387
|
if (value.action === "update") {
|
|
@@ -64391,7 +64408,7 @@ var Camera = class extends EventEmitter8 {
|
|
|
64391
64408
|
}
|
|
64392
64409
|
}
|
|
64393
64410
|
});
|
|
64394
|
-
|
|
64411
|
+
_defineProperty27(this, "handleWheel", (evt) => {
|
|
64395
64412
|
if (!this.enableByMouse) {
|
|
64396
64413
|
return;
|
|
64397
64414
|
}
|
|
@@ -64440,7 +64457,7 @@ var Camera = class extends EventEmitter8 {
|
|
|
64440
64457
|
});
|
|
64441
64458
|
this.maxScale = maxScale;
|
|
64442
64459
|
this.bound = window.document.createElement("div");
|
|
64443
|
-
this.bound.style.cssText =
|
|
64460
|
+
this.bound.style.cssText = "transition: box-shadow 100ms;pointer-events:none;z-index:99;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);";
|
|
64444
64461
|
this.initSize = initSize;
|
|
64445
64462
|
this.hasPermission = hasPermission;
|
|
64446
64463
|
this.paperSize = _paperSize;
|
|
@@ -64465,6 +64482,9 @@ var Camera = class extends EventEmitter8 {
|
|
|
64465
64482
|
const observer = (evt) => {
|
|
64466
64483
|
this.handleViewMatrixUpdate(userId, evt);
|
|
64467
64484
|
};
|
|
64485
|
+
if (this.observers.has(userId)) {
|
|
64486
|
+
this.requestUserMap(userId).unobserve(observer);
|
|
64487
|
+
}
|
|
64468
64488
|
this.requestUserMap(userId).observe(observer);
|
|
64469
64489
|
this.observers.set(userId, observer);
|
|
64470
64490
|
});
|
|
@@ -64501,7 +64521,7 @@ var Camera = class extends EventEmitter8 {
|
|
|
64501
64521
|
this.bound.style.boxShadow = `inset 0px 0px 6px 2px ${this.boundaryColor}`;
|
|
64502
64522
|
window.clearTimeout(this.boundTiemoutId);
|
|
64503
64523
|
this.boundTiemoutId = window.setTimeout(() => {
|
|
64504
|
-
this.bound.style.boxShadow =
|
|
64524
|
+
this.bound.style.boxShadow = "none";
|
|
64505
64525
|
}, 100);
|
|
64506
64526
|
}
|
|
64507
64527
|
}
|
|
@@ -64511,6 +64531,9 @@ var Camera = class extends EventEmitter8 {
|
|
|
64511
64531
|
updateInherentScale(scale) {
|
|
64512
64532
|
this.inherentScale = scale;
|
|
64513
64533
|
}
|
|
64534
|
+
getInherentScale() {
|
|
64535
|
+
return this.inherentScale;
|
|
64536
|
+
}
|
|
64514
64537
|
getActiveMatrix() {
|
|
64515
64538
|
const cameraMode = this.requestUserMap(this.userManager.selfId).get(WhiteboardKeys.cameraMode);
|
|
64516
64539
|
let matrixValue;
|
|
@@ -64653,15 +64676,28 @@ var Camera = class extends EventEmitter8 {
|
|
|
64653
64676
|
y: 0
|
|
64654
64677
|
};
|
|
64655
64678
|
}
|
|
64679
|
+
dispose() {
|
|
64680
|
+
Array.from(this.observers.keys()).forEach((userId) => {
|
|
64681
|
+
const cb = this.observers.get(userId);
|
|
64682
|
+
if (cb) {
|
|
64683
|
+
this.requestUserMap(userId).unobserve(cb);
|
|
64684
|
+
}
|
|
64685
|
+
});
|
|
64686
|
+
this.whiteboardAttrsMap.unobserve(this.handleMainCameraChange);
|
|
64687
|
+
this.userManager.off("join", this.handleUserJoin);
|
|
64688
|
+
this.userManager.off("leave", this.handleUserLeave);
|
|
64689
|
+
this.gesture.removeAllListeners();
|
|
64690
|
+
this.removeAllListeners();
|
|
64691
|
+
}
|
|
64656
64692
|
};
|
|
64657
|
-
function
|
|
64658
|
-
return (r =
|
|
64693
|
+
function _defineProperty28(e, r, t) {
|
|
64694
|
+
return (r = _toPropertyKey28(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
64659
64695
|
}
|
|
64660
|
-
function
|
|
64661
|
-
var i =
|
|
64696
|
+
function _toPropertyKey28(t) {
|
|
64697
|
+
var i = _toPrimitive28(t, "string");
|
|
64662
64698
|
return "symbol" == typeof i ? i : i + "";
|
|
64663
64699
|
}
|
|
64664
|
-
function
|
|
64700
|
+
function _toPrimitive28(t, r) {
|
|
64665
64701
|
if ("object" != typeof t || !t) return t;
|
|
64666
64702
|
var e = t[Symbol.toPrimitive];
|
|
64667
64703
|
if (void 0 !== e) {
|
|
@@ -64674,12 +64710,15 @@ function _toPrimitive29(t, r) {
|
|
|
64674
64710
|
var EllipseTool = class extends WhiteboardTool {
|
|
64675
64711
|
constructor(enableToolEvent, modelGetter, shadowEmitter, scope) {
|
|
64676
64712
|
super(enableToolEvent, modelGetter, shadowEmitter, scope);
|
|
64677
|
-
|
|
64678
|
-
|
|
64679
|
-
|
|
64713
|
+
_defineProperty28(this, "elementModel", null);
|
|
64714
|
+
_defineProperty28(this, "from", null);
|
|
64715
|
+
_defineProperty28(this, "to", null);
|
|
64680
64716
|
this.tool.minDistance = 1;
|
|
64681
64717
|
}
|
|
64682
64718
|
onMouseDown(event) {
|
|
64719
|
+
if (this.elementModel) {
|
|
64720
|
+
this.elementModel.dispose();
|
|
64721
|
+
}
|
|
64683
64722
|
this.elementModel = this.modelGetter().createSegmentedPath("ellipse", true);
|
|
64684
64723
|
this.from = event.point.clone();
|
|
64685
64724
|
this.to = event.point.clone();
|
|
@@ -64703,14 +64742,14 @@ var EllipseTool = class extends WhiteboardTool {
|
|
|
64703
64742
|
}
|
|
64704
64743
|
}
|
|
64705
64744
|
};
|
|
64706
|
-
function
|
|
64707
|
-
return (r =
|
|
64745
|
+
function _defineProperty29(e, r, t) {
|
|
64746
|
+
return (r = _toPropertyKey29(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
64708
64747
|
}
|
|
64709
|
-
function
|
|
64710
|
-
var i =
|
|
64748
|
+
function _toPropertyKey29(t) {
|
|
64749
|
+
var i = _toPrimitive29(t, "string");
|
|
64711
64750
|
return "symbol" == typeof i ? i : i + "";
|
|
64712
64751
|
}
|
|
64713
|
-
function
|
|
64752
|
+
function _toPrimitive29(t, r) {
|
|
64714
64753
|
if ("object" != typeof t || !t) return t;
|
|
64715
64754
|
var e = t[Symbol.toPrimitive];
|
|
64716
64755
|
if (void 0 !== e) {
|
|
@@ -64723,12 +64762,15 @@ function _toPrimitive30(t, r) {
|
|
|
64723
64762
|
var TriangleTool = class extends WhiteboardTool {
|
|
64724
64763
|
constructor(enableToolEvent, modelGetter, shadowEmitter, scope) {
|
|
64725
64764
|
super(enableToolEvent, modelGetter, shadowEmitter, scope);
|
|
64726
|
-
|
|
64727
|
-
|
|
64728
|
-
|
|
64765
|
+
_defineProperty29(this, "elementModel", null);
|
|
64766
|
+
_defineProperty29(this, "from", null);
|
|
64767
|
+
_defineProperty29(this, "to", null);
|
|
64729
64768
|
this.tool.minDistance = 1;
|
|
64730
64769
|
}
|
|
64731
64770
|
onMouseDown(event) {
|
|
64771
|
+
if (this.elementModel) {
|
|
64772
|
+
this.elementModel.dispose();
|
|
64773
|
+
}
|
|
64732
64774
|
this.elementModel = this.modelGetter().createTriangle(true);
|
|
64733
64775
|
this.from = event.point.clone();
|
|
64734
64776
|
this.to = event.point.clone();
|
|
@@ -64748,14 +64790,14 @@ var TriangleTool = class extends WhiteboardTool {
|
|
|
64748
64790
|
}
|
|
64749
64791
|
}
|
|
64750
64792
|
};
|
|
64751
|
-
function
|
|
64752
|
-
return (r =
|
|
64793
|
+
function _defineProperty30(e, r, t) {
|
|
64794
|
+
return (r = _toPropertyKey30(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
64753
64795
|
}
|
|
64754
|
-
function
|
|
64755
|
-
var i =
|
|
64796
|
+
function _toPropertyKey30(t) {
|
|
64797
|
+
var i = _toPrimitive30(t, "string");
|
|
64756
64798
|
return "symbol" == typeof i ? i : i + "";
|
|
64757
64799
|
}
|
|
64758
|
-
function
|
|
64800
|
+
function _toPrimitive30(t, r) {
|
|
64759
64801
|
if ("object" != typeof t || !t) return t;
|
|
64760
64802
|
var e = t[Symbol.toPrimitive];
|
|
64761
64803
|
if (void 0 !== e) {
|
|
@@ -64765,63 +64807,63 @@ function _toPrimitive31(t, r) {
|
|
|
64765
64807
|
}
|
|
64766
64808
|
return ("string" === r ? String : Number)(t);
|
|
64767
64809
|
}
|
|
64768
|
-
var Whiteboard = class extends
|
|
64810
|
+
var Whiteboard = class extends EventEmitter8 {
|
|
64769
64811
|
// public insertImage!: (src: string) => void;
|
|
64770
64812
|
constructor(view) {
|
|
64771
64813
|
super();
|
|
64772
|
-
|
|
64773
|
-
|
|
64774
|
-
|
|
64775
|
-
|
|
64776
|
-
|
|
64777
|
-
|
|
64778
|
-
|
|
64779
|
-
|
|
64780
|
-
|
|
64781
|
-
|
|
64782
|
-
|
|
64783
|
-
|
|
64784
|
-
|
|
64785
|
-
|
|
64786
|
-
|
|
64787
|
-
|
|
64788
|
-
|
|
64789
|
-
|
|
64790
|
-
|
|
64791
|
-
|
|
64792
|
-
|
|
64793
|
-
|
|
64794
|
-
|
|
64795
|
-
|
|
64796
|
-
|
|
64797
|
-
|
|
64798
|
-
|
|
64799
|
-
|
|
64800
|
-
|
|
64801
|
-
|
|
64802
|
-
|
|
64803
|
-
|
|
64804
|
-
|
|
64805
|
-
|
|
64806
|
-
|
|
64807
|
-
|
|
64808
|
-
|
|
64809
|
-
|
|
64810
|
-
|
|
64811
|
-
|
|
64812
|
-
|
|
64813
|
-
|
|
64814
|
+
_defineProperty30(this, "view", void 0);
|
|
64815
|
+
_defineProperty30(this, "selfUserId", void 0);
|
|
64816
|
+
_defineProperty30(this, "permissions", void 0);
|
|
64817
|
+
_defineProperty30(this, "tool", void 0);
|
|
64818
|
+
_defineProperty30(this, "fontSize", void 0);
|
|
64819
|
+
_defineProperty30(this, "dashArray", void 0);
|
|
64820
|
+
_defineProperty30(this, "fontFamily", void 0);
|
|
64821
|
+
_defineProperty30(this, "strokeColor", void 0);
|
|
64822
|
+
_defineProperty30(this, "fillColor", void 0);
|
|
64823
|
+
_defineProperty30(this, "strokeWidth", void 0);
|
|
64824
|
+
_defineProperty30(this, "enableCameraByMouse", void 0);
|
|
64825
|
+
_defineProperty30(this, "enableCameraByTouch", void 0);
|
|
64826
|
+
_defineProperty30(this, "cameraBoundaryColor", void 0);
|
|
64827
|
+
_defineProperty30(this, "enableCameraBoundaryHighlight", void 0);
|
|
64828
|
+
_defineProperty30(this, "getElementAttribute", void 0);
|
|
64829
|
+
_defineProperty30(this, "setElementAttribute", void 0);
|
|
64830
|
+
_defineProperty30(this, "getCurrentTool", void 0);
|
|
64831
|
+
_defineProperty30(this, "setCurrentTool", void 0);
|
|
64832
|
+
_defineProperty30(this, "setCanvasBackgroundColor", void 0);
|
|
64833
|
+
_defineProperty30(this, "setThemeColor", void 0);
|
|
64834
|
+
_defineProperty30(this, "gotoPage", void 0);
|
|
64835
|
+
_defineProperty30(this, "addPage", void 0);
|
|
64836
|
+
_defineProperty30(this, "deletePage", void 0);
|
|
64837
|
+
_defineProperty30(this, "pageList", void 0);
|
|
64838
|
+
_defineProperty30(this, "currentPageId", void 0);
|
|
64839
|
+
_defineProperty30(this, "clonePage", void 0);
|
|
64840
|
+
_defineProperty30(this, "clearPage", void 0);
|
|
64841
|
+
_defineProperty30(this, "translateCamera", void 0);
|
|
64842
|
+
_defineProperty30(this, "scaleCamera", void 0);
|
|
64843
|
+
_defineProperty30(this, "resetCamera", void 0);
|
|
64844
|
+
_defineProperty30(this, "setFreeModelUserPage", void 0);
|
|
64845
|
+
_defineProperty30(this, "indexedNavigation", void 0);
|
|
64846
|
+
_defineProperty30(this, "setViewModeToFree", void 0);
|
|
64847
|
+
_defineProperty30(this, "setViewModeToFlow", void 0);
|
|
64848
|
+
_defineProperty30(this, "setViewModeToMain", void 0);
|
|
64849
|
+
_defineProperty30(this, "getViewModel", void 0);
|
|
64850
|
+
_defineProperty30(this, "undo", void 0);
|
|
64851
|
+
_defineProperty30(this, "redo", void 0);
|
|
64852
|
+
_defineProperty30(this, "rasterizeViewport", void 0);
|
|
64853
|
+
_defineProperty30(this, "rasterizeElementsBounds", void 0);
|
|
64854
|
+
_defineProperty30(this, "rasterizeMaxBounds", void 0);
|
|
64855
|
+
_defineProperty30(this, "setInputType", void 0);
|
|
64814
64856
|
this.view = view;
|
|
64815
64857
|
}
|
|
64816
64858
|
};
|
|
64817
|
-
function
|
|
64818
|
-
return (r =
|
|
64859
|
+
function _defineProperty31(e, r, t) {
|
|
64860
|
+
return (r = _toPropertyKey31(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
64819
64861
|
}
|
|
64820
|
-
function
|
|
64821
|
-
var i =
|
|
64862
|
+
function _toPropertyKey31(t) {
|
|
64863
|
+
var i = _toPrimitive31(t, "string");
|
|
64822
64864
|
return "symbol" == typeof i ? i : i + "";
|
|
64823
64865
|
}
|
|
64824
|
-
function
|
|
64866
|
+
function _toPrimitive31(t, r) {
|
|
64825
64867
|
if ("object" != typeof t || !t) return t;
|
|
64826
64868
|
var e = t[Symbol.toPrimitive];
|
|
64827
64869
|
if (void 0 !== e) {
|
|
@@ -64834,14 +64876,17 @@ function _toPrimitive32(t, r) {
|
|
|
64834
64876
|
var EraserTool = class extends WhiteboardTool {
|
|
64835
64877
|
constructor(enableToolEvent, renderableModel, shadowEmitter, scope, trashedElementsModel) {
|
|
64836
64878
|
super(enableToolEvent, renderableModel, shadowEmitter, scope);
|
|
64837
|
-
|
|
64838
|
-
|
|
64839
|
-
|
|
64879
|
+
_defineProperty31(this, "elementModel", null);
|
|
64880
|
+
_defineProperty31(this, "trashedElementsModel", void 0);
|
|
64881
|
+
_defineProperty31(this, "pointCount", 0);
|
|
64840
64882
|
this.trashedElementsModel = trashedElementsModel;
|
|
64841
64883
|
this.tool.minDistance = 1;
|
|
64842
64884
|
}
|
|
64843
|
-
onMouseDown(
|
|
64885
|
+
onMouseDown(_event) {
|
|
64844
64886
|
this.pointCount = 0;
|
|
64887
|
+
if (this.elementModel) {
|
|
64888
|
+
this.elementModel.dispose();
|
|
64889
|
+
}
|
|
64845
64890
|
this.elementModel = this.modelGetter().createEraser();
|
|
64846
64891
|
}
|
|
64847
64892
|
onMouseDrag(event) {
|
|
@@ -64863,21 +64908,21 @@ var EraserTool = class extends WhiteboardTool {
|
|
|
64863
64908
|
}
|
|
64864
64909
|
});
|
|
64865
64910
|
}
|
|
64866
|
-
onMouseUp(
|
|
64911
|
+
onMouseUp(_event) {
|
|
64867
64912
|
if (this.elementModel) {
|
|
64868
64913
|
this.modelGetter().removeElementItem(this.elementModel.uuid);
|
|
64869
64914
|
}
|
|
64870
64915
|
this.trashedElementsModel.removeAllTrashedElementsForSelf();
|
|
64871
64916
|
}
|
|
64872
64917
|
};
|
|
64873
|
-
function
|
|
64874
|
-
return (r =
|
|
64918
|
+
function _defineProperty32(e, r, t) {
|
|
64919
|
+
return (r = _toPropertyKey32(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
64875
64920
|
}
|
|
64876
|
-
function
|
|
64877
|
-
var i =
|
|
64921
|
+
function _toPropertyKey32(t) {
|
|
64922
|
+
var i = _toPrimitive32(t, "string");
|
|
64878
64923
|
return "symbol" == typeof i ? i : i + "";
|
|
64879
64924
|
}
|
|
64880
|
-
function
|
|
64925
|
+
function _toPrimitive32(t, r) {
|
|
64881
64926
|
if ("object" != typeof t || !t) return t;
|
|
64882
64927
|
var e = t[Symbol.toPrimitive];
|
|
64883
64928
|
if (void 0 !== e) {
|
|
@@ -64887,7 +64932,7 @@ function _toPrimitive33(t, r) {
|
|
|
64887
64932
|
}
|
|
64888
64933
|
return ("string" === r ? String : Number)(t);
|
|
64889
64934
|
}
|
|
64890
|
-
var TrashedElementsModel = class extends
|
|
64935
|
+
var TrashedElementsModel = class extends EventEmitter9 {
|
|
64891
64936
|
get hasDeleteSelfPermission() {
|
|
64892
64937
|
return this.hasPermission(WhiteboardPermissionFlag.deleteSelf);
|
|
64893
64938
|
}
|
|
@@ -64896,20 +64941,23 @@ var TrashedElementsModel = class extends EventEmitter10 {
|
|
|
64896
64941
|
}
|
|
64897
64942
|
constructor(userManager, requestUserMap, hasPermission) {
|
|
64898
64943
|
super();
|
|
64899
|
-
|
|
64900
|
-
|
|
64901
|
-
|
|
64902
|
-
|
|
64903
|
-
|
|
64944
|
+
_defineProperty32(this, "requestUserMap", void 0);
|
|
64945
|
+
_defineProperty32(this, "userManager", void 0);
|
|
64946
|
+
_defineProperty32(this, "hasPermission", void 0);
|
|
64947
|
+
_defineProperty32(this, "observers", /* @__PURE__ */ new Map());
|
|
64948
|
+
_defineProperty32(this, "handleUserLeave", (user) => {
|
|
64904
64949
|
const cb = this.observers.get(user.id);
|
|
64905
64950
|
if (cb) {
|
|
64906
64951
|
this.requestUserMap(user.id).unobserveDeep(cb);
|
|
64907
64952
|
}
|
|
64908
64953
|
});
|
|
64909
|
-
|
|
64954
|
+
_defineProperty32(this, "handleUserJoin", (user) => {
|
|
64910
64955
|
const observer = (evts) => {
|
|
64911
64956
|
this.handleUserTrashElementsChange(user.id, evts);
|
|
64912
64957
|
};
|
|
64958
|
+
if (this.observers.has(user.id)) {
|
|
64959
|
+
this.requestUserMap(user.id).unobserveDeep(this.observers.get(user.id));
|
|
64960
|
+
}
|
|
64913
64961
|
this.requestUserMap(user.id).observeDeep(observer);
|
|
64914
64962
|
this.observers.set(user.id, observer);
|
|
64915
64963
|
});
|
|
@@ -64921,6 +64969,9 @@ var TrashedElementsModel = class extends EventEmitter10 {
|
|
|
64921
64969
|
const observer = (evts) => {
|
|
64922
64970
|
this.handleUserTrashElementsChange(userId, evts);
|
|
64923
64971
|
};
|
|
64972
|
+
if (this.observers.has(userId)) {
|
|
64973
|
+
this.requestUserMap(userId).unobserveDeep(this.observers.get(userId));
|
|
64974
|
+
}
|
|
64924
64975
|
this.requestUserMap(userId).observeDeep(observer);
|
|
64925
64976
|
this.observers.set(userId, observer);
|
|
64926
64977
|
});
|
|
@@ -64975,25 +65026,22 @@ var TrashedElementsModel = class extends EventEmitter10 {
|
|
|
64975
65026
|
});
|
|
64976
65027
|
}
|
|
64977
65028
|
dispose() {
|
|
64978
|
-
this.
|
|
64979
|
-
|
|
64980
|
-
|
|
64981
|
-
this.requestUserMap(userId).unobserveDeep(cb);
|
|
64982
|
-
}
|
|
64983
|
-
});
|
|
65029
|
+
for (const [key, value] of this.observers.entries()) {
|
|
65030
|
+
this.requestUserMap(key).unobserveDeep(value);
|
|
65031
|
+
}
|
|
64984
65032
|
this.observers.clear();
|
|
64985
65033
|
this.userManager.off("leave", this.handleUserLeave);
|
|
64986
65034
|
this.userManager.off("join", this.handleUserJoin);
|
|
64987
65035
|
}
|
|
64988
65036
|
};
|
|
64989
|
-
function
|
|
64990
|
-
return (r =
|
|
65037
|
+
function _defineProperty33(e, r, t) {
|
|
65038
|
+
return (r = _toPropertyKey33(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
64991
65039
|
}
|
|
64992
|
-
function
|
|
64993
|
-
var i =
|
|
65040
|
+
function _toPropertyKey33(t) {
|
|
65041
|
+
var i = _toPrimitive33(t, "string");
|
|
64994
65042
|
return "symbol" == typeof i ? i : i + "";
|
|
64995
65043
|
}
|
|
64996
|
-
function
|
|
65044
|
+
function _toPrimitive33(t, r) {
|
|
64997
65045
|
if ("object" != typeof t || !t) return t;
|
|
64998
65046
|
var e = t[Symbol.toPrimitive];
|
|
64999
65047
|
if (void 0 !== e) {
|
|
@@ -65006,12 +65054,15 @@ function _toPrimitive34(t, r) {
|
|
|
65006
65054
|
var LaserPointerTool = class extends WhiteboardTool {
|
|
65007
65055
|
constructor(enableToolEvent, modelGetter, shadowEmitter, scope) {
|
|
65008
65056
|
super(enableToolEvent, modelGetter, shadowEmitter, scope);
|
|
65009
|
-
|
|
65010
|
-
|
|
65057
|
+
_defineProperty33(this, "elementModel", null);
|
|
65058
|
+
_defineProperty33(this, "pointCount", 0);
|
|
65011
65059
|
this.tool.minDistance = 5;
|
|
65012
65060
|
}
|
|
65013
|
-
onMouseDown(
|
|
65061
|
+
onMouseDown(_event) {
|
|
65014
65062
|
this.pointCount = 0;
|
|
65063
|
+
if (this.elementModel) {
|
|
65064
|
+
this.elementModel.dispose();
|
|
65065
|
+
}
|
|
65015
65066
|
this.elementModel = this.modelGetter().createLaserPointer();
|
|
65016
65067
|
}
|
|
65017
65068
|
onMouseDrag(event) {
|
|
@@ -65023,20 +65074,20 @@ var LaserPointerTool = class extends WhiteboardTool {
|
|
|
65023
65074
|
this.elementModel.appendPoints([event.point.x, event.point.y]);
|
|
65024
65075
|
}
|
|
65025
65076
|
}
|
|
65026
|
-
onMouseUp(
|
|
65077
|
+
onMouseUp(_event) {
|
|
65027
65078
|
if (this.elementModel) {
|
|
65028
65079
|
this.elementModel.beginRemoveAnimate();
|
|
65029
65080
|
}
|
|
65030
65081
|
}
|
|
65031
65082
|
};
|
|
65032
|
-
function
|
|
65033
|
-
return (r =
|
|
65083
|
+
function _defineProperty34(e, r, t) {
|
|
65084
|
+
return (r = _toPropertyKey34(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
65034
65085
|
}
|
|
65035
|
-
function
|
|
65036
|
-
var i =
|
|
65086
|
+
function _toPropertyKey34(t) {
|
|
65087
|
+
var i = _toPrimitive34(t, "string");
|
|
65037
65088
|
return "symbol" == typeof i ? i : i + "";
|
|
65038
65089
|
}
|
|
65039
|
-
function
|
|
65090
|
+
function _toPrimitive34(t, r) {
|
|
65040
65091
|
if ("object" != typeof t || !t) return t;
|
|
65041
65092
|
var e = t[Symbol.toPrimitive];
|
|
65042
65093
|
if (void 0 !== e) {
|
|
@@ -65046,25 +65097,25 @@ function _toPrimitive35(t, r) {
|
|
|
65046
65097
|
}
|
|
65047
65098
|
return ("string" === r ? String : Number)(t);
|
|
65048
65099
|
}
|
|
65049
|
-
var PageModel = class extends
|
|
65100
|
+
var PageModel = class extends EventEmitter10 {
|
|
65050
65101
|
constructor(whiteboardAttrsMap, userManager, requestUserMap, pageMap, hasPermission) {
|
|
65051
65102
|
super();
|
|
65052
|
-
|
|
65053
|
-
|
|
65054
|
-
|
|
65055
|
-
|
|
65056
|
-
|
|
65057
|
-
|
|
65058
|
-
|
|
65103
|
+
_defineProperty34(this, "whiteboardAttrsMap", void 0);
|
|
65104
|
+
_defineProperty34(this, "pageMap", void 0);
|
|
65105
|
+
_defineProperty34(this, "requestUserMap", void 0);
|
|
65106
|
+
_defineProperty34(this, "userManager", void 0);
|
|
65107
|
+
_defineProperty34(this, "observers", /* @__PURE__ */ new Map());
|
|
65108
|
+
_defineProperty34(this, "hasPermission", void 0);
|
|
65109
|
+
_defineProperty34(this, "handleUserLeave", (user) => {
|
|
65059
65110
|
const cb = this.observers.get(user.id);
|
|
65060
65111
|
if (cb) {
|
|
65061
65112
|
this.requestUserMap(user.id).unobserve(cb);
|
|
65062
65113
|
}
|
|
65063
65114
|
});
|
|
65064
|
-
|
|
65115
|
+
_defineProperty34(this, "handleUserJoin", (user) => {
|
|
65065
65116
|
this.createCurrentPageObserver(user.id);
|
|
65066
65117
|
});
|
|
65067
|
-
|
|
65118
|
+
_defineProperty34(this, "handleMainPageChange", (evt) => {
|
|
65068
65119
|
for (const [key, value] of evt.changes.keys.entries()) {
|
|
65069
65120
|
if (key === WhiteboardKeys.currentPage) {
|
|
65070
65121
|
const cameraMode = this.requestUserMap(this.userManager.selfId).get(WhiteboardKeys.cameraMode);
|
|
@@ -65082,7 +65133,7 @@ var PageModel = class extends EventEmitter11 {
|
|
|
65082
65133
|
}
|
|
65083
65134
|
}
|
|
65084
65135
|
});
|
|
65085
|
-
|
|
65136
|
+
_defineProperty34(this, "handleUserCurrentPageChange", (userId, evt) => {
|
|
65086
65137
|
for (const [key, value] of evt.changes.keys.entries()) {
|
|
65087
65138
|
if (key === WhiteboardKeys.currentPage) {
|
|
65088
65139
|
const cameraMode = this.requestUserMap(this.userManager.selfId).get(WhiteboardKeys.cameraMode);
|
|
@@ -65099,7 +65150,7 @@ var PageModel = class extends EventEmitter11 {
|
|
|
65099
65150
|
}
|
|
65100
65151
|
}
|
|
65101
65152
|
});
|
|
65102
|
-
|
|
65153
|
+
_defineProperty34(this, "handlePageMapChange", () => {
|
|
65103
65154
|
this.emit("pagesChange", Array.from(this.pageMap.keys()));
|
|
65104
65155
|
});
|
|
65105
65156
|
this.hasPermission = hasPermission;
|
|
@@ -65141,11 +65192,11 @@ var PageModel = class extends EventEmitter11 {
|
|
|
65141
65192
|
}
|
|
65142
65193
|
const cameraMode = this.requestUserMap(this.userManager.selfId).get(WhiteboardKeys.cameraMode);
|
|
65143
65194
|
if (cameraMode !== "main") {
|
|
65144
|
-
console.warn(
|
|
65195
|
+
console.warn("cannot modify pages in non-main view mode.");
|
|
65145
65196
|
return false;
|
|
65146
65197
|
}
|
|
65147
65198
|
if (!this.hasPermission(WhiteboardPermissionFlag.mainView)) {
|
|
65148
|
-
console.warn(
|
|
65199
|
+
console.warn("cannot modify pages without WhiteboardPermissionFlag.mainView.");
|
|
65149
65200
|
return false;
|
|
65150
65201
|
}
|
|
65151
65202
|
return true;
|
|
@@ -65197,23 +65248,32 @@ var PageModel = class extends EventEmitter11 {
|
|
|
65197
65248
|
}
|
|
65198
65249
|
}
|
|
65199
65250
|
}
|
|
65251
|
+
dispose() {
|
|
65252
|
+
for (const entry of this.observers.entries()) {
|
|
65253
|
+
const [userId, observer] = entry;
|
|
65254
|
+
this.requestUserMap(userId).unobserve(observer);
|
|
65255
|
+
}
|
|
65256
|
+
this.userManager.off("join", this.handleUserJoin);
|
|
65257
|
+
this.userManager.off("leave", this.handleUserLeave);
|
|
65258
|
+
this.whiteboardAttrsMap.unobserve(this.handleMainPageChange);
|
|
65259
|
+
this.pageMap.unobserve(this.handlePageMapChange);
|
|
65260
|
+
}
|
|
65200
65261
|
};
|
|
65201
65262
|
var delay = (value) => new Promise((resolve) => setTimeout(resolve, value));
|
|
65202
65263
|
async function waitUntil(fn, timeout) {
|
|
65203
|
-
|
|
65264
|
+
const start = Date.now();
|
|
65204
65265
|
while (!fn() && Date.now() - start < timeout) {
|
|
65205
65266
|
await delay(50);
|
|
65206
|
-
start = Date.now();
|
|
65207
65267
|
}
|
|
65208
65268
|
}
|
|
65209
|
-
function
|
|
65210
|
-
return (r =
|
|
65269
|
+
function _defineProperty35(e, r, t) {
|
|
65270
|
+
return (r = _toPropertyKey35(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
65211
65271
|
}
|
|
65212
|
-
function
|
|
65213
|
-
var i =
|
|
65272
|
+
function _toPropertyKey35(t) {
|
|
65273
|
+
var i = _toPrimitive35(t, "string");
|
|
65214
65274
|
return "symbol" == typeof i ? i : i + "";
|
|
65215
65275
|
}
|
|
65216
|
-
function
|
|
65276
|
+
function _toPrimitive35(t, r) {
|
|
65217
65277
|
if ("object" != typeof t || !t) return t;
|
|
65218
65278
|
var e = t[Symbol.toPrimitive];
|
|
65219
65279
|
if (void 0 !== e) {
|
|
@@ -65223,19 +65283,19 @@ function _toPrimitive36(t, r) {
|
|
|
65223
65283
|
}
|
|
65224
65284
|
return ("string" === r ? String : Number)(t);
|
|
65225
65285
|
}
|
|
65226
|
-
var IndexedNavigation = class extends
|
|
65286
|
+
var IndexedNavigation = class extends EventEmitter11 {
|
|
65227
65287
|
get idList() {
|
|
65228
65288
|
return this.pageModel.pageList().filter((id) => /^_i_/.test(id));
|
|
65229
65289
|
}
|
|
65230
65290
|
get head() {
|
|
65231
|
-
|
|
65291
|
+
const headId = Object.keys(this.list).find((key) => {
|
|
65232
65292
|
return this.list[key] && this.list[key].prev === "";
|
|
65233
65293
|
});
|
|
65234
65294
|
if (!headId) {
|
|
65235
|
-
log2(
|
|
65295
|
+
log2("indexed navigation confusion", {
|
|
65236
65296
|
list: JSON.stringify(this.list)
|
|
65237
65297
|
}, "error");
|
|
65238
|
-
throw new Error(
|
|
65298
|
+
throw new Error("indexed navigation confusion");
|
|
65239
65299
|
}
|
|
65240
65300
|
return headId;
|
|
65241
65301
|
}
|
|
@@ -65250,13 +65310,13 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65250
65310
|
}
|
|
65251
65311
|
constructor(pageModel, userMap, indexedPageMap, hasPermission) {
|
|
65252
65312
|
super();
|
|
65253
|
-
|
|
65254
|
-
|
|
65255
|
-
|
|
65256
|
-
|
|
65257
|
-
|
|
65258
|
-
|
|
65259
|
-
|
|
65313
|
+
_defineProperty35(this, "idPool", /* @__PURE__ */ new Set());
|
|
65314
|
+
_defineProperty35(this, "pageModel", void 0);
|
|
65315
|
+
_defineProperty35(this, "userMap", void 0);
|
|
65316
|
+
_defineProperty35(this, "indexedPageMap", void 0);
|
|
65317
|
+
_defineProperty35(this, "list", {});
|
|
65318
|
+
_defineProperty35(this, "hasPermission", void 0);
|
|
65319
|
+
_defineProperty35(this, "handleIndexedPageMapUpdate", (_evt) => {
|
|
65260
65320
|
this.list = this.indexedPageMap.get("list");
|
|
65261
65321
|
const needRemoveList = this.pageModel.pageList().filter((v) => /^_i_/.test(v) && Object.keys(this.list).indexOf(v) < 0);
|
|
65262
65322
|
const needAddList = Object.keys(this.list).filter((v) => this.pageModel.pageList().indexOf(v) < 0);
|
|
@@ -65311,8 +65371,8 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65311
65371
|
initIndexed() {
|
|
65312
65372
|
return new Promise((resolve) => {
|
|
65313
65373
|
setTimeout(() => {
|
|
65374
|
+
this.pageModel.addPage("_i_");
|
|
65314
65375
|
if (this.pageModel.pageList().length === 0) {
|
|
65315
|
-
this.pageModel.addPage("_i_");
|
|
65316
65376
|
resolve(true);
|
|
65317
65377
|
} else {
|
|
65318
65378
|
resolve(false);
|
|
@@ -65321,15 +65381,15 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65321
65381
|
});
|
|
65322
65382
|
}
|
|
65323
65383
|
/**
|
|
65324
|
-
|
|
65325
|
-
|
|
65326
|
-
|
|
65384
|
+
* 获取总页数
|
|
65385
|
+
* @returns {number}
|
|
65386
|
+
*/
|
|
65327
65387
|
get pageCount() {
|
|
65328
65388
|
return this.idList.length;
|
|
65329
65389
|
}
|
|
65330
65390
|
/**
|
|
65331
|
-
|
|
65332
|
-
|
|
65391
|
+
* 获取当前页索引
|
|
65392
|
+
*/
|
|
65333
65393
|
get currentPageIndex() {
|
|
65334
65394
|
const userPageId = this.userMap.get(WhiteboardKeys.currentPage);
|
|
65335
65395
|
return this.getPageIndex(userPageId);
|
|
@@ -65349,9 +65409,9 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65349
65409
|
return i;
|
|
65350
65410
|
}
|
|
65351
65411
|
/**
|
|
65352
|
-
|
|
65353
|
-
|
|
65354
|
-
|
|
65412
|
+
* 获取指定索引对应的 pageId
|
|
65413
|
+
* @param {number} index
|
|
65414
|
+
*/
|
|
65355
65415
|
getPageId(index) {
|
|
65356
65416
|
const firstKey = this.head;
|
|
65357
65417
|
if (firstKey) {
|
|
@@ -65373,20 +65433,20 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65373
65433
|
modifyDetect() {
|
|
65374
65434
|
const cameraMode = this.userMap.get(WhiteboardKeys.cameraMode);
|
|
65375
65435
|
if (cameraMode !== "main") {
|
|
65376
|
-
console.warn(
|
|
65436
|
+
console.warn("cannot modify pages in non-main view mode.");
|
|
65377
65437
|
return false;
|
|
65378
65438
|
}
|
|
65379
65439
|
if (!this.hasPermission(WhiteboardPermissionFlag.mainView)) {
|
|
65380
|
-
console.warn(
|
|
65440
|
+
console.warn("cannot modify pages without WhiteboardPermissionFlag.mainView.");
|
|
65381
65441
|
return false;
|
|
65382
65442
|
}
|
|
65383
65443
|
return true;
|
|
65384
65444
|
}
|
|
65385
65445
|
/**
|
|
65386
|
-
|
|
65387
|
-
|
|
65388
|
-
|
|
65389
|
-
|
|
65446
|
+
* 在尾部插入新页面
|
|
65447
|
+
* @param {boolean=} goto 是否跳转到新页面, 默认 true
|
|
65448
|
+
* @return 总页数
|
|
65449
|
+
*/
|
|
65390
65450
|
pushPage() {
|
|
65391
65451
|
let goto = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
65392
65452
|
this.indexedPageMap.doc.transact(() => {
|
|
@@ -65415,11 +65475,11 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65415
65475
|
return this.pageCount;
|
|
65416
65476
|
}
|
|
65417
65477
|
/**
|
|
65418
|
-
|
|
65419
|
-
|
|
65420
|
-
|
|
65421
|
-
|
|
65422
|
-
|
|
65478
|
+
* 在 after 之后插入新页面
|
|
65479
|
+
* @param {number} after 在此页之后插入
|
|
65480
|
+
* @param {boolean=} goto 是否跳转到新页面, 默认 true
|
|
65481
|
+
* @return 总页数
|
|
65482
|
+
*/
|
|
65423
65483
|
insertPage(after) {
|
|
65424
65484
|
let goto = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
65425
65485
|
const afterPageId = this.getPageId(after);
|
|
@@ -65428,7 +65488,7 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65428
65488
|
}
|
|
65429
65489
|
const cameraMode = this.userMap.get(WhiteboardKeys.cameraMode);
|
|
65430
65490
|
if (cameraMode !== "main") {
|
|
65431
|
-
console.warn(
|
|
65491
|
+
console.warn("cannot modify pages in non-main view mode.");
|
|
65432
65492
|
return this.pageCount;
|
|
65433
65493
|
}
|
|
65434
65494
|
const prev = this.list[afterPageId];
|
|
@@ -65471,8 +65531,8 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65471
65531
|
return this.pageCount;
|
|
65472
65532
|
}
|
|
65473
65533
|
/**
|
|
65474
|
-
|
|
65475
|
-
|
|
65534
|
+
* 跳转至上一页, 并返回跳转后的页面索引.
|
|
65535
|
+
*/
|
|
65476
65536
|
prevPage() {
|
|
65477
65537
|
const currentPageId = this.userMap.get(WhiteboardKeys.currentPage);
|
|
65478
65538
|
const data = this.list[currentPageId];
|
|
@@ -65484,8 +65544,8 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65484
65544
|
return nextIndex;
|
|
65485
65545
|
}
|
|
65486
65546
|
/**
|
|
65487
|
-
|
|
65488
|
-
|
|
65547
|
+
* 跳转至下一页, 并返回跳转后的页面索引.
|
|
65548
|
+
*/
|
|
65489
65549
|
nextPage() {
|
|
65490
65550
|
const currentPageId = this.userMap.get(WhiteboardKeys.currentPage);
|
|
65491
65551
|
const data = this.list[currentPageId];
|
|
@@ -65497,16 +65557,16 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65497
65557
|
return nextIndex;
|
|
65498
65558
|
}
|
|
65499
65559
|
/**
|
|
65500
|
-
|
|
65501
|
-
|
|
65502
|
-
|
|
65560
|
+
* 删除指定页面
|
|
65561
|
+
* @param {number} index
|
|
65562
|
+
*/
|
|
65503
65563
|
removePage(index) {
|
|
65504
65564
|
if (this.pageCount <= 1) {
|
|
65505
65565
|
return this.pageCount;
|
|
65506
65566
|
}
|
|
65507
65567
|
const cameraMode = this.userMap.get(WhiteboardKeys.cameraMode);
|
|
65508
65568
|
if (cameraMode !== "main") {
|
|
65509
|
-
console.warn(
|
|
65569
|
+
console.warn("cannot modify pages in non-main view mode.");
|
|
65510
65570
|
return this.pageCount;
|
|
65511
65571
|
}
|
|
65512
65572
|
const targetId = this.getPageId(index);
|
|
@@ -65546,15 +65606,20 @@ var IndexedNavigation = class extends EventEmitter12 {
|
|
|
65546
65606
|
this.pageModel.gotoPage(targetId);
|
|
65547
65607
|
}
|
|
65548
65608
|
}
|
|
65609
|
+
dispose() {
|
|
65610
|
+
this.indexedPageMap.unobserve(this.handleIndexedPageMapUpdate);
|
|
65611
|
+
this.pageModel.off("switchPage");
|
|
65612
|
+
this.pageModel.off("pagesChange");
|
|
65613
|
+
}
|
|
65549
65614
|
};
|
|
65550
|
-
function
|
|
65551
|
-
return (r =
|
|
65615
|
+
function _defineProperty36(e, r, t) {
|
|
65616
|
+
return (r = _toPropertyKey36(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
65552
65617
|
}
|
|
65553
|
-
function
|
|
65554
|
-
var i =
|
|
65618
|
+
function _toPropertyKey36(t) {
|
|
65619
|
+
var i = _toPrimitive36(t, "string");
|
|
65555
65620
|
return "symbol" == typeof i ? i : i + "";
|
|
65556
65621
|
}
|
|
65557
|
-
function
|
|
65622
|
+
function _toPrimitive36(t, r) {
|
|
65558
65623
|
if ("object" != typeof t || !t) return t;
|
|
65559
65624
|
var e = t[Symbol.toPrimitive];
|
|
65560
65625
|
if (void 0 !== e) {
|
|
@@ -65564,10 +65629,10 @@ function _toPrimitive37(t, r) {
|
|
|
65564
65629
|
}
|
|
65565
65630
|
return ("string" === r ? String : Number)(t);
|
|
65566
65631
|
}
|
|
65567
|
-
var ShadowEmitter = class extends
|
|
65632
|
+
var ShadowEmitter = class extends EventEmitter12 {
|
|
65568
65633
|
constructor(userMap) {
|
|
65569
65634
|
super();
|
|
65570
|
-
|
|
65635
|
+
_defineProperty36(this, "userMap", void 0);
|
|
65571
65636
|
this.userMap = userMap;
|
|
65572
65637
|
}
|
|
65573
65638
|
getActive() {
|
|
@@ -65577,14 +65642,14 @@ var ShadowEmitter = class extends EventEmitter13 {
|
|
|
65577
65642
|
return this.userMap.set("shadowActive", value);
|
|
65578
65643
|
}
|
|
65579
65644
|
};
|
|
65580
|
-
function
|
|
65581
|
-
return (r =
|
|
65645
|
+
function _defineProperty37(e, r, t) {
|
|
65646
|
+
return (r = _toPropertyKey37(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
65582
65647
|
}
|
|
65583
|
-
function
|
|
65584
|
-
var i =
|
|
65648
|
+
function _toPropertyKey37(t) {
|
|
65649
|
+
var i = _toPrimitive37(t, "string");
|
|
65585
65650
|
return "symbol" == typeof i ? i : i + "";
|
|
65586
65651
|
}
|
|
65587
|
-
function
|
|
65652
|
+
function _toPrimitive37(t, r) {
|
|
65588
65653
|
if ("object" != typeof t || !t) return t;
|
|
65589
65654
|
var e = t[Symbol.toPrimitive];
|
|
65590
65655
|
if (void 0 !== e) {
|
|
@@ -65597,12 +65662,15 @@ function _toPrimitive38(t, r) {
|
|
|
65597
65662
|
var StraightLineTool = class extends WhiteboardTool {
|
|
65598
65663
|
constructor(enableToolEvent, modelGetter, shadowEmitter, scope) {
|
|
65599
65664
|
super(enableToolEvent, modelGetter, shadowEmitter, scope);
|
|
65600
|
-
|
|
65601
|
-
|
|
65602
|
-
|
|
65665
|
+
_defineProperty37(this, "elementModel", null);
|
|
65666
|
+
_defineProperty37(this, "from", null);
|
|
65667
|
+
_defineProperty37(this, "to", null);
|
|
65603
65668
|
this.tool.minDistance = 1;
|
|
65604
65669
|
}
|
|
65605
65670
|
onMouseDown(event) {
|
|
65671
|
+
if (this.elementModel) {
|
|
65672
|
+
this.elementModel.dispose();
|
|
65673
|
+
}
|
|
65606
65674
|
this.elementModel = this.modelGetter().createStraightLine(true);
|
|
65607
65675
|
this.from = event.point.clone();
|
|
65608
65676
|
this.to = event.point.clone();
|
|
@@ -65622,14 +65690,14 @@ var StraightLineTool = class extends WhiteboardTool {
|
|
|
65622
65690
|
}
|
|
65623
65691
|
}
|
|
65624
65692
|
};
|
|
65625
|
-
function
|
|
65626
|
-
return (r =
|
|
65693
|
+
function _defineProperty38(e, r, t) {
|
|
65694
|
+
return (r = _toPropertyKey38(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
65627
65695
|
}
|
|
65628
|
-
function
|
|
65629
|
-
var i =
|
|
65696
|
+
function _toPropertyKey38(t) {
|
|
65697
|
+
var i = _toPrimitive38(t, "string");
|
|
65630
65698
|
return "symbol" == typeof i ? i : i + "";
|
|
65631
65699
|
}
|
|
65632
|
-
function
|
|
65700
|
+
function _toPrimitive38(t, r) {
|
|
65633
65701
|
if ("object" != typeof t || !t) return t;
|
|
65634
65702
|
var e = t[Symbol.toPrimitive];
|
|
65635
65703
|
if (void 0 !== e) {
|
|
@@ -65642,8 +65710,8 @@ function _toPrimitive39(t, r) {
|
|
|
65642
65710
|
var GrabTool = class extends WhiteboardTool {
|
|
65643
65711
|
constructor(enableToolEvent, modelGetter, shadowEmitter, scope, camera) {
|
|
65644
65712
|
super(enableToolEvent, modelGetter, shadowEmitter, scope);
|
|
65645
|
-
|
|
65646
|
-
|
|
65713
|
+
_defineProperty38(this, "camera", void 0);
|
|
65714
|
+
_defineProperty38(this, "downPoint", null);
|
|
65647
65715
|
this.camera = camera;
|
|
65648
65716
|
}
|
|
65649
65717
|
onMouseDown(event) {
|
|
@@ -65666,13 +65734,58 @@ var PointerTool = class extends WhiteboardTool {
|
|
|
65666
65734
|
constructor(enableToolEvent, modelGetter, shadowEmitter, scope) {
|
|
65667
65735
|
super(enableToolEvent, modelGetter, shadowEmitter, scope);
|
|
65668
65736
|
}
|
|
65669
|
-
onMouseDown(
|
|
65737
|
+
onMouseDown(_event) {
|
|
65670
65738
|
}
|
|
65671
|
-
onMouseDrag(
|
|
65739
|
+
onMouseDrag(_event) {
|
|
65672
65740
|
}
|
|
65673
65741
|
onMouseUp() {
|
|
65674
65742
|
}
|
|
65675
65743
|
};
|
|
65744
|
+
function _defineProperty39(e, r, t) {
|
|
65745
|
+
return (r = _toPropertyKey39(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
65746
|
+
}
|
|
65747
|
+
function _toPropertyKey39(t) {
|
|
65748
|
+
var i = _toPrimitive39(t, "string");
|
|
65749
|
+
return "symbol" == typeof i ? i : i + "";
|
|
65750
|
+
}
|
|
65751
|
+
function _toPrimitive39(t, r) {
|
|
65752
|
+
if ("object" != typeof t || !t) return t;
|
|
65753
|
+
var e = t[Symbol.toPrimitive];
|
|
65754
|
+
if (void 0 !== e) {
|
|
65755
|
+
var i = e.call(t, r || "default");
|
|
65756
|
+
if ("object" != typeof i) return i;
|
|
65757
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
65758
|
+
}
|
|
65759
|
+
return ("string" === r ? String : Number)(t);
|
|
65760
|
+
}
|
|
65761
|
+
var SequenceExecutor = class {
|
|
65762
|
+
constructor() {
|
|
65763
|
+
_defineProperty39(this, "tasks", []);
|
|
65764
|
+
_defineProperty39(this, "isRunning", false);
|
|
65765
|
+
}
|
|
65766
|
+
addTask(task) {
|
|
65767
|
+
this.tasks.push(task);
|
|
65768
|
+
if (!this.isRunning) {
|
|
65769
|
+
this.execute();
|
|
65770
|
+
}
|
|
65771
|
+
}
|
|
65772
|
+
async execute() {
|
|
65773
|
+
if (this.isRunning) {
|
|
65774
|
+
return;
|
|
65775
|
+
}
|
|
65776
|
+
this.isRunning = true;
|
|
65777
|
+
while (this.tasks.length > 0) {
|
|
65778
|
+
const task = this.tasks.shift();
|
|
65779
|
+
if (task) {
|
|
65780
|
+
try {
|
|
65781
|
+
await task();
|
|
65782
|
+
} catch (e) {
|
|
65783
|
+
}
|
|
65784
|
+
}
|
|
65785
|
+
}
|
|
65786
|
+
this.isRunning = false;
|
|
65787
|
+
}
|
|
65788
|
+
};
|
|
65676
65789
|
function _defineProperty40(e, r, t) {
|
|
65677
65790
|
return (r = _toPropertyKey40(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
|
|
65678
65791
|
}
|
|
@@ -65730,16 +65843,18 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
65730
65843
|
_defineProperty40(this, "hasPenInput", null);
|
|
65731
65844
|
_defineProperty40(this, "disableViewModelUpdate", false);
|
|
65732
65845
|
_defineProperty40(this, "internalResizeObserver", true);
|
|
65846
|
+
_defineProperty40(this, "sequenceExecutor", new SequenceExecutor());
|
|
65733
65847
|
_defineProperty40(this, "linkTarget", null);
|
|
65734
65848
|
_defineProperty40(this, "enableToolEvent", () => {
|
|
65735
65849
|
return !(this.inputType === "pen" && !this.isPenEvent);
|
|
65736
65850
|
});
|
|
65737
65851
|
_defineProperty40(this, "handlePageSwitch", (pageId) => {
|
|
65738
|
-
|
|
65739
|
-
editor.
|
|
65740
|
-
|
|
65741
|
-
|
|
65742
|
-
|
|
65852
|
+
this.sequenceExecutor.addTask(async () => {
|
|
65853
|
+
for (const editor of this.editors.values()) {
|
|
65854
|
+
editor.hidden();
|
|
65855
|
+
}
|
|
65856
|
+
this.selectElementsModel.clearSelectElementForSelf();
|
|
65857
|
+
await waitUntil(() => this.layers.has(pageId), 1e3);
|
|
65743
65858
|
if (this.layers.has(pageId)) {
|
|
65744
65859
|
for (const entry of this.layers.entries()) {
|
|
65745
65860
|
entry[1].off("elementInsert", this.handleElementInsert);
|
|
@@ -65751,6 +65866,7 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
65751
65866
|
renderableModel.on("elementRemove", this.handleElementRemove);
|
|
65752
65867
|
renderableModel.on("elementClear", this.handleElementClear);
|
|
65753
65868
|
renderableModel.flushRenderables();
|
|
65869
|
+
this.paperScope.project.activeLayer.data.pageId = pageId;
|
|
65754
65870
|
const others = this.userManager.userIdList().filter((v) => v !== this.userId);
|
|
65755
65871
|
for (const other of others) {
|
|
65756
65872
|
if (this.userMap(other).get(WhiteboardKeys.currentPage) === pageId) {
|
|
@@ -65760,9 +65876,11 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
65760
65876
|
}
|
|
65761
65877
|
}
|
|
65762
65878
|
}
|
|
65879
|
+
} else {
|
|
65880
|
+
console.warn(`[@netless/forge-whiteboard] page ${pageId} not found`);
|
|
65881
|
+
log3(`[@netless/forge-whiteboard] page ${pageId} not found`, {}, "warning");
|
|
65763
65882
|
}
|
|
65764
|
-
|
|
65765
|
-
waitUntil(() => this.undoManagers.has(pageId), 3e3).then(() => {
|
|
65883
|
+
await waitUntil(() => this.undoManagers.has(pageId), 1e3);
|
|
65766
65884
|
if (this.undoManagers.has(pageId)) {
|
|
65767
65885
|
for (const entry of this.undoManagers.entries()) {
|
|
65768
65886
|
entry[1].off("stack-item-added", this.handleStackItemAdded);
|
|
@@ -65770,10 +65888,13 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
65770
65888
|
}
|
|
65771
65889
|
this.undoManagers.get(pageId).on("stack-item-added", this.handleStackItemAdded);
|
|
65772
65890
|
this.undoManagers.get(pageId).on("stack-item-popped", this.handleStackItemPopped);
|
|
65891
|
+
} else {
|
|
65892
|
+
console.warn(`[@netless/forge-whiteboard] undo manager for page ${pageId} not found`);
|
|
65893
|
+
log3(`[@netless/forge-whiteboard] undo manager for page ${pageId} not found`, {}, "warning");
|
|
65773
65894
|
}
|
|
65895
|
+
this.emitter.emit("redoStackLength", this.undoManager?.redoStack.length ?? 0);
|
|
65896
|
+
this.emitter.emit("undoStackLength", this.undoManager?.undoStack.length ?? 0);
|
|
65774
65897
|
});
|
|
65775
|
-
this.emitter.emit("redoStackLength", this.undoManager?.redoStack.length ?? 0);
|
|
65776
|
-
this.emitter.emit("undoStackLength", this.undoManager?.undoStack.length ?? 0);
|
|
65777
65898
|
});
|
|
65778
65899
|
_defineProperty40(this, "hasPermission", (flag) => {
|
|
65779
65900
|
return this.permissions.hasPermission(flag, this.userId);
|
|
@@ -65803,7 +65924,7 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
65803
65924
|
this.undoManagers.set(id, undoManager);
|
|
65804
65925
|
}
|
|
65805
65926
|
}
|
|
65806
|
-
for (
|
|
65927
|
+
for (const entry of this.layers.entries()) {
|
|
65807
65928
|
if (ids.indexOf(entry[0]) < 0) {
|
|
65808
65929
|
const renderableModel = this.layers.get(entry[0]);
|
|
65809
65930
|
this.layers.delete(entry[0]);
|
|
@@ -65820,7 +65941,7 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
65820
65941
|
}
|
|
65821
65942
|
});
|
|
65822
65943
|
_defineProperty40(this, "getCurrentRenderableModel", () => {
|
|
65823
|
-
|
|
65944
|
+
const layerId = this.userMap(this.userId).get(WhiteboardKeys.currentPage);
|
|
65824
65945
|
if (!this.layers.has(layerId)) {
|
|
65825
65946
|
this.emitter.emit("error", 300002, `target page: ${layerId} not found`);
|
|
65826
65947
|
}
|
|
@@ -65901,7 +66022,7 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
65901
66022
|
}).filter((v) => !!v);
|
|
65902
66023
|
editor.setTargets(elementModels);
|
|
65903
66024
|
if (elementModels.length === 1) {
|
|
65904
|
-
|
|
66025
|
+
const model = elementModels[0];
|
|
65905
66026
|
if (model.item) {
|
|
65906
66027
|
const topLeft = this.paperScope.project.view.projectToView(model.item.bounds.topLeft);
|
|
65907
66028
|
const bottomRight = this.paperScope.project.view.projectToView(model.item.bounds.bottomRight);
|
|
@@ -65947,6 +66068,7 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
65947
66068
|
});
|
|
65948
66069
|
requestAnimationFrameHook(this.paperScope);
|
|
65949
66070
|
requestAnimationFrameHook(this.shadowScope);
|
|
66071
|
+
const that = this;
|
|
65950
66072
|
this.rootElement.setAttribute("data-forge-app", "whiteboard");
|
|
65951
66073
|
document.body.addEventListener("pointerdown", (evt) => {
|
|
65952
66074
|
this.isPenEvent = evt.pointerType === "pen";
|
|
@@ -66118,7 +66240,6 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
66118
66240
|
errorMessage
|
|
66119
66241
|
});
|
|
66120
66242
|
});
|
|
66121
|
-
const that = this;
|
|
66122
66243
|
Object.defineProperty(this.emitter, "tool", {
|
|
66123
66244
|
get() {
|
|
66124
66245
|
return that.toolbarModel.currentTool;
|
|
@@ -66215,6 +66336,7 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
66215
66336
|
this.permissions = new WhiteboardPermissions(this.userManager, (userId) => {
|
|
66216
66337
|
return this.userMap(userId);
|
|
66217
66338
|
});
|
|
66339
|
+
this.permissions.setPermission(WhiteboardPermissionFlag.all);
|
|
66218
66340
|
this.emitter["permissions"] = this.permissions;
|
|
66219
66341
|
this.emitter["selfUserId"] = this.userId;
|
|
66220
66342
|
this.option = option;
|
|
@@ -66466,7 +66588,7 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
66466
66588
|
if (renderableModel.elementModels.has(key)) {
|
|
66467
66589
|
elementModel = renderableModel.elementModels.get(key) ?? null;
|
|
66468
66590
|
} else {
|
|
66469
|
-
|
|
66591
|
+
const elementMap = renderableModel.elements.get(key);
|
|
66470
66592
|
if (elementMap) {
|
|
66471
66593
|
elementModel = renderableModel.convertToModel(elementMap);
|
|
66472
66594
|
}
|
|
@@ -66553,6 +66675,9 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
66553
66675
|
const size = this.paperScope.view.viewSize;
|
|
66554
66676
|
return [size.width, size.height];
|
|
66555
66677
|
}
|
|
66678
|
+
getInherentScale() {
|
|
66679
|
+
return this.camera.getInherentScale();
|
|
66680
|
+
}
|
|
66556
66681
|
updateInternalResizeObserverStatus(value) {
|
|
66557
66682
|
this.internalResizeObserver = value;
|
|
66558
66683
|
}
|
|
@@ -66572,72 +66697,91 @@ var WhiteboardApplication = class extends AbstractApplication {
|
|
|
66572
66697
|
this.shadowScope.project.clear();
|
|
66573
66698
|
this.snapshotScope.project.clear();
|
|
66574
66699
|
this.resizeObserver.disconnect();
|
|
66700
|
+
this.unlink();
|
|
66701
|
+
for (const entry of this.undoManagers.entries()) {
|
|
66702
|
+
entry[1].off("stack-item-added", this.handleStackItemAdded);
|
|
66703
|
+
entry[1].off("stack-item-popped", this.handleStackItemPopped);
|
|
66704
|
+
}
|
|
66705
|
+
for (const entry of this.layers.entries()) {
|
|
66706
|
+
entry[1].dispose();
|
|
66707
|
+
entry[1].removeAllListeners();
|
|
66708
|
+
}
|
|
66709
|
+
this.camera.dispose();
|
|
66710
|
+
this.pageModel.dispose();
|
|
66711
|
+
this.pageModel.removeAllListeners();
|
|
66712
|
+
for (const entry of this.editors.entries()) {
|
|
66713
|
+
entry[1].dispose();
|
|
66714
|
+
}
|
|
66715
|
+
this.toolbarModel.dispose();
|
|
66716
|
+
this.emitter.indexedNavigation.dispose();
|
|
66717
|
+
this.permissions.dispose();
|
|
66575
66718
|
}
|
|
66576
66719
|
};
|
|
66577
66720
|
_defineProperty40(WhiteboardApplication, "applicationName", WHITEBOARD_APP_NAME);
|
|
66578
66721
|
|
|
66579
66722
|
// src/SlideApplication.ts
|
|
66580
66723
|
var import_slide = __toESM(require_Slide());
|
|
66581
|
-
import { AbstractApplication as AbstractApplication2 } from "@netless/forge-room";
|
|
66724
|
+
import { AbstractApplication as AbstractApplication2, kvStore } from "@netless/forge-room";
|
|
66582
66725
|
|
|
66583
66726
|
// src/Slide.ts
|
|
66584
|
-
import
|
|
66585
|
-
var SlideForge = class extends
|
|
66727
|
+
import EventEmitter13 from "eventemitter3";
|
|
66728
|
+
var SlideForge = class extends EventEmitter13 {
|
|
66586
66729
|
view;
|
|
66587
66730
|
permissions;
|
|
66588
66731
|
footView;
|
|
66732
|
+
sideBarView;
|
|
66589
66733
|
/**
|
|
66590
|
-
|
|
66591
|
-
|
|
66734
|
+
* 当前页面索引, 从 0 开始
|
|
66735
|
+
*/
|
|
66592
66736
|
pageIndex;
|
|
66593
66737
|
/**
|
|
66594
|
-
|
|
66595
|
-
|
|
66738
|
+
* 总页数
|
|
66739
|
+
*/
|
|
66596
66740
|
pageCount;
|
|
66597
66741
|
/**
|
|
66598
|
-
|
|
66599
|
-
|
|
66600
|
-
|
|
66742
|
+
* 切换到参数指定页面, index 从 0 开始
|
|
66743
|
+
* @param {number} index 页面索引
|
|
66744
|
+
*/
|
|
66601
66745
|
goto;
|
|
66602
66746
|
/**
|
|
66603
|
-
|
|
66604
|
-
|
|
66747
|
+
* 下一步, 如果已经是本页的最后一步, 则切换到下一页
|
|
66748
|
+
*/
|
|
66605
66749
|
nextStep;
|
|
66606
66750
|
/**
|
|
66607
|
-
|
|
66608
|
-
|
|
66751
|
+
* 上一步, 如果已经是本页的第一步, 则切换到上一页
|
|
66752
|
+
*/
|
|
66609
66753
|
prevStep;
|
|
66610
66754
|
/**
|
|
66611
|
-
|
|
66612
|
-
|
|
66755
|
+
* 下一页, 如果是最后一页, 则不执行任何操作
|
|
66756
|
+
*/
|
|
66613
66757
|
nextPage;
|
|
66614
66758
|
/**
|
|
66615
|
-
|
|
66616
|
-
|
|
66759
|
+
* 上一页, 如果是第一页, 则不执行任何操作
|
|
66760
|
+
*/
|
|
66617
66761
|
prevPage;
|
|
66618
66762
|
/**
|
|
66619
|
-
|
|
66620
|
-
|
|
66763
|
+
* 切换侧栏显示状态
|
|
66764
|
+
*/
|
|
66621
66765
|
sideBarToggle;
|
|
66622
66766
|
/**
|
|
66623
|
-
|
|
66624
|
-
|
|
66625
|
-
|
|
66767
|
+
* 获取预览图图片内容, base64 编码
|
|
66768
|
+
* @param {number} index 页面索引
|
|
66769
|
+
*/
|
|
66626
66770
|
imgContent;
|
|
66627
66771
|
/**
|
|
66628
|
-
|
|
66629
|
-
|
|
66630
|
-
|
|
66772
|
+
* 获取预览图图片链接
|
|
66773
|
+
* @param {number} index 页面索引
|
|
66774
|
+
*/
|
|
66631
66775
|
imgUrl;
|
|
66632
66776
|
/**
|
|
66633
|
-
|
|
66634
|
-
|
|
66635
|
-
|
|
66777
|
+
* 获取预览图图片尺寸
|
|
66778
|
+
* @param {number} index 页面索引
|
|
66779
|
+
*/
|
|
66636
66780
|
imgSize;
|
|
66637
66781
|
};
|
|
66638
66782
|
|
|
66639
66783
|
// src/ForgeSlidePermession.ts
|
|
66640
|
-
import
|
|
66784
|
+
import { AbstractApplicationPermissions as AbstractApplicationPermissions2 } from "@netless/forge-room";
|
|
66641
66785
|
var ForgeSlidePermissionFlag = /* @__PURE__ */ ((ForgeSlidePermissionFlag2) => {
|
|
66642
66786
|
ForgeSlidePermissionFlag2[ForgeSlidePermissionFlag2["none"] = 0] = "none";
|
|
66643
66787
|
ForgeSlidePermissionFlag2[ForgeSlidePermissionFlag2["changeStep"] = 1] = "changeStep";
|
|
@@ -66646,58 +66790,12 @@ var ForgeSlidePermissionFlag = /* @__PURE__ */ ((ForgeSlidePermissionFlag2) => {
|
|
|
66646
66790
|
ForgeSlidePermissionFlag2[ForgeSlidePermissionFlag2["all"] = 7] = "all";
|
|
66647
66791
|
return ForgeSlidePermissionFlag2;
|
|
66648
66792
|
})(ForgeSlidePermissionFlag || {});
|
|
66649
|
-
var ForgeSlidePermissions = class extends
|
|
66650
|
-
requestUserMap;
|
|
66651
|
-
userManager;
|
|
66652
|
-
observers = /* @__PURE__ */ new Map();
|
|
66653
|
-
constructor(userManager, requestUserMap) {
|
|
66654
|
-
super();
|
|
66655
|
-
this.userManager = userManager;
|
|
66656
|
-
this.requestUserMap = requestUserMap;
|
|
66657
|
-
this.createModel(this.userManager.selfId);
|
|
66658
|
-
this.userManager.userIdList().forEach((userId) => {
|
|
66659
|
-
this.addObserve(userId);
|
|
66660
|
-
});
|
|
66661
|
-
this.userManager.on("join", this.handleUserJoin);
|
|
66662
|
-
this.userManager.on("leave", this.handleUserLeave);
|
|
66663
|
-
}
|
|
66664
|
-
handleUserLeave = (user) => {
|
|
66665
|
-
const cb = this.observers.get(user.id);
|
|
66666
|
-
if (cb) {
|
|
66667
|
-
this.requestUserMap(user.id).unobserve(cb);
|
|
66668
|
-
}
|
|
66669
|
-
};
|
|
66670
|
-
handleUserJoin = (user) => {
|
|
66671
|
-
this.addObserve(user.id);
|
|
66672
|
-
};
|
|
66673
|
-
addObserve(userId) {
|
|
66674
|
-
const observer = (evt) => {
|
|
66675
|
-
this.handleUserPermissionChange(userId, evt);
|
|
66676
|
-
};
|
|
66677
|
-
this.observers.set(userId, observer);
|
|
66678
|
-
this.requestUserMap(userId).observe(observer);
|
|
66679
|
-
}
|
|
66680
|
-
createModel(userId) {
|
|
66681
|
-
const userMap = this.requestUserMap(userId);
|
|
66682
|
-
if (!userMap.has("permission")) {
|
|
66683
|
-
userMap.set("permission", 0);
|
|
66684
|
-
}
|
|
66685
|
-
}
|
|
66686
|
-
handleUserPermissionChange(userId, evt) {
|
|
66687
|
-
for (const [key, value] of evt.changes.keys.entries()) {
|
|
66688
|
-
if (key === "permission") {
|
|
66689
|
-
if (value.action === "add" || value.action === "update") {
|
|
66690
|
-
const newValue = this.requestUserMap(userId).get("permission");
|
|
66691
|
-
this.emit("change", userId, this.resolveFlags(newValue), newValue);
|
|
66692
|
-
}
|
|
66693
|
-
}
|
|
66694
|
-
}
|
|
66695
|
-
}
|
|
66793
|
+
var ForgeSlidePermissions = class extends AbstractApplicationPermissions2 {
|
|
66696
66794
|
/**
|
|
66697
|
-
|
|
66698
|
-
|
|
66699
|
-
|
|
66700
|
-
|
|
66795
|
+
* 解析权限列表组合
|
|
66796
|
+
* @param {number} value - 权限数字值
|
|
66797
|
+
* @return {WhiteboardPermissionFlag[]} - 权限列表
|
|
66798
|
+
*/
|
|
66701
66799
|
resolveFlags(value) {
|
|
66702
66800
|
return [
|
|
66703
66801
|
2 /* changePage */,
|
|
@@ -66705,53 +66803,10 @@ var ForgeSlidePermissions = class extends EventEmitter15 {
|
|
|
66705
66803
|
4 /* clickAnim */
|
|
66706
66804
|
].filter((v) => (v & value) !== 0);
|
|
66707
66805
|
}
|
|
66708
|
-
/**
|
|
66709
|
-
* 获取权限列表组合对应的数值
|
|
66710
|
-
* @param { string } userId 不传表示获取自己
|
|
66711
|
-
*/
|
|
66712
|
-
getPermissionValue(userId) {
|
|
66713
|
-
return this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0;
|
|
66714
|
-
}
|
|
66715
|
-
/**
|
|
66716
|
-
* 获取权限列表
|
|
66717
|
-
* @param {string=} userId 可选, 不传表示获取自己
|
|
66718
|
-
*/
|
|
66719
|
-
getPermissionFlags(userId) {
|
|
66720
|
-
const value = this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0;
|
|
66721
|
-
return this.resolveFlags(value);
|
|
66722
|
-
}
|
|
66723
|
-
/**
|
|
66724
|
-
* 返回对应 userId 是否有相应权限
|
|
66725
|
-
* @param {string=} userId 可选, 不传表示返回自己是否有相应权限
|
|
66726
|
-
* @param {WhiteboardPermissionFlag} flag
|
|
66727
|
-
*/
|
|
66728
|
-
hasPermission(flag, userId) {
|
|
66729
|
-
return ((this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0) & flag) !== 0;
|
|
66730
|
-
}
|
|
66731
|
-
/**
|
|
66732
|
-
* 添加权限
|
|
66733
|
-
* @param {WhiteboardPermissionFlag} flag 权限标记
|
|
66734
|
-
* @param {string=} userId 可选, 为 userId 添加权限, 不传表示为自己添加权限
|
|
66735
|
-
*/
|
|
66736
|
-
addPermission(flag, userId) {
|
|
66737
|
-
const userMap = this.requestUserMap(userId ?? this.userManager.selfId);
|
|
66738
|
-
const oldValue = userMap.get("permission") ?? 0;
|
|
66739
|
-
this.requestUserMap(userId ?? this.userManager.selfId).set("permission", oldValue | flag);
|
|
66740
|
-
}
|
|
66741
|
-
/**
|
|
66742
|
-
* 移除权限
|
|
66743
|
-
* @param {WhiteboardPermissionFlag} flag 权限标记
|
|
66744
|
-
* @param {string=} userId 可选, 为 userId 移除权限, 不传表示为自己移除权限
|
|
66745
|
-
*/
|
|
66746
|
-
removePermission(flag, userId) {
|
|
66747
|
-
const userMap = this.requestUserMap(userId ?? this.userManager.selfId);
|
|
66748
|
-
const oldValue = userMap.get("permission") ?? 0;
|
|
66749
|
-
this.requestUserMap(userId ?? this.userManager.selfId).set("permission", oldValue & ~flag);
|
|
66750
|
-
}
|
|
66751
66806
|
};
|
|
66752
66807
|
|
|
66753
|
-
// src/
|
|
66754
|
-
import
|
|
66808
|
+
// src/FooterView.ts
|
|
66809
|
+
import EventEmitter14 from "eventemitter3";
|
|
66755
66810
|
|
|
66756
66811
|
// src/icons.ts
|
|
66757
66812
|
var prevPage = (color) => `<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none">
|
|
@@ -66780,18 +66835,20 @@ var Icons = {
|
|
|
66780
66835
|
sideBar
|
|
66781
66836
|
};
|
|
66782
66837
|
|
|
66783
|
-
// src/
|
|
66838
|
+
// src/FooterView.ts
|
|
66784
66839
|
var EM_COLOR = "#8C8C8C";
|
|
66785
|
-
var FooterView = class extends
|
|
66840
|
+
var FooterView = class extends EventEmitter14 {
|
|
66786
66841
|
root;
|
|
66787
66842
|
prevStep;
|
|
66788
66843
|
nextStep;
|
|
66789
66844
|
prevPage;
|
|
66790
66845
|
nextPage;
|
|
66791
66846
|
sideBarToggle;
|
|
66847
|
+
eventMap = /* @__PURE__ */ new Map();
|
|
66792
66848
|
constructor() {
|
|
66793
66849
|
super();
|
|
66794
66850
|
this.root = document.createElement("div");
|
|
66851
|
+
this.root.classList.add("forge-slide-footer");
|
|
66795
66852
|
this.root.style.height = "24px";
|
|
66796
66853
|
this.root.style.zIndex = "6";
|
|
66797
66854
|
this.root.style.display = "flex";
|
|
@@ -66851,28 +66908,47 @@ var FooterView = class extends EventEmitter16 {
|
|
|
66851
66908
|
icon.style.borderRadius = "2px";
|
|
66852
66909
|
icon.style.margin = "6px";
|
|
66853
66910
|
icon.innerHTML = svgContent;
|
|
66854
|
-
|
|
66911
|
+
const onClickHandle = () => {
|
|
66855
66912
|
action();
|
|
66856
|
-
}
|
|
66857
|
-
|
|
66913
|
+
};
|
|
66914
|
+
const onMouseOverHandle = () => {
|
|
66858
66915
|
icon.style.backgroundColor = "#f0f0f0";
|
|
66859
|
-
}
|
|
66860
|
-
|
|
66916
|
+
};
|
|
66917
|
+
const onMouseOutHandle = () => {
|
|
66861
66918
|
icon.style.backgroundColor = "transparent";
|
|
66862
|
-
}
|
|
66919
|
+
};
|
|
66920
|
+
icon.addEventListener("click", onClickHandle);
|
|
66921
|
+
icon.addEventListener("mouseover", onMouseOverHandle);
|
|
66922
|
+
icon.addEventListener("mouseout", onMouseOutHandle);
|
|
66923
|
+
this.eventMap.set(icon, [onClickHandle, onMouseOutHandle, onMouseOverHandle]);
|
|
66863
66924
|
return icon;
|
|
66864
66925
|
}
|
|
66926
|
+
clearHTMLEventListeners() {
|
|
66927
|
+
this.eventMap.forEach((value, key) => {
|
|
66928
|
+
if (key) {
|
|
66929
|
+
const [clickEvent, mouseOutEvent, mouseOverEvent] = value;
|
|
66930
|
+
key.removeEventListener("click", clickEvent);
|
|
66931
|
+
key.removeEventListener("mouseover", mouseOverEvent);
|
|
66932
|
+
key.removeEventListener("mouseout", mouseOutEvent);
|
|
66933
|
+
}
|
|
66934
|
+
});
|
|
66935
|
+
}
|
|
66936
|
+
dispose() {
|
|
66937
|
+
this.removeAllListeners();
|
|
66938
|
+
this.clearHTMLEventListeners();
|
|
66939
|
+
}
|
|
66865
66940
|
};
|
|
66866
66941
|
|
|
66867
66942
|
// src/SiderBarView.ts
|
|
66868
|
-
import
|
|
66869
|
-
var SideBarView = class extends
|
|
66943
|
+
import EventEmitter15 from "eventemitter3";
|
|
66944
|
+
var SideBarView = class extends EventEmitter15 {
|
|
66870
66945
|
root = document.createElement("div");
|
|
66871
|
-
|
|
66946
|
+
isShow = false;
|
|
66947
|
+
eventsMap = /* @__PURE__ */ new Map();
|
|
66872
66948
|
constructor() {
|
|
66873
66949
|
super();
|
|
66874
66950
|
this.root.style.backgroundColor = "#eee";
|
|
66875
|
-
this.root.className = "slide-sidebar";
|
|
66951
|
+
this.root.className = "forge-slide-sidebar";
|
|
66876
66952
|
this.root.style.width = "240px";
|
|
66877
66953
|
this.root.style.height = "100%";
|
|
66878
66954
|
this.root.style.position = "absolute";
|
|
@@ -66881,38 +66957,38 @@ var SideBarView = class extends EventEmitter17 {
|
|
|
66881
66957
|
this.root.style.zIndex = "5";
|
|
66882
66958
|
this.root.style.transition = "left 0.3s ease-in-out";
|
|
66883
66959
|
this.root.style.overflow = "auto";
|
|
66884
|
-
this.root.style.border = "1px solid #ccc";
|
|
66885
|
-
this.root.style.boxShadow = "0 0 10px rgba(0, 0, 0, 0.1)";
|
|
66886
66960
|
this.root.style.display = "flex";
|
|
66887
66961
|
this.root.style.flexDirection = "column";
|
|
66888
66962
|
this.root.style.justifyContent = "flex-start";
|
|
66889
66963
|
this.root.style.alignItems = "center";
|
|
66890
66964
|
}
|
|
66891
|
-
|
|
66892
|
-
|
|
66893
|
-
}
|
|
66894
|
-
onMouseOut = (itemContainer) => {
|
|
66895
|
-
itemContainer.style.borderColor = "transparent";
|
|
66896
|
-
};
|
|
66897
|
-
onClickHandle = (index) => {
|
|
66898
|
-
this.emit("pageChange", index);
|
|
66899
|
-
};
|
|
66965
|
+
get isShowSideBar() {
|
|
66966
|
+
return this.isShow;
|
|
66967
|
+
}
|
|
66900
66968
|
initialize(slideCount, option) {
|
|
66901
66969
|
for (let i = 1; i <= slideCount; i++) {
|
|
66902
66970
|
const itemContainer = document.createElement("div");
|
|
66903
|
-
this.itemList.push(itemContainer);
|
|
66904
66971
|
itemContainer.style.width = "60%";
|
|
66905
66972
|
itemContainer.style.display = "flex";
|
|
66906
66973
|
itemContainer.style.justifyContent = "center";
|
|
66907
66974
|
itemContainer.style.alignItems = "flex-start";
|
|
66908
|
-
itemContainer.style.border = "7px solid transparent";
|
|
66909
66975
|
itemContainer.style.position = "relative";
|
|
66910
66976
|
itemContainer.style.borderRadius = "4px";
|
|
66911
66977
|
itemContainer.style.transition = "border-color .3s";
|
|
66912
66978
|
itemContainer.style.marginBottom = "10px";
|
|
66913
|
-
|
|
66914
|
-
|
|
66915
|
-
|
|
66979
|
+
const onMouseOverHandle = () => {
|
|
66980
|
+
itemContainer.style.borderColor = "#ccc";
|
|
66981
|
+
};
|
|
66982
|
+
const onMouseOutHandle = () => {
|
|
66983
|
+
itemContainer.style.borderColor = "transparent";
|
|
66984
|
+
};
|
|
66985
|
+
const onClickHandle = () => {
|
|
66986
|
+
this.emit("pageChange", i);
|
|
66987
|
+
};
|
|
66988
|
+
itemContainer.addEventListener("click", onClickHandle);
|
|
66989
|
+
itemContainer.addEventListener("mouseover", onMouseOverHandle);
|
|
66990
|
+
itemContainer.addEventListener("mouseout", onMouseOutHandle);
|
|
66991
|
+
this.eventsMap.set(itemContainer, [onClickHandle, onMouseOverHandle, onMouseOutHandle]);
|
|
66916
66992
|
const pageIndex = document.createElement("span");
|
|
66917
66993
|
pageIndex.textContent = `${i}`;
|
|
66918
66994
|
pageIndex.style.position = "absolute";
|
|
@@ -66930,10 +67006,31 @@ var SideBarView = class extends EventEmitter17 {
|
|
|
66930
67006
|
this.root.appendChild(itemContainer);
|
|
66931
67007
|
}
|
|
66932
67008
|
}
|
|
67009
|
+
hidden() {
|
|
67010
|
+
if (!this.root) {
|
|
67011
|
+
return;
|
|
67012
|
+
}
|
|
67013
|
+
this.root.style.left = "-240px";
|
|
67014
|
+
this.root.style.border = "none";
|
|
67015
|
+
this.root.style.boxShadow = "none";
|
|
67016
|
+
this.isShow = false;
|
|
67017
|
+
}
|
|
67018
|
+
show() {
|
|
67019
|
+
if (!this.root) {
|
|
67020
|
+
return;
|
|
67021
|
+
}
|
|
67022
|
+
this.root.style.left = "0";
|
|
67023
|
+
this.root.style.border = "1px solid #ccc";
|
|
67024
|
+
this.root.style.boxShadow = "0 0 10px rgba(0, 0, 0, 0.1)";
|
|
67025
|
+
this.isShow = true;
|
|
67026
|
+
}
|
|
66933
67027
|
dispose() {
|
|
66934
|
-
this.
|
|
66935
|
-
|
|
66936
|
-
|
|
67028
|
+
this.removeAllListeners();
|
|
67029
|
+
this.eventsMap.forEach((handlers, element) => {
|
|
67030
|
+
const [clickEvent, mouseOverEvent, mouseOutEvent] = handlers;
|
|
67031
|
+
element.removeEventListener("click", clickEvent);
|
|
67032
|
+
element.removeEventListener("mouseover", mouseOverEvent);
|
|
67033
|
+
element.removeEventListener("mouseout", mouseOutEvent);
|
|
66937
67034
|
});
|
|
66938
67035
|
}
|
|
66939
67036
|
};
|
|
@@ -66972,12 +67069,8 @@ function arrayEqual(arr1, arr2) {
|
|
|
66972
67069
|
}
|
|
66973
67070
|
return true;
|
|
66974
67071
|
}
|
|
66975
|
-
async function delay2(time) {
|
|
66976
|
-
return new Promise((resolve) => setTimeout(resolve, time));
|
|
66977
|
-
}
|
|
66978
67072
|
|
|
66979
67073
|
// src/SlideApplication.ts
|
|
66980
|
-
import { kvStore } from "@netless/forge-room";
|
|
66981
67074
|
var Slide_APP_NAME = "forge_slide";
|
|
66982
67075
|
var SlideApplication = class extends AbstractApplication2 {
|
|
66983
67076
|
static applicationName = Slide_APP_NAME;
|
|
@@ -66996,6 +67089,10 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
66996
67089
|
currentSlideIndex = 0;
|
|
66997
67090
|
taskId = "";
|
|
66998
67091
|
prefix = "";
|
|
67092
|
+
slideCount = 0;
|
|
67093
|
+
lastDispatchUuid = "";
|
|
67094
|
+
syncMessageQueue = [];
|
|
67095
|
+
isSyncing = false;
|
|
66999
67096
|
constructor() {
|
|
67000
67097
|
super();
|
|
67001
67098
|
window.emitter = this.emitter;
|
|
@@ -67011,7 +67108,7 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67011
67108
|
this.footer = new FooterView();
|
|
67012
67109
|
this.sideBar = new SideBarView();
|
|
67013
67110
|
this.sideBar.on("pageChange", (index) => {
|
|
67014
|
-
if (index > 0 && index <= this.
|
|
67111
|
+
if (index > 0 && index <= this.slideCount) {
|
|
67015
67112
|
this.slide.renderSlide(index);
|
|
67016
67113
|
}
|
|
67017
67114
|
});
|
|
@@ -67053,7 +67150,7 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67053
67150
|
if (!this.permissions.hasPermission(2 /* changePage */)) {
|
|
67054
67151
|
return;
|
|
67055
67152
|
}
|
|
67056
|
-
if (this.currentSlideIndex < this.
|
|
67153
|
+
if (this.currentSlideIndex < this.slideCount) {
|
|
67057
67154
|
this.slide.renderSlide(this.currentSlideIndex + 1);
|
|
67058
67155
|
}
|
|
67059
67156
|
});
|
|
@@ -67061,10 +67158,10 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67061
67158
|
if (!this.permissions.hasPermission(2 /* changePage */)) {
|
|
67062
67159
|
return;
|
|
67063
67160
|
}
|
|
67064
|
-
if (this.sideBar.
|
|
67065
|
-
this.sideBar.
|
|
67161
|
+
if (this.sideBar.isShowSideBar) {
|
|
67162
|
+
this.sideBar.hidden();
|
|
67066
67163
|
} else {
|
|
67067
|
-
this.sideBar.
|
|
67164
|
+
this.sideBar.show();
|
|
67068
67165
|
}
|
|
67069
67166
|
});
|
|
67070
67167
|
this.rootView.appendChild(this.contentContainer);
|
|
@@ -67087,6 +67184,11 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67087
67184
|
return that.footer.root;
|
|
67088
67185
|
}
|
|
67089
67186
|
});
|
|
67187
|
+
Object.defineProperty(this.emitter, "sidebarView", {
|
|
67188
|
+
get() {
|
|
67189
|
+
return that.sideBar.root;
|
|
67190
|
+
}
|
|
67191
|
+
});
|
|
67090
67192
|
Object.defineProperty(this.emitter, "pageIndex", {
|
|
67091
67193
|
get() {
|
|
67092
67194
|
return that.currentSlideIndex;
|
|
@@ -67094,7 +67196,7 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67094
67196
|
});
|
|
67095
67197
|
Object.defineProperty(this.emitter, "pageCount", {
|
|
67096
67198
|
get() {
|
|
67097
|
-
return that.
|
|
67199
|
+
return that.slideCount;
|
|
67098
67200
|
}
|
|
67099
67201
|
});
|
|
67100
67202
|
Object.defineProperty(this.emitter, "goto", {
|
|
@@ -67160,6 +67262,13 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67160
67262
|
return this.getImageSize(pageIndex);
|
|
67161
67263
|
}
|
|
67162
67264
|
});
|
|
67265
|
+
this.applySlideState();
|
|
67266
|
+
}
|
|
67267
|
+
getPreviewImageUrl(pageIndex) {
|
|
67268
|
+
if (pageIndex < 1 || pageIndex > this.slideCount) {
|
|
67269
|
+
throw new Error("pageIndex out of range");
|
|
67270
|
+
}
|
|
67271
|
+
return `${this.prefix}/${this.taskId}/preview/${pageIndex}.png`;
|
|
67163
67272
|
}
|
|
67164
67273
|
async getPreviewImage(imageUrl) {
|
|
67165
67274
|
const image = fetch(imageUrl);
|
|
@@ -67184,10 +67293,10 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67184
67293
|
});
|
|
67185
67294
|
}
|
|
67186
67295
|
async getImageUrl(pageIndex) {
|
|
67187
|
-
return
|
|
67296
|
+
return this.getPreviewImageUrl(pageIndex);
|
|
67188
67297
|
}
|
|
67189
67298
|
async getImageSize(pageIndex) {
|
|
67190
|
-
const imageUrl =
|
|
67299
|
+
const imageUrl = this.getPreviewImageUrl(pageIndex);
|
|
67191
67300
|
let preview = null;
|
|
67192
67301
|
try {
|
|
67193
67302
|
const result = await kvStore.getItem(imageUrl);
|
|
@@ -67203,7 +67312,7 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67203
67312
|
return { width: preview.width, height: preview.height };
|
|
67204
67313
|
}
|
|
67205
67314
|
async getImageContent(pageIndex) {
|
|
67206
|
-
const imageUrl =
|
|
67315
|
+
const imageUrl = this.getPreviewImageUrl(pageIndex);
|
|
67207
67316
|
let preview = null;
|
|
67208
67317
|
try {
|
|
67209
67318
|
const result = await kvStore.getItem(imageUrl);
|
|
@@ -67218,39 +67327,88 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67218
67327
|
await kvStore.setItem(imageUrl, JSON.stringify(preview));
|
|
67219
67328
|
return preview.src;
|
|
67220
67329
|
}
|
|
67221
|
-
|
|
67222
|
-
|
|
67223
|
-
|
|
67330
|
+
nextTick = () => {
|
|
67331
|
+
this.isSyncing = false;
|
|
67332
|
+
requestAnimationFrame(() => {
|
|
67333
|
+
this.applySlideState().catch((error) => {
|
|
67334
|
+
console.error("Error in applySlideState:", error);
|
|
67335
|
+
});
|
|
67336
|
+
});
|
|
67337
|
+
};
|
|
67338
|
+
applySlideState = async () => {
|
|
67339
|
+
if (this.isSyncing) {
|
|
67224
67340
|
return;
|
|
67225
67341
|
}
|
|
67226
|
-
|
|
67227
|
-
|
|
67342
|
+
const lastSyncMessage = this.syncMessageQueue.pop();
|
|
67343
|
+
if (!lastSyncMessage) {
|
|
67344
|
+
return this.nextTick();
|
|
67345
|
+
}
|
|
67346
|
+
this.syncMessageQueue = [];
|
|
67347
|
+
this.isSyncing = true;
|
|
67348
|
+
const { state, dispatch } = lastSyncMessage;
|
|
67349
|
+
if (this.slide.slideState.currentSlideIndex < 0) {
|
|
67350
|
+
await this.slide.receiveSyncHandler(dispatch);
|
|
67351
|
+
return this.nextTick();
|
|
67352
|
+
} else if (!deepEqual(this.slide.slideState, state)) {
|
|
67353
|
+
await this.slide.setSlideState(state);
|
|
67354
|
+
await this.slide.receiveSyncHandler(dispatch);
|
|
67228
67355
|
} else {
|
|
67229
|
-
|
|
67230
|
-
await delay2(200);
|
|
67231
|
-
this.slide.emit(import_slide.SLIDE_EVENTS.syncReceive, lastDispatch);
|
|
67356
|
+
this.slide.emit(import_slide.SLIDE_EVENTS.syncReceive, dispatch);
|
|
67232
67357
|
}
|
|
67358
|
+
return this.nextTick();
|
|
67233
67359
|
};
|
|
67234
67360
|
onSlideEventHandler = async (event) => {
|
|
67235
67361
|
for (const [key, value] of event.changes.keys.entries()) {
|
|
67236
67362
|
if (key === "syncSlide") {
|
|
67237
67363
|
if (value.action === "add" || value.action === "update") {
|
|
67238
67364
|
const { slideState: slideStateFromServer, dispatch: dispatchFromServer } = this.getMap(this.name).get("syncSlide");
|
|
67239
|
-
this.
|
|
67365
|
+
if (this.lastDispatchUuid === dispatchFromServer.uuid) {
|
|
67366
|
+
return;
|
|
67367
|
+
}
|
|
67368
|
+
this.lastDispatchUuid = dispatchFromServer.uuid;
|
|
67369
|
+
this.syncMessageQueue.push({
|
|
67370
|
+
state: slideStateFromServer,
|
|
67371
|
+
dispatch: dispatchFromServer
|
|
67372
|
+
});
|
|
67373
|
+
this.applySlideState();
|
|
67240
67374
|
}
|
|
67241
67375
|
}
|
|
67242
67376
|
}
|
|
67243
67377
|
};
|
|
67378
|
+
keyBoardEvents = (event) => {
|
|
67379
|
+
if (event.key === "ArrowLeft") {
|
|
67380
|
+
this.footer.emit("prevStep");
|
|
67381
|
+
} else if (event.key === "ArrowRight") {
|
|
67382
|
+
this.footer.emit("nextStep");
|
|
67383
|
+
} else if (event.key === "ArrowUp") {
|
|
67384
|
+
this.footer.emit("prevPage");
|
|
67385
|
+
} else if (event.key === "ArrowDown") {
|
|
67386
|
+
this.footer.emit("nextPage");
|
|
67387
|
+
}
|
|
67388
|
+
};
|
|
67389
|
+
bindKeyBoardEvent() {
|
|
67390
|
+
document.addEventListener("keydown", this.keyBoardEvents);
|
|
67391
|
+
}
|
|
67392
|
+
unbindKeyBoardEvent() {
|
|
67393
|
+
document.removeEventListener("keydown", this.keyBoardEvents);
|
|
67394
|
+
}
|
|
67395
|
+
async onFocusInstance() {
|
|
67396
|
+
this.bindKeyBoardEvent();
|
|
67397
|
+
}
|
|
67398
|
+
onRefocusInstance() {
|
|
67399
|
+
this.unbindKeyBoardEvent();
|
|
67400
|
+
}
|
|
67244
67401
|
async initialize(option) {
|
|
67245
67402
|
this.prefix = option.prefix;
|
|
67246
67403
|
this.taskId = option.taskId;
|
|
67247
67404
|
const whiteboardApp = new WhiteboardApplication();
|
|
67248
67405
|
whiteboardApp.roomDoc = this.roomDoc;
|
|
67249
|
-
whiteboardApp.appId = `${option.taskId}_wb`;
|
|
67406
|
+
whiteboardApp.appId = `${option.taskId}_${this.appId}_wb`;
|
|
67250
67407
|
whiteboardApp.userId = this.userId;
|
|
67251
67408
|
whiteboardApp.userManager = this.userManager;
|
|
67252
67409
|
whiteboardApp.applicationManager = this.applicationManager;
|
|
67253
67410
|
const json = await fetch(`${option.prefix}/${option.taskId}/jsonOutput/slide-1.json`).then((res) => res.json());
|
|
67411
|
+
this.slideCount = json.slideCount;
|
|
67254
67412
|
await whiteboardApp.initialize({
|
|
67255
67413
|
width: json.width,
|
|
67256
67414
|
height: json.height
|
|
@@ -67265,11 +67423,13 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67265
67423
|
this.whiteboard.view.style.top = "0";
|
|
67266
67424
|
this.whiteboard.view.style.left = "0";
|
|
67267
67425
|
this.whiteboard.view.style.zIndex = "4";
|
|
67426
|
+
this.whiteboard.view.classList.add("slide-whiteboard");
|
|
67268
67427
|
this.whiteboard.permissions.addPermission(WhiteboardPermissionFlag.all);
|
|
67269
67428
|
this.whiteboard.setCanvasBackgroundColor("#f0f0f000");
|
|
67270
67429
|
this.whiteboardContainer.style.position = "relative";
|
|
67271
67430
|
this.whiteboardContainer.style.flex = "0 0 auto";
|
|
67272
67431
|
this.whiteboardContainer.style.height = "calc(100% - 24px)";
|
|
67432
|
+
this.whiteboardContainer.classList.add("forge-slide-whiteboard-container");
|
|
67273
67433
|
this.whiteboardContainer.appendChild(this.whiteboard.view);
|
|
67274
67434
|
this.whiteboardContainer.appendChild(this.slideContainer);
|
|
67275
67435
|
this.contentContainer.appendChild(this.whiteboardContainer);
|
|
@@ -67293,30 +67453,39 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67293
67453
|
});
|
|
67294
67454
|
this.slide.setResource(option.taskId, option.prefix);
|
|
67295
67455
|
this.sideBar.initialize(json.slideCount, option);
|
|
67296
|
-
this.slide.on(
|
|
67456
|
+
this.slide.on(import_slide.SLIDE_EVENTS.syncDispatch, (event) => {
|
|
67297
67457
|
this.getMap(this.name).set("syncSlide", {
|
|
67298
67458
|
slideState: this.slide.slideState,
|
|
67299
67459
|
dispatch: event
|
|
67300
67460
|
});
|
|
67301
67461
|
});
|
|
67302
|
-
this.slide.on(
|
|
67462
|
+
this.slide.on(import_slide.SLIDE_EVENTS.mainSeqStepStart, (animateIndex) => {
|
|
67303
67463
|
this.emitter.emit("mainSeqStepStart", animateIndex);
|
|
67304
67464
|
});
|
|
67305
|
-
this.slide.on(
|
|
67465
|
+
this.slide.on(import_slide.SLIDE_EVENTS.mainSeqStepEnd, (animateIndex) => {
|
|
67306
67466
|
this.emitter.emit("mainSeqStepEnd", animateIndex);
|
|
67307
67467
|
});
|
|
67308
|
-
this.slide.on(
|
|
67468
|
+
this.slide.on(import_slide.SLIDE_EVENTS.animateStart, () => {
|
|
67469
|
+
this.sideBar.hidden();
|
|
67470
|
+
});
|
|
67471
|
+
this.slide.on(import_slide.SLIDE_EVENTS.renderError, ({ error, index }) => {
|
|
67472
|
+
if (error.errorType === "CANVAS_CRASH") {
|
|
67473
|
+
this.slide.renderSlide(index);
|
|
67474
|
+
}
|
|
67475
|
+
});
|
|
67476
|
+
this.slide.on(import_slide.SLIDE_EVENTS.renderStart, (slideIndex) => {
|
|
67309
67477
|
this.whiteboardApp.emitter.view.style.opacity = "0";
|
|
67310
67478
|
this.whiteboardApp.emitter.addPage(`${slideIndex}`);
|
|
67311
67479
|
this.whiteboardApp.emitter.gotoPage(`${slideIndex}`);
|
|
67480
|
+
this.sideBar.hidden();
|
|
67312
67481
|
this.emitter.emit("renderStart", slideIndex);
|
|
67313
67482
|
});
|
|
67314
|
-
this.slide.on(
|
|
67483
|
+
this.slide.on(import_slide.SLIDE_EVENTS.renderEnd, (slideIndex) => {
|
|
67315
67484
|
this.currentSlideIndex = slideIndex;
|
|
67316
67485
|
this.whiteboardApp.emitter.view.style.opacity = "1";
|
|
67317
67486
|
this.emitter.emit("renderEnd", slideIndex);
|
|
67318
67487
|
});
|
|
67319
|
-
this.slide.on(
|
|
67488
|
+
this.slide.on(import_slide.SLIDE_EVENTS.stateChange, (state) => {
|
|
67320
67489
|
this.getMap(this.name).set("slideState", state);
|
|
67321
67490
|
});
|
|
67322
67491
|
this.getMap(this.name).observe(this.onSlideEventHandler);
|
|
@@ -67325,7 +67494,7 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67325
67494
|
window.forgeSlide = this;
|
|
67326
67495
|
const syncSlide = this.getMap(this.name).get("slideState");
|
|
67327
67496
|
if (syncSlide && syncSlide.taskId === option.taskId) {
|
|
67328
|
-
|
|
67497
|
+
this.slide.setSlideState(syncSlide);
|
|
67329
67498
|
} else {
|
|
67330
67499
|
this.slide.renderSlide(1);
|
|
67331
67500
|
}
|
|
@@ -67342,8 +67511,31 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67342
67511
|
}
|
|
67343
67512
|
}
|
|
67344
67513
|
});
|
|
67345
|
-
this.permissions.
|
|
67514
|
+
this.permissions.setPermission(7 /* all */);
|
|
67346
67515
|
this.whiteboardApp.disableViewModel();
|
|
67516
|
+
if (this.window) {
|
|
67517
|
+
let prevStatus = "normal";
|
|
67518
|
+
this.window.on("statusChange", (status) => {
|
|
67519
|
+
if (prevStatus === "minimized") {
|
|
67520
|
+
this.onFocusInstance();
|
|
67521
|
+
prevStatus = status;
|
|
67522
|
+
return;
|
|
67523
|
+
}
|
|
67524
|
+
prevStatus = status;
|
|
67525
|
+
if (status === "normal") {
|
|
67526
|
+
this.onFocusInstance();
|
|
67527
|
+
} else if (status === "minimized") {
|
|
67528
|
+
this.onRefocusInstance();
|
|
67529
|
+
}
|
|
67530
|
+
});
|
|
67531
|
+
this.window.on("focusedChange", (status) => {
|
|
67532
|
+
if (status) {
|
|
67533
|
+
this.onFocusInstance();
|
|
67534
|
+
} else {
|
|
67535
|
+
this.onRefocusInstance();
|
|
67536
|
+
}
|
|
67537
|
+
});
|
|
67538
|
+
}
|
|
67347
67539
|
window.__forge_slide = this;
|
|
67348
67540
|
window.slidePermissions = this.permissions;
|
|
67349
67541
|
return Promise.resolve(void 0);
|
|
@@ -67357,7 +67549,8 @@ var SlideApplication = class extends AbstractApplication2 {
|
|
|
67357
67549
|
this.slide.destroy();
|
|
67358
67550
|
this.sideBar.dispose();
|
|
67359
67551
|
this.getMap(this.name).unobserve(this.onSlideEventHandler);
|
|
67360
|
-
|
|
67552
|
+
this.permissions.dispose();
|
|
67553
|
+
this.footer.dispose();
|
|
67361
67554
|
}
|
|
67362
67555
|
};
|
|
67363
67556
|
export {
|