@netless/app-slide 0.2.105-beta.0 → 0.2.105-beta.2
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 -0
- package/dist/main.cjs.js +117 -117
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +84 -4
- package/dist/main.es.js.map +1 -1
- package/dist/main.iife.js +139 -139
- package/dist/main.iife.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +100 -2
package/dist/main.es.js
CHANGED
|
@@ -42853,11 +42853,12 @@ class SlidePreviewer {
|
|
|
42853
42853
|
}
|
|
42854
42854
|
}
|
|
42855
42855
|
const usePlugin = /* @__PURE__ */ Slide.Slide.usePlugin.bind(Slide.Slide);
|
|
42856
|
-
const version = "0.2.105-beta.
|
|
42856
|
+
const version = "0.2.105-beta.2";
|
|
42857
|
+
const DEFAULT_SLIDE_SETUP_READY_TIMEOUT = 5e3;
|
|
42857
42858
|
const SlideApp = {
|
|
42858
42859
|
kind: "Slide",
|
|
42859
42860
|
setup(context) {
|
|
42860
|
-
var _a, _b, _c, _d, _e;
|
|
42861
|
+
var _a, _b, _c, _d, _e, _f;
|
|
42861
42862
|
console.log("[Slide] setup @ " + version);
|
|
42862
42863
|
if (context.getIsWritable()) {
|
|
42863
42864
|
context.storage.ensureState(EmptyAttributes);
|
|
@@ -42878,6 +42879,8 @@ const SlideApp = {
|
|
|
42878
42879
|
}
|
|
42879
42880
|
const baseScenePath = context.getInitScenePath();
|
|
42880
42881
|
let docsViewer = null;
|
|
42882
|
+
let slideControllerRef;
|
|
42883
|
+
let firstRenderFailed = false;
|
|
42881
42884
|
const onPageChanged = (page) => {
|
|
42882
42885
|
const room2 = context.getRoom();
|
|
42883
42886
|
if (docsViewer && docsViewer.slideController) {
|
|
@@ -42903,14 +42906,21 @@ const SlideApp = {
|
|
|
42903
42906
|
...options,
|
|
42904
42907
|
onPageChanged,
|
|
42905
42908
|
onNavigate: options.onNavigate,
|
|
42906
|
-
onRenderError:
|
|
42909
|
+
onRenderError: (error, pageIndex) => {
|
|
42910
|
+
var _a2;
|
|
42911
|
+
firstRenderFailed = true;
|
|
42912
|
+
(_a2 = appOptions2.onRenderError) == null ? void 0 : _a2.call(appOptions2, error, pageIndex);
|
|
42913
|
+
},
|
|
42907
42914
|
showRenderError: appOptions2.showRenderError,
|
|
42908
42915
|
invisibleBehavior: appOptions2.invisibleBehavior
|
|
42909
42916
|
});
|
|
42917
|
+
slideControllerRef = slideController;
|
|
42910
42918
|
if (useFreezer)
|
|
42911
42919
|
apps.set(context.appId, slideController, box);
|
|
42912
42920
|
logger.setAppController(context.appId, slideController);
|
|
42913
42921
|
slideController.readyPromise.then(options.onReady).then(() => {
|
|
42922
|
+
if (disposed)
|
|
42923
|
+
return;
|
|
42914
42924
|
const room2 = context.getRoom();
|
|
42915
42925
|
let synced = false;
|
|
42916
42926
|
if (room2 && context.getIsWritable()) {
|
|
@@ -42965,6 +42975,44 @@ const SlideApp = {
|
|
|
42965
42975
|
return () => room.callbacks.off("onRoomStateChanged", onRoomStateChanged);
|
|
42966
42976
|
});
|
|
42967
42977
|
}
|
|
42978
|
+
const isLazySetupMode = () => {
|
|
42979
|
+
var _a2;
|
|
42980
|
+
return ((_a2 = context.getWindowManager()) == null ? void 0 : _a2.lazySetupInMaximizedMode) === true;
|
|
42981
|
+
};
|
|
42982
|
+
const isBlurFreezeAllowed = () => {
|
|
42983
|
+
var _a2;
|
|
42984
|
+
const boxStatus = context.getBoxStatus();
|
|
42985
|
+
if (boxStatus)
|
|
42986
|
+
return boxStatus !== "normal";
|
|
42987
|
+
const boxState = (_a2 = context.getWindowManager()) == null ? void 0 : _a2.boxState;
|
|
42988
|
+
return boxState != null && boxState !== "normal";
|
|
42989
|
+
};
|
|
42990
|
+
sideEffect.add(
|
|
42991
|
+
() => context.emitter.on("focus", (isFocused) => {
|
|
42992
|
+
if (disposed)
|
|
42993
|
+
return;
|
|
42994
|
+
if (!isLazySetupMode())
|
|
42995
|
+
return;
|
|
42996
|
+
const controller = docsViewer == null ? void 0 : docsViewer.slideController;
|
|
42997
|
+
if (!controller)
|
|
42998
|
+
return;
|
|
42999
|
+
if (!isFocused) {
|
|
43000
|
+
if (!isBlurFreezeAllowed())
|
|
43001
|
+
return;
|
|
43002
|
+
if (!controller.isFrozen) {
|
|
43003
|
+
log("[Slide] blur freeze", context.appId);
|
|
43004
|
+
controller.freeze();
|
|
43005
|
+
}
|
|
43006
|
+
return;
|
|
43007
|
+
}
|
|
43008
|
+
if (useFreezer) {
|
|
43009
|
+
apps.focus(context.appId);
|
|
43010
|
+
} else if (controller.isFrozen) {
|
|
43011
|
+
log("[Slide] focus unfreeze", context.appId);
|
|
43012
|
+
controller.unfreeze();
|
|
43013
|
+
}
|
|
43014
|
+
})
|
|
43015
|
+
);
|
|
42968
43016
|
let disposed = false;
|
|
42969
43017
|
let offDestroy;
|
|
42970
43018
|
const teardown = () => {
|
|
@@ -42987,7 +43035,29 @@ const SlideApp = {
|
|
|
42987
43035
|
docsViewer.mount();
|
|
42988
43036
|
SlideApp.__teardownByContext || (SlideApp.__teardownByContext = /* @__PURE__ */ new WeakMap());
|
|
42989
43037
|
SlideApp.__teardownByContext.set(context, teardown);
|
|
42990
|
-
|
|
43038
|
+
const waitForFirstRender = (timeoutMs) => new Promise((resolve) => {
|
|
43039
|
+
let settled = false;
|
|
43040
|
+
let pollTimer;
|
|
43041
|
+
const settle = (loaded) => {
|
|
43042
|
+
if (settled)
|
|
43043
|
+
return;
|
|
43044
|
+
settled = true;
|
|
43045
|
+
window.clearTimeout(timeoutTimer);
|
|
43046
|
+
if (pollTimer !== void 0)
|
|
43047
|
+
window.clearInterval(pollTimer);
|
|
43048
|
+
resolve(loaded);
|
|
43049
|
+
};
|
|
43050
|
+
const timeoutTimer = window.setTimeout(() => settle(false), timeoutMs);
|
|
43051
|
+
slideControllerRef == null ? void 0 : slideControllerRef.readyPromise.then(
|
|
43052
|
+
() => settle(!firstRenderFailed),
|
|
43053
|
+
() => settle(false)
|
|
43054
|
+
);
|
|
43055
|
+
pollTimer = window.setInterval(() => {
|
|
43056
|
+
if (disposed || firstRenderFailed)
|
|
43057
|
+
settle(false);
|
|
43058
|
+
}, 100);
|
|
43059
|
+
});
|
|
43060
|
+
const appResult = {
|
|
42991
43061
|
onScaleChanged: (cb) => {
|
|
42992
43062
|
if (!docsViewer) {
|
|
42993
43063
|
return () => void 0;
|
|
@@ -43106,6 +43176,16 @@ const SlideApp = {
|
|
|
43106
43176
|
return false;
|
|
43107
43177
|
}
|
|
43108
43178
|
};
|
|
43179
|
+
const setupReadyTimeout = (_f = appOptions == null ? void 0 : appOptions.setupReadyTimeout) != null ? _f : DEFAULT_SLIDE_SETUP_READY_TIMEOUT;
|
|
43180
|
+
return waitForFirstRender(setupReadyTimeout).then(() => {
|
|
43181
|
+
if (firstRenderFailed) {
|
|
43182
|
+
throw new Error("[Slide] first render failed before ready");
|
|
43183
|
+
}
|
|
43184
|
+
if (!disposed && !(slideControllerRef == null ? void 0 : slideControllerRef.ready)) {
|
|
43185
|
+
log("[Slide] setup ready wait timed out, slide keeps loading in background");
|
|
43186
|
+
}
|
|
43187
|
+
return appResult;
|
|
43188
|
+
});
|
|
43109
43189
|
},
|
|
43110
43190
|
teardown(context) {
|
|
43111
43191
|
var _a, _b, _c;
|