@netless/app-slide 0.2.101 → 0.2.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/main.cjs.js +79 -79
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +13 -2
- package/dist/main.es.js.map +1 -1
- package/dist/main.iife.js +3 -3
- package/dist/main.iife.js.map +1 -1
- package/package.json +1 -1
- package/src/DocsViewer/ResizableContainer.ts +8 -0
- package/src/SlideController/index.ts +5 -1
- package/src/SlideDocsViewer/index.ts +3 -0
package/package.json
CHANGED
|
@@ -9,6 +9,7 @@ export class ResizableContainer {
|
|
|
9
9
|
public container: HTMLDivElement;
|
|
10
10
|
private scrollContainer: HTMLDivElement;
|
|
11
11
|
public onScaleChanged: ((scale: number) => void) | null = null;
|
|
12
|
+
public onLayoutUpdated: (() => void) | null = null;
|
|
12
13
|
|
|
13
14
|
private parent: HTMLElement;
|
|
14
15
|
private whiteboardContainer: HTMLDivElement | null = null;
|
|
@@ -131,6 +132,12 @@ export class ResizableContainer {
|
|
|
131
132
|
triggerScrollBar: true,
|
|
132
133
|
triggerSync: true,
|
|
133
134
|
});
|
|
135
|
+
|
|
136
|
+
// enableScale / scaleView 只改变内部 container 的像素尺寸,box 本身不变。
|
|
137
|
+
// Slide 内部 ResizeObserver 已关闭,box 上的 observer / boxSizeChange 都不会触发,
|
|
138
|
+
// 必须在这里主动通知 canvas 按新的 frame 尺寸重绘。
|
|
139
|
+
this.slide?.notifyFrameResize();
|
|
140
|
+
this.onLayoutUpdated?.();
|
|
134
141
|
}
|
|
135
142
|
|
|
136
143
|
// x, y 范围 0 ~ 1
|
|
@@ -199,6 +206,7 @@ export class ResizableContainer {
|
|
|
199
206
|
}
|
|
200
207
|
|
|
201
208
|
public destroy(_box?: ReadonlyTeleBox): void {
|
|
209
|
+
this.onLayoutUpdated = null;
|
|
202
210
|
this.scrollBar?.destroy();
|
|
203
211
|
}
|
|
204
212
|
}
|
|
@@ -398,10 +398,14 @@ export class SlideControllerBase {
|
|
|
398
398
|
let isNeedSyncState = false;
|
|
399
399
|
log("[Slide] unfreeze", this.context.appId);
|
|
400
400
|
if (this.invisibleBehavior === "frozen") {
|
|
401
|
-
this.slide.release()
|
|
401
|
+
this.slide.release(() => {
|
|
402
|
+
// release 会重建 player,内部 observer 已关闭,需要按当前 frame 尺寸重绘
|
|
403
|
+
this.slide.notifyFrameResize();
|
|
404
|
+
});
|
|
402
405
|
isNeedSyncState = true;
|
|
403
406
|
} else {
|
|
404
407
|
this.slide.resume();
|
|
408
|
+
this.slide.notifyFrameResize();
|
|
405
409
|
}
|
|
406
410
|
if (isNeedSyncState) {
|
|
407
411
|
const state = this.context.storage.state.state;
|