@netless/app-slide 0.2.49 → 0.2.51
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 +5 -2
- package/dist/main.cjs.js +69 -69
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +21 -7
- package/dist/main.es.js.map +1 -1
- package/dist/main.iife.js +178 -178
- package/dist/main.iife.js.map +1 -1
- package/package.json +2 -2
- package/src/DocsViewer/index.ts +7 -1
- package/src/SlideDocsViewer/index.ts +4 -1
- package/src/index.ts +8 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netless/app-slide",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.51",
|
|
4
4
|
"main": "dist/main.cjs.js",
|
|
5
5
|
"module": "dist/main.es.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"README-zh.md"
|
|
11
11
|
],
|
|
12
12
|
"devDependencies": {
|
|
13
|
-
"@netless/slide": "^1.2.
|
|
13
|
+
"@netless/slide": "^1.2.1",
|
|
14
14
|
"@types/color-string": "^1.5.2",
|
|
15
15
|
"color-string": "^1.9.1",
|
|
16
16
|
"jspdf": "2.5.1",
|
package/src/DocsViewer/index.ts
CHANGED
|
@@ -20,13 +20,15 @@ export interface DocsViewerConfig {
|
|
|
20
20
|
onNewPageIndex: (index: number) => void;
|
|
21
21
|
onPlay?: () => void;
|
|
22
22
|
urlInterrupter?: (url: string) => Promise<string>;
|
|
23
|
+
onPagesReady?: (pages: DocsViewerPage[]) => void;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export class DocsViewer {
|
|
26
|
-
public constructor({ readonly, onNewPageIndex, onPlay, urlInterrupter }: DocsViewerConfig) {
|
|
27
|
+
public constructor({ readonly, onNewPageIndex, onPlay, onPagesReady, urlInterrupter }: DocsViewerConfig) {
|
|
27
28
|
this.readonly = readonly;
|
|
28
29
|
this.onNewPageIndex = onNewPageIndex;
|
|
29
30
|
this.onPlay = onPlay;
|
|
31
|
+
this.onPagesReady = onPagesReady;
|
|
30
32
|
this.urlInterrupter = urlInterrupter || (url => url);
|
|
31
33
|
|
|
32
34
|
this.render();
|
|
@@ -35,6 +37,7 @@ export class DocsViewer {
|
|
|
35
37
|
protected readonly: boolean;
|
|
36
38
|
protected onNewPageIndex: (index: number) => void;
|
|
37
39
|
protected onPlay?: () => void;
|
|
40
|
+
protected onPagesReady?: (pages: DocsViewerPage[]) => void
|
|
38
41
|
protected urlInterrupter: (url: string) => Promise<string> | string;
|
|
39
42
|
|
|
40
43
|
private _pages: DocsViewerPage[] = [];
|
|
@@ -43,6 +46,9 @@ export class DocsViewer {
|
|
|
43
46
|
this._pages = value;
|
|
44
47
|
this.refreshPreview().then(this.refreshBtnSidebar.bind(this));
|
|
45
48
|
this.refreshTotalPage();
|
|
49
|
+
if (this.onPagesReady) {
|
|
50
|
+
this.onPagesReady(value);
|
|
51
|
+
}
|
|
46
52
|
}
|
|
47
53
|
|
|
48
54
|
public get pages() {
|
|
@@ -3,7 +3,7 @@ import type { SlideController, SlideControllerOptions } from "../SlideController
|
|
|
3
3
|
|
|
4
4
|
import { SideEffectManager } from "side-effect-manager";
|
|
5
5
|
import { createDocsViewerPages } from "../SlideController";
|
|
6
|
-
import { DocsViewer } from "../DocsViewer";
|
|
6
|
+
import { DocsViewer, DocsViewerPage } from "../DocsViewer";
|
|
7
7
|
import { logger } from "../utils/logger";
|
|
8
8
|
import { isEditable } from "../utils/helpers";
|
|
9
9
|
|
|
@@ -21,6 +21,7 @@ export interface SlideDocsViewerConfig {
|
|
|
21
21
|
baseScenePath: string;
|
|
22
22
|
appId: string;
|
|
23
23
|
urlInterrupter?: (url: string) => Promise<string>;
|
|
24
|
+
onPagesReady?: (pages: DocsViewerPage[]) => void;
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
export interface SavePdfConfig {
|
|
@@ -48,6 +49,7 @@ export class SlideDocsViewer {
|
|
|
48
49
|
baseScenePath,
|
|
49
50
|
appId,
|
|
50
51
|
urlInterrupter,
|
|
52
|
+
onPagesReady,
|
|
51
53
|
}: SlideDocsViewerConfig) {
|
|
52
54
|
this.box = box;
|
|
53
55
|
this.whiteboardView = view;
|
|
@@ -60,6 +62,7 @@ export class SlideDocsViewer {
|
|
|
60
62
|
onNewPageIndex: this.onNewPageIndex,
|
|
61
63
|
onPlay: this.onPlay,
|
|
62
64
|
urlInterrupter,
|
|
65
|
+
onPagesReady,
|
|
63
66
|
});
|
|
64
67
|
|
|
65
68
|
this.sideEffect.add(() => {
|
package/src/index.ts
CHANGED
|
@@ -133,6 +133,10 @@ const SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, AppResult> = {
|
|
|
133
133
|
docsViewer.viewer.setPageIndex(page - 1);
|
|
134
134
|
docsViewer.viewer.setPaused();
|
|
135
135
|
docsViewer.onPageChanged();
|
|
136
|
+
const length = docsViewer.viewer.pages.length;
|
|
137
|
+
if (length > 0) {
|
|
138
|
+
context.dispatchAppEvent("pageStateChange", { index: page - 1, length });
|
|
139
|
+
}
|
|
136
140
|
}
|
|
137
141
|
};
|
|
138
142
|
|
|
@@ -174,6 +178,10 @@ const SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, AppResult> = {
|
|
|
174
178
|
baseScenePath,
|
|
175
179
|
appId: context.appId,
|
|
176
180
|
urlInterrupter: context.getAppOptions()?.urlInterrupter,
|
|
181
|
+
onPagesReady: ({ length }) => {
|
|
182
|
+
const index = docsViewer?.viewer.pageIndex || 0;
|
|
183
|
+
context.dispatchAppEvent("pageStateChange", { index, length });
|
|
184
|
+
}
|
|
177
185
|
});
|
|
178
186
|
|
|
179
187
|
if (import.meta.env.DEV) {
|