@file-viewer/core 2.3.0 → 3.0.0
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 +18 -1
- package/README.md +18 -1
- package/dist/config/options.js +9 -3
- package/dist/contracts/types.d.ts +12 -8
- package/dist/export.d.ts +10 -0
- package/dist/export.js +9 -0
- package/dist/exportDocument.d.ts +36 -0
- package/dist/exportDocument.js +848 -0
- package/dist/features/printMask.js +138 -13
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/output/export.d.ts +3 -24
- package/dist/output/export.js +27 -372
- package/dist/registry/capabilities.d.ts +2 -2
- package/dist/registry/formats.d.ts +4 -4
- package/dist/registry/formats.generated.d.ts +57 -19
- package/dist/registry/formats.generated.js +101 -2
- package/dist/renderers/index.d.ts +55 -17
- package/dist/security/svgResources.d.ts +13 -0
- package/dist/security/svgResources.js +177 -0
- package/dist/source/textEncoding.js +1 -1
- package/dist/viewer/createViewer.js +42 -0
- package/dist/viewer/operations.d.ts +1 -0
- package/dist/viewer/operations.js +68 -5
- package/package.json +9 -1
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
const clampPercent = (value) => Math.max(0, Math.min(100, value));
|
|
2
|
+
const normalizeMaskColor = (value) => {
|
|
3
|
+
if (typeof value !== 'string') {
|
|
4
|
+
return '#000000';
|
|
5
|
+
}
|
|
6
|
+
const color = value.trim();
|
|
7
|
+
if (/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(color) ||
|
|
8
|
+
/^[a-z]{1,32}$/i.test(color) ||
|
|
9
|
+
/^(?:rgb|rgba|hsl|hsla)\([0-9.,%+\- /]+\)$/i.test(color)) {
|
|
10
|
+
return color;
|
|
11
|
+
}
|
|
12
|
+
return '#000000';
|
|
13
|
+
};
|
|
2
14
|
export const normalizeFileViewerPrintMaskRegion = (region) => {
|
|
3
15
|
if (!region) {
|
|
4
16
|
return null;
|
|
@@ -77,7 +89,7 @@ export const normalizeFileViewerPrintMaskOptions = (mask) => {
|
|
|
77
89
|
return {
|
|
78
90
|
...(regions.length ? { regions } : {}),
|
|
79
91
|
...(stamps.length ? { stamps } : {}),
|
|
80
|
-
color: mask.color
|
|
92
|
+
color: normalizeMaskColor(mask.color),
|
|
81
93
|
};
|
|
82
94
|
};
|
|
83
95
|
const escapeHtmlAttribute = (value) => value
|
|
@@ -108,6 +120,97 @@ export const FILE_VIEWER_PRINT_MASK_STYLE = `
|
|
|
108
120
|
.viewer-export-print-stamp{position:absolute;display:block;object-fit:contain;transform-origin:center center;print-color-adjust:exact;-webkit-print-color-adjust:exact;}
|
|
109
121
|
[data-viewer-print-page-index]{position:relative!important;isolation:isolate;}
|
|
110
122
|
`;
|
|
123
|
+
const isAsciiWhitespace = (value) => (value === ' ' || value === '\t' || value === '\n' || value === '\r' || value === '\f');
|
|
124
|
+
const isAsciiLetter = (value) => {
|
|
125
|
+
const code = value.charCodeAt(0);
|
|
126
|
+
return (code >= 65 && code <= 90) || (code >= 97 && code <= 122);
|
|
127
|
+
};
|
|
128
|
+
const findOpeningTagEnd = (html, start) => {
|
|
129
|
+
let quote = '';
|
|
130
|
+
for (let index = start + 1; index < html.length; index += 1) {
|
|
131
|
+
const char = html[index];
|
|
132
|
+
if (quote) {
|
|
133
|
+
if (char === quote) {
|
|
134
|
+
quote = '';
|
|
135
|
+
}
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if (char === '"' || char === "'") {
|
|
139
|
+
quote = char;
|
|
140
|
+
}
|
|
141
|
+
else if (char === '>') {
|
|
142
|
+
return index;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return -1;
|
|
146
|
+
};
|
|
147
|
+
const parseNonNegativeInteger = (value) => {
|
|
148
|
+
if (!value) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
152
|
+
const code = value.charCodeAt(index);
|
|
153
|
+
if (code < 48 || code > 57) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const parsed = Number(value);
|
|
158
|
+
return Number.isSafeInteger(parsed) ? parsed : null;
|
|
159
|
+
};
|
|
160
|
+
const readPrintPageIndex = (html, start, end) => {
|
|
161
|
+
let cursor = start + 1;
|
|
162
|
+
while (cursor < end && !isAsciiWhitespace(html[cursor]) && html[cursor] !== '/' && html[cursor] !== '>') {
|
|
163
|
+
cursor += 1;
|
|
164
|
+
}
|
|
165
|
+
while (cursor < end) {
|
|
166
|
+
while (cursor < end && isAsciiWhitespace(html[cursor])) {
|
|
167
|
+
cursor += 1;
|
|
168
|
+
}
|
|
169
|
+
if (cursor >= end || html[cursor] === '/' || html[cursor] === '>') {
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
const nameStart = cursor;
|
|
173
|
+
while (cursor < end &&
|
|
174
|
+
!isAsciiWhitespace(html[cursor]) &&
|
|
175
|
+
html[cursor] !== '=' &&
|
|
176
|
+
html[cursor] !== '/' &&
|
|
177
|
+
html[cursor] !== '>') {
|
|
178
|
+
cursor += 1;
|
|
179
|
+
}
|
|
180
|
+
const name = html.slice(nameStart, cursor).toLowerCase();
|
|
181
|
+
while (cursor < end && isAsciiWhitespace(html[cursor])) {
|
|
182
|
+
cursor += 1;
|
|
183
|
+
}
|
|
184
|
+
if (html[cursor] !== '=') {
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
cursor += 1;
|
|
188
|
+
while (cursor < end && isAsciiWhitespace(html[cursor])) {
|
|
189
|
+
cursor += 1;
|
|
190
|
+
}
|
|
191
|
+
const quote = html[cursor];
|
|
192
|
+
if (quote !== '"' && quote !== "'") {
|
|
193
|
+
while (cursor < end && !isAsciiWhitespace(html[cursor]) && html[cursor] !== '>') {
|
|
194
|
+
cursor += 1;
|
|
195
|
+
}
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
cursor += 1;
|
|
199
|
+
const valueStart = cursor;
|
|
200
|
+
while (cursor < end && html[cursor] !== quote) {
|
|
201
|
+
cursor += 1;
|
|
202
|
+
}
|
|
203
|
+
if (cursor >= end) {
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
const value = html.slice(valueStart, cursor);
|
|
207
|
+
cursor += 1;
|
|
208
|
+
if (name === 'data-viewer-print-page-index') {
|
|
209
|
+
return parseNonNegativeInteger(value);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return null;
|
|
213
|
+
};
|
|
111
214
|
export const applyFileViewerPagePrintMasksToHtml = (contentHtml, mask) => {
|
|
112
215
|
var _a, _b;
|
|
113
216
|
const normalized = normalizeFileViewerPrintMaskOptions(mask);
|
|
@@ -135,16 +238,38 @@ export const applyFileViewerPagePrintMasksToHtml = (contentHtml, mask) => {
|
|
|
135
238
|
if (!regionsByPage.size && !stampsByPage.size) {
|
|
136
239
|
return contentHtml;
|
|
137
240
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
241
|
+
const chunks = [];
|
|
242
|
+
let copiedThrough = 0;
|
|
243
|
+
let cursor = 0;
|
|
244
|
+
while (cursor < contentHtml.length) {
|
|
245
|
+
const start = contentHtml.indexOf('<', cursor);
|
|
246
|
+
if (start < 0) {
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
if (!isAsciiLetter(contentHtml[start + 1] || '')) {
|
|
250
|
+
cursor = start + 1;
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
const end = findOpeningTagEnd(contentHtml, start);
|
|
254
|
+
if (end < 0) {
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
const pageIndex = readPrintPageIndex(contentHtml, start, end);
|
|
258
|
+
const pageRegions = pageIndex === null ? undefined : regionsByPage.get(pageIndex);
|
|
259
|
+
const pageStamps = pageIndex === null ? undefined : stampsByPage.get(pageIndex);
|
|
260
|
+
if ((pageRegions === null || pageRegions === void 0 ? void 0 : pageRegions.length) || (pageStamps === null || pageStamps === void 0 ? void 0 : pageStamps.length)) {
|
|
261
|
+
chunks.push(contentHtml.slice(copiedThrough, end + 1), buildFileViewerPrintMaskOverlayHtml({
|
|
262
|
+
regions: pageRegions || [],
|
|
263
|
+
stamps: pageStamps || [],
|
|
264
|
+
color: normalized.color,
|
|
265
|
+
}, true));
|
|
266
|
+
copiedThrough = end + 1;
|
|
267
|
+
}
|
|
268
|
+
cursor = end + 1;
|
|
269
|
+
}
|
|
270
|
+
if (!chunks.length) {
|
|
271
|
+
return contentHtml;
|
|
272
|
+
}
|
|
273
|
+
chunks.push(contentHtml.slice(copiedThrough));
|
|
274
|
+
return chunks.join('');
|
|
150
275
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -15,8 +15,9 @@ export type { ApplyInitialFileViewerFitOptions, CreateFileViewerFitControllerOpt
|
|
|
15
15
|
export { cloneFileViewerViewState, createFileViewerViewStateChange, createFileViewerViewStateChangeEmitter, createFileViewerViewStateController, createFileViewerViewStateControllerActionHandlers, registerFileViewerGenericViewStateProvider, } from './features/document/viewState';
|
|
16
16
|
export type { CreateFileViewerViewStateControllerOptions, FileViewerGenericViewStateProviderRegistration, FileViewerViewStateController, FileViewerViewStateControllerActionHandlers, RegisterFileViewerGenericViewStateProviderOptions, } from './features/document/viewState';
|
|
17
17
|
export { DEFAULT_FILE_VIEWER_ANCHOR_EXCLUDE_SELECTOR, DEFAULT_FILE_VIEWER_ANCHOR_SELECTOR, DEFAULT_FILE_VIEWER_SCROLL_CONTAINER_CANDIDATE_SELECTOR, DEFAULT_FILE_VIEWER_SCROLL_CONTAINER_SELECTOR, DEFAULT_FILE_VIEWER_SCROLLABLE_OVERFLOW_VALUES, collectFileViewerDocumentAnchors, findFileViewerAnchorForElement, findFileViewerSearchProvider, findFileViewerViewStateProvider, findFileViewerZoomProvider, getCurrentFileViewerDocumentAnchor, getFileViewerScrollableRange, isFileViewerScrollableElement, registerFileViewerSearchProvider, registerFileViewerViewStateProvider, registerFileViewerZoomProvider, resolveFileViewerScrollContainer, scrollToFileViewerDocumentAnchor, unregisterFileViewerSearchProvider, unregisterFileViewerViewStateProvider, unregisterFileViewerZoomProvider, } from './features/document/dom';
|
|
18
|
-
export {
|
|
18
|
+
export { prepareFileViewerRenderedContentForSnapshot, inlineFileViewerBlobUrlsInHtml, replaceFileViewerCanvasWithImages, resolveFileViewerPrintStyle, triggerFileViewerBlobDownload, triggerFileViewerUrlDownload, waitForFileViewerImages, waitForFileViewerNextPaint, waitForFileViewerPrintWindowReady, } from './output/export';
|
|
19
19
|
export { applyPrintPageSize, buildPrintPageStyle, formatCssPixels, getElementPrintPageSize, } from './output/printLayout';
|
|
20
|
+
export { assertFileViewerMermaidSourceHasNoExternalResources, sanitizeFileViewerSvgCss, sanitizeFileViewerSvgResources, } from './security/svgResources';
|
|
20
21
|
export type { ApplyPrintPageSizeOptions, BuildPrintPageStyleOptions, PrintPageSize, } from './output/printLayout';
|
|
21
22
|
export { DEFAULT_FILE_VIEWER_DOWNLOAD_FILENAME, DEFAULT_FILE_VIEWER_EXPORT_FILENAME, DEFAULT_FILE_VIEWER_PREVIEW_TITLE, FILE_VIEWER_OPERATION_ACTION_ERROR_PREFIXES, createFileViewerOperationActionHandlers, createFileViewerOriginalSourceState, createFileViewerOriginalSourceStateFromNormalizedSource, createFileViewerPublicOperationActionHandlers, executeFileViewerDownloadOperation, executeFileViewerExportHtmlOperation, executeFileViewerPrintOperation, hasFileViewerOriginalSource, resolveFileViewerDisplayFilename, resolveFileViewerOperationActionErrorMessage, resolveFileViewerOperationFilename, resolveFileViewerOriginalFilename, } from './viewer/operations';
|
|
22
23
|
export { FILE_VIEWER_BUILTIN_MESSAGES, FILE_VIEWER_DEFAULT_LOCALE, FILE_VIEWER_FALLBACK_LOCALE, FILE_VIEWER_SUPPORTED_LOCALES, createFileViewerTranslator, formatFileViewerMessage, normalizeFileViewerLocale, resolveFileViewerLocale, translateFileViewerMessage, } from './i18n/messages';
|
|
@@ -88,6 +89,6 @@ export type { FileViewerSearchProviderHost, ResolveFileViewerScrollContainerOpti
|
|
|
88
89
|
export type { CreateFileViewerDomSearchControllerOptions, FileViewerInternalSearchMatch, } from './features/document/search';
|
|
89
90
|
export type { CreateFileViewerZoomControllerOptions, FileViewerZoomOperation, } from './features/document/zoom';
|
|
90
91
|
export type { CreateViewerOptions } from './viewer/createViewer';
|
|
91
|
-
export type { BuildExportHtmlDocumentOptions, BuildFileViewerRenderedHtmlDocumentOptions, } from './
|
|
92
|
+
export type { BuildExportHtmlDocumentOptions, BuildFileViewerRenderedHtmlDocumentOptions, } from './exportDocument';
|
|
92
93
|
export type { CreateFileViewerWorkerControllerOptions, FileViewerWorkerContext, FileViewerWorkerController, FileViewerWorkerErrorHook, FileViewerWorkerEventHandler, FileViewerWorkerFactory, FileViewerWorkerMessageHook, WorkerProvider, WorkerRef, } from './platform/worker';
|
|
93
94
|
export type { FileViewerAiOptions, FileViewerArchiveEntryActionContext, FileViewerArchiveEntryActionPolicy, FileViewerArchiveEntryActionsOptions, FileViewerArchivePasswordRequestContext, FileViewerArchivePasswordRequestReason, FileViewerArchiveOptions, FileViewerApplyViewStateOptions, FileViewerBeforeOperation, FileViewerCadDwfLineWeightMode, FileViewerCadOptions, FileViewerCadRenderer, FileViewerModelLinearUnit, FileViewerModelOptions, FileViewerComponentEmits, FileViewerComponentEventMap, FileViewerComponentProps, FileViewerDocumentAnchor, FileViewerDocumentChunk, FileViewerDownloadOptions, FileViewerDocxOptions, FileViewerDrawingOptions, FileViewerEvent, FileViewerEventHandler, FileViewerEventType, FileViewerExportHtmlOptions, FileViewerFileRef, FileViewerFitMode, FileViewerFitOptions, FileViewerFitRequest, FileViewerFitResize, FileViewerFitResult, FileViewerFormatStatus, FileViewerFormatSupportLevel, FileViewerGeoBasemapOptions, FileViewerGeoBasemapPreset, FileViewerGeoOptions, FileViewerTiandituMapStyle, FileRenderContext, FileRenderExportAdapter, FileRenderThumbnailAdapter, FileRenderExportMode, FileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerBuiltinRendererPreset, FileViewerInstance, FileViewerLoadOptions, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerI18nOptions, FileViewerIworkEmbeddedPreviewMode, FileViewerIworkOptions, FileViewerHangulOptions, FileViewerDiagnostic, FileViewerLocale, FileViewerMessageKey, FileViewerMessageParams, FileViewerMessageResolver, FileViewerMessages, FileViewerNavigationState, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerPdfBoundingBox, FileViewerPdfBoundingBoxOrigin, FileViewerPdfBoundingBoxUnit, FileViewerPdfOptions, FileViewerPresentationOptions, FileViewerPrintOptions, FileViewerPrintMaskOptions, FileViewerPrintMaskRegion, FileViewerPrintStamp, FileViewerPublicApi, FileViewerRenderedInstance, FileViewerRendererMode, FileViewerRendererPluginAssetKind, FileViewerRendererPluginAssetManifest, FileViewerRendererPluginAssetEntry, FileViewerRenderStateKind, FileViewerRenderPurpose, FileViewerRendererCategory, FileViewerRendererHandlerRegistration, FileViewerRendererInstallContext, FileViewerRendererPlugin, FileViewerRendererPluginInput, FileViewerRendererPresetInput, FileViewerRendererPresetName, FileViewerRendererPreset, FileViewerSearchMatch, FileViewerSearchOptions, FileViewerSearchProvider, FileViewerSearchState, FileViewerSource, FileViewerSourceKind, FileViewerThumbnailCaptureOptions, FileViewerThumbnailFit, FileViewerThumbnailFormat, FileViewerSpreadsheetOptions, FileViewerStateDescriptor, FileViewerStateTheme, FileViewerStyleIsolation, FileViewerTextOptions, FileViewerResolvedThemeMode, FileViewerThemeMode, FileViewerToolbarActionMap, FileViewerToolbarItem, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerResolvedToolbarItem, FileViewerUiDensity, FileViewerUiOptions, FileViewerTypstOptions, FileViewerViewScrollState, FileViewerViewState, FileViewerViewStateChange, FileViewerViewStateChangeAction, FileViewerViewStateChangeSource, FileViewerViewStateProvider, FileViewerWatermarkOptions, FileViewerWordPerfectOptions, FileViewerZoomProvider, FileViewerZoomState, NormalizedFileViewerSource, RendererCapability, RendererDefinition, RendererPlugin, RendererLoadContext, RendererLoader, RendererRegistry, RendererSession, RenderSurface, ViewerCapabilityState, ViewerLifecycleContext, ViewerOperationContext, } from './contracts/types';
|
package/dist/index.js
CHANGED
|
@@ -8,8 +8,9 @@ export { applyFileViewerZoomState, clearFileViewerZoomControllerProvider, create
|
|
|
8
8
|
export { FILE_VIEWER_FIT_MODES, FILE_VIEWER_FIT_RESIZE_MODES, createFileViewerFitController, hasFileViewerExplicitInitialViewState, isFileViewerFitMode, isFileViewerFitResize, normalizeFileViewerFitOptions, resolveFileViewerFitScale, } from './features/document/fit.js';
|
|
9
9
|
export { cloneFileViewerViewState, createFileViewerViewStateChange, createFileViewerViewStateChangeEmitter, createFileViewerViewStateController, createFileViewerViewStateControllerActionHandlers, registerFileViewerGenericViewStateProvider, } from './features/document/viewState.js';
|
|
10
10
|
export { DEFAULT_FILE_VIEWER_ANCHOR_EXCLUDE_SELECTOR, DEFAULT_FILE_VIEWER_ANCHOR_SELECTOR, DEFAULT_FILE_VIEWER_SCROLL_CONTAINER_CANDIDATE_SELECTOR, DEFAULT_FILE_VIEWER_SCROLL_CONTAINER_SELECTOR, DEFAULT_FILE_VIEWER_SCROLLABLE_OVERFLOW_VALUES, collectFileViewerDocumentAnchors, findFileViewerAnchorForElement, findFileViewerSearchProvider, findFileViewerViewStateProvider, findFileViewerZoomProvider, getCurrentFileViewerDocumentAnchor, getFileViewerScrollableRange, isFileViewerScrollableElement, registerFileViewerSearchProvider, registerFileViewerViewStateProvider, registerFileViewerZoomProvider, resolveFileViewerScrollContainer, scrollToFileViewerDocumentAnchor, unregisterFileViewerSearchProvider, unregisterFileViewerViewStateProvider, unregisterFileViewerZoomProvider, } from './features/document/dom/index.js';
|
|
11
|
-
export {
|
|
11
|
+
export { prepareFileViewerRenderedContentForSnapshot, inlineFileViewerBlobUrlsInHtml, replaceFileViewerCanvasWithImages, resolveFileViewerPrintStyle, triggerFileViewerBlobDownload, triggerFileViewerUrlDownload, waitForFileViewerImages, waitForFileViewerNextPaint, waitForFileViewerPrintWindowReady, } from './output/export.js';
|
|
12
12
|
export { applyPrintPageSize, buildPrintPageStyle, formatCssPixels, getElementPrintPageSize, } from './output/printLayout.js';
|
|
13
|
+
export { assertFileViewerMermaidSourceHasNoExternalResources, sanitizeFileViewerSvgCss, sanitizeFileViewerSvgResources, } from './security/svgResources.js';
|
|
13
14
|
export { DEFAULT_FILE_VIEWER_DOWNLOAD_FILENAME, DEFAULT_FILE_VIEWER_EXPORT_FILENAME, DEFAULT_FILE_VIEWER_PREVIEW_TITLE, FILE_VIEWER_OPERATION_ACTION_ERROR_PREFIXES, createFileViewerOperationActionHandlers, createFileViewerOriginalSourceState, createFileViewerOriginalSourceStateFromNormalizedSource, createFileViewerPublicOperationActionHandlers, executeFileViewerDownloadOperation, executeFileViewerExportHtmlOperation, executeFileViewerPrintOperation, hasFileViewerOriginalSource, resolveFileViewerDisplayFilename, resolveFileViewerOperationActionErrorMessage, resolveFileViewerOperationFilename, resolveFileViewerOriginalFilename, } from './viewer/operations.js';
|
|
14
15
|
export { FILE_VIEWER_BUILTIN_MESSAGES, FILE_VIEWER_DEFAULT_LOCALE, FILE_VIEWER_FALLBACK_LOCALE, FILE_VIEWER_SUPPORTED_LOCALES, createFileViewerTranslator, formatFileViewerMessage, normalizeFileViewerLocale, resolveFileViewerLocale, translateFileViewerMessage, } from './i18n/messages.js';
|
|
15
16
|
export { clearFileViewerAutoRendererPresets, collectFileViewerRendererPlugins, createRendererRegistry, findFileViewerAutoRendererPreset, getFileViewerAutoRendererPresetVersion, hasFileViewerRendererPresetName, installFileViewerRendererPlugins, listFileViewerAutoRendererPresetEntries, listFileViewerAutoRendererPresets, registerFileViewerAutoRendererPreset, resolveFileViewerRendererPresetInputs, unregisterFileViewerAutoRendererPreset, } from './registry/registry.js';
|
package/dist/output/export.d.ts
CHANGED
|
@@ -1,33 +1,12 @@
|
|
|
1
|
-
import type { FileRenderExportAdapter,
|
|
2
|
-
export
|
|
3
|
-
contentHtml: string;
|
|
4
|
-
includeDocumentStyles?: boolean;
|
|
5
|
-
printStyle?: string;
|
|
6
|
-
title: string;
|
|
7
|
-
watermarkInlineStyle?: string;
|
|
8
|
-
mask?: FileViewerPrintMaskOptions | null;
|
|
9
|
-
}
|
|
10
|
-
export declare const collectDocumentStyles: () => string;
|
|
11
|
-
export declare const buildExportHtmlDocument: ({ contentHtml, includeDocumentStyles, printStyle, title, watermarkInlineStyle, mask, }: BuildExportHtmlDocumentOptions) => string;
|
|
12
|
-
export interface BuildFileViewerRenderedHtmlDocumentOptions {
|
|
13
|
-
source: HTMLElement;
|
|
14
|
-
mode?: FileRenderExportMode;
|
|
15
|
-
title: string;
|
|
16
|
-
adapter?: FileRenderExportAdapter | null;
|
|
17
|
-
watermarkInlineStyle?: string;
|
|
18
|
-
mask?: FileViewerPrintMaskOptions | null;
|
|
19
|
-
}
|
|
1
|
+
import type { FileRenderExportAdapter, FileRenderExportOptions } from '../contracts/types';
|
|
2
|
+
/** Lightweight export helpers that remain on the normal viewer path. */
|
|
20
3
|
export declare const triggerFileViewerBlobDownload: (blob: Blob, name: string) => void;
|
|
21
4
|
export declare const triggerFileViewerUrlDownload: (url: string, name: string) => void;
|
|
22
5
|
export declare const replaceFileViewerCanvasWithImages: (source: HTMLElement, clone: HTMLElement) => void;
|
|
23
6
|
export declare const waitForFileViewerNextPaint: (targetWindow?: Partial<Pick<Window, "requestAnimationFrame" | "setTimeout">>) => Promise<void>;
|
|
24
7
|
export declare const waitForFileViewerImages: (root: ParentNode | null | undefined) => Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* Rewrite ephemeral `blob:` URLs into portable `data:` URLs so exported / printed
|
|
27
|
-
* HTML keeps images after leaving the live viewer document (GitHub #90).
|
|
28
|
-
*/
|
|
8
|
+
/** Rewrite ephemeral blob URLs into portable data URLs for export and print. */
|
|
29
9
|
export declare const inlineFileViewerBlobUrlsInHtml: (html: string) => Promise<string>;
|
|
30
10
|
export declare const waitForFileViewerPrintWindowReady: (printWindow: Window) => Promise<void>;
|
|
31
11
|
export declare const resolveFileViewerPrintStyle: (adapter: FileRenderExportAdapter | null, options: FileRenderExportOptions) => Promise<string>;
|
|
32
12
|
export declare const prepareFileViewerRenderedContentForSnapshot: (source: HTMLElement, adapter?: FileRenderExportAdapter | null) => Promise<void>;
|
|
33
|
-
export declare const buildFileViewerRenderedHtmlDocument: ({ source, mode, title, adapter, watermarkInlineStyle, mask, }: BuildFileViewerRenderedHtmlDocumentOptions) => Promise<string>;
|