@file-viewer/core 3.1.2 → 3.2.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.
Files changed (103) hide show
  1. package/README.en.md +3 -121
  2. package/README.md +3 -126
  3. package/dist/assets.d.ts +2 -2
  4. package/dist/assets.js +1 -5
  5. package/dist/browser/controller.d.ts +1 -2
  6. package/dist/browser/controller.js +2 -34
  7. package/dist/browser.d.ts +2 -2
  8. package/dist/browser.js +2 -2
  9. package/dist/config/options.d.ts +1 -1
  10. package/dist/contracts/types.d.ts +26 -423
  11. package/dist/contracts/xml.d.ts +0 -11
  12. package/dist/export.d.ts +3 -10
  13. package/dist/export.js +2 -9
  14. package/dist/exportDocument.d.ts +1 -12
  15. package/dist/exportDocument.js +7 -31
  16. package/dist/features/document/dom/anchors.d.ts +1 -1
  17. package/dist/features/document/dom/index.d.ts +5 -5
  18. package/dist/features/document/dom/index.js +3 -3
  19. package/dist/features/document/dom/providers.d.ts +1 -1
  20. package/dist/features/document/events.d.ts +2 -2
  21. package/dist/features/document/events.js +3 -3
  22. package/dist/features/document/fit.d.ts +1 -1
  23. package/dist/features/document/fit.js +1 -1
  24. package/dist/features/document/model.d.ts +1 -1
  25. package/dist/features/document/search.d.ts +1 -1
  26. package/dist/features/document/search.js +2 -2
  27. package/dist/features/document/viewState.d.ts +1 -1
  28. package/dist/features/document/viewState.js +2 -2
  29. package/dist/features/document/zoom.d.ts +3 -2
  30. package/dist/features/document/zoom.js +19 -3
  31. package/dist/features/document/zoomGestures.d.ts +11 -0
  32. package/dist/features/document/zoomGestures.js +111 -0
  33. package/dist/features/printMask.d.ts +1 -1
  34. package/dist/features/printMaskDesigner.d.ts +2 -6
  35. package/dist/features/printMaskDesigner.js +2 -11
  36. package/dist/features/printMaskLoader.d.ts +1 -7
  37. package/dist/features/printMaskLoader.js +1 -7
  38. package/dist/features/watermark.d.ts +1 -1
  39. package/dist/headless.d.ts +29 -29
  40. package/dist/headless.js +16 -21
  41. package/dist/i18n/messages.d.ts +1 -1
  42. package/dist/i18n/messages.de.d.ts +1 -5
  43. package/dist/i18n/messages.de.js +0 -4
  44. package/dist/i18n/messages.ja.d.ts +1 -6
  45. package/dist/i18n/messages.ja.js +0 -5
  46. package/dist/i18n/messages.js +2 -2
  47. package/dist/index.d.ts +74 -74
  48. package/dist/index.js +37 -37
  49. package/dist/lifecycle/facade.d.ts +4 -4
  50. package/dist/lifecycle/facade.js +2 -2
  51. package/dist/lifecycle/operations.d.ts +4 -4
  52. package/dist/lifecycle/operations.js +4 -9
  53. package/dist/output/canvasImage.d.ts +1 -2
  54. package/dist/output/canvasImage.js +1 -4
  55. package/dist/output/export.d.ts +2 -4
  56. package/dist/output/export.js +133 -81
  57. package/dist/output/printLayout.d.ts +2 -5
  58. package/dist/output/printLayout.js +37 -9
  59. package/dist/output/snapshotDownload.d.ts +1 -2
  60. package/dist/output/snapshotDownload.js +2 -3
  61. package/dist/platform/assets.d.ts +9 -16
  62. package/dist/platform/assets.js +60 -17
  63. package/dist/platform/copiedAssets.d.ts +0 -1
  64. package/dist/platform/copiedAssets.js +1 -2
  65. package/dist/presentation/state.d.ts +1 -1
  66. package/dist/presentation/state.js +3 -3
  67. package/dist/print-mask.d.ts +2 -2
  68. package/dist/print-mask.js +1 -1
  69. package/dist/registry/capabilities.d.ts +3 -16
  70. package/dist/registry/capabilities.js +2 -15
  71. package/dist/registry/formats.d.ts +5 -5
  72. package/dist/registry/formats.generated.d.ts +7 -8
  73. package/dist/registry/formats.generated.js +7 -4
  74. package/dist/registry/formats.js +2 -2
  75. package/dist/registry/registry.d.ts +6 -15
  76. package/dist/registry/registry.js +24 -10
  77. package/dist/renderers/image.d.ts +1 -1
  78. package/dist/renderers/image.js +26 -5
  79. package/dist/renderers/index.d.ts +11 -11
  80. package/dist/renderers/index.js +5 -11
  81. package/dist/rendering/dispatcher.d.ts +1 -6
  82. package/dist/rendering/dispatcher.js +3 -3
  83. package/dist/rendering/handler.d.ts +10 -15
  84. package/dist/rendering/handler.js +20 -27
  85. package/dist/security/svgResources.d.ts +0 -10
  86. package/dist/security/svgResources.js +2 -11
  87. package/dist/source/index.d.ts +3 -3
  88. package/dist/source/index.js +1 -1
  89. package/dist/source/loading.d.ts +56 -15
  90. package/dist/source/loading.js +177 -87
  91. package/dist/source/precheck.d.ts +1 -13
  92. package/dist/source/precheck.js +2 -9
  93. package/dist/source/textEncoding.d.ts +6 -3
  94. package/dist/source/textEncoding.js +58 -8
  95. package/dist/viewer/createViewer.d.ts +1 -1
  96. package/dist/viewer/createViewer.js +103 -33
  97. package/dist/viewer/loading.d.ts +2 -6
  98. package/dist/viewer/loading.js +1 -9
  99. package/dist/viewer/operations.d.ts +3 -3
  100. package/dist/viewer/operations.js +6 -14
  101. package/dist/viewer/state.d.ts +2 -6
  102. package/dist/viewer/state.js +3 -8
  103. package/package.json +127 -19
package/dist/index.js CHANGED
@@ -1,22 +1,22 @@
1
- export { DEFAULT_FILE_VIEWER_ARCHIVE_WORKER_PATH, DEFAULT_FILE_VIEWER_ARCHIVE_WASM_PATH, DEFAULT_FILE_VIEWER_CHM_WORKER_PATH, DEFAULT_FILE_VIEWER_CHM_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_CHM_WASM_MODULE_PATH, DEFAULT_FILE_VIEWER_CHM_WASM_MODULE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_CHM_WASM_PATH, DEFAULT_FILE_VIEWER_CHM_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_CAD_DWF_WASM_PATH, DEFAULT_FILE_VIEWER_CAD_LIBREDWG_SCRIPT_PATH, DEFAULT_FILE_VIEWER_CAD_LIBREDWG_WASM_PATH, DEFAULT_FILE_VIEWER_CAD_RUNTIME_VERSION, DEFAULT_FILE_VIEWER_CAD_WASM_PATH, DEFAULT_FILE_VIEWER_CAD_WORKER_PATH, DEFAULT_FILE_VIEWER_DATA_SQL_WASM_URL, DEFAULT_FILE_VIEWER_ILLUSTRATOR_WORKER_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_LICENSE_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_ZSTD_LICENSE_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_ZSTD_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_DESIGN_WORKER_PATH, DEFAULT_FILE_VIEWER_DESIGN_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_DESIGN_CONTAINER_WORKER_PATH, DEFAULT_FILE_VIEWER_DESIGN_CONTAINER_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_ADOBE_RESOURCE_WORKER_PATH, DEFAULT_FILE_VIEWER_ADOBE_RESOURCE_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_WORKER_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_WASM_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_STET_APACHE_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_STET_APACHE_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_STET_MIT_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_STET_MIT_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_CARLITO_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_CARLITO_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_TINOS_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_TINOS_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_COUSINE_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_COUSINE_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_NOTO_SYMBOLS_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_NOTO_SYMBOLS_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_IDML_WORKER_PATH, DEFAULT_FILE_VIEWER_IDML_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_IDML_WASM_PATH, DEFAULT_FILE_VIEWER_IDML_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_IDML_LICENSE_PATH, DEFAULT_FILE_VIEWER_IDML_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_RUNTIME_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_RUNTIME_URL, DEFAULT_FILE_VIEWER_MODEL_IMPORT_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_IMPORT_LICENSE_URL, DEFAULT_FILE_VIEWER_MODEL_OCCT_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_OCCT_LICENSE_URL, DEFAULT_FILE_VIEWER_MODEL_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_WASM_URL, DEFAULT_FILE_VIEWER_MODEL_WORKER_URL, DEFAULT_FILE_VIEWER_DOCX_WORKER_JSZIP_PATH, DEFAULT_FILE_VIEWER_DOCX_WORKER_PATH, DEFAULT_FILE_VIEWER_DOCX_RUNTIME_VERSION, DEFAULT_FILE_VIEWER_PDF_CMAP_PATH, DEFAULT_FILE_VIEWER_PDF_STANDARD_FONT_PATH, DEFAULT_FILE_VIEWER_PDF_WASM_PATH, DEFAULT_FILE_VIEWER_PDF_WORKER_PATH, DEFAULT_FILE_VIEWER_PPT_FONT_PATH, DEFAULT_FILE_VIEWER_PPT_FRAME_CACHE_PATH, DEFAULT_FILE_VIEWER_PPT_MODULE_PATH, DEFAULT_FILE_VIEWER_PPT_RUNTIME_PATH, DEFAULT_FILE_VIEWER_PPT_RUNTIME_VERSION, DEFAULT_FILE_VIEWER_PPT_WASM_PATH, DEFAULT_FILE_VIEWER_PPT_WORKER_PATH, DEFAULT_FILE_VIEWER_PRESENTATION_WORKER_PATH, DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS, DEFAULT_FILE_VIEWER_SPREADSHEET_WORKER_PATH, DEFAULT_FILE_VIEWER_IWORK_WORKER_PATH, DEFAULT_FILE_VIEWER_IWORK_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_HANGUL_WORKER_PATH, DEFAULT_FILE_VIEWER_HANGUL_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_WORKER_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_WASM_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_MODULE_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_MODULE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_TYPST_COMPILER_WASM_URL, DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_URL, DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_PACKAGE_PATH, getDefaultFileViewerAssetBaseUrl, getFileViewerRendererAssetManifest, listFileViewerRendererAssetManifests, normalizeFileViewerAssetBaseUrl, resetDefaultFileViewerAssetBaseUrl, resolveFileViewerArchiveWasmUrl, resolveFileViewerArchiveWorkerUrl, resolveFileViewerChmWorkerUrl, resolveFileViewerChmWasmModuleUrl, resolveFileViewerChmWasmUrl, resolveFileViewerAssetUrl, resolveFileViewerCadAssetUrls, resolveFileViewerDataSqlWasmUrl, resolveFileViewerIllustratorWorkerUrl, resolveFileViewerDesignWorkerUrl, resolveFileViewerDesignContainerWorkerUrl, resolveFileViewerAdobeResourceWorkerUrl, resolveFileViewerPostscriptWorkerUrl, resolveFileViewerPostscriptWasmUrl, resolveFileViewerIdmlWorkerUrl, resolveFileViewerIdmlWasmUrl, resolveFileViewerDocxWorkerJsZipUrl, resolveFileViewerDocxWorkerUrl, resolveFileViewerDrawioViewerScriptUrl, resolveFileViewerModelAssetUrls, resolveFileViewerPdfAssetUrls, resolveFileViewerPresentationWorkerUrl, resolveFileViewerRendererAssets, resolveFileViewerRuntimeAssetBaseUrl, resolveFileViewerSpreadsheetWorkerUrl, resolveFileViewerIworkWorkerUrl, resolveFileViewerHangulWorkerUrl, resolveFileViewerWordPerfectWorkerUrl, resolveFileViewerWordPerfectWasmUrl, resolveFileViewerTypstCompilerWasmUrl, resolveFileViewerTypstRendererWasmUrl, setDefaultFileViewerAssetBaseUrl, } from './assets.js';
2
- export { ARCHIVE_EXTENSIONS, DEFAULT_REGISTERED_EXTENSIONS, DEFAULT_RENDERER_DEFINITIONS, DEFAULT_STABLE_SUPPORTED_EXTENSIONS, DEFAULT_SUPPORTED_EXTENSIONS, IMAGE_EXTENSIONS, MODEL_EXTENSIONS, TEXT_EXTENSIONS, } from './registry/formats.js';
3
- export { precheckFileViewerSource } from './source/precheck.js';
4
- export { DEFAULT_FILE_VIEWER_TEXT_CHUNK_OVERLAP, DEFAULT_FILE_VIEWER_TEXT_CHUNK_SIZE, DEFAULT_FILE_VIEWER_ZOOM_SCALE, buildFileViewerDocumentTextChunks, createEmptyFileViewerSearchState, createFileViewerZoomState, normalizeFileViewerAiOptions, normalizeFileViewerSearchOptions, } from './features/document/model.js';
5
- export { DEFAULT_FILE_VIEWER_SEARCH_ACTIVE_CLASS, DEFAULT_FILE_VIEWER_SEARCH_MATCH_CLASS, DEFAULT_FILE_VIEWER_SEARCH_MAX_MATCHES, applyFileViewerSearchState, cloneFileViewerSearchState, createFileViewerDomSearchController, createFileViewerDomSearchControllerActionHandlers, destroyFileViewerDomSearchController, observeFileViewerDomSearchController, runFileViewerDomSearchControllerAction, syncFileViewerDomSearchControllerState, } from './features/document/search.js';
6
- export { createFileViewerDocumentFeatureActions, createFileViewerDocumentFeatureControllerActionHandlers, createFileViewerDocumentChangeSnapshot, createFileViewerSearchChangeState, dispatchFileViewerLocationChange, dispatchFileViewerSearchChange, resolveFileViewerLocationChangeAnchor, } from './features/document/events.js';
7
- export { applyFileViewerZoomState, clearFileViewerZoomControllerProvider, createFileViewerZoomChangeEmitter, createFileViewerZoomChangeState, cloneFileViewerZoomState, createFileViewerZoomController, createFileViewerZoomControllerActionHandlers, destroyFileViewerZoomController, observeFileViewerZoomController, refreshFileViewerZoomControllerProvider, runFileViewerZoomControllerAction, syncFileViewerZoomControllerState, } from './features/document/zoom.js';
8
- export { FILE_VIEWER_FIT_MODES, FILE_VIEWER_FIT_RESIZE_MODES, createFileViewerFitController, hasFileViewerExplicitInitialViewState, isFileViewerFitMode, isFileViewerFitResize, normalizeFileViewerFitOptions, resolveFileViewerFitScale, } from './features/document/fit.js';
9
- export { cloneFileViewerViewState, createFileViewerViewStateChange, createFileViewerViewStateChangeEmitter, createFileViewerViewStateController, createFileViewerViewStateControllerActionHandlers, registerFileViewerGenericViewStateProvider, } from './features/document/viewState.js';
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 { prepareFileViewerRenderedContentForSnapshot, inlineFileViewerBlobUrlsInHtml, replaceFileViewerCanvasWithImages, resolveFileViewerPrintStyle, triggerFileViewerBlobDownload, triggerFileViewerUrlDownload, waitForFileViewerImages, waitForFileViewerNextPaint, waitForFileViewerPrintWindowReady, } from './output/export.js';
12
- export { createFileViewerCanvasImageBlob } from './output/canvasImage.js';
13
- export { createFileViewerSnapshotDownload, isFileViewerSnapshotDownloadPermitted } from './output/snapshotDownload.js';
14
- export { applyPrintPageSize, buildPrintPageStyle, formatCssPixels, getElementPrintPageSize, } from './output/printLayout.js';
15
- export { assertFileViewerMermaidSourceHasNoExternalResources, sanitizeFileViewerSvgCss, sanitizeFileViewerSvgResources, } from './security/svgResources.js';
16
- 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';
17
- 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';
18
- export { clearFileViewerAutoRendererPresets, collectFileViewerRendererPlugins, createRendererRegistry, findFileViewerAutoRendererPreset, getFileViewerAutoRendererPresetVersion, hasFileViewerRendererPresetName, installFileViewerRendererPlugins, listFileViewerAutoRendererPresetEntries, listFileViewerAutoRendererPresets, registerFileViewerAutoRendererPreset, resolveFileViewerRendererPresetInputs, unregisterFileViewerAutoRendererPreset, } from './registry/registry.js';
19
- export { CORE_LITE_RENDERER_IDS, coreBrowserRendererHandlers, coreLiteBrowserRendererHandlers, coreLiteRendererDefinitions, createFileViewerCoreRendererRegistry, fileViewerCoreRendererDispatcher, fileViewerCoreRendererRegistry, fileViewerCoreRendererRegistryBridge, missingFileViewerCoreRendererHandlers, } from './renderers/index.js';
1
+ export { DEFAULT_FILE_VIEWER_ARCHIVE_WORKER_PATH, DEFAULT_FILE_VIEWER_ARCHIVE_WASM_PATH, DEFAULT_FILE_VIEWER_CHM_WORKER_PATH, DEFAULT_FILE_VIEWER_CHM_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_CHM_WASM_MODULE_PATH, DEFAULT_FILE_VIEWER_CHM_WASM_MODULE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_CHM_WASM_PATH, DEFAULT_FILE_VIEWER_CHM_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_CAD_DWF_WASM_PATH, DEFAULT_FILE_VIEWER_CAD_LIBREDWG_SCRIPT_PATH, DEFAULT_FILE_VIEWER_CAD_LIBREDWG_WASM_PATH, DEFAULT_FILE_VIEWER_CAD_RUNTIME_VERSION, DEFAULT_FILE_VIEWER_CAD_WASM_PATH, DEFAULT_FILE_VIEWER_CAD_WORKER_PATH, DEFAULT_FILE_VIEWER_DATA_SQL_WASM_URL, DEFAULT_FILE_VIEWER_ILLUSTRATOR_WORKER_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_LICENSE_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_ZSTD_LICENSE_PATH, DEFAULT_FILE_VIEWER_ILLUSTRATOR_ZSTD_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_DESIGN_WORKER_PATH, DEFAULT_FILE_VIEWER_DESIGN_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_DESIGN_CONTAINER_WORKER_PATH, DEFAULT_FILE_VIEWER_DESIGN_CONTAINER_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_ADOBE_RESOURCE_WORKER_PATH, DEFAULT_FILE_VIEWER_ADOBE_RESOURCE_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_WORKER_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_WASM_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_STET_APACHE_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_STET_APACHE_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_STET_MIT_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_STET_MIT_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_CARLITO_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_CARLITO_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_TINOS_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_TINOS_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_COUSINE_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_COUSINE_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_NOTO_SYMBOLS_LICENSE_PATH, DEFAULT_FILE_VIEWER_POSTSCRIPT_NOTO_SYMBOLS_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_IDML_WORKER_PATH, DEFAULT_FILE_VIEWER_IDML_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_IDML_WASM_PATH, DEFAULT_FILE_VIEWER_IDML_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_IDML_LICENSE_PATH, DEFAULT_FILE_VIEWER_IDML_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_RUNTIME_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_RUNTIME_URL, DEFAULT_FILE_VIEWER_MODEL_IMPORT_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_IMPORT_LICENSE_URL, DEFAULT_FILE_VIEWER_MODEL_OCCT_LICENSE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_OCCT_LICENSE_URL, DEFAULT_FILE_VIEWER_MODEL_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_MODEL_WASM_URL, DEFAULT_FILE_VIEWER_MODEL_WORKER_URL, DEFAULT_FILE_VIEWER_DOCX_WORKER_JSZIP_PATH, DEFAULT_FILE_VIEWER_DOCX_WORKER_PATH, DEFAULT_FILE_VIEWER_DOCX_RUNTIME_VERSION, DEFAULT_FILE_VIEWER_PDF_CMAP_PATH, DEFAULT_FILE_VIEWER_PDF_STANDARD_FONT_PATH, DEFAULT_FILE_VIEWER_PDF_WASM_PATH, DEFAULT_FILE_VIEWER_PDF_WORKER_PATH, DEFAULT_FILE_VIEWER_PPT_FONT_PATH, DEFAULT_FILE_VIEWER_PPT_FRAME_CACHE_PATH, DEFAULT_FILE_VIEWER_PPT_MODULE_PATH, DEFAULT_FILE_VIEWER_PPT_RUNTIME_PATH, DEFAULT_FILE_VIEWER_PPT_RUNTIME_VERSION, DEFAULT_FILE_VIEWER_PPT_WASM_PATH, DEFAULT_FILE_VIEWER_PPT_WORKER_PATH, DEFAULT_FILE_VIEWER_PRESENTATION_WORKER_PATH, DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS, DEFAULT_FILE_VIEWER_SPREADSHEET_WORKER_PATH, DEFAULT_FILE_VIEWER_IWORK_WORKER_PATH, DEFAULT_FILE_VIEWER_IWORK_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_HANGUL_WORKER_PATH, DEFAULT_FILE_VIEWER_HANGUL_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_WORKER_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_WORKER_PACKAGE_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_WASM_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_WASM_PACKAGE_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_MODULE_PATH, DEFAULT_FILE_VIEWER_WORDPERFECT_MODULE_PACKAGE_PATH, DEFAULT_FILE_VIEWER_TYPST_COMPILER_WASM_URL, DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_URL, DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_PACKAGE_PATH, getDefaultFileViewerAssetBaseUrl, getFileViewerRendererAssetManifest, listFileViewerRendererAssetManifests, normalizeFileViewerAssetBaseUrl, resetDefaultFileViewerAssetBaseUrl, resolveFileViewerArchiveWasmUrl, resolveFileViewerArchiveWorkerUrl, resolveFileViewerChmWorkerUrl, resolveFileViewerChmWasmModuleUrl, resolveFileViewerChmWasmUrl, resolveFileViewerAssetUrl, resolveFileViewerCadAssetUrls, resolveFileViewerDataSqlWasmUrl, resolveFileViewerIllustratorWorkerUrl, resolveFileViewerDesignWorkerUrl, resolveFileViewerDesignContainerWorkerUrl, resolveFileViewerAdobeResourceWorkerUrl, resolveFileViewerPostscriptWorkerUrl, resolveFileViewerPostscriptWasmUrl, resolveFileViewerIdmlWorkerUrl, resolveFileViewerIdmlWasmUrl, resolveFileViewerDocxWorkerJsZipUrl, resolveFileViewerDocxWorkerUrl, resolveFileViewerDrawioViewerScriptUrl, resolveFileViewerModelAssetUrls, resolveFileViewerPdfAssetUrls, resolveFileViewerPresentationWorkerUrl, resolveFileViewerRendererAssets, resolveFileViewerRuntimeAssetBaseUrl, resolveFileViewerSpreadsheetWorkerUrl, resolveFileViewerIworkWorkerUrl, resolveFileViewerHangulWorkerUrl, resolveFileViewerWordPerfectWorkerUrl, resolveFileViewerWordPerfectWasmUrl, resolveFileViewerTypstCompilerWasmUrl, resolveFileViewerTypstRendererWasmUrl, setDefaultFileViewerAssetBaseUrl, } from "./assets.js";
2
+ export { ARCHIVE_EXTENSIONS, DEFAULT_REGISTERED_EXTENSIONS, DEFAULT_RENDERER_DEFINITIONS, DEFAULT_STABLE_SUPPORTED_EXTENSIONS, DEFAULT_SUPPORTED_EXTENSIONS, IMAGE_EXTENSIONS, MODEL_EXTENSIONS, TEXT_EXTENSIONS, } from "./registry/formats.js";
3
+ export { precheckFileViewerSource } from "./source/precheck.js";
4
+ export { DEFAULT_FILE_VIEWER_TEXT_CHUNK_OVERLAP, DEFAULT_FILE_VIEWER_TEXT_CHUNK_SIZE, DEFAULT_FILE_VIEWER_ZOOM_SCALE, buildFileViewerDocumentTextChunks, createEmptyFileViewerSearchState, createFileViewerZoomState, normalizeFileViewerAiOptions, normalizeFileViewerSearchOptions, } from "./features/document/model.js";
5
+ export { DEFAULT_FILE_VIEWER_SEARCH_ACTIVE_CLASS, DEFAULT_FILE_VIEWER_SEARCH_MATCH_CLASS, DEFAULT_FILE_VIEWER_SEARCH_MAX_MATCHES, applyFileViewerSearchState, cloneFileViewerSearchState, createFileViewerDomSearchController, createFileViewerDomSearchControllerActionHandlers, destroyFileViewerDomSearchController, observeFileViewerDomSearchController, runFileViewerDomSearchControllerAction, syncFileViewerDomSearchControllerState, } from "./features/document/search.js";
6
+ export { createFileViewerDocumentFeatureActions, createFileViewerDocumentFeatureControllerActionHandlers, createFileViewerDocumentChangeSnapshot, createFileViewerSearchChangeState, dispatchFileViewerLocationChange, dispatchFileViewerSearchChange, resolveFileViewerLocationChangeAnchor, } from "./features/document/events.js";
7
+ export { applyFileViewerZoomState, clearFileViewerZoomControllerProvider, createFileViewerZoomChangeEmitter, createFileViewerZoomChangeState, cloneFileViewerZoomState, createFileViewerZoomController, createFileViewerZoomControllerActionHandlers, destroyFileViewerZoomController, observeFileViewerZoomController, refreshFileViewerZoomControllerProvider, runFileViewerZoomControllerAction, syncFileViewerZoomControllerState, } from "./features/document/zoom.js";
8
+ export { FILE_VIEWER_FIT_MODES, FILE_VIEWER_FIT_RESIZE_MODES, createFileViewerFitController, hasFileViewerExplicitInitialViewState, isFileViewerFitMode, isFileViewerFitResize, normalizeFileViewerFitOptions, resolveFileViewerFitScale, } from "./features/document/fit.js";
9
+ export { cloneFileViewerViewState, createFileViewerViewStateChange, createFileViewerViewStateChangeEmitter, createFileViewerViewStateController, createFileViewerViewStateControllerActionHandlers, registerFileViewerGenericViewStateProvider, } from "./features/document/viewState.js";
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 { prepareFileViewerRenderedContentForSnapshot, inlineFileViewerBlobUrlsInHtml, replaceFileViewerCanvasWithImages, resolveFileViewerPrintStyle, triggerFileViewerBlobDownload, triggerFileViewerUrlDownload, waitForFileViewerImages, waitForFileViewerNextPaint, waitForFileViewerPrintWindowReady, } from "./output/export.js";
12
+ export { createFileViewerCanvasImageBlob } from "./output/canvasImage.js";
13
+ export { createFileViewerSnapshotDownload, isFileViewerSnapshotDownloadPermitted } from "./output/snapshotDownload.js";
14
+ export { applyPrintPageSize, buildPrintPageStyle, formatCssPixels, getElementPrintPageSize, } from "./output/printLayout.js";
15
+ export { assertFileViewerMermaidSourceHasNoExternalResources, sanitizeFileViewerSvgCss, sanitizeFileViewerSvgResources, } from "./security/svgResources.js";
16
+ 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";
17
+ 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";
18
+ export { clearFileViewerAutoRendererPresets, collectFileViewerRendererPlugins, createRendererRegistry, findFileViewerAutoRendererPreset, getFileViewerAutoRendererPresetVersion, hasFileViewerRendererPresetName, installFileViewerRendererPlugins, matchesFileViewerRendererFilename, resolveFileViewerRendererDefinition, listFileViewerAutoRendererPresetEntries, listFileViewerAutoRendererPresets, registerFileViewerAutoRendererPreset, resolveFileViewerRendererPresetInputs, unregisterFileViewerAutoRendererPreset, } from "./registry/registry.js";
19
+ export { CORE_LITE_RENDERER_IDS, coreBrowserRendererHandlers, coreLiteBrowserRendererHandlers, coreLiteRendererDefinitions, createFileViewerCoreRendererRegistry, fileViewerCoreRendererDispatcher, fileViewerCoreRendererRegistry, fileViewerCoreRendererRegistryBridge, missingFileViewerCoreRendererHandlers, } from "./renderers/index.js";
20
20
  export const renderFileViewerAudio = async (buffer, target, type) => {
21
21
  void buffer;
22
22
  void target;
@@ -83,7 +83,7 @@ export const renderFileViewerGeo = async (buffer, target, type) => {
83
83
  throw new Error('Geospatial rendering has moved out of @file-viewer/core. Install and pass @file-viewer/renderer-geo, or use @file-viewer/preset-all.');
84
84
  };
85
85
  export const renderFileViewerImage = async (buffer, target, type) => {
86
- const { default: renderImage } = await import('./renderers/image.js');
86
+ const { default: renderImage } = await import("./renderers/image.js");
87
87
  return renderImage(buffer, target, type);
88
88
  };
89
89
  export const renderFileViewerMarkdown = async (buffer, target) => {
@@ -166,20 +166,20 @@ export const parseEdaFile = async (buffer, type) => {
166
166
  void type;
167
167
  throw new Error('EDA parsing has moved out of @file-viewer/core. Import parseEdaFile from @file-viewer/renderer-eda instead.');
168
168
  };
169
- export { ADAPTER_PRINT_REQUIRED_EXTENSIONS, applyFileViewerZoomAvailability, createUnsupportedAvailability, DEFAULT_OPERATION_AVAILABILITY, DOM_PRINTABLE_EXTENSIONS, getRendererAvailability, isDomPrintableExtension, isKnownNonPrintableExtension, needsDedicatedPrintAdapter, NON_PRINTABLE_EXTENSIONS, resolvePrintAvailability, } from './registry/capabilities.js';
170
- export { FILE_VIEWER_LIFECYCLE_HOOKS, FILE_VIEWER_BEFORE_OPERATION_ERROR_PREFIX, DEFAULT_FILE_VIEWER_TOOLBAR_ORDER, FILE_VIEWER_LIFECYCLE_HOOK_ERROR_MESSAGE_PREFIX, FILE_VIEWER_OPERATION_LABELS, buildFileViewerLifecycleContext, buildFileViewerLifecycleContextFromNormalizedSource, buildFileViewerOperationContext, buildFileViewerOperationContextFromLifecycleState, cloneFileViewerOperationAvailability, createFileViewerLifecycleActions, createFileViewerLifecycleStateController, createFileViewerPublicApi, createFileViewerToolbarActions, createFileViewerToolbarControllerActionHandlers, createFileViewerToolbarZoomSyncSnapshot, DEFAULT_FILE_VIEWER_LIFECYCLE_HOOK_ERROR_LOGGER, DEFAULT_FILE_VIEWER_OPERATION_ERROR_LOGGER, dispatchFileViewerLifecycleEvent, dispatchFileViewerOperationContextEvent, dispatchFileViewerOperationAvailabilityChange, dispatchFileViewerZoomChange, emitFileViewerComponentLifecycleEvent, getFileViewerBeforeOperationHooks, getFileViewerLifecycleHookName, hasVisibleFileViewerToolbarActions, isFileViewerToolbarOperationPermitted, isFileViewerZoomButtonDisabled, normalizeFileViewerToolbar, reportFileViewerLifecycleHookError, reportFileViewerOperationError, resolveFileViewerLifecycleFallbackSource, resolveFileViewerLifecycleHookErrorMessage, resolveFileViewerBeforeOperationErrorMessage, resolveFileViewerOperationAvailability, resolveFileViewerToolbarOrder, resolveFileViewerToolbarState, resolveFileViewerToolbarPosition, resolveVisibleFileViewerToolbar, runFileViewerActiveUnloadComplete, runFileViewerActiveUnloadStart, runFileViewerBeforeOperation, runFileViewerLifecycleHook, runFileViewerToolbarAvailabilitySync, runFileViewerToolbarZoomSync, serializeFileViewerContext, } from './lifecycle/operations.js';
171
- export { FALLBACK_FILE_VIEWER_LOADING_THEME, FILE_VIEWER_LOADING_THEME_MAP, applyFileViewerLoadingState, cloneFileViewerLoadingState, createFileViewerLoadingController, createFileViewerLoadingControllerActionHandlers, createFileViewerLoadingState, createFileViewerLoadingStyleVars, runFileViewerLoadingControllerAction, runFileViewerLoadingExtensionSync, resolveFileViewerLoadingTheme, syncFileViewerLoadingControllerState, } from './viewer/loading.js';
172
- export { createFileViewerLifecycleFacade, } from './lifecycle/facade.js';
173
- export { getFileViewerOptionsSearchParam, normalizeFileViewerUiDensity, normalizeFileViewerTheme, parseFileViewerOptions, resolveFileViewerColorScheme, resolveFileViewerUiDensity, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, toggleFileViewerColorScheme, } from './config/options.js';
174
- export { resolveFileViewerPresentationState, } from './presentation/state.js';
175
- export { createFileViewerRendererDispatcher, } from './rendering/dispatcher.js';
176
- export { appendFileViewerStyle, buildFileRenderContextFromLoadContext, applyFileViewerRenderSurfaceState, clearFileViewerRenderSurface, createFileRenderHandlerRendererSession, createFileRenderHandlerRegistry, createFileRenderHandlerLoader, createFileViewerRenderSurfaceActionHandlers, createFileViewerRenderReadinessTarget, createFileViewerRenderSurface, createFileViewerRenderSurfaceState, createFileViewerRenderSurfaceStateTarget, createFileViewerRenderTarget, DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS, FILE_VIEWER_RENDER_SURFACE_BACKGROUND_PROPERTY, DEFAULT_FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_LOGGER, FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE, disposeActiveFileViewerRendererSession, disposeFileViewerRendered, disposeFileViewerRendererSession, getFileViewerShadowRootForNode, isFileViewerShadowRoot, normalizeFileViewerStyleIsolation, normalizeFileViewerRenderSurfaceBackground, removeFileViewerRenderTarget, reportFileViewerRenderSessionDisposeError, resetFileViewerRenderSurface, resolveFileViewerStyleIsolation, resolveFileViewerRenderSessionDisposeErrorMessage, runFileViewerRenderSurfaceClear, runFileViewerRenderSurfaceMount, syncFileViewerRenderSurfaceBackground, renderFileViewerHandler, } from './rendering/handler.js';
177
- export { DEFAULT_FILE_VIEWER_SOURCE_FILENAME, createFileViewerTextDecoder, decodeFileViewerTextBuffer, decodeFilename, getExtension, normalizeFileExtension, normalizeFilename, isValidFileViewerUtf8, resolveFileViewerTextEncoding, resolveFileViewerSourceFilename, normalizeSource, readFileViewerBuffer, readFileViewerDataUrl, readFileViewerText, wrapFileViewerFileRef, } from './source/index.js';
178
- export { DEFAULT_FILE_VIEWER_STATE_THEME, DEFAULT_FILE_VIEWER_UNSUPPORTED_DESCRIPTION, FILE_VIEWER_ERROR_MESSAGE, FILE_VIEWER_PREVIEW_MESSAGES, attachFileViewerErrorMessage, createFileViewerEmptyState, createFileViewerErrorState, createFileViewerPreviewLoadingState, createFileViewerReadyState, createFileViewerUnsupportedState, formatFileViewerErrorMessage, normalizeFileViewerErrorMessage, resolveFileViewerRendererInstallHint, } from './viewer/state.js';
179
- export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark.js';
180
- export { buildFileViewerPrintMaskOverlayHtml, applyFileViewerPagePrintMasksToHtml, normalizeFileViewerPrintMaskOptions, normalizeFileViewerPrintMaskRegion, normalizeFileViewerPrintStamp, FILE_VIEWER_PRINT_MASK_STYLE, } from './features/printMask.js';
181
- export { openFileViewerPrintMaskDesignerAsync, } from './features/printMaskLoader.js';
182
- export { cancelFileViewerPreviewRequest, DEFAULT_FILE_VIEWER_STREAMING_PDF_FILENAME, DEFAULT_FILE_VIEWER_PREVIEW_LOAD_ERROR_LOGGER, DEFAULT_PDF_RANGE_CHUNK_SIZE, FILE_VIEWER_PREVIEW_LOAD_ERROR_PREFIXES, FILE_VIEWER_REMOTE_MISSING_DATA_ERROR_MESSAGE, applyFileViewerEmptyPreviewState, applyFileViewerPreviewFilenameState, applyFileViewerPreviewSourceUrlState, applyFileViewerReadPreviewState, applyFileViewerRenderReadinessState, applyFileViewerPreviewRequestResetState, commitFileViewerEmptyPreviewResetState, commitFileViewerLoadStartState, commitFileViewerPreviewRequestStartState, commitFileViewerRenderCompleteState, commitFileViewerRemoteDownloadState, createFileViewerEmptyPreviewState, createFileViewerLoadStartState, createFileViewerPreviewStateTarget, createFileViewerSourceLoadingActionHandlers, createFileViewerReadPreviewState, createFileViewerPreviewRequestResetState, createFileViewerRenderCompleteState, createFileViewerRequestController, createFileViewerRequestScope, createFileViewerStreamingPdfPlaceholderFile, finalizeFileViewerPreviewLoadState, hasFileViewerPreviewSource, isFileViewerAbortError, isSameOriginUrl, normalizeFileViewerSourceUrl, normalizePdfStreamingMode, resolveFileViewerFileRefSourcePlan, resolveFileViewerLoadStartMessage, resolveFileViewerMissingRemoteDataErrorMessage, resolveFileViewerPreviewLoadErrorMessage, resolveFileViewerPreviewRequestReason, resolveFileViewerRemoteSourcePlan, resolveFileViewerPageHref, reportFileViewerMissingRemoteData, reportFileViewerPreviewLoadError, runFileViewerLocalFilePreview, runFileViewerPreviewComponentUnmount, runFileViewerPreviewRequest, runFileViewerPreviewSourceChange, runFileViewerRemoteFilePreview, runFileViewerReadAndRenderFile, runFileViewerStreamingPdfPreview, shouldStreamPdfUrl, } from './source/loading.js';
183
- export { createViewer } from './viewer/createViewer.js';
184
- export { WorkerRefImpl, createFileViewerWorkerController, refWorker, } from './platform/worker.js';
185
- export { resolveFileViewerCopiedAssetUrl } from './platform/copiedAssets.js';
169
+ export { ADAPTER_PRINT_REQUIRED_EXTENSIONS, applyFileViewerZoomAvailability, createUnsupportedAvailability, DEFAULT_OPERATION_AVAILABILITY, DOM_PRINTABLE_EXTENSIONS, getRendererAvailability, isDomPrintableExtension, isKnownNonPrintableExtension, needsDedicatedPrintAdapter, NON_PRINTABLE_EXTENSIONS, resolvePrintAvailability, } from "./registry/capabilities.js";
170
+ export { FILE_VIEWER_LIFECYCLE_HOOKS, FILE_VIEWER_BEFORE_OPERATION_ERROR_PREFIX, DEFAULT_FILE_VIEWER_TOOLBAR_ORDER, FILE_VIEWER_LIFECYCLE_HOOK_ERROR_MESSAGE_PREFIX, FILE_VIEWER_OPERATION_LABELS, buildFileViewerLifecycleContext, buildFileViewerLifecycleContextFromNormalizedSource, buildFileViewerOperationContext, buildFileViewerOperationContextFromLifecycleState, cloneFileViewerOperationAvailability, createFileViewerLifecycleActions, createFileViewerLifecycleStateController, createFileViewerPublicApi, createFileViewerToolbarActions, createFileViewerToolbarControllerActionHandlers, createFileViewerToolbarZoomSyncSnapshot, DEFAULT_FILE_VIEWER_LIFECYCLE_HOOK_ERROR_LOGGER, DEFAULT_FILE_VIEWER_OPERATION_ERROR_LOGGER, dispatchFileViewerLifecycleEvent, dispatchFileViewerOperationContextEvent, dispatchFileViewerOperationAvailabilityChange, dispatchFileViewerZoomChange, emitFileViewerComponentLifecycleEvent, getFileViewerBeforeOperationHooks, getFileViewerLifecycleHookName, hasVisibleFileViewerToolbarActions, isFileViewerToolbarOperationPermitted, isFileViewerZoomButtonDisabled, normalizeFileViewerToolbar, reportFileViewerLifecycleHookError, reportFileViewerOperationError, resolveFileViewerLifecycleFallbackSource, resolveFileViewerLifecycleHookErrorMessage, resolveFileViewerBeforeOperationErrorMessage, resolveFileViewerOperationAvailability, resolveFileViewerToolbarOrder, resolveFileViewerToolbarState, resolveFileViewerToolbarPosition, resolveVisibleFileViewerToolbar, runFileViewerActiveUnloadComplete, runFileViewerActiveUnloadStart, runFileViewerBeforeOperation, runFileViewerLifecycleHook, runFileViewerToolbarAvailabilitySync, runFileViewerToolbarZoomSync, serializeFileViewerContext, } from "./lifecycle/operations.js";
171
+ export { FALLBACK_FILE_VIEWER_LOADING_THEME, FILE_VIEWER_LOADING_THEME_MAP, applyFileViewerLoadingState, cloneFileViewerLoadingState, createFileViewerLoadingController, createFileViewerLoadingControllerActionHandlers, createFileViewerLoadingState, createFileViewerLoadingStyleVars, runFileViewerLoadingControllerAction, runFileViewerLoadingExtensionSync, resolveFileViewerLoadingTheme, syncFileViewerLoadingControllerState, } from "./viewer/loading.js";
172
+ export { createFileViewerLifecycleFacade, } from "./lifecycle/facade.js";
173
+ export { getFileViewerOptionsSearchParam, normalizeFileViewerUiDensity, normalizeFileViewerTheme, parseFileViewerOptions, resolveFileViewerColorScheme, resolveFileViewerUiDensity, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, toggleFileViewerColorScheme, } from "./config/options.js";
174
+ export { resolveFileViewerPresentationState, } from "./presentation/state.js";
175
+ export { createFileViewerRendererDispatcher, } from "./rendering/dispatcher.js";
176
+ export { appendFileViewerStyle, buildFileRenderContextFromLoadContext, applyFileViewerRenderSurfaceState, clearFileViewerRenderSurface, createFileRenderHandlerRendererSession, createFileRenderHandlerRegistry, createFileRenderHandlerLoader, createFileViewerRenderSurfaceActionHandlers, createFileViewerRenderReadinessTarget, createFileViewerRenderSurface, createFileViewerRenderSurfaceState, createFileViewerRenderSurfaceStateTarget, createFileViewerRenderTarget, DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS, FILE_VIEWER_RENDER_SURFACE_BACKGROUND_PROPERTY, DEFAULT_FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_LOGGER, FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE, disposeActiveFileViewerRendererSession, disposeFileViewerRendered, disposeFileViewerRendererSession, getFileViewerShadowRootForNode, isFileViewerShadowRoot, normalizeFileViewerStyleIsolation, normalizeFileViewerRenderSurfaceBackground, removeFileViewerRenderTarget, reportFileViewerRenderSessionDisposeError, resetFileViewerRenderSurface, resolveFileViewerStyleIsolation, resolveFileViewerRenderSessionDisposeErrorMessage, runFileViewerRenderSurfaceClear, runFileViewerRenderSurfaceMount, syncFileViewerRenderSurfaceBackground, renderFileViewerHandler, } from "./rendering/handler.js";
177
+ export { DEFAULT_FILE_VIEWER_SOURCE_FILENAME, DEFAULT_FILE_VIEWER_TEXT_FALLBACK_ENCODING, createFileViewerTextDecoder, decodeFileViewerTextBuffer, decodeFilename, getExtension, normalizeFileExtension, normalizeFilename, isSingleByteFileViewerTextEncoding, isValidFileViewerUtf8, resolveFileViewerTextEncoding, resolveFileViewerSourceFilename, normalizeSource, readFileViewerBuffer, readFileViewerDataUrl, readFileViewerText, wrapFileViewerFileRef, } from "./source/index.js";
178
+ export { DEFAULT_FILE_VIEWER_STATE_THEME, DEFAULT_FILE_VIEWER_UNSUPPORTED_DESCRIPTION, FILE_VIEWER_ERROR_MESSAGE, FILE_VIEWER_PREVIEW_MESSAGES, attachFileViewerErrorMessage, createFileViewerEmptyState, createFileViewerErrorState, createFileViewerPreviewLoadingState, createFileViewerReadyState, createFileViewerUnsupportedState, formatFileViewerErrorMessage, normalizeFileViewerErrorMessage, resolveFileViewerRendererInstallHint, } from "./viewer/state.js";
179
+ export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from "./features/watermark.js";
180
+ export { buildFileViewerPrintMaskOverlayHtml, applyFileViewerPagePrintMasksToHtml, normalizeFileViewerPrintMaskOptions, normalizeFileViewerPrintMaskRegion, normalizeFileViewerPrintStamp, FILE_VIEWER_PRINT_MASK_STYLE, } from "./features/printMask.js";
181
+ export { openFileViewerPrintMaskDesignerAsync, } from "./features/printMaskLoader.js";
182
+ export { cancelFileViewerPreviewRequest, DEFAULT_FILE_VIEWER_STREAMING_PDF_FILENAME, DEFAULT_FILE_VIEWER_PREVIEW_LOAD_ERROR_LOGGER, DEFAULT_PDF_RANGE_CHUNK_SIZE, FILE_VIEWER_PREVIEW_LOAD_ERROR_PREFIXES, FILE_VIEWER_REMOTE_MISSING_DATA_ERROR_MESSAGE, applyFileViewerEmptyPreviewState, applyFileViewerPreviewFilenameState, applyFileViewerPreviewSourceUrlState, applyFileViewerReadPreviewState, applyFileViewerRenderReadinessState, applyFileViewerPreviewRequestResetState, commitFileViewerEmptyPreviewResetState, commitFileViewerLoadStartState, commitFileViewerPreviewRequestStartState, commitFileViewerRenderCompleteState, commitFileViewerRemoteDownloadState, createFileViewerEmptyPreviewState, createFileViewerLoadStartState, createFileViewerPreviewStateTarget, createFileViewerSourceLoadingActionHandlers, createFileViewerReadPreviewState, createFileViewerPreviewRequestResetState, createFileViewerRenderCompleteState, createFileViewerRequestController, createFileViewerRequestScope, createFileViewerStreamingPdfPlaceholderFile, finalizeFileViewerPreviewLoadState, hasFileViewerPreviewSource, isFileViewerAbortError, isSameOriginUrl, normalizeFileViewerSourceUrl, normalizePdfStreamingMode, resolveFileViewerFileRefSourcePlan, resolveFileViewerLoadStartMessage, resolveFileViewerMissingRemoteDataErrorMessage, resolveFileViewerPreviewLoadErrorMessage, resolveFileViewerPreviewRequestReason, resolveFileViewerRemoteSourcePlan, resolveFileViewerPageHref, reportFileViewerMissingRemoteData, reportFileViewerPreviewLoadError, runFileViewerLocalFilePreview, runFileViewerPreviewComponentUnmount, runFileViewerPreviewRequest, runFileViewerPreviewSourceChange, runFileViewerRemoteFilePreview, runFileViewerReadAndRenderFile, runFileViewerStreamingPdfPreview, shouldStreamPdfUrl, } from "./source/loading.js";
183
+ export { createViewer } from "./viewer/createViewer.js";
184
+ export { WorkerRefImpl, createFileViewerWorkerController, refWorker, } from "./platform/worker.js";
185
+ export { resolveFileViewerCopiedAssetUrl } from "./platform/copiedAssets.js";
@@ -1,7 +1,7 @@
1
- import { type FileViewerActiveUnloadState, type FileViewerLifecycleActions, type FileViewerLifecycleComponentEmit } from './operations';
2
- import { type FileViewerLoadStartState, type FileViewerRenderCompleteState } from '../source/loading';
3
- import type { FileViewerErrorMessageFormatter } from '../viewer/state';
4
- import type { FileViewerFileRef, FileViewerLifecycleContext, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions } from '../contracts/types';
1
+ import { type FileViewerActiveUnloadState, type FileViewerLifecycleActions, type FileViewerLifecycleComponentEmit } from "./operations.js";
2
+ import { type FileViewerLoadStartState, type FileViewerRenderCompleteState } from "../source/loading.js";
3
+ import type { FileViewerErrorMessageFormatter } from "../viewer/state.js";
4
+ import type { FileViewerFileRef, FileViewerLifecycleContext, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions } from "../contracts/types.js";
5
5
  export interface BuildFileViewerLifecycleFacadeLoadStartStateInput {
6
6
  version: number;
7
7
  source: FileViewerLifecycleContext['source'];
@@ -1,5 +1,5 @@
1
- import { buildFileViewerOperationContextFromLifecycleState, createFileViewerLifecycleActions, createFileViewerLifecycleStateController, emitFileViewerComponentLifecycleEvent, resolveFileViewerBeforeOperationErrorMessage, } from './operations.js';
2
- import { createFileViewerLoadStartState, createFileViewerRenderCompleteState, } from '../source/loading.js';
1
+ import { buildFileViewerOperationContextFromLifecycleState, createFileViewerLifecycleActions, createFileViewerLifecycleStateController, emitFileViewerComponentLifecycleEvent, resolveFileViewerBeforeOperationErrorMessage, } from "./operations.js";
2
+ import { createFileViewerLoadStartState, createFileViewerRenderCompleteState, } from "../source/loading.js";
3
3
  export const createFileViewerLifecycleFacade = ({ getOptions, getFilename, getBufferSize, getCurrentFile, getCurrentVersion, getFallbackFile, getFallbackUrl, emitLifecycle, emitOperationBefore, emitOperationCancel, formatErrorMessage, handleLifecycleError, handleOperationError, onOperationErrorMessage, }) => {
4
4
  const lifecycleState = createFileViewerLifecycleStateController();
5
5
  const lifecycleActions = createFileViewerLifecycleActions({
@@ -1,7 +1,7 @@
1
- import { type FileViewerI18nInput } from '../i18n/messages';
2
- import type { FileViewerErrorMessageFormatter } from '../viewer/state';
3
- import { type FileViewerOriginalSourceState } from '../viewer/operations';
4
- import type { FileRenderExportAdapter, FileViewerBeforeOperation, FileViewerFileRef, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerResolvedToolbarItem, FileViewerSourceKind, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerPublicApi, FileViewerZoomState, NormalizedFileViewerSource } from '../contracts/types';
1
+ import { type FileViewerI18nInput } from "../i18n/messages.js";
2
+ import type { FileViewerErrorMessageFormatter } from "../viewer/state.js";
3
+ import { type FileViewerOriginalSourceState } from "../viewer/operations.js";
4
+ import type { FileRenderExportAdapter, FileViewerBeforeOperation, FileViewerFileRef, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerResolvedToolbarItem, FileViewerSourceKind, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerPublicApi, FileViewerZoomState, NormalizedFileViewerSource } from "../contracts/types.js";
5
5
  export declare const FILE_VIEWER_LIFECYCLE_HOOKS: {
6
6
  readonly 'load-start': "onLoadStart";
7
7
  readonly 'load-complete': "onLoadComplete";
@@ -1,12 +1,7 @@
1
- // Lifecycle and toolbar operation policy.
2
- //
3
- // This layer builds normalized contexts, runs user hooks, and resolves whether
4
- // actions such as print/download/export/zoom should be available. Concrete file
5
- // operation execution remains in `viewer/operations`.
6
- import { resolvePrintAvailability } from '../registry/capabilities.js';
7
- import { getExtension, normalizeFilename } from '../source/index.js';
8
- import { translateFileViewerMessage, } from '../i18n/messages.js';
9
- import { createFileViewerOriginalSourceState, hasFileViewerOriginalSource, } from '../viewer/operations.js';
1
+ import { resolvePrintAvailability } from "../registry/capabilities.js";
2
+ import { getExtension, normalizeFilename } from "../source/index.js";
3
+ import { translateFileViewerMessage, } from "../i18n/messages.js";
4
+ import { createFileViewerOriginalSourceState, hasFileViewerOriginalSource, } from "../viewer/operations.js";
10
5
  export const FILE_VIEWER_LIFECYCLE_HOOKS = {
11
6
  'load-start': 'onLoadStart',
12
7
  'load-complete': 'onLoadComplete',
@@ -1,3 +1,2 @@
1
- import type { FileViewerWatermarkOptions } from '../contracts/types';
2
- /** Encodes a detached snapshot without mutating the renderer or omitting its watermark. */
1
+ import type { FileViewerWatermarkOptions } from "../contracts/types.js";
3
2
  export declare function createFileViewerCanvasImageBlob(snapshot: HTMLCanvasElement, format: 'png' | 'jpeg', watermark?: boolean | FileViewerWatermarkOptions, pixelRatio?: number): Promise<Blob>;
@@ -1,4 +1,4 @@
1
- import { buildFileViewerWatermarkSvg, normalizeFileViewerWatermark } from '../features/watermark.js';
1
+ import { buildFileViewerWatermarkSvg, normalizeFileViewerWatermark } from "../features/watermark.js";
2
2
  const loadImage = (document, source) => new Promise((resolve, reject) => {
3
3
  const image = document.createElement('img');
4
4
  const timer = setTimeout(() => finish(new Error('Image export resource timed out.')), 30000);
@@ -15,7 +15,6 @@ const loadImage = (document, source) => new Promise((resolve, reject) => {
15
15
  image.onerror = () => finish(new Error('Unable to render the export watermark.'));
16
16
  image.src = source;
17
17
  });
18
- /** Encodes a detached snapshot without mutating the renderer or omitting its watermark. */
19
18
  export async function createFileViewerCanvasImageBlob(snapshot, format, watermark, pixelRatio = 1) {
20
19
  if (!['png', 'jpeg'].includes(format))
21
20
  throw new Error('Unsupported image export format.');
@@ -38,8 +37,6 @@ export async function createFileViewerCanvasImageBlob(snapshot, format, watermar
38
37
  let normalized = normalizeFileViewerWatermark(watermark);
39
38
  if (normalized) {
40
39
  if (normalized.image) {
41
- // SVG image documents do not load nested remote images. Inline the configured
42
- // watermark first; an unreadable/tainted image must fail, never disappear.
43
40
  const image = await loadImage(document, normalized.image);
44
41
  const tile = document.createElement('canvas');
45
42
  tile.width = image.naturalWidth;
@@ -1,11 +1,9 @@
1
- import type { FileRenderExportAdapter, FileRenderExportOptions } from '../contracts/types';
2
- /** Lightweight export helpers that remain on the normal viewer path. */
1
+ import type { FileRenderExportAdapter, FileRenderExportOptions } from "../contracts/types.js";
3
2
  export declare const triggerFileViewerBlobDownload: (blob: Blob, name: string) => void;
4
3
  export declare const triggerFileViewerUrlDownload: (url: string, name: string) => void;
5
4
  export declare const replaceFileViewerCanvasWithImages: (source: HTMLElement, clone: HTMLElement) => void;
6
- export declare const waitForFileViewerNextPaint: (targetWindow?: Partial<Pick<Window, "requestAnimationFrame" | "setTimeout">>) => Promise<void>;
5
+ export declare const waitForFileViewerNextPaint: (targetWindow?: Partial<Pick<Window, "requestAnimationFrame" | "cancelAnimationFrame" | "setTimeout" | "clearTimeout">>) => Promise<void>;
7
6
  export declare const waitForFileViewerImages: (root: ParentNode | null | undefined) => Promise<void>;
8
- /** Rewrite ephemeral blob URLs into portable data URLs for export and print. */
9
7
  export declare const inlineFileViewerBlobUrlsInHtml: (html: string) => Promise<string>;
10
8
  export declare const waitForFileViewerPrintWindowReady: (printWindow: Window) => Promise<void>;
11
9
  export declare const resolveFileViewerPrintStyle: (adapter: FileRenderExportAdapter | null, options: FileRenderExportOptions) => Promise<string>;
@@ -1,4 +1,3 @@
1
- /** Lightweight export helpers that remain on the normal viewer path. */
2
1
  export const triggerFileViewerBlobDownload = (blob, name) => {
3
2
  const objectUrl = URL.createObjectURL(blob);
4
3
  const link = document.createElement('a');
@@ -20,67 +19,143 @@ export const triggerFileViewerUrlDownload = (url, name) => {
20
19
  link.click();
21
20
  link.remove();
22
21
  };
22
+ const CANVAS_PRESENTATION_PROPERTIES = [
23
+ 'display', 'position', 'top', 'right', 'bottom', 'left', 'box-sizing',
24
+ 'width', 'height', 'min-width', 'min-height', 'max-width', 'max-height',
25
+ 'margin-top', 'margin-right', 'margin-bottom', 'margin-left',
26
+ 'padding-top', 'padding-right', 'padding-bottom', 'padding-left',
27
+ 'border-top', 'border-right', 'border-bottom', 'border-left', 'border-radius',
28
+ 'transform', 'transform-origin', 'vertical-align', 'float', 'clear',
29
+ 'opacity', 'visibility', 'z-index', 'align-self', 'justify-self',
30
+ 'flex-grow', 'flex-shrink', 'flex-basis', 'order', 'grid-area',
31
+ ];
23
32
  export const replaceFileViewerCanvasWithImages = (source, clone) => {
24
33
  const sourceCanvases = Array.from(source.querySelectorAll('canvas'));
25
34
  const clonedCanvases = Array.from(clone.querySelectorAll('canvas'));
26
35
  clonedCanvases.forEach((canvas, index) => {
36
+ var _a;
27
37
  const sourceCanvas = sourceCanvases[index];
28
- if (!sourceCanvas) {
38
+ if (!sourceCanvas)
29
39
  return;
30
- }
31
40
  try {
32
- const image = source.ownerDocument.createElement('img');
41
+ const image = canvas.ownerDocument.createElement('img');
33
42
  image.src = sourceCanvas.toDataURL('image/png');
34
- image.alt = 'rendered canvas';
35
- image.style.maxWidth = '100%';
36
- image.style.display = 'block';
37
- image.style.margin = '0 auto';
43
+ image.alt = sourceCanvas.getAttribute('aria-label') || 'rendered canvas';
44
+ image.className = canvas.className;
45
+ image.id = canvas.id;
46
+ image.style.cssText = canvas.style.cssText;
47
+ const style = (_a = sourceCanvas.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(sourceCanvas);
48
+ if (style) {
49
+ for (const property of CANVAS_PRESENTATION_PROPERTIES) {
50
+ const value = style.getPropertyValue(property);
51
+ if (value)
52
+ image.style.setProperty(property, value, canvas.style.getPropertyPriority(property));
53
+ }
54
+ }
55
+ if (!image.style.width || image.style.width === 'auto')
56
+ image.style.width = `${sourceCanvas.width}px`;
57
+ if (!image.style.height || image.style.height === 'auto')
58
+ image.style.height = `${sourceCanvas.height}px`;
38
59
  canvas.replaceWith(image);
39
60
  }
40
61
  catch {
41
- // A canvas tainted by cross-origin resources cannot be exported.
42
62
  }
43
63
  });
44
64
  };
45
65
  export const waitForFileViewerNextPaint = (targetWindow) => {
46
66
  return new Promise(resolve => {
67
+ var _a, _b;
47
68
  const currentWindow = targetWindow || globalThis.window;
48
- if (!currentWindow || typeof currentWindow.requestAnimationFrame !== 'function') {
49
- const schedule = (currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.setTimeout)
50
- ? currentWindow.setTimeout.bind(currentWindow)
51
- : globalThis.setTimeout.bind(globalThis);
52
- schedule(() => resolve(), 0);
69
+ const schedule = ((_a = currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.setTimeout) === null || _a === void 0 ? void 0 : _a.bind(currentWindow)) || globalThis.setTimeout.bind(globalThis);
70
+ const cancel = ((_b = currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.clearTimeout) === null || _b === void 0 ? void 0 : _b.bind(currentWindow)) || globalThis.clearTimeout.bind(globalThis);
71
+ let frame;
72
+ let timeout;
73
+ let finished = false;
74
+ const finish = () => {
75
+ var _a;
76
+ if (finished)
77
+ return;
78
+ finished = true;
79
+ if (timeout !== undefined)
80
+ cancel(timeout);
81
+ if (frame !== undefined)
82
+ (_a = currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.cancelAnimationFrame) === null || _a === void 0 ? void 0 : _a.call(currentWindow, frame);
83
+ resolve();
84
+ };
85
+ timeout = schedule(finish, (currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.requestAnimationFrame) ? 250 : 0);
86
+ if (finished || !(currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.requestAnimationFrame))
53
87
  return;
88
+ try {
89
+ frame = currentWindow.requestAnimationFrame(() => {
90
+ if (!finished) {
91
+ try {
92
+ frame = currentWindow.requestAnimationFrame(finish);
93
+ }
94
+ catch {
95
+ finish();
96
+ }
97
+ }
98
+ });
99
+ }
100
+ catch {
101
+ finish();
54
102
  }
55
- const requestAnimationFrame = currentWindow.requestAnimationFrame.bind(currentWindow);
56
- requestAnimationFrame(() => {
57
- requestAnimationFrame(() => resolve());
58
- });
59
103
  });
60
104
  };
61
- export const waitForFileViewerImages = async (root) => {
62
- if (!root || typeof root.querySelectorAll !== 'function') {
63
- return;
64
- }
65
- const images = Array.from(root.querySelectorAll('img'));
66
- await Promise.all(images.map(async (image) => {
67
- if (image.complete) {
68
- return;
69
- }
70
- if ('decode' in image) {
71
- try {
72
- await image.decode();
105
+ const waitForImage = (image, timeoutMs) => {
106
+ if (image.complete)
107
+ return Promise.resolve();
108
+ return new Promise(resolve => {
109
+ let settled = false;
110
+ const finish = () => {
111
+ if (settled)
73
112
  return;
113
+ settled = true;
114
+ clearTimeout(timeout);
115
+ image.removeEventListener('load', finish);
116
+ image.removeEventListener('error', finish);
117
+ resolve();
118
+ };
119
+ const timeout = setTimeout(finish, timeoutMs);
120
+ image.addEventListener('load', finish, { once: true });
121
+ image.addEventListener('error', finish, { once: true });
122
+ if (image.complete)
123
+ finish();
124
+ else if (typeof image.decode === 'function') {
125
+ try {
126
+ image.decode().then(finish, () => {
127
+ if (image.complete)
128
+ finish();
129
+ });
74
130
  }
75
131
  catch {
76
- // Fall back to load/error events so one bad image cannot block export.
132
+ if (image.complete)
133
+ finish();
77
134
  }
78
135
  }
79
- await new Promise(resolve => {
80
- image.addEventListener('load', () => resolve(), { once: true });
81
- image.addEventListener('error', () => resolve(), { once: true });
82
- });
83
- }));
136
+ });
137
+ };
138
+ const waitForFonts = async (documentRef, timeoutMs) => {
139
+ if (!(documentRef === null || documentRef === void 0 ? void 0 : documentRef.fonts))
140
+ return;
141
+ let timeout;
142
+ try {
143
+ await Promise.race([
144
+ documentRef.fonts.ready,
145
+ new Promise(resolve => { timeout = setTimeout(resolve, timeoutMs); }),
146
+ ]);
147
+ }
148
+ catch {
149
+ }
150
+ finally {
151
+ if (timeout !== undefined)
152
+ clearTimeout(timeout);
153
+ }
154
+ };
155
+ export const waitForFileViewerImages = async (root) => {
156
+ if (!root || typeof root.querySelectorAll !== 'function')
157
+ return;
158
+ await Promise.all(Array.from(root.querySelectorAll('img'), image => waitForImage(image, 5000)));
84
159
  };
85
160
  const bytesToDataUrl = (bytes, mimeType) => {
86
161
  const type = mimeType || 'application/octet-stream';
@@ -106,7 +181,6 @@ const blobToDataUrl = async (blob) => {
106
181
  });
107
182
  }
108
183
  catch {
109
- // Fall through to ArrayBuffer encoding for Node / incomplete FileReader shims.
110
184
  }
111
185
  }
112
186
  return bytesToDataUrl(await blob.arrayBuffer(), blob.type || 'application/octet-stream');
@@ -115,7 +189,6 @@ const collectBlobUrls = (html) => {
115
189
  const matches = html.match(/blob:[^\s"'<>)\\]+/g) || [];
116
190
  return Array.from(new Set(matches));
117
191
  };
118
- /** Rewrite ephemeral blob URLs into portable data URLs for export and print. */
119
192
  export const inlineFileViewerBlobUrlsInHtml = async (html) => {
120
193
  if (!html.includes('blob:') || typeof fetch !== 'function') {
121
194
  return html;
@@ -152,50 +225,26 @@ export const waitForFileViewerPrintWindowReady = async (printWindow) => {
152
225
  const { document: printDocument } = printWindow;
153
226
  if (printDocument.readyState !== 'complete') {
154
227
  await new Promise(resolve => {
155
- printWindow.addEventListener('load', () => resolve(), { once: true });
156
- printWindow.setTimeout(() => resolve(), 1200);
228
+ let settled = false;
229
+ const finish = () => {
230
+ if (settled)
231
+ return;
232
+ settled = true;
233
+ printWindow.clearTimeout(timeout);
234
+ printWindow.removeEventListener('load', finish);
235
+ resolve();
236
+ };
237
+ const timeout = printWindow.setTimeout(finish, 1200);
238
+ printWindow.addEventListener('load', finish, { once: true });
239
+ if (printDocument.readyState === 'complete')
240
+ finish();
157
241
  });
158
242
  }
159
- await Promise.all(Array.from(printDocument.images).map(async (image) => {
160
- if (image.complete) {
161
- return;
162
- }
163
- if ('decode' in image) {
164
- try {
165
- await image.decode();
166
- return;
167
- }
168
- catch {
169
- // Image decode failures do not block the browser's print attempt.
170
- }
171
- }
172
- await new Promise(resolve => {
173
- image.addEventListener('load', () => resolve(), { once: true });
174
- image.addEventListener('error', () => resolve(), { once: true });
175
- printWindow.setTimeout(() => resolve(), 1500);
176
- });
177
- }));
178
- await new Promise(resolve => {
179
- let settled = false;
180
- let timeoutId;
181
- const finish = () => {
182
- if (settled)
183
- return;
184
- settled = true;
185
- if (timeoutId !== undefined)
186
- printWindow.clearTimeout(timeoutId);
187
- resolve();
188
- };
189
- timeoutId = printWindow.setTimeout(finish, 250);
190
- try {
191
- printWindow.requestAnimationFrame(() => {
192
- printWindow.requestAnimationFrame(finish);
193
- });
194
- }
195
- catch {
196
- finish();
197
- }
198
- });
243
+ await Promise.all([
244
+ ...Array.from(printDocument.images, image => waitForImage(image, 1500)),
245
+ waitForFonts(printDocument, 1500),
246
+ ]);
247
+ await waitForFileViewerNextPaint(printWindow);
199
248
  };
200
249
  export const resolveFileViewerPrintStyle = async (adapter, options) => {
201
250
  if (options.mode !== 'print' || !(adapter === null || adapter === void 0 ? void 0 : adapter.printStyle)) {
@@ -209,6 +258,9 @@ export const resolveFileViewerPrintStyle = async (adapter, options) => {
209
258
  export const prepareFileViewerRenderedContentForSnapshot = async (source, adapter) => {
210
259
  var _a;
211
260
  await ((_a = adapter === null || adapter === void 0 ? void 0 : adapter.beforeSnapshot) === null || _a === void 0 ? void 0 : _a.call(adapter));
261
+ await Promise.all([
262
+ waitForFileViewerImages(source),
263
+ waitForFonts(source.ownerDocument, 5000),
264
+ ]);
212
265
  await waitForFileViewerNextPaint(source.ownerDocument.defaultView || undefined);
213
- await waitForFileViewerImages(source);
214
266
  };
@@ -7,13 +7,10 @@ export interface ApplyPrintPageSizeOptions {
7
7
  }
8
8
  export interface BuildPrintPageStyleOptions extends PrintPageSize {
9
9
  selector: string;
10
+ pages?: readonly PrintPageSize[];
10
11
  heightMode?: 'fixed' | 'min';
11
12
  }
12
13
  export declare const formatCssPixels: (value: number) => string;
13
- /**
14
- * Browser print helper. DOM measurement belongs in the core browser layer
15
- * because it depends on CSS layout and HTMLElement.
16
- */
17
14
  export declare const getElementPrintPageSize: (element: HTMLElement, fallback?: Partial<PrintPageSize>) => PrintPageSize;
18
15
  export declare const applyPrintPageSize: (element: HTMLElement, size: PrintPageSize, options?: ApplyPrintPageSizeOptions) => void;
19
- export declare const buildPrintPageStyle: ({ selector, width, height, heightMode, }: BuildPrintPageStyleOptions) => string;
16
+ export declare const buildPrintPageStyle: ({ selector, width, height, heightMode, pages, }: BuildPrintPageStyleOptions) => string;