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

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 CHANGED
@@ -1,3 +1,4 @@
1
+ import * as _netless_window_manager from '@netless/window-manager';
1
2
  import { RegisterParams, ReadonlyTeleBox, Room, AppContext, Player, View, NetlessApp } from '@netless/window-manager';
2
3
  import { SlideError, VolumeAdjuster } from '@netless/ppt-player';
3
4
  import { IPlugin } from '@netless/plugin-system';
@@ -486,6 +487,7 @@ declare class Slide extends Slide_base {
486
487
  private lifecycle;
487
488
  private lifecycleGeneration;
488
489
  private renderVisibilityTimers;
490
+ private destroyPromise?;
489
491
  private isLoading;
490
492
  private isReleasing;
491
493
  private interactive;
@@ -744,12 +746,12 @@ declare class Slide extends Slide_base {
744
746
  /**
745
747
  * Enter freeze state, cache the ppt screen as an image, and release the WebGL context.
746
748
  */
747
- frozen(callback?: () => void): void;
749
+ frozen(callback?: () => void): Promise<void>;
748
750
  private _doRelease;
749
751
  /**
750
752
  * Recover from frozen state.
751
753
  */
752
- release(callback?: () => void): void;
754
+ release(callback?: () => void): Promise<void>;
753
755
  private _doDestroy;
754
756
  private waitLoadEnd;
755
757
  /**
@@ -761,7 +763,7 @@ declare class Slide extends Slide_base {
761
763
  /**
762
764
  * Destruction method.
763
765
  */
764
- destroy(): void;
766
+ destroy(): Promise<void>;
765
767
  /**
766
768
  * Destroy the local cache of the current Slide instance, need to be called before destroy.
767
769
  */
@@ -1051,11 +1053,12 @@ declare class SlideControllerBase {
1051
1053
  get page(): number;
1052
1054
  protected createSlide(anchor: HTMLDivElement, defaults?: Partial<ISlideConfig>): Slide;
1053
1055
  protected destroyed: boolean;
1054
- destroy(): void;
1056
+ protected destroyPromise?: Promise<void>;
1057
+ destroy(): Promise<void>;
1055
1058
  timestamp: () => number;
1056
1059
  isFrozen: boolean;
1057
1060
  protected _toFreeze: -1 | 0 | 1;
1058
- freeze: () => void;
1061
+ freeze: () => Promise<void>;
1059
1062
  unfreeze: () => Promise<void>;
1060
1063
  protected bindAppStateChangeEvent: () => void;
1061
1064
  protected onAppStateChangeHandler: (state: "normal" | "minimized" | "maximized") => void;
@@ -1104,6 +1107,7 @@ declare class ResizableContainer {
1104
1107
  handleNormalizeTranslate(x: number, y: number, options: {
1105
1108
  triggerScrollBar: boolean;
1106
1109
  triggerSync: boolean;
1110
+ force?: boolean;
1107
1111
  }): void;
1108
1112
  scaleContainer(applyScale: number): void;
1109
1113
  private cancelScheduledLayoutUpdate;
@@ -1183,9 +1187,9 @@ declare class SlideDocsViewer {
1183
1187
  protected _onPageChanged: () => void;
1184
1188
  protected refreshPages: () => void;
1185
1189
  protected getPageIndex(page: number): number;
1186
- unmount(): this;
1190
+ unmount(): Promise<this>;
1187
1191
  setReadonly(readonly: boolean): void;
1188
- destroy(): void;
1192
+ destroy(): Promise<void>;
1189
1193
  toggleClickThrough(tool?: string): void;
1190
1194
  protected scaleDocsToFit: () => void;
1191
1195
  protected onPlay: () => void;
@@ -1279,7 +1283,8 @@ declare class SlidePreviewer {
1279
1283
  error: Error;
1280
1284
  }) => void;
1281
1285
  protected destroyed: boolean;
1282
- destroy(): void;
1286
+ protected destroyPromise?: Promise<void>;
1287
+ destroy(): Promise<void>;
1283
1288
  protected refreshPages: () => void;
1284
1289
  protected getPageIndex(page: number): number;
1285
1290
  protected renderSlideContainer(): HTMLDivElement;
@@ -1324,6 +1329,11 @@ interface AppOptions extends Pick<ISlideConfig, "rtcAudio" | "useLocalCache" | "
1324
1329
  enableScale?: boolean;
1325
1330
  resourceMaxRetries?: number;
1326
1331
  onResourceMaxRetries: (url: string, error: Error) => void;
1332
+ /**
1333
+ * Max time (ms) `setup()` waits for the first `renderEnd` before resolving
1334
+ * anyway (the slide keeps loading in background). Default: 5_000.
1335
+ */
1336
+ setupReadyTimeout?: number;
1327
1337
  }
1328
1338
  interface ILogger {
1329
1339
  info?(msg: string): void;
@@ -1349,7 +1359,9 @@ interface AppResult {
1349
1359
  onPptMediaPermissionRequest: (callback: () => void) => () => void;
1350
1360
  playPptMedia: () => void;
1351
1361
  }
1352
- declare const SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, AppResult>;
1362
+ declare const SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, AppResult> & {
1363
+ teardown(context: _netless_window_manager.AppContext): Promise<void>;
1364
+ };
1353
1365
 
1354
1366
  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 };
1355
1367
  export type { AddHooks, AppOptions, AppResult, Attributes, FreezableSlide, ILogger, PreviewParams };