@file-viewer/core 3.1.2 → 3.2.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/README.en.md +3 -121
- package/README.md +3 -126
- package/dist/assets.d.ts +2 -2
- package/dist/assets.js +1 -5
- package/dist/browser/controller.d.ts +1 -2
- package/dist/browser/controller.js +2 -34
- package/dist/browser.d.ts +2 -2
- package/dist/browser.js +2 -2
- package/dist/config/options.d.ts +1 -1
- package/dist/contracts/types.d.ts +26 -423
- package/dist/contracts/xml.d.ts +0 -11
- package/dist/export.d.ts +3 -10
- package/dist/export.js +2 -9
- package/dist/exportDocument.d.ts +1 -12
- package/dist/exportDocument.js +7 -31
- package/dist/features/document/dom/anchors.d.ts +1 -1
- package/dist/features/document/dom/index.d.ts +5 -5
- package/dist/features/document/dom/index.js +3 -3
- package/dist/features/document/dom/providers.d.ts +1 -1
- package/dist/features/document/events.d.ts +2 -2
- package/dist/features/document/events.js +3 -3
- package/dist/features/document/fit.d.ts +1 -1
- package/dist/features/document/fit.js +1 -1
- package/dist/features/document/model.d.ts +1 -1
- package/dist/features/document/search.d.ts +1 -1
- package/dist/features/document/search.js +2 -2
- package/dist/features/document/viewState.d.ts +1 -1
- package/dist/features/document/viewState.js +2 -2
- package/dist/features/document/zoom.d.ts +3 -2
- package/dist/features/document/zoom.js +19 -3
- package/dist/features/document/zoomGestures.d.ts +11 -0
- package/dist/features/document/zoomGestures.js +111 -0
- package/dist/features/printMask.d.ts +1 -1
- package/dist/features/printMaskDesigner.d.ts +2 -6
- package/dist/features/printMaskDesigner.js +2 -11
- package/dist/features/printMaskLoader.d.ts +1 -7
- package/dist/features/printMaskLoader.js +1 -7
- package/dist/features/watermark.d.ts +1 -1
- package/dist/headless.d.ts +29 -29
- package/dist/headless.js +16 -21
- package/dist/i18n/messages.d.ts +1 -1
- package/dist/i18n/messages.de.d.ts +1 -5
- package/dist/i18n/messages.de.js +0 -4
- package/dist/i18n/messages.ja.d.ts +1 -6
- package/dist/i18n/messages.ja.js +0 -5
- package/dist/i18n/messages.js +2 -2
- package/dist/index.d.ts +74 -74
- package/dist/index.js +37 -37
- package/dist/lifecycle/facade.d.ts +4 -4
- package/dist/lifecycle/facade.js +2 -2
- package/dist/lifecycle/operations.d.ts +4 -4
- package/dist/lifecycle/operations.js +4 -9
- package/dist/output/canvasImage.d.ts +1 -2
- package/dist/output/canvasImage.js +1 -4
- package/dist/output/export.d.ts +2 -4
- package/dist/output/export.js +133 -81
- package/dist/output/printLayout.d.ts +2 -5
- package/dist/output/printLayout.js +37 -9
- package/dist/output/snapshotDownload.d.ts +1 -2
- package/dist/output/snapshotDownload.js +2 -3
- package/dist/platform/assets.d.ts +9 -16
- package/dist/platform/assets.js +60 -17
- package/dist/platform/copiedAssets.d.ts +0 -1
- package/dist/platform/copiedAssets.js +1 -2
- package/dist/presentation/state.d.ts +1 -1
- package/dist/presentation/state.js +3 -3
- package/dist/print-mask.d.ts +2 -2
- package/dist/print-mask.js +1 -1
- package/dist/registry/capabilities.d.ts +3 -16
- package/dist/registry/capabilities.js +2 -15
- package/dist/registry/formats.d.ts +5 -5
- package/dist/registry/formats.generated.d.ts +7 -8
- package/dist/registry/formats.generated.js +7 -4
- package/dist/registry/formats.js +2 -2
- package/dist/registry/registry.d.ts +6 -15
- package/dist/registry/registry.js +24 -10
- package/dist/renderers/image.d.ts +1 -1
- package/dist/renderers/image.js +26 -5
- package/dist/renderers/index.d.ts +11 -11
- package/dist/renderers/index.js +5 -11
- package/dist/rendering/dispatcher.d.ts +1 -6
- package/dist/rendering/dispatcher.js +3 -3
- package/dist/rendering/handler.d.ts +10 -15
- package/dist/rendering/handler.js +20 -27
- package/dist/security/svgResources.d.ts +0 -10
- package/dist/security/svgResources.js +2 -11
- package/dist/source/index.d.ts +3 -3
- package/dist/source/index.js +1 -1
- package/dist/source/loading.d.ts +56 -15
- package/dist/source/loading.js +177 -87
- package/dist/source/precheck.d.ts +1 -13
- package/dist/source/precheck.js +2 -9
- package/dist/source/textEncoding.d.ts +6 -3
- package/dist/source/textEncoding.js +58 -8
- package/dist/viewer/createViewer.d.ts +1 -1
- package/dist/viewer/createViewer.js +103 -33
- package/dist/viewer/loading.d.ts +2 -6
- package/dist/viewer/loading.js +1 -9
- package/dist/viewer/operations.d.ts +3 -3
- package/dist/viewer/operations.js +6 -14
- package/dist/viewer/state.d.ts +2 -6
- package/dist/viewer/state.js +3 -8
- package/package.json +127 -19
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { createRendererRegistry } from '../registry/registry.js';
|
|
11
|
-
import { getExtension, normalizeFileExtension } from '../source/index.js';
|
|
12
|
-
import { applyFileViewerRenderReadinessState, } from '../source/loading.js';
|
|
13
|
-
import { findFileViewerViewStateProvider } from '../features/document/dom/index.js';
|
|
14
|
-
import { registerFileViewerGenericViewStateProvider } from '../features/document/viewState.js';
|
|
1
|
+
import { DEFAULT_RENDERER_DEFINITIONS } from "../registry/formats.js";
|
|
2
|
+
import { waitForFileViewerNextPaint } from "../output/export.js";
|
|
3
|
+
import { createFileViewerRendererDispatcher } from "./dispatcher.js";
|
|
4
|
+
import { resolveFileViewerRendererRedirectId } from "./dispatcher.js";
|
|
5
|
+
import { createRendererRegistry } from "../registry/registry.js";
|
|
6
|
+
import { getExtension, normalizeFileExtension } from "../source/index.js";
|
|
7
|
+
import { applyFileViewerRenderReadinessState, } from "../source/loading.js";
|
|
8
|
+
import { findFileViewerViewStateProvider } from "../features/document/dom/index.js";
|
|
9
|
+
import { registerFileViewerGenericViewStateProvider } from "../features/document/viewState.js";
|
|
15
10
|
export const FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE = '预览内容卸载失败';
|
|
16
11
|
export const DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS = 'file-render';
|
|
17
12
|
export const FILE_VIEWER_RENDER_SURFACE_BACKGROUND_PROPERTY = '--file-viewer-render-surface-background';
|
|
@@ -24,11 +19,6 @@ export const normalizeFileViewerRenderSurfaceBackground = (value) => {
|
|
|
24
19
|
const normalized = value.trim();
|
|
25
20
|
return normalized && normalized.toLowerCase() !== 'auto' ? normalized : null;
|
|
26
21
|
};
|
|
27
|
-
/**
|
|
28
|
-
* Keeps the public UI option and the renderer-facing CSS custom property in
|
|
29
|
-
* sync. Custom properties inherit through Shadow DOM, so setting this on the
|
|
30
|
-
* render host covers both scoped and shadow-isolated renderer targets.
|
|
31
|
-
*/
|
|
32
22
|
export const syncFileViewerRenderSurfaceBackground = (target, options) => {
|
|
33
23
|
var _a;
|
|
34
24
|
if (!target) {
|
|
@@ -161,8 +151,6 @@ export const appendFileViewerStyle = (target, css, options = {}) => {
|
|
|
161
151
|
const shadowRoot = getFileViewerShadowRootForNode(target);
|
|
162
152
|
const StyleSheet = shadowRoot ? getConstructableStyleSheet(shadowRoot) : null;
|
|
163
153
|
if (options.adoptedStyleSheet && shadowRoot && StyleSheet) {
|
|
164
|
-
// Use the target document's constructor. A stylesheet constructed in the
|
|
165
|
-
// parent window cannot be adopted by a ShadowRoot owned by an iframe.
|
|
166
154
|
const sheet = new StyleSheet();
|
|
167
155
|
sheet.replaceSync(css);
|
|
168
156
|
shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, sheet];
|
|
@@ -348,7 +336,7 @@ export const runFileViewerRenderSurfaceClear = ({ reason = 'replace', surfaceSta
|
|
|
348
336
|
session,
|
|
349
337
|
};
|
|
350
338
|
};
|
|
351
|
-
export const runFileViewerRenderSurfaceMount = async ({ buffer, file, version, sourceUrl, streamUrl, getContainer, surfaceState, readinessState, isCurrent, clearRenderedContent, render, waitForContainer, waitForPaint = waitForFileViewerNextPaint, disposeSession = disposeFileViewerRendererSession, onStartZoomObserver, onStartFitObserver, onStartViewStateObserver, onApplyInitialFit, onRefreshDocumentIndex, onRefreshZoomProvider, onRefreshViewStateProvider, }) => {
|
|
339
|
+
export const runFileViewerRenderSurfaceMount = async ({ buffer, file, version, sourceUrl, streamUrl, signal, typeOverride, getContainer, surfaceState, readinessState, isCurrent, clearRenderedContent, render, waitForContainer, waitForPaint = waitForFileViewerNextPaint, disposeSession = disposeFileViewerRendererSession, onStartZoomObserver, onStartFitObserver, onStartViewStateObserver, onApplyInitialFit, onRefreshDocumentIndex, onRefreshZoomProvider, onRefreshViewStateProvider, }) => {
|
|
352
340
|
if (!getContainer()) {
|
|
353
341
|
await (waitForContainer === null || waitForContainer === void 0 ? void 0 : waitForContainer());
|
|
354
342
|
}
|
|
@@ -380,11 +368,12 @@ export const runFileViewerRenderSurfaceMount = async ({ buffer, file, version, s
|
|
|
380
368
|
buffer,
|
|
381
369
|
file,
|
|
382
370
|
version,
|
|
383
|
-
type: getExtension(file.name),
|
|
371
|
+
type: typeOverride || getExtension(file.name),
|
|
384
372
|
target,
|
|
385
373
|
filename: file.name,
|
|
386
374
|
sourceUrl,
|
|
387
375
|
streamUrl,
|
|
376
|
+
signal,
|
|
388
377
|
onProgressiveRender,
|
|
389
378
|
registerExportAdapter,
|
|
390
379
|
surfaceState,
|
|
@@ -446,13 +435,15 @@ export const createFileViewerRenderSurfaceActionHandlers = ({ getContainer, surf
|
|
|
446
435
|
onClearViewStateProvider,
|
|
447
436
|
});
|
|
448
437
|
};
|
|
449
|
-
const mountRenderedContent = async (buffer, file, version, sourceUrl, streamUrl) => {
|
|
438
|
+
const mountRenderedContent = async (buffer, file, version, sourceUrl, streamUrl, signal, typeOverride) => {
|
|
450
439
|
return await runFileViewerRenderSurfaceMount({
|
|
451
440
|
buffer,
|
|
452
441
|
file,
|
|
453
442
|
version,
|
|
454
443
|
sourceUrl,
|
|
455
444
|
streamUrl,
|
|
445
|
+
signal,
|
|
446
|
+
typeOverride,
|
|
456
447
|
getContainer,
|
|
457
448
|
surfaceState,
|
|
458
449
|
readinessState,
|
|
@@ -482,6 +473,7 @@ export const buildFileRenderContextFromLoadContext = ({ source, surface, options
|
|
|
482
473
|
filename: source.filename,
|
|
483
474
|
url: source.url,
|
|
484
475
|
streamUrl: source.url,
|
|
476
|
+
sourceFile: source.file,
|
|
485
477
|
signal,
|
|
486
478
|
options,
|
|
487
479
|
surface,
|
|
@@ -525,15 +517,16 @@ export const renderFileViewerHandler = async ({ dispatcher, buffer, target, type
|
|
|
525
517
|
return await redirectedHandler(buffer, target, redirectedType, context);
|
|
526
518
|
}
|
|
527
519
|
};
|
|
528
|
-
export const createFileRenderHandlerLoader = ({ handler, rendererId, getTarget = context => context.surface.container, createContext = buildFileRenderContextFromLoadContext, destroy, }) => {
|
|
520
|
+
export const createFileRenderHandlerLoader = ({ handler, rendererId, allowUrlSource = false, getTarget = context => context.surface.container, createContext = buildFileRenderContextFromLoadContext, destroy, }) => {
|
|
529
521
|
return async (context) => {
|
|
530
522
|
const { source } = context;
|
|
531
|
-
if (!source.buffer) {
|
|
523
|
+
if (!source.buffer && !(allowUrlSource && (source.url || source.file))) {
|
|
532
524
|
throw new Error('FileRenderHandler renderer requires an ArrayBuffer source.');
|
|
533
525
|
}
|
|
526
|
+
const buffer = source.buffer || new ArrayBuffer(0);
|
|
534
527
|
const target = getTarget(context);
|
|
535
528
|
const renderContext = createContext(context);
|
|
536
|
-
const rendered = await handler(
|
|
529
|
+
const rendered = await handler(buffer, target, source.extension, renderContext);
|
|
537
530
|
const existingProvider = findFileViewerViewStateProvider(target);
|
|
538
531
|
const genericViewStateProvider = existingProvider
|
|
539
532
|
? null
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Keep ordinary SVG styles while preventing imports and resource requests.
|
|
3
|
-
* Obfuscated URL tokens fail closed instead of depending on parser quirks.
|
|
4
|
-
*/
|
|
5
1
|
export declare const sanitizeFileViewerSvgCss: (value: string) => string;
|
|
6
|
-
/** Remove executable attributes and every SVG resource URL that can load data remotely. */
|
|
7
2
|
export declare const sanitizeFileViewerSvgResources: (root: ParentNode) => void;
|
|
8
|
-
/**
|
|
9
|
-
* Mermaid 11 resolves image-node URLs with `new Image()` while rendering,
|
|
10
|
-
* before its SVG can be sanitized. Reject image metadata and explicit remote
|
|
11
|
-
* URLs before calling Mermaid so an untrusted diagram cannot initiate I/O.
|
|
12
|
-
*/
|
|
13
3
|
export declare const assertFileViewerMermaidSourceHasNoExternalResources: (source: string) => void;
|
|
@@ -44,10 +44,6 @@ const isSafeSvgCssUrl = (value) => {
|
|
|
44
44
|
/^blob:/i.test(normalized) ||
|
|
45
45
|
SAFE_EMBEDDED_IMAGE_DATA_URL.test(normalized);
|
|
46
46
|
};
|
|
47
|
-
/**
|
|
48
|
-
* Keep ordinary SVG styles while preventing imports and resource requests.
|
|
49
|
-
* Obfuscated URL tokens fail closed instead of depending on parser quirks.
|
|
50
|
-
*/
|
|
51
47
|
export const sanitizeFileViewerSvgCss = (value) => {
|
|
52
48
|
const normalizedCharacters = [];
|
|
53
49
|
for (const character of value) {
|
|
@@ -93,7 +89,6 @@ export const sanitizeFileViewerSvgCss = (value) => {
|
|
|
93
89
|
chunks.push(normalized.slice(segmentStart));
|
|
94
90
|
return chunks.join('');
|
|
95
91
|
};
|
|
96
|
-
/** Remove executable attributes and every SVG resource URL that can load data remotely. */
|
|
97
92
|
export const sanitizeFileViewerSvgResources = (root) => {
|
|
98
93
|
root.querySelectorAll('*').forEach(element => {
|
|
99
94
|
for (const attribute of Array.from(element.attributes)) {
|
|
@@ -160,18 +155,14 @@ const canonicalizeMermaidSourceForResourceScan = (source) => {
|
|
|
160
155
|
}
|
|
161
156
|
return output;
|
|
162
157
|
};
|
|
163
|
-
/**
|
|
164
|
-
* Mermaid 11 resolves image-node URLs with `new Image()` while rendering,
|
|
165
|
-
* before its SVG can be sanitized. Reject image metadata and explicit remote
|
|
166
|
-
* URLs before calling Mermaid so an untrusted diagram cannot initiate I/O.
|
|
167
|
-
*/
|
|
168
158
|
export const assertFileViewerMermaidSourceHasNoExternalResources = (source) => {
|
|
169
159
|
const normalized = canonicalizeMermaidSourceForResourceScan(String(source || ''));
|
|
170
160
|
const compact = normalized.replace(/[\t\r\n ]+/g, '');
|
|
171
161
|
const hasImageMetadata = /(?:^|[,{])\s*(?:img|["']img["'])\s*:/im.test(normalized);
|
|
162
|
+
const hasLoadingElement = /<\s*(?:img|image|iframe|object|embed|video|audio|source|link|script|style)\b/i.test(normalized);
|
|
172
163
|
const hasRemoteUrl = /(?:https?|ftp):\/\//i.test(compact) ||
|
|
173
164
|
/(?:^|[\s"'(=:,])(?:\/\/|\\\\)[A-Za-z0-9]/m.test(normalized);
|
|
174
|
-
if (hasImageMetadata || hasRemoteUrl) {
|
|
165
|
+
if (hasImageMetadata || hasLoadingElement || hasRemoteUrl) {
|
|
175
166
|
throw new Error('Mermaid diagrams may not load external image resources.');
|
|
176
167
|
}
|
|
177
168
|
};
|
package/dist/source/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { FileViewerFileRef, FileViewerSource, NormalizedFileViewerSource } from
|
|
2
|
-
export { createFileViewerTextDecoder, decodeFileViewerTextBuffer, isValidFileViewerUtf8, resolveFileViewerTextEncoding, } from
|
|
3
|
-
export type { DecodedFileViewerText, FileViewerTextEncoding, ResolvedFileViewerTextEncoding, ResolvedFileViewerTextSource, } from
|
|
1
|
+
import type { FileViewerFileRef, FileViewerSource, NormalizedFileViewerSource } from "../contracts/types.js";
|
|
2
|
+
export { DEFAULT_FILE_VIEWER_TEXT_FALLBACK_ENCODING, createFileViewerTextDecoder, decodeFileViewerTextBuffer, isSingleByteFileViewerTextEncoding, isValidFileViewerUtf8, resolveFileViewerTextEncoding, } from "./textEncoding.js";
|
|
3
|
+
export type { DecodedFileViewerText, FileViewerSingleByteTextEncoding, FileViewerTextEncoding, ResolvedFileViewerTextEncoding, ResolvedFileViewerTextSource, } from "./textEncoding.js";
|
|
4
4
|
export type FileViewerReadResult = string | ArrayBuffer | undefined | null;
|
|
5
5
|
export declare const DEFAULT_FILE_VIEWER_SOURCE_FILENAME = "preview.bin";
|
|
6
6
|
export declare const normalizeFileExtension: (extension: string) => string;
|
package/dist/source/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { createFileViewerTextDecoder, decodeFileViewerTextBuffer, isValidFileViewerUtf8, resolveFileViewerTextEncoding, } from
|
|
1
|
+
export { DEFAULT_FILE_VIEWER_TEXT_FALLBACK_ENCODING, createFileViewerTextDecoder, decodeFileViewerTextBuffer, isSingleByteFileViewerTextEncoding, isValidFileViewerUtf8, resolveFileViewerTextEncoding, } from "./textEncoding.js";
|
|
2
2
|
export const DEFAULT_FILE_VIEWER_SOURCE_FILENAME = 'preview.bin';
|
|
3
3
|
export const normalizeFileExtension = (extension) => {
|
|
4
4
|
return extension.trim().replace(/^\./, '').toLowerCase();
|
package/dist/source/loading.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { FileViewerFileRef, FileViewerLifecycleContext, FileViewerPdfOptions } from
|
|
2
|
-
import { type FileViewerLifecycleStateController } from
|
|
3
|
-
import { type FileViewerErrorMessageFormatter } from
|
|
4
|
-
import type { FileViewerI18nInput } from
|
|
1
|
+
import type { FileViewerFileRef, FileViewerLifecycleContext, FileViewerPdfOptions } from "../contracts/types.js";
|
|
2
|
+
import { type FileViewerLifecycleStateController } from "../lifecycle/operations.js";
|
|
3
|
+
import { type FileViewerErrorMessageFormatter } from "../viewer/state.js";
|
|
4
|
+
import type { FileViewerI18nInput } from "../i18n/messages.js";
|
|
5
5
|
export declare const DEFAULT_PDF_RANGE_CHUNK_SIZE: number;
|
|
6
6
|
export declare const DEFAULT_FILE_VIEWER_STREAMING_PDF_FILENAME = "preview.pdf";
|
|
7
7
|
export declare const FILE_VIEWER_REMOTE_MISSING_DATA_ERROR_MESSAGE = "\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25";
|
|
@@ -131,6 +131,8 @@ export interface CreateFileViewerLoadStartStateInput {
|
|
|
131
131
|
sourceUrl?: string | null;
|
|
132
132
|
bufferSize?: number;
|
|
133
133
|
loadingMessage?: string;
|
|
134
|
+
signal?: AbortSignal;
|
|
135
|
+
typeOverride?: string;
|
|
134
136
|
i18n?: FileViewerI18nInput;
|
|
135
137
|
timestamp?: number;
|
|
136
138
|
}
|
|
@@ -172,12 +174,13 @@ export interface CommitFileViewerRenderCompleteStateInput<Session = unknown> {
|
|
|
172
174
|
export interface RunFileViewerReadAndRenderFileInput<Session = unknown> {
|
|
173
175
|
file: File;
|
|
174
176
|
version: number;
|
|
177
|
+
signal?: AbortSignal;
|
|
175
178
|
source?: FileViewerLifecycleContext['source'];
|
|
176
179
|
sourceUrl?: string;
|
|
177
180
|
fallbackFilename?: string;
|
|
178
181
|
previewTarget: MutableFileViewerReadPreviewState & MutableFileViewerRenderReadinessState;
|
|
179
182
|
isCurrent: (version: number) => boolean;
|
|
180
|
-
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string) => Promise<Session | undefined>;
|
|
183
|
+
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string, signal?: AbortSignal, typeOverride?: string) => Promise<Session | undefined>;
|
|
181
184
|
destroyRenderSession?: (session?: Session | null) => void;
|
|
182
185
|
buildRenderCompleteState: (input: {
|
|
183
186
|
version: number;
|
|
@@ -201,13 +204,14 @@ export type FileViewerReadAndRenderFileState<Session = unknown> = {
|
|
|
201
204
|
readonly session: Session | undefined;
|
|
202
205
|
readonly complete: FileViewerRenderCompleteState;
|
|
203
206
|
};
|
|
207
|
+
export type FileViewerStreamSourceDecision = boolean | string;
|
|
204
208
|
export interface RunFileViewerStreamingPdfPreviewInput<Session = unknown> {
|
|
205
209
|
url: string;
|
|
206
210
|
version: number;
|
|
207
211
|
filename?: string;
|
|
208
212
|
previewTarget: MutableFileViewerPreviewSourceUrlState & MutableFileViewerRenderReadinessState;
|
|
209
213
|
isCurrent: (version: number) => boolean;
|
|
210
|
-
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string) => Promise<Session | undefined>;
|
|
214
|
+
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string, signal?: AbortSignal, typeOverride?: string) => Promise<Session | undefined>;
|
|
211
215
|
destroyRenderSession?: (session?: Session | null) => void;
|
|
212
216
|
buildRenderCompleteState: (input: {
|
|
213
217
|
version: number;
|
|
@@ -215,6 +219,8 @@ export interface RunFileViewerStreamingPdfPreviewInput<Session = unknown> {
|
|
|
215
219
|
sourceUrl?: string | null;
|
|
216
220
|
}) => FileViewerRenderCompleteState;
|
|
217
221
|
loadingMessage?: string;
|
|
222
|
+
signal?: AbortSignal;
|
|
223
|
+
typeOverride?: string;
|
|
218
224
|
i18n?: FileViewerI18nInput;
|
|
219
225
|
onStartLoading?: (message: string) => void;
|
|
220
226
|
onSession?: (session: Session | null) => void;
|
|
@@ -248,9 +254,16 @@ export interface RunFileViewerLocalFilePreviewInput<Session = unknown> {
|
|
|
248
254
|
version: number;
|
|
249
255
|
currentFilename?: string;
|
|
250
256
|
fallbackFilename?: string;
|
|
257
|
+
shouldStreamLocalFile?: (input: {
|
|
258
|
+
file: File;
|
|
259
|
+
filename: string;
|
|
260
|
+
extension: string;
|
|
261
|
+
signal?: AbortSignal;
|
|
262
|
+
}) => FileViewerStreamSourceDecision | Promise<FileViewerStreamSourceDecision>;
|
|
263
|
+
requestController?: Pick<FileViewerRequestController, 'createAbortController' | 'clearAbortController'>;
|
|
251
264
|
previewTarget: MutableFileViewerPreviewState;
|
|
252
265
|
isCurrent: (version: number) => boolean;
|
|
253
|
-
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string) => Promise<Session | undefined>;
|
|
266
|
+
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string, signal?: AbortSignal, typeOverride?: string) => Promise<Session | undefined>;
|
|
254
267
|
destroyRenderSession?: (session?: Session | null) => void;
|
|
255
268
|
buildLoadStartState: (input: {
|
|
256
269
|
version: number;
|
|
@@ -304,11 +317,18 @@ export interface RunFileViewerRemoteFilePreviewInput<Session = unknown> {
|
|
|
304
317
|
version: number;
|
|
305
318
|
pageHref?: string;
|
|
306
319
|
streaming?: FileViewerPdfOptions['streaming'];
|
|
320
|
+
shouldStreamRemoteUrl?: (input: {
|
|
321
|
+
url: string;
|
|
322
|
+
filename: string;
|
|
323
|
+
extension: string;
|
|
324
|
+
pageHref?: string;
|
|
325
|
+
signal?: AbortSignal;
|
|
326
|
+
}) => FileViewerStreamSourceDecision | Promise<FileViewerStreamSourceDecision>;
|
|
307
327
|
previewTarget: MutableFileViewerPreviewState;
|
|
308
328
|
requestController: Pick<FileViewerRequestController, 'createAbortController' | 'clearAbortController'>;
|
|
309
329
|
isCurrent: (version: number) => boolean;
|
|
310
330
|
downloadFile: (input: FileViewerRemoteFileDownloadInput) => Promise<FileViewerFileRef | null | undefined>;
|
|
311
|
-
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string) => Promise<Session | undefined>;
|
|
331
|
+
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string, signal?: AbortSignal, typeOverride?: string) => Promise<Session | undefined>;
|
|
312
332
|
destroyRenderSession?: (session?: Session | null) => void;
|
|
313
333
|
buildLoadStartState: (input: {
|
|
314
334
|
version: number;
|
|
@@ -451,13 +471,26 @@ export interface CreateFileViewerSourceLoadingActionHandlersInput<Session = unkn
|
|
|
451
471
|
getFile: () => FileViewerFileRef | null | undefined;
|
|
452
472
|
getUrl: () => string | null | undefined;
|
|
453
473
|
getCurrentFilename?: () => string | undefined;
|
|
474
|
+
shouldStreamLocalFile?: (input: {
|
|
475
|
+
file: File;
|
|
476
|
+
filename: string;
|
|
477
|
+
extension: string;
|
|
478
|
+
signal?: AbortSignal;
|
|
479
|
+
}) => FileViewerStreamSourceDecision | Promise<FileViewerStreamSourceDecision>;
|
|
454
480
|
getPdfStreaming?: () => FileViewerPdfOptions['streaming'] | undefined;
|
|
481
|
+
shouldStreamRemoteUrl?: (input: {
|
|
482
|
+
url: string;
|
|
483
|
+
filename: string;
|
|
484
|
+
extension: string;
|
|
485
|
+
pageHref?: string;
|
|
486
|
+
signal?: AbortSignal;
|
|
487
|
+
}) => FileViewerStreamSourceDecision | Promise<FileViewerStreamSourceDecision>;
|
|
455
488
|
getI18n?: () => FileViewerI18nInput;
|
|
456
489
|
getPageHref?: () => string | undefined;
|
|
457
490
|
previewTarget: MutableFileViewerPreviewState;
|
|
458
491
|
requestController: FileViewerRequestController;
|
|
459
492
|
downloadFile: (input: FileViewerRemoteFileDownloadInput) => Promise<FileViewerFileRef | null | undefined>;
|
|
460
|
-
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string) => Promise<Session | undefined>;
|
|
493
|
+
mountRenderedContent: (buffer: ArrayBuffer, file: File, version: number, sourceUrl?: string, streamUrl?: string, signal?: AbortSignal, typeOverride?: string) => Promise<Session | undefined>;
|
|
461
494
|
destroyRenderSession?: (session?: Session | null) => void;
|
|
462
495
|
buildLoadStartState: (input: {
|
|
463
496
|
version: number;
|
|
@@ -514,11 +547,11 @@ export declare const applyFileViewerPreviewSourceUrlState: <Target extends Mutab
|
|
|
514
547
|
export declare const applyFileViewerPreviewFilenameState: <Target extends MutableFileViewerPreviewFilenameState>(target: Target, filename?: string, fallbackFilename?: string) => Target;
|
|
515
548
|
export declare const applyFileViewerRenderReadinessState: <Target extends MutableFileViewerRenderReadinessState>(target: Target, state: Partial<FileViewerRenderReadinessState>) => Target;
|
|
516
549
|
export declare const commitFileViewerRenderCompleteState: <Session = unknown>({ version, session, buildState, readinessTarget, onSession, onActiveDocumentContext, onLifecycle, onClearLoadStarted, }: CommitFileViewerRenderCompleteStateInput<Session>) => FileViewerRenderCompleteState;
|
|
517
|
-
export declare const runFileViewerReadAndRenderFile: <Session = unknown>({ file, version, sourceUrl, source, fallbackFilename, previewTarget, isCurrent, mountRenderedContent, destroyRenderSession, buildRenderCompleteState, onSession, onActiveDocumentContext, onLifecycle, onClearLoadStarted, }: RunFileViewerReadAndRenderFileInput<Session>) => Promise<FileViewerReadAndRenderFileState<Session>>;
|
|
518
|
-
export declare const runFileViewerStreamingPdfPreview: <Session = unknown>({ url, version, filename, previewTarget, isCurrent, mountRenderedContent, destroyRenderSession, buildRenderCompleteState, loadingMessage, i18n, onStartLoading, onSession, onActiveDocumentContext, onLifecycle, onClearLoadStarted, onStopLoading, onError, }: RunFileViewerStreamingPdfPreviewInput<Session>) => Promise<FileViewerStreamingPdfPreviewState<Session>>;
|
|
519
|
-
export declare const runFileViewerLocalFilePreview: <Session = unknown>({ source, version, currentFilename, fallbackFilename, previewTarget, isCurrent, mountRenderedContent, destroyRenderSession, buildLoadStartState, buildRenderCompleteState, onMarkLoadStarted, onStartLoading, onSession, onActiveDocumentContext, onLifecycle, onClearLoadStarted, onStopLoading, onError, }: RunFileViewerLocalFilePreviewInput<Session>) => Promise<FileViewerLocalFilePreviewState<Session>>;
|
|
520
|
-
export declare const runFileViewerRemoteFilePreview: <Session = unknown>({ url, version, pageHref, streaming, previewTarget, requestController, isCurrent, downloadFile, mountRenderedContent, destroyRenderSession, buildLoadStartState, buildRenderCompleteState, i18n, onMarkLoadStarted, onStartLoading, onSetLoadingMessage, onSession, onActiveDocumentContext, onLifecycle, onClearLoadStarted, onStopLoading, onMissingData, onError, }: RunFileViewerRemoteFilePreviewInput<Session>) => Promise<FileViewerRemoteFilePreviewState<Session>>;
|
|
521
|
-
export declare const createFileViewerSourceLoadingActionHandlers: <Session = unknown>({ getFile, getUrl, getCurrentFilename, getPdfStreaming, getI18n, getPageHref, previewTarget, requestController, downloadFile, mountRenderedContent, destroyRenderSession, buildLoadStartState, buildRenderCompleteState, formatErrorMessage, onMarkLoadStarted, onClearLoadStarted, onStartLoading, onSetLoadingMessage, onStopLoading, onShowError, onClearError, onResetLoading, onClearRenderedContent, onSession, onActiveDocumentContext, onLifecycle, }: CreateFileViewerSourceLoadingActionHandlersInput<Session>) => FileViewerSourceLoadingActionHandlers<Session>;
|
|
550
|
+
export declare const runFileViewerReadAndRenderFile: <Session = unknown>({ file, version, signal, sourceUrl, source, fallbackFilename, previewTarget, isCurrent, mountRenderedContent, destroyRenderSession, buildRenderCompleteState, onSession, onActiveDocumentContext, onLifecycle, onClearLoadStarted, }: RunFileViewerReadAndRenderFileInput<Session>) => Promise<FileViewerReadAndRenderFileState<Session>>;
|
|
551
|
+
export declare const runFileViewerStreamingPdfPreview: <Session = unknown>({ url, version, filename, previewTarget, isCurrent, mountRenderedContent, destroyRenderSession, buildRenderCompleteState, loadingMessage, signal, typeOverride, i18n, onStartLoading, onSession, onActiveDocumentContext, onLifecycle, onClearLoadStarted, onStopLoading, onError, }: RunFileViewerStreamingPdfPreviewInput<Session>) => Promise<FileViewerStreamingPdfPreviewState<Session>>;
|
|
552
|
+
export declare const runFileViewerLocalFilePreview: <Session = unknown>({ source, version, currentFilename, fallbackFilename, shouldStreamLocalFile, requestController, previewTarget, isCurrent, mountRenderedContent, destroyRenderSession, buildLoadStartState, buildRenderCompleteState, onMarkLoadStarted, onStartLoading, onSession, onActiveDocumentContext, onLifecycle, onClearLoadStarted, onStopLoading, onError, }: RunFileViewerLocalFilePreviewInput<Session>) => Promise<FileViewerLocalFilePreviewState<Session>>;
|
|
553
|
+
export declare const runFileViewerRemoteFilePreview: <Session = unknown>({ url, version, pageHref, streaming, shouldStreamRemoteUrl, previewTarget, requestController, isCurrent, downloadFile, mountRenderedContent, destroyRenderSession, buildLoadStartState, buildRenderCompleteState, i18n, onMarkLoadStarted, onStartLoading, onSetLoadingMessage, onSession, onActiveDocumentContext, onLifecycle, onClearLoadStarted, onStopLoading, onMissingData, onError, }: RunFileViewerRemoteFilePreviewInput<Session>) => Promise<FileViewerRemoteFilePreviewState<Session>>;
|
|
554
|
+
export declare const createFileViewerSourceLoadingActionHandlers: <Session = unknown>({ getFile, getUrl, getCurrentFilename, shouldStreamLocalFile, getPdfStreaming, shouldStreamRemoteUrl, getI18n, getPageHref, previewTarget, requestController, downloadFile, mountRenderedContent, destroyRenderSession, buildLoadStartState, buildRenderCompleteState, formatErrorMessage, onMarkLoadStarted, onClearLoadStarted, onStartLoading, onSetLoadingMessage, onStopLoading, onShowError, onClearError, onResetLoading, onClearRenderedContent, onSession, onActiveDocumentContext, onLifecycle, }: CreateFileViewerSourceLoadingActionHandlersInput<Session>) => FileViewerSourceLoadingActionHandlers<Session>;
|
|
522
555
|
export declare const finalizeFileViewerPreviewLoadState: ({ version, isCurrent, onClearLoadStarted, onStopLoading, }: FinalizeFileViewerPreviewLoadStateInput) => void;
|
|
523
556
|
export declare const resolveFileViewerLoadStartMessage: (source: FileViewerLifecycleContext["source"], i18n?: FileViewerI18nInput) => string;
|
|
524
557
|
export declare const commitFileViewerLoadStartState: ({ version, filename, fallbackFilename, filenameTarget, buildState, onMarkLoadStarted, onLifecycle, onStartLoading, }: CommitFileViewerLoadStartStateInput) => FileViewerLoadStartState;
|
|
@@ -538,6 +571,8 @@ export interface FileViewerRemoteSourcePlan {
|
|
|
538
571
|
readonly filename: string;
|
|
539
572
|
readonly extension: string;
|
|
540
573
|
readonly streamPdf: boolean;
|
|
574
|
+
readonly streamRenderer: boolean;
|
|
575
|
+
readonly streamType?: string;
|
|
541
576
|
}
|
|
542
577
|
export interface CommitFileViewerRemoteDownloadStateInput {
|
|
543
578
|
version: number;
|
|
@@ -566,11 +601,17 @@ export interface FileViewerLocationLike {
|
|
|
566
601
|
href?: string | null;
|
|
567
602
|
}
|
|
568
603
|
export declare const resolveFileViewerPageHref: (locationLike?: FileViewerLocationLike) => string | undefined;
|
|
569
|
-
export declare const resolveFileViewerRemoteSourcePlan: ({ filename, fallbackFilename, pageHref, streaming, url, }: {
|
|
604
|
+
export declare const resolveFileViewerRemoteSourcePlan: ({ filename, fallbackFilename, pageHref, streaming, shouldStreamRemoteUrl, url, }: {
|
|
570
605
|
filename?: string;
|
|
571
606
|
fallbackFilename?: string;
|
|
572
607
|
pageHref?: string;
|
|
573
608
|
streaming?: FileViewerPdfOptions["streaming"];
|
|
609
|
+
shouldStreamRemoteUrl?: (input: {
|
|
610
|
+
url: string;
|
|
611
|
+
filename: string;
|
|
612
|
+
extension: string;
|
|
613
|
+
pageHref?: string;
|
|
614
|
+
}) => FileViewerStreamSourceDecision;
|
|
574
615
|
url: string;
|
|
575
616
|
}) => FileViewerRemoteSourcePlan;
|
|
576
617
|
export declare const commitFileViewerRemoteDownloadState: ({ version, data, currentFilename, fallbackFilename, isCurrent, i18n, onMissingData, onSetLoadingMessage, }: CommitFileViewerRemoteDownloadStateInput) => FileViewerRemoteDownloadState;
|