@netless/app-slide 0.2.106-beta.1 → 0.2.106-beta.3

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/README-zh.md CHANGED
@@ -72,6 +72,17 @@ manager.addApp({
72
72
 
73
73
  用于匹配课件笔记的固定白板分辨率。添加 app 时传入主白板尺寸;传入 `null` 时使用 PPT 自身分辨率。
74
74
 
75
+ 5. (可选) `navigationButtonMode`
76
+
77
+ 底部左右按钮的导航模式,默认值为 `"page"`。
78
+
79
+ ```ts
80
+ appOptions: {
81
+ navigationButtonMode: "page", // 上一页/下一页
82
+ // navigationButtonMode: "step", // 上一步/下一步
83
+ }
84
+ ```
85
+
75
86
  ### 协议
76
87
 
77
88
  MIT @ [netless](https://github.com/netless-io)
package/README.md CHANGED
@@ -85,6 +85,17 @@ Parameters:
85
85
 
86
86
  Fixed whiteboard resolution used to fit the slide notes. Pass the main view size when adding the app; use `null` to use the slide resolution.
87
87
 
88
+ 5. (optional) `navigationButtonMode`
89
+
90
+ Controls the footer left/right buttons. It defaults to `"page"`.
91
+
92
+ ```ts
93
+ appOptions: {
94
+ navigationButtonMode: "page", // previous/next page
95
+ // navigationButtonMode: "step", // previous/next animation step
96
+ }
97
+ ```
98
+
88
99
  ### Preview
89
100
 
90
101
  ```ts
package/dist/index.d.ts CHANGED
@@ -1032,6 +1032,7 @@ declare class SlideControllerBase {
1032
1032
  protected syncStateOnceFlag: boolean;
1033
1033
  protected visible: boolean;
1034
1034
  protected savedIsFrozen: boolean;
1035
+ protected focused: boolean;
1035
1036
  protected invisibleBehavior: "frozen" | "pause";
1036
1037
  previewList: string[];
1037
1038
  constructor(props: SlideControllerOptions);
@@ -1057,7 +1058,13 @@ declare class SlideControllerBase {
1057
1058
  destroy(): Promise<void>;
1058
1059
  timestamp: () => number;
1059
1060
  isFrozen: boolean;
1061
+ private resourceStateUnknown;
1062
+ private managedActivity;
1060
1063
  protected _toFreeze: -1 | 0 | 1;
1064
+ setFocusedState: (focused: boolean) => Promise<void>;
1065
+ private resourceTransition;
1066
+ private shouldBeActive;
1067
+ reconcileActivity: (force?: boolean) => Promise<void>;
1061
1068
  freeze: () => Promise<void>;
1062
1069
  unfreeze: () => Promise<void>;
1063
1070
  protected bindAppStateChangeEvent: () => void;
@@ -1067,6 +1074,7 @@ declare class SlideControllerBase {
1067
1074
  status: "normal" | "minimized" | "maximized";
1068
1075
  }) => void;
1069
1076
  protected getAppStatus: () => "normal" | "minimized" | "maximized" | undefined;
1077
+ protected isLazySetupMode: () => boolean;
1070
1078
  protected onVisibilityChange: () => Promise<void>;
1071
1079
  }
1072
1080
  declare class SlideController extends SlideControllerBase {
@@ -1130,6 +1138,7 @@ interface SlideDocsViewerConfig {
1130
1138
  appId: string;
1131
1139
  urlInterrupter?: (url: string) => Promise<string>;
1132
1140
  enableScale?: boolean;
1141
+ navigationButtonMode?: NavigationButtonMode;
1133
1142
  onPagesReady?: (pages: DocsViewerPage[]) => void;
1134
1143
  onNavigate?: (index: number, origin?: string) => void;
1135
1144
  }
@@ -1147,6 +1156,7 @@ declare class SlideDocsViewer {
1147
1156
  protected isViewMounted: boolean;
1148
1157
  protected justSildeReadonly: boolean;
1149
1158
  protected syncEventQueuePolicy: SyncEventQueuePolicy;
1159
+ private readonly navigationButtonMode;
1150
1160
  private enableScale;
1151
1161
  private boxSizeEventCount;
1152
1162
  private latestBoxSize;
@@ -1155,7 +1165,7 @@ declare class SlideDocsViewer {
1155
1165
  private lastAppliedSource;
1156
1166
  private offBoxSizeChange;
1157
1167
  private contentResizeObserver;
1158
- constructor({ context, box, view, mountSlideController, mountWhiteboard, baseScenePath, appId, urlInterrupter, enableScale, onPagesReady, onNavigate, }: SlideDocsViewerConfig);
1168
+ constructor({ context, box, view, mountSlideController, mountWhiteboard, baseScenePath, appId, urlInterrupter, enableScale, navigationButtonMode, onPagesReady, onNavigate, }: SlideDocsViewerConfig);
1159
1169
  $slide: HTMLDivElement;
1160
1170
  $whiteboardView: HTMLDivElement;
1161
1171
  $overlay: HTMLDivElement;
@@ -1187,6 +1197,8 @@ declare class SlideDocsViewer {
1187
1197
  protected _onPageChanged: () => void;
1188
1198
  protected refreshPages: () => void;
1189
1199
  protected getPageIndex(page: number): number;
1200
+ protected unmountPromise?: Promise<this>;
1201
+ protected destroyPromise?: Promise<void>;
1190
1202
  unmount(): Promise<this>;
1191
1203
  setReadonly(readonly: boolean): void;
1192
1204
  destroy(): Promise<void>;
@@ -1297,6 +1309,7 @@ declare class SlidePreviewer {
1297
1309
  declare const usePlugin: (plugin: any) => any;
1298
1310
  declare const version: string;
1299
1311
 
1312
+ type NavigationButtonMode = "page" | "step";
1300
1313
  interface AppOptions extends Pick<ISlideConfig, "rtcAudio" | "useLocalCache" | "resourceTimeout" | "loaderDelegate" | "urlInterrupter" | "navigatorDelegate" | "fixedFrameSize" | "logger" | "enableGlobalClick" | "skipActionWhenFrozen" | "syncEventQueuePolicy"> {
1301
1314
  /** show debug controller */
1302
1315
  debug?: boolean;
@@ -1326,12 +1339,14 @@ interface AppOptions extends Pick<ISlideConfig, "rtcAudio" | "useLocalCache" | "
1326
1339
  invisibleBehavior?: "frozen" | "pause";
1327
1340
  /** just readonly, no operate silder */
1328
1341
  justSildeReadonly?: true;
1342
+ /** footer navigation button behavior @default 'page' */
1343
+ navigationButtonMode?: NavigationButtonMode;
1329
1344
  enableScale?: boolean;
1330
1345
  resourceMaxRetries?: number;
1331
1346
  onResourceMaxRetries: (url: string, error: Error) => void;
1332
1347
  /**
1333
- * Max time (ms) `setup()` waits for the first `renderEnd` before resolving
1334
- * anyway (the slide keeps loading in background). Default: 5_000.
1348
+ * First-render warning threshold in ms. Default: 5_000. New lazy hosts
1349
+ * continue awaiting real readiness; legacy/eager hosts resolve on timeout.
1335
1350
  */
1336
1351
  setupReadyTimeout?: number;
1337
1352
  }
@@ -1364,4 +1379,4 @@ declare const SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, AppResul
1364
1379
  };
1365
1380
 
1366
1381
  export { DefaultUrl, DocsViewer, FreezerLength, SideEffectManager, Slide, SlideController, SlideControllerBase, SlideDocsViewer, SlidePreviewer, addHooks, apps, SlideApp as default, getFreezerLength, log, logger, onCreated, onDestroyed, previewSlide, setFreezerLength, syncSceneWithSlide, useFreezer, usePlugin, version };
1367
- export type { AddHooks, AppOptions, AppResult, Attributes, FreezableSlide, ILogger, PreviewParams };
1382
+ export type { AddHooks, AppOptions, AppResult, Attributes, FreezableSlide, ILogger, NavigationButtonMode, PreviewParams };