@netless/app-presentation 0.1.13-beta.4 → 0.1.14
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 +11 -0
- package/README.md +13 -0
- package/build.ts +19 -9
- package/dist/index.d.ts +13 -2
- package/dist/index.global.js +46 -35
- package/dist/index.js +46 -35
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +46 -36
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -5
- package/src/app-presentation.ts +37 -42
- package/src/camera-reference.ts +1 -1
- package/src/presentation.ts +8 -1
package/dist/index.mjs
CHANGED
|
@@ -1301,6 +1301,7 @@ var Presentation = class {
|
|
|
1301
1301
|
var _a;
|
|
1302
1302
|
this.pages = config.pages;
|
|
1303
1303
|
this.preload = new Preload(this.pages);
|
|
1304
|
+
this.onThumbnailError = config.onThumbnailError;
|
|
1304
1305
|
if (config.thumbnail)
|
|
1305
1306
|
this.thumbnail = config.thumbnail;
|
|
1306
1307
|
this.dispose.add(this.preload);
|
|
@@ -1516,12 +1517,16 @@ var Presentation = class {
|
|
|
1516
1517
|
}
|
|
1517
1518
|
/** Returns a modified URL that points to the thumbnail image. */
|
|
1518
1519
|
thumbnail(src) {
|
|
1520
|
+
var _a;
|
|
1519
1521
|
try {
|
|
1520
1522
|
const url = new URL(src);
|
|
1521
1523
|
url.searchParams.set("x-oss-process", "image/resize,l_50");
|
|
1522
1524
|
return url.toString();
|
|
1523
1525
|
} catch (err) {
|
|
1524
|
-
|
|
1526
|
+
try {
|
|
1527
|
+
(_a = this.onThumbnailError) == null ? void 0 : _a.call(this, err);
|
|
1528
|
+
} catch (e) {
|
|
1529
|
+
}
|
|
1525
1530
|
return src;
|
|
1526
1531
|
}
|
|
1527
1532
|
}
|
|
@@ -2116,7 +2121,8 @@ var setupBlurThumbnailDegradation = (config) => {
|
|
|
2116
2121
|
const box = context.getBox();
|
|
2117
2122
|
const boxBlurClass = box.wrapClassName("blur");
|
|
2118
2123
|
let blurEpisode = false;
|
|
2119
|
-
let
|
|
2124
|
+
let failedThumbnailPageIndex = null;
|
|
2125
|
+
const canReDegrade = () => blurEpisode && failedThumbnailPageIndex !== pageIndex$.value;
|
|
2120
2126
|
let previewSuspended = false;
|
|
2121
2127
|
let appliedFocusState = true;
|
|
2122
2128
|
let logicalFocused = true;
|
|
@@ -2173,15 +2179,16 @@ var setupBlurThumbnailDegradation = (config) => {
|
|
|
2173
2179
|
app.suspendPreviewResources();
|
|
2174
2180
|
}
|
|
2175
2181
|
const page = pages[pageIndex$.value];
|
|
2176
|
-
if (!page || !hasUsableThumbnail(page) ||
|
|
2182
|
+
if (!page || !hasUsableThumbnail(page) || canReDegrade()) {
|
|
2177
2183
|
degrade();
|
|
2178
2184
|
}
|
|
2179
2185
|
};
|
|
2180
2186
|
const restoreFocusedResources = () => {
|
|
2187
|
+
appliedFocusState = true;
|
|
2181
2188
|
if (!blurEpisode)
|
|
2182
2189
|
return;
|
|
2183
2190
|
blurEpisode = false;
|
|
2184
|
-
|
|
2191
|
+
failedThumbnailPageIndex = null;
|
|
2185
2192
|
previewSuspended = false;
|
|
2186
2193
|
restore2();
|
|
2187
2194
|
app.preload.resume(pageIndex$.value);
|
|
@@ -2200,18 +2207,22 @@ var setupBlurThumbnailDegradation = (config) => {
|
|
|
2200
2207
|
return !!(el && el.contains(target));
|
|
2201
2208
|
};
|
|
2202
2209
|
const onImgLoad = (ev) => {
|
|
2203
|
-
if (!
|
|
2210
|
+
if (!canReDegrade())
|
|
2204
2211
|
return;
|
|
2205
2212
|
if (!ownsTarget(ev.target))
|
|
2206
2213
|
return;
|
|
2207
2214
|
degrade();
|
|
2208
2215
|
};
|
|
2209
2216
|
const onImgError = (ev) => {
|
|
2210
|
-
|
|
2217
|
+
var _a;
|
|
2218
|
+
if (!canReDegrade())
|
|
2211
2219
|
return;
|
|
2212
2220
|
if (!ownsTarget(ev.target))
|
|
2213
2221
|
return;
|
|
2214
|
-
|
|
2222
|
+
const thumbnailURL = (_a = pages[pageIndex$.value]) == null ? void 0 : _a.thumbnail;
|
|
2223
|
+
if (thumbnailURL && resolveImageUrl(ev.target.src) === resolveImageUrl(thumbnailURL)) {
|
|
2224
|
+
failedThumbnailPageIndex = pageIndex$.value;
|
|
2225
|
+
}
|
|
2215
2226
|
};
|
|
2216
2227
|
const applyActivity = () => {
|
|
2217
2228
|
var _a;
|
|
@@ -2225,7 +2236,7 @@ var setupBlurThumbnailDegradation = (config) => {
|
|
|
2225
2236
|
restoreFocusedResources();
|
|
2226
2237
|
} else {
|
|
2227
2238
|
blurEpisode = true;
|
|
2228
|
-
|
|
2239
|
+
failedThumbnailPageIndex = null;
|
|
2229
2240
|
degrade();
|
|
2230
2241
|
app.preload.pause();
|
|
2231
2242
|
suspendCachedResources();
|
|
@@ -2272,26 +2283,21 @@ var setupBlurThumbnailDegradation = (config) => {
|
|
|
2272
2283
|
document.removeEventListener("error", onImgError, true);
|
|
2273
2284
|
});
|
|
2274
2285
|
};
|
|
2275
|
-
var
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2286
|
+
var getLogger = (context) => {
|
|
2287
|
+
var _a, _b, _c;
|
|
2288
|
+
return (_c = (_a = context.getWindowManager()) == null ? void 0 : _a.Logger) != null ? _c : (_b = context.getRoom()) == null ? void 0 : _b.logger;
|
|
2289
|
+
};
|
|
2290
|
+
var createLogger = (context) => {
|
|
2291
|
+
return (...args) => {
|
|
2292
|
+
var _a, _b;
|
|
2293
|
+
return (_b = (_a = getLogger(context)) == null ? void 0 : _a.info) == null ? void 0 : _b.call(_a, ...args);
|
|
2294
|
+
};
|
|
2281
2295
|
};
|
|
2282
2296
|
var createDiagnosticLogger = (context) => {
|
|
2283
|
-
var _a;
|
|
2284
|
-
const createAppLogger = context.createLogger;
|
|
2285
|
-
if (typeof createAppLogger === "function") {
|
|
2286
|
-
return createAppLogger.call(context, "camera", {
|
|
2287
|
-
debounceTime: 300,
|
|
2288
|
-
maxWaitTime: 2e3
|
|
2289
|
-
});
|
|
2290
|
-
}
|
|
2291
|
-
const roomLogger = (_a = context.getRoom()) == null ? void 0 : _a.logger;
|
|
2292
2297
|
const prefix = `[Presentation][${context.appId}][camera]`;
|
|
2293
2298
|
const emit = (level, event, ...data) => {
|
|
2294
2299
|
try {
|
|
2300
|
+
const roomLogger = getLogger(context);
|
|
2295
2301
|
const printer = roomLogger == null ? void 0 : roomLogger[level];
|
|
2296
2302
|
if (typeof printer === "function")
|
|
2297
2303
|
printer.call(roomLogger, `${prefix}[${event}]`, ...data);
|
|
@@ -2356,9 +2362,11 @@ var NetlessAppPresentation = {
|
|
|
2356
2362
|
);
|
|
2357
2363
|
const options = context.getAppOptions() || {};
|
|
2358
2364
|
const room = context.getRoom();
|
|
2359
|
-
const log = options.log || createLogger(
|
|
2360
|
-
const
|
|
2361
|
-
|
|
2365
|
+
const log = options.log || createLogger(context);
|
|
2366
|
+
const warn = (...data) => {
|
|
2367
|
+
var _a2, _b2;
|
|
2368
|
+
return (_b2 = (_a2 = getLogger(context)) == null ? void 0 : _a2.warn) == null ? void 0 : _b2.call(_a2, ...data);
|
|
2369
|
+
};
|
|
2362
2370
|
const configuredOriginSize = context.storage.state.originSize;
|
|
2363
2371
|
const originSize = isValidSize(configuredOriginSize) ? {
|
|
2364
2372
|
width: configuredOriginSize.width,
|
|
@@ -2690,10 +2698,14 @@ var NetlessAppPresentation = {
|
|
|
2690
2698
|
pageIndex$,
|
|
2691
2699
|
view,
|
|
2692
2700
|
options.thumbnail,
|
|
2693
|
-
options.useClipView
|
|
2701
|
+
options.useClipView,
|
|
2702
|
+
(error) => {
|
|
2703
|
+
var _a2, _b2;
|
|
2704
|
+
return (_b2 = (_a2 = getLogger(context)) == null ? void 0 : _a2.error) == null ? void 0 : _b2.call(_a2, "[Presentation] thumbnail URL parsing failed", context.appId, error);
|
|
2705
|
+
}
|
|
2694
2706
|
)
|
|
2695
2707
|
);
|
|
2696
|
-
app.contentDOM.dataset.appPresentationVersion = "0.1.
|
|
2708
|
+
app.contentDOM.dataset.appPresentationVersion = "0.1.14";
|
|
2697
2709
|
app.scaleDocsToFit = scaleDocsToFit;
|
|
2698
2710
|
app.log = log;
|
|
2699
2711
|
app.warn = warn;
|
|
@@ -3173,10 +3185,7 @@ var NetlessAppPresentation = {
|
|
|
3173
3185
|
);
|
|
3174
3186
|
if (disposed)
|
|
3175
3187
|
throw new Error("[Presentation] disposed before setup ready");
|
|
3176
|
-
if (result === "error"
|
|
3177
|
-
throw new Error("[Presentation] setup page image failed to load");
|
|
3178
|
-
}
|
|
3179
|
-
if (result === "error" && !disposed) {
|
|
3188
|
+
if (result === "error") {
|
|
3180
3189
|
warn("[Presentation] setup page image failed to load; continuing setup");
|
|
3181
3190
|
}
|
|
3182
3191
|
return controller;
|
|
@@ -3212,13 +3221,14 @@ var AppPresentation = class extends Presentation {
|
|
|
3212
3221
|
}
|
|
3213
3222
|
}
|
|
3214
3223
|
};
|
|
3215
|
-
function createPresentation(box, pages, jumpPage, pageIndex$, view, thumbnail, useClipView) {
|
|
3224
|
+
function createPresentation(box, pages, jumpPage, pageIndex$, view, thumbnail, useClipView, onThumbnailError) {
|
|
3216
3225
|
box.mountStyles(style_default);
|
|
3217
3226
|
const app = new AppPresentation({
|
|
3218
3227
|
pages,
|
|
3219
3228
|
readonly: box.readonly,
|
|
3220
3229
|
jumpPage,
|
|
3221
|
-
thumbnail
|
|
3230
|
+
thumbnail,
|
|
3231
|
+
onThumbnailError
|
|
3222
3232
|
});
|
|
3223
3233
|
app.box = box;
|
|
3224
3234
|
box.mountContent(app.contentDOM);
|
|
@@ -3266,7 +3276,7 @@ var install = (register, options = {}) => {
|
|
|
3266
3276
|
};
|
|
3267
3277
|
|
|
3268
3278
|
// src/index.ts
|
|
3269
|
-
var version = "0.1.
|
|
3279
|
+
var version = "0.1.14";
|
|
3270
3280
|
|
|
3271
|
-
export { NetlessAppPresentation, Presentation, Scrollbar, NetlessAppPresentation as default, install, setupBlurThumbnailDegradation, version };
|
|
3281
|
+
export { NetlessAppPresentation, Presentation, Scrollbar, createDiagnosticLogger, NetlessAppPresentation as default, install, setupBlurThumbnailDegradation, version };
|
|
3272
3282
|
//# sourceMappingURL=index.mjs.map
|