@netless/app-presentation 0.1.13-beta.4 → 0.1.13
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 +11 -1
- package/dist/index.global.js +45 -35
- package/dist/index.js +45 -35
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +45 -36
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app-presentation.ts +33 -41
- 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,7 +2179,7 @@ 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
|
};
|
|
@@ -2181,7 +2187,7 @@ var setupBlurThumbnailDegradation = (config) => {
|
|
|
2181
2187
|
if (!blurEpisode)
|
|
2182
2188
|
return;
|
|
2183
2189
|
blurEpisode = false;
|
|
2184
|
-
|
|
2190
|
+
failedThumbnailPageIndex = null;
|
|
2185
2191
|
previewSuspended = false;
|
|
2186
2192
|
restore2();
|
|
2187
2193
|
app.preload.resume(pageIndex$.value);
|
|
@@ -2200,18 +2206,22 @@ var setupBlurThumbnailDegradation = (config) => {
|
|
|
2200
2206
|
return !!(el && el.contains(target));
|
|
2201
2207
|
};
|
|
2202
2208
|
const onImgLoad = (ev) => {
|
|
2203
|
-
if (!
|
|
2209
|
+
if (!canReDegrade())
|
|
2204
2210
|
return;
|
|
2205
2211
|
if (!ownsTarget(ev.target))
|
|
2206
2212
|
return;
|
|
2207
2213
|
degrade();
|
|
2208
2214
|
};
|
|
2209
2215
|
const onImgError = (ev) => {
|
|
2210
|
-
|
|
2216
|
+
var _a;
|
|
2217
|
+
if (!canReDegrade())
|
|
2211
2218
|
return;
|
|
2212
2219
|
if (!ownsTarget(ev.target))
|
|
2213
2220
|
return;
|
|
2214
|
-
|
|
2221
|
+
const thumbnailURL = (_a = pages[pageIndex$.value]) == null ? void 0 : _a.thumbnail;
|
|
2222
|
+
if (thumbnailURL && resolveImageUrl(ev.target.src) === resolveImageUrl(thumbnailURL)) {
|
|
2223
|
+
failedThumbnailPageIndex = pageIndex$.value;
|
|
2224
|
+
}
|
|
2215
2225
|
};
|
|
2216
2226
|
const applyActivity = () => {
|
|
2217
2227
|
var _a;
|
|
@@ -2225,7 +2235,7 @@ var setupBlurThumbnailDegradation = (config) => {
|
|
|
2225
2235
|
restoreFocusedResources();
|
|
2226
2236
|
} else {
|
|
2227
2237
|
blurEpisode = true;
|
|
2228
|
-
|
|
2238
|
+
failedThumbnailPageIndex = null;
|
|
2229
2239
|
degrade();
|
|
2230
2240
|
app.preload.pause();
|
|
2231
2241
|
suspendCachedResources();
|
|
@@ -2272,26 +2282,21 @@ var setupBlurThumbnailDegradation = (config) => {
|
|
|
2272
2282
|
document.removeEventListener("error", onImgError, true);
|
|
2273
2283
|
});
|
|
2274
2284
|
};
|
|
2275
|
-
var
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2285
|
+
var getLogger = (context) => {
|
|
2286
|
+
var _a, _b, _c;
|
|
2287
|
+
return (_c = (_a = context.getWindowManager()) == null ? void 0 : _a.Logger) != null ? _c : (_b = context.getRoom()) == null ? void 0 : _b.logger;
|
|
2288
|
+
};
|
|
2289
|
+
var createLogger = (context) => {
|
|
2290
|
+
return (...args) => {
|
|
2291
|
+
var _a, _b;
|
|
2292
|
+
return (_b = (_a = getLogger(context)) == null ? void 0 : _a.info) == null ? void 0 : _b.call(_a, ...args);
|
|
2293
|
+
};
|
|
2281
2294
|
};
|
|
2282
2295
|
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
2296
|
const prefix = `[Presentation][${context.appId}][camera]`;
|
|
2293
2297
|
const emit = (level, event, ...data) => {
|
|
2294
2298
|
try {
|
|
2299
|
+
const roomLogger = getLogger(context);
|
|
2295
2300
|
const printer = roomLogger == null ? void 0 : roomLogger[level];
|
|
2296
2301
|
if (typeof printer === "function")
|
|
2297
2302
|
printer.call(roomLogger, `${prefix}[${event}]`, ...data);
|
|
@@ -2356,9 +2361,11 @@ var NetlessAppPresentation = {
|
|
|
2356
2361
|
);
|
|
2357
2362
|
const options = context.getAppOptions() || {};
|
|
2358
2363
|
const room = context.getRoom();
|
|
2359
|
-
const log = options.log || createLogger(
|
|
2360
|
-
const
|
|
2361
|
-
|
|
2364
|
+
const log = options.log || createLogger(context);
|
|
2365
|
+
const warn = (...data) => {
|
|
2366
|
+
var _a2, _b2;
|
|
2367
|
+
return (_b2 = (_a2 = getLogger(context)) == null ? void 0 : _a2.warn) == null ? void 0 : _b2.call(_a2, ...data);
|
|
2368
|
+
};
|
|
2362
2369
|
const configuredOriginSize = context.storage.state.originSize;
|
|
2363
2370
|
const originSize = isValidSize(configuredOriginSize) ? {
|
|
2364
2371
|
width: configuredOriginSize.width,
|
|
@@ -2690,10 +2697,14 @@ var NetlessAppPresentation = {
|
|
|
2690
2697
|
pageIndex$,
|
|
2691
2698
|
view,
|
|
2692
2699
|
options.thumbnail,
|
|
2693
|
-
options.useClipView
|
|
2700
|
+
options.useClipView,
|
|
2701
|
+
(error) => {
|
|
2702
|
+
var _a2, _b2;
|
|
2703
|
+
return (_b2 = (_a2 = getLogger(context)) == null ? void 0 : _a2.error) == null ? void 0 : _b2.call(_a2, "[Presentation] thumbnail URL parsing failed", context.appId, error);
|
|
2704
|
+
}
|
|
2694
2705
|
)
|
|
2695
2706
|
);
|
|
2696
|
-
app.contentDOM.dataset.appPresentationVersion = "0.1.13
|
|
2707
|
+
app.contentDOM.dataset.appPresentationVersion = "0.1.13";
|
|
2697
2708
|
app.scaleDocsToFit = scaleDocsToFit;
|
|
2698
2709
|
app.log = log;
|
|
2699
2710
|
app.warn = warn;
|
|
@@ -3173,10 +3184,7 @@ var NetlessAppPresentation = {
|
|
|
3173
3184
|
);
|
|
3174
3185
|
if (disposed)
|
|
3175
3186
|
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) {
|
|
3187
|
+
if (result === "error") {
|
|
3180
3188
|
warn("[Presentation] setup page image failed to load; continuing setup");
|
|
3181
3189
|
}
|
|
3182
3190
|
return controller;
|
|
@@ -3212,13 +3220,14 @@ var AppPresentation = class extends Presentation {
|
|
|
3212
3220
|
}
|
|
3213
3221
|
}
|
|
3214
3222
|
};
|
|
3215
|
-
function createPresentation(box, pages, jumpPage, pageIndex$, view, thumbnail, useClipView) {
|
|
3223
|
+
function createPresentation(box, pages, jumpPage, pageIndex$, view, thumbnail, useClipView, onThumbnailError) {
|
|
3216
3224
|
box.mountStyles(style_default);
|
|
3217
3225
|
const app = new AppPresentation({
|
|
3218
3226
|
pages,
|
|
3219
3227
|
readonly: box.readonly,
|
|
3220
3228
|
jumpPage,
|
|
3221
|
-
thumbnail
|
|
3229
|
+
thumbnail,
|
|
3230
|
+
onThumbnailError
|
|
3222
3231
|
});
|
|
3223
3232
|
app.box = box;
|
|
3224
3233
|
box.mountContent(app.contentDOM);
|
|
@@ -3266,7 +3275,7 @@ var install = (register, options = {}) => {
|
|
|
3266
3275
|
};
|
|
3267
3276
|
|
|
3268
3277
|
// src/index.ts
|
|
3269
|
-
var version = "0.1.13
|
|
3278
|
+
var version = "0.1.13";
|
|
3270
3279
|
|
|
3271
|
-
export { NetlessAppPresentation, Presentation, Scrollbar, NetlessAppPresentation as default, install, setupBlurThumbnailDegradation, version };
|
|
3280
|
+
export { NetlessAppPresentation, Presentation, Scrollbar, createDiagnosticLogger, NetlessAppPresentation as default, install, setupBlurThumbnailDegradation, version };
|
|
3272
3281
|
//# sourceMappingURL=index.mjs.map
|