@file-viewer/core 2.1.17 → 2.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ export { createFileViewerDocumentFeatureActions, createFileViewerDocumentFeature
8
8
  export type { CreateFileViewerDocumentChangeSnapshotInput, FileViewerDocumentFeatureActionOptions, DispatchFileViewerLocationChangeInput, DispatchFileViewerSearchChangeInput, FileViewerDocumentChangeSnapshot, FileViewerDocumentFeatureActions, FileViewerDocumentFeatureControllerActionHandlers, FileViewerDocumentFeatureSearchController, CreateFileViewerDocumentFeatureActionsInput, CreateFileViewerDocumentFeatureControllerActionHandlersInput, ResolveFileViewerLocationChangeAnchorInput, } from './features/document/events';
9
9
  export { applyFileViewerZoomState, clearFileViewerZoomControllerProvider, createFileViewerZoomChangeEmitter, createFileViewerZoomChangeState, cloneFileViewerZoomState, createFileViewerZoomController, createFileViewerZoomControllerActionHandlers, destroyFileViewerZoomController, observeFileViewerZoomController, refreshFileViewerZoomControllerProvider, runFileViewerZoomControllerAction, syncFileViewerZoomControllerState, } from './features/document/zoom';
10
10
  export type { FileViewerZoomController, FileViewerZoomControllerActionHandlers, MutableFileViewerZoomState, } from './features/document/zoom';
11
+ export { FILE_VIEWER_FIT_MODES, FILE_VIEWER_FIT_RESIZE_MODES, createFileViewerFitController, hasFileViewerExplicitInitialViewState, isFileViewerFitMode, isFileViewerFitResize, normalizeFileViewerFitOptions, resolveFileViewerFitScale, } from './features/document/fit';
12
+ export type { ApplyInitialFileViewerFitOptions, CreateFileViewerFitControllerOptions, FileViewerFitController, NormalizedFileViewerFitOptions, ResolveFileViewerFitScaleInput, RunFileViewerFitOptions, } from './features/document/fit';
11
13
  export { cloneFileViewerViewState, createFileViewerViewStateChange, createFileViewerViewStateChangeEmitter, createFileViewerViewStateController, createFileViewerViewStateControllerActionHandlers, registerFileViewerGenericViewStateProvider, } from './features/document/viewState';
12
14
  export type { CreateFileViewerViewStateControllerOptions, FileViewerGenericViewStateProviderRegistration, FileViewerViewStateController, FileViewerViewStateControllerActionHandlers, RegisterFileViewerGenericViewStateProviderOptions, } from './features/document/viewState';
13
15
  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';
@@ -47,7 +49,7 @@ export declare const renderFileViewerWordDocx: (buffer: ArrayBuffer, target: HTM
47
49
  export declare const renderFileViewerSpreadsheet: (buffer: ArrayBuffer, target: HTMLDivElement, type?: string, context?: FileRenderContext) => Promise<FileViewerRenderedInstance>;
48
50
  export declare const parseEdaFile: (buffer: ArrayBuffer, type?: string) => Promise<never>;
49
51
  export { ADAPTER_PRINT_REQUIRED_EXTENSIONS, applyFileViewerZoomAvailability, createUnsupportedAvailability, DEFAULT_OPERATION_AVAILABILITY, DOM_PRINTABLE_EXTENSIONS, getRendererAvailability, isDomPrintableExtension, isKnownNonPrintableExtension, needsDedicatedPrintAdapter, NON_PRINTABLE_EXTENSIONS, resolvePrintAvailability, } from './registry/capabilities';
50
- export { FILE_VIEWER_LIFECYCLE_HOOKS, FILE_VIEWER_BEFORE_OPERATION_ERROR_PREFIX, 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, resolveFileViewerToolbarState, resolveFileViewerToolbarPosition, resolveVisibleFileViewerToolbar, runFileViewerActiveUnloadComplete, runFileViewerActiveUnloadStart, runFileViewerBeforeOperation, runFileViewerLifecycleHook, runFileViewerToolbarAvailabilitySync, runFileViewerToolbarZoomSync, serializeFileViewerContext, } from './lifecycle/operations';
52
+ 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';
51
53
  export type { BuildFileViewerOperationContextFromLifecycleStateInput, CreateFileViewerLifecycleActionsInput, DispatchFileViewerLifecycleEventInput, DispatchFileViewerOperationContextEventInput, DispatchFileViewerOperationAvailabilityChangeInput, DispatchFileViewerZoomChangeInput, FileViewerActiveUnloadState, FileViewerLifecycleActions, FileViewerLifecycleComponentEmit, FileViewerToolbarActions, FileViewerToolbarControllerActionHandlers, FileViewerToolbarZoomSyncSnapshot, FileViewerZoomButtonAction, FileViewerToolbarState, CreateFileViewerPublicApiInput, CreateFileViewerToolbarActionsInput, CreateFileViewerToolbarControllerActionHandlersInput, BuildFileViewerLifecycleContextFromNormalizedSourceInput, ResolveFileViewerBeforeOperationErrorMessageInput, ResolveFileViewerToolbarStateInput, RunFileViewerActiveUnloadCompleteInput, RunFileViewerActiveUnloadStartInput, RunFileViewerToolbarAvailabilitySyncInput, RunFileViewerToolbarZoomSyncInput, } from './lifecycle/operations';
52
54
  export { FALLBACK_FILE_VIEWER_LOADING_THEME, FILE_VIEWER_LOADING_THEME_MAP, applyFileViewerLoadingState, cloneFileViewerLoadingState, createFileViewerLoadingController, createFileViewerLoadingControllerActionHandlers, createFileViewerLoadingState, createFileViewerLoadingStyleVars, runFileViewerLoadingControllerAction, runFileViewerLoadingExtensionSync, resolveFileViewerLoadingTheme, syncFileViewerLoadingControllerState, } from './viewer/loading';
53
55
  export type { FileViewerLoadingController, FileViewerLoadingControllerActionHandlers, RunFileViewerLoadingExtensionSyncInput, } from './viewer/loading';
@@ -57,8 +59,8 @@ export { getFileViewerOptionsSearchParam, normalizeFileViewerTheme, parseFileVie
57
59
  export { resolveFileViewerPresentationState, } from './presentation/state';
58
60
  export type { FileViewerPresentationState, ResolveFileViewerPresentationStateInput, } from './presentation/state';
59
61
  export { createFileViewerRendererDispatcher, } from './rendering/dispatcher';
60
- export { buildFileRenderContextFromLoadContext, applyFileViewerRenderSurfaceState, clearFileViewerRenderSurface, createFileRenderHandlerRendererSession, createFileRenderHandlerRegistry, createFileRenderHandlerLoader, createFileViewerRenderSurfaceActionHandlers, createFileViewerRenderReadinessTarget, createFileViewerRenderSurfaceState, createFileViewerRenderSurfaceStateTarget, createFileViewerRenderTarget, DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS, DEFAULT_FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_LOGGER, FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE, disposeActiveFileViewerRendererSession, disposeFileViewerRendered, disposeFileViewerRendererSession, removeFileViewerRenderTarget, reportFileViewerRenderSessionDisposeError, resetFileViewerRenderSurface, resolveFileViewerRenderSessionDisposeErrorMessage, runFileViewerRenderSurfaceClear, runFileViewerRenderSurfaceMount, renderFileViewerHandler, } from './rendering/handler';
61
- export type { CreateFileViewerRenderSurfaceActionHandlersInput, CreateFileViewerRenderReadinessTargetInput, CreateFileViewerRenderSurfaceStateTargetInput, FileViewerRenderSurfaceActionHandlers, FileViewerRenderSurfaceClearState, FileViewerRenderSurfaceState, FileViewerRenderSurfaceMountContext, FileViewerRenderSessionDisposeErrorLogger, MutableFileViewerRenderSurfaceState, ReportFileViewerRenderSessionDisposeErrorInput, ResetFileViewerRenderSurfaceInput, ResolveFileViewerRenderSessionDisposeErrorMessageInput, RunFileViewerRenderSurfaceClearInput, RunFileViewerRenderSurfaceMountInput, } from './rendering/handler';
62
+ export { appendFileViewerStyle, buildFileRenderContextFromLoadContext, applyFileViewerRenderSurfaceState, clearFileViewerRenderSurface, createFileRenderHandlerRendererSession, createFileRenderHandlerRegistry, createFileRenderHandlerLoader, createFileViewerRenderSurfaceActionHandlers, createFileViewerRenderReadinessTarget, createFileViewerRenderSurface, createFileViewerRenderSurfaceState, createFileViewerRenderSurfaceStateTarget, createFileViewerRenderTarget, DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS, DEFAULT_FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_LOGGER, FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE, disposeActiveFileViewerRendererSession, disposeFileViewerRendered, disposeFileViewerRendererSession, getFileViewerShadowRootForNode, isFileViewerShadowRoot, normalizeFileViewerStyleIsolation, removeFileViewerRenderTarget, reportFileViewerRenderSessionDisposeError, resetFileViewerRenderSurface, resolveFileViewerStyleIsolation, resolveFileViewerRenderSessionDisposeErrorMessage, runFileViewerRenderSurfaceClear, runFileViewerRenderSurfaceMount, renderFileViewerHandler, } from './rendering/handler';
63
+ export type { AppendFileViewerStyleOptions, CreateFileViewerRenderSurfaceOptions, CreateFileViewerRenderSurfaceActionHandlersInput, CreateFileViewerRenderReadinessTargetInput, CreateFileViewerRenderSurfaceStateTargetInput, FileViewerStyleHandle, FileViewerRenderSurfaceActionHandlers, FileViewerRenderSurfaceClearState, FileViewerRenderSurfaceState, FileViewerRenderSurfaceMountContext, FileViewerRenderSessionDisposeErrorLogger, MutableFileViewerRenderSurfaceState, ReportFileViewerRenderSessionDisposeErrorInput, ResolvedFileViewerStyleIsolation, ResetFileViewerRenderSurfaceInput, ResolveFileViewerRenderSessionDisposeErrorMessageInput, RunFileViewerRenderSurfaceClearInput, RunFileViewerRenderSurfaceMountInput, } from './rendering/handler';
62
64
  export { DEFAULT_FILE_VIEWER_SOURCE_FILENAME, decodeFilename, getExtension, normalizeFileExtension, normalizeFilename, resolveFileViewerSourceFilename, normalizeSource, readFileViewerBuffer, readFileViewerDataUrl, readFileViewerText, wrapFileViewerFileRef, } from './source';
63
65
  export type { FileViewerReadResult } from './source';
64
66
  export { DEFAULT_FILE_VIEWER_STATE_THEME, DEFAULT_FILE_VIEWER_UNSUPPORTED_DESCRIPTION, FILE_VIEWER_PREVIEW_MESSAGES, createFileViewerEmptyState, createFileViewerErrorState, createFileViewerPreviewLoadingState, createFileViewerReadyState, createFileViewerUnsupportedState, formatFileViewerErrorMessage, normalizeFileViewerErrorMessage, resolveFileViewerRendererInstallHint, } from './viewer/state';
@@ -83,4 +85,4 @@ export type { CreateFileViewerZoomControllerOptions, FileViewerZoomOperation, }
83
85
  export type { CreateViewerOptions } from './viewer/createViewer';
84
86
  export type { BuildExportHtmlDocumentOptions, BuildFileViewerRenderedHtmlDocumentOptions, } from './output/export';
85
87
  export type { CreateFileViewerWorkerControllerOptions, FileViewerWorkerContext, FileViewerWorkerController, FileViewerWorkerErrorHook, FileViewerWorkerEventHandler, FileViewerWorkerFactory, FileViewerWorkerMessageHook, WorkerProvider, WorkerRef, } from './platform/worker';
86
- export type { FileViewerAiOptions, FileViewerArchivePasswordRequestContext, FileViewerArchivePasswordRequestReason, FileViewerArchiveOptions, FileViewerApplyViewStateOptions, FileViewerBeforeOperation, FileViewerCadDwfLineWeightMode, FileViewerCadOptions, FileViewerCadRenderer, FileViewerComponentEmits, FileViewerComponentEventMap, FileViewerComponentProps, FileViewerDocumentAnchor, FileViewerDocumentChunk, FileViewerDownloadOptions, FileViewerDocxOptions, FileViewerDrawingOptions, FileViewerEvent, FileViewerEventHandler, FileViewerEventType, FileViewerExportHtmlOptions, FileViewerFileRef, FileViewerGeoBasemapOptions, FileViewerGeoBasemapPreset, FileViewerGeoOptions, FileRenderContext, FileRenderExportAdapter, FileRenderExportMode, FileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerBuiltinRendererPreset, FileViewerInstance, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerI18nOptions, FileViewerLocale, FileViewerMessageKey, FileViewerMessageParams, FileViewerMessageResolver, FileViewerMessages, FileViewerNavigationState, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerPdfOptions, FileViewerPresentationOptions, FileViewerPrintOptions, FileViewerPublicApi, FileViewerRenderedInstance, FileViewerRendererMode, FileViewerRendererPluginAssetKind, FileViewerRendererPluginAssetManifest, FileViewerRendererPluginAssetEntry, FileViewerRenderStateKind, FileViewerRendererCategory, FileViewerRendererHandlerRegistration, FileViewerRendererInstallContext, FileViewerRendererPlugin, FileViewerRendererPluginInput, FileViewerRendererPresetInput, FileViewerRendererPresetName, FileViewerRendererPreset, FileViewerSearchMatch, FileViewerSearchOptions, FileViewerSearchProvider, FileViewerSearchState, FileViewerSource, FileViewerSourceKind, FileViewerSpreadsheetOptions, FileViewerStateDescriptor, FileViewerStateTheme, FileViewerThemeMode, FileViewerToolbarActionMap, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerTypstOptions, FileViewerViewScrollState, FileViewerViewState, FileViewerViewStateChange, FileViewerViewStateChangeAction, FileViewerViewStateChangeSource, FileViewerViewStateProvider, FileViewerWatermarkOptions, FileViewerZoomProvider, FileViewerZoomState, NormalizedFileViewerSource, RendererCapability, RendererDefinition, RendererPlugin, RendererLoadContext, RendererLoader, RendererRegistry, RendererSession, RenderSurface, ViewerCapabilityState, ViewerLifecycleContext, ViewerOperationContext, } from './contracts/types';
88
+ export type { FileViewerAiOptions, FileViewerArchivePasswordRequestContext, FileViewerArchivePasswordRequestReason, FileViewerArchiveOptions, FileViewerApplyViewStateOptions, FileViewerBeforeOperation, FileViewerCadDwfLineWeightMode, FileViewerCadOptions, FileViewerCadRenderer, FileViewerComponentEmits, FileViewerComponentEventMap, FileViewerComponentProps, FileViewerDocumentAnchor, FileViewerDocumentChunk, FileViewerDownloadOptions, FileViewerDocxOptions, FileViewerDrawingOptions, FileViewerEvent, FileViewerEventHandler, FileViewerEventType, FileViewerExportHtmlOptions, FileViewerFileRef, FileViewerFitMode, FileViewerFitOptions, FileViewerFitRequest, FileViewerFitResize, FileViewerFitResult, FileViewerGeoBasemapOptions, FileViewerGeoBasemapPreset, FileViewerGeoOptions, FileRenderContext, FileRenderExportAdapter, FileRenderExportMode, FileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerBuiltinRendererPreset, FileViewerInstance, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerI18nOptions, FileViewerLocale, FileViewerMessageKey, FileViewerMessageParams, FileViewerMessageResolver, FileViewerMessages, FileViewerNavigationState, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerPdfOptions, FileViewerPresentationOptions, FileViewerPrintOptions, FileViewerPublicApi, FileViewerRenderedInstance, FileViewerRendererMode, FileViewerRendererPluginAssetKind, FileViewerRendererPluginAssetManifest, FileViewerRendererPluginAssetEntry, FileViewerRenderStateKind, FileViewerRendererCategory, FileViewerRendererHandlerRegistration, FileViewerRendererInstallContext, FileViewerRendererPlugin, FileViewerRendererPluginInput, FileViewerRendererPresetInput, FileViewerRendererPresetName, FileViewerRendererPreset, FileViewerSearchMatch, FileViewerSearchOptions, FileViewerSearchProvider, FileViewerSearchState, FileViewerSource, FileViewerSourceKind, FileViewerSpreadsheetOptions, FileViewerStateDescriptor, FileViewerStateTheme, FileViewerStyleIsolation, FileViewerThemeMode, FileViewerToolbarActionMap, FileViewerToolbarItem, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerResolvedToolbarItem, FileViewerTypstOptions, FileViewerViewScrollState, FileViewerViewState, FileViewerViewStateChange, FileViewerViewStateChangeAction, FileViewerViewStateChangeSource, FileViewerViewStateProvider, FileViewerWatermarkOptions, FileViewerZoomProvider, FileViewerZoomState, NormalizedFileViewerSource, RendererCapability, RendererDefinition, RendererPlugin, RendererLoadContext, RendererLoader, RendererRegistry, RendererSession, RenderSurface, ViewerCapabilityState, ViewerLifecycleContext, ViewerOperationContext, } from './contracts/types';
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export { DEFAULT_FILE_VIEWER_TEXT_CHUNK_OVERLAP, DEFAULT_FILE_VIEWER_TEXT_CHUNK_
4
4
  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';
5
5
  export { createFileViewerDocumentFeatureActions, createFileViewerDocumentFeatureControllerActionHandlers, createFileViewerDocumentChangeSnapshot, createFileViewerSearchChangeState, dispatchFileViewerLocationChange, dispatchFileViewerSearchChange, resolveFileViewerLocationChangeAnchor, } from './features/document/events.js';
6
6
  export { applyFileViewerZoomState, clearFileViewerZoomControllerProvider, createFileViewerZoomChangeEmitter, createFileViewerZoomChangeState, cloneFileViewerZoomState, createFileViewerZoomController, createFileViewerZoomControllerActionHandlers, destroyFileViewerZoomController, observeFileViewerZoomController, refreshFileViewerZoomControllerProvider, runFileViewerZoomControllerAction, syncFileViewerZoomControllerState, } from './features/document/zoom.js';
7
+ export { FILE_VIEWER_FIT_MODES, FILE_VIEWER_FIT_RESIZE_MODES, createFileViewerFitController, hasFileViewerExplicitInitialViewState, isFileViewerFitMode, isFileViewerFitResize, normalizeFileViewerFitOptions, resolveFileViewerFitScale, } from './features/document/fit.js';
7
8
  export { cloneFileViewerViewState, createFileViewerViewStateChange, createFileViewerViewStateChangeEmitter, createFileViewerViewStateController, createFileViewerViewStateControllerActionHandlers, registerFileViewerGenericViewStateProvider, } from './features/document/viewState.js';
8
9
  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';
9
10
  export { buildFileViewerRenderedHtmlDocument, buildExportHtmlDocument, collectDocumentStyles, prepareFileViewerRenderedContentForSnapshot, replaceFileViewerCanvasWithImages, resolveFileViewerPrintStyle, triggerFileViewerBlobDownload, triggerFileViewerUrlDownload, waitForFileViewerImages, waitForFileViewerNextPaint, waitForFileViewerPrintWindowReady, } from './output/export.js';
@@ -162,13 +163,13 @@ export const parseEdaFile = async (buffer, type) => {
162
163
  throw new Error('EDA parsing has moved out of @file-viewer/core. Import parseEdaFile from @file-viewer/renderer-eda instead.');
163
164
  };
164
165
  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';
165
- export { FILE_VIEWER_LIFECYCLE_HOOKS, FILE_VIEWER_BEFORE_OPERATION_ERROR_PREFIX, 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, resolveFileViewerToolbarState, resolveFileViewerToolbarPosition, resolveVisibleFileViewerToolbar, runFileViewerActiveUnloadComplete, runFileViewerActiveUnloadStart, runFileViewerBeforeOperation, runFileViewerLifecycleHook, runFileViewerToolbarAvailabilitySync, runFileViewerToolbarZoomSync, serializeFileViewerContext, } from './lifecycle/operations.js';
166
+ 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';
166
167
  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';
167
168
  export { createFileViewerLifecycleFacade, } from './lifecycle/facade.js';
168
169
  export { getFileViewerOptionsSearchParam, normalizeFileViewerTheme, parseFileViewerOptions, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, } from './config/options.js';
169
170
  export { resolveFileViewerPresentationState, } from './presentation/state.js';
170
171
  export { createFileViewerRendererDispatcher, } from './rendering/dispatcher.js';
171
- export { buildFileRenderContextFromLoadContext, applyFileViewerRenderSurfaceState, clearFileViewerRenderSurface, createFileRenderHandlerRendererSession, createFileRenderHandlerRegistry, createFileRenderHandlerLoader, createFileViewerRenderSurfaceActionHandlers, createFileViewerRenderReadinessTarget, createFileViewerRenderSurfaceState, createFileViewerRenderSurfaceStateTarget, createFileViewerRenderTarget, DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS, DEFAULT_FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_LOGGER, FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE, disposeActiveFileViewerRendererSession, disposeFileViewerRendered, disposeFileViewerRendererSession, removeFileViewerRenderTarget, reportFileViewerRenderSessionDisposeError, resetFileViewerRenderSurface, resolveFileViewerRenderSessionDisposeErrorMessage, runFileViewerRenderSurfaceClear, runFileViewerRenderSurfaceMount, renderFileViewerHandler, } from './rendering/handler.js';
172
+ export { appendFileViewerStyle, buildFileRenderContextFromLoadContext, applyFileViewerRenderSurfaceState, clearFileViewerRenderSurface, createFileRenderHandlerRendererSession, createFileRenderHandlerRegistry, createFileRenderHandlerLoader, createFileViewerRenderSurfaceActionHandlers, createFileViewerRenderReadinessTarget, createFileViewerRenderSurface, createFileViewerRenderSurfaceState, createFileViewerRenderSurfaceStateTarget, createFileViewerRenderTarget, DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS, DEFAULT_FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_LOGGER, FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE, disposeActiveFileViewerRendererSession, disposeFileViewerRendered, disposeFileViewerRendererSession, getFileViewerShadowRootForNode, isFileViewerShadowRoot, normalizeFileViewerStyleIsolation, removeFileViewerRenderTarget, reportFileViewerRenderSessionDisposeError, resetFileViewerRenderSurface, resolveFileViewerStyleIsolation, resolveFileViewerRenderSessionDisposeErrorMessage, runFileViewerRenderSurfaceClear, runFileViewerRenderSurfaceMount, renderFileViewerHandler, } from './rendering/handler.js';
172
173
  export { DEFAULT_FILE_VIEWER_SOURCE_FILENAME, decodeFilename, getExtension, normalizeFileExtension, normalizeFilename, resolveFileViewerSourceFilename, normalizeSource, readFileViewerBuffer, readFileViewerDataUrl, readFileViewerText, wrapFileViewerFileRef, } from './source/index.js';
173
174
  export { DEFAULT_FILE_VIEWER_STATE_THEME, DEFAULT_FILE_VIEWER_UNSUPPORTED_DESCRIPTION, FILE_VIEWER_PREVIEW_MESSAGES, createFileViewerEmptyState, createFileViewerErrorState, createFileViewerPreviewLoadingState, createFileViewerReadyState, createFileViewerUnsupportedState, formatFileViewerErrorMessage, normalizeFileViewerErrorMessage, resolveFileViewerRendererInstallHint, } from './viewer/state.js';
174
175
  export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark.js';
@@ -1,7 +1,7 @@
1
1
  import { type FileViewerI18nInput } from '../i18n/messages';
2
2
  import type { FileViewerErrorMessageFormatter } from '../viewer/state';
3
3
  import { type FileViewerOriginalSourceState } from '../viewer/operations';
4
- import type { FileRenderExportAdapter, FileViewerBeforeOperation, FileViewerFileRef, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerSourceKind, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerPublicApi, FileViewerZoomState, NormalizedFileViewerSource } from '../contracts/types';
4
+ import type { FileRenderExportAdapter, FileViewerBeforeOperation, FileViewerFileRef, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerResolvedToolbarItem, FileViewerSourceKind, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerPublicApi, FileViewerZoomState, NormalizedFileViewerSource } from '../contracts/types';
5
5
  export declare const FILE_VIEWER_LIFECYCLE_HOOKS: {
6
6
  readonly 'load-start': "onLoadStart";
7
7
  readonly 'load-complete': "onLoadComplete";
@@ -18,6 +18,7 @@ export declare const FILE_VIEWER_OPERATION_LABELS: {
18
18
  };
19
19
  export declare const FILE_VIEWER_BEFORE_OPERATION_ERROR_PREFIX = "\u64CD\u4F5C\u524D\u7F6E\u6821\u9A8C\u5931\u8D25";
20
20
  export declare const FILE_VIEWER_LIFECYCLE_HOOK_ERROR_MESSAGE_PREFIX = "FileViewer";
21
+ export declare const DEFAULT_FILE_VIEWER_TOOLBAR_ORDER: readonly ["search", "zoom", "download", "print", "exportHtml"];
21
22
  export interface FileViewerLifecycleComponentEmit {
22
23
  (event: 'load-start', context: FileViewerLifecycleContext): void;
23
24
  (event: 'load-complete', context: FileViewerLifecycleContext): void;
@@ -81,6 +82,7 @@ export interface ResolveFileViewerToolbarStateInput extends ResolveFileViewerOpe
81
82
  export interface FileViewerToolbarState {
82
83
  operationAvailability: FileViewerOperationAvailability;
83
84
  visibleToolbar: FileViewerToolbarOptions;
85
+ toolbarOrder: FileViewerResolvedToolbarItem[];
84
86
  showToolbar: boolean;
85
87
  toolbarPosition: FileViewerToolbarPosition;
86
88
  toolbarDisabled: boolean;
@@ -259,6 +261,7 @@ export declare const getFileViewerLifecycleHookName: (phase: FileViewerLifecycle
259
261
  export declare const runFileViewerLifecycleHook: <Context extends FileViewerLifecycleContext>(context: Context, hooks?: FileViewerLifecycleHooks, onError?: (error: unknown, context: Context) => void) => Promise<void>;
260
262
  export declare const getFileViewerBeforeOperationHooks: (options: FileViewerOptions | undefined, operation: FileViewerOperationType) => Array<FileViewerBeforeOperation | undefined>;
261
263
  export declare const isFileViewerToolbarOperationPermitted: (toolbar: FileViewerOptions["toolbar"] | undefined, operation: FileViewerOperationType) => boolean;
264
+ export declare const resolveFileViewerToolbarOrder: (toolbar: Pick<FileViewerToolbarOptions, "order"> | undefined) => FileViewerResolvedToolbarItem[];
262
265
  export declare const runFileViewerBeforeOperation: <Context extends FileViewerOperationContext>({ context, options, onBefore, onCancel, onError, }: RunFileViewerBeforeOperationInput<Context>) => Promise<boolean>;
263
266
  export declare const serializeFileViewerContext: <Context extends FileViewerLifecycleContext | FileViewerOperationContext>(context: Context) => SerializedFileViewerContext<Context>;
264
267
  export declare const dispatchFileViewerLifecycleEvent: <Context extends FileViewerLifecycleContext>({ context, hooks, onChange, onError, }: DispatchFileViewerLifecycleEventInput<Context>) => boolean;
@@ -29,6 +29,13 @@ const FILE_VIEWER_ZOOM_BUTTON_OPERATIONS = {
29
29
  canZoomOut: 'zoom-out',
30
30
  canReset: 'zoom-reset',
31
31
  };
32
+ export const DEFAULT_FILE_VIEWER_TOOLBAR_ORDER = [
33
+ 'search',
34
+ 'zoom',
35
+ 'download',
36
+ 'print',
37
+ 'exportHtml',
38
+ ];
32
39
  export const buildFileViewerLifecycleContext = ({ phase, version, source, filename, file, url, size, bufferSize, startedAt, duration, timestamp, reason, }) => {
33
40
  var _a;
34
41
  const resolvedFilename = normalizeFilename((file === null || file === void 0 ? void 0 : file.name) || filename || url || '');
@@ -158,7 +165,7 @@ export const emitFileViewerComponentLifecycleEvent = (emit, context) => {
158
165
  emit('unload-complete', context);
159
166
  };
160
167
  export const resolveFileViewerBeforeOperationErrorMessage = ({ error, formatErrorMessage, prefix, i18n, }) => {
161
- return formatErrorMessage(prefix || translateFileViewerMessage(i18n, 'error.beforeOperation'), error);
168
+ return formatErrorMessage(prefix || translateFileViewerMessage(i18n, 'error.beforeOperation'), error, i18n);
162
169
  };
163
170
  export const resolveFileViewerLifecycleHookErrorMessage = ({ context, prefix = FILE_VIEWER_LIFECYCLE_HOOK_ERROR_MESSAGE_PREFIX, }) => {
164
171
  return `${prefix} ${context.phase} hook failed`;
@@ -243,6 +250,32 @@ export const isFileViewerToolbarOperationPermitted = (toolbar, operation) => {
243
250
  };
244
251
  const isFileViewerToolbarOperationVisible = (toolbar, operation) => isToolbarActionMapAllowed(toolbar.items, operation) &&
245
252
  isToolbarActionMapAllowed(toolbar.permissions, operation);
253
+ const normalizeFileViewerToolbarItem = (item) => {
254
+ if (item === 'search' || item === 'zoom' || item === 'download' || item === 'print') {
255
+ return item;
256
+ }
257
+ if (item === 'exportHtml' || item === 'export-html') {
258
+ return 'exportHtml';
259
+ }
260
+ return undefined;
261
+ };
262
+ export const resolveFileViewerToolbarOrder = (toolbar) => {
263
+ const order = [];
264
+ const seen = new Set();
265
+ const addItem = (item) => {
266
+ const normalized = normalizeFileViewerToolbarItem(item);
267
+ if (!normalized || seen.has(normalized)) {
268
+ return;
269
+ }
270
+ seen.add(normalized);
271
+ order.push(normalized);
272
+ };
273
+ if (Array.isArray(toolbar === null || toolbar === void 0 ? void 0 : toolbar.order)) {
274
+ toolbar.order.forEach(addItem);
275
+ }
276
+ DEFAULT_FILE_VIEWER_TOOLBAR_ORDER.forEach(addItem);
277
+ return order;
278
+ };
246
279
  const hasAnyToolbarZoomOperation = (toolbar) => FILE_VIEWER_ZOOM_OPERATIONS.some(operation => isFileViewerToolbarOperationVisible(toolbar, operation));
247
280
  const applyToolbarPermissionsToAvailability = (availability, toolbar) => {
248
281
  if (!toolbar || typeof toolbar !== 'object' || !toolbar.permissions) {
@@ -465,6 +498,7 @@ export const normalizeFileViewerToolbar = (options) => {
465
498
  exportHtml: false,
466
499
  zoom: false,
467
500
  search: false,
501
+ order: resolveFileViewerToolbarOrder(undefined),
468
502
  };
469
503
  }
470
504
  if (toolbar && typeof toolbar === 'object') {
@@ -474,6 +508,7 @@ export const normalizeFileViewerToolbar = (options) => {
474
508
  exportHtml: toolbar.exportHtml !== false && isFileViewerToolbarOperationVisible(toolbar, 'export-html'),
475
509
  zoom: toolbar.zoom !== false && hasAnyToolbarZoomOperation(toolbar),
476
510
  search: toolbar.search !== false,
511
+ order: resolveFileViewerToolbarOrder(toolbar),
477
512
  items: toolbar.items,
478
513
  permissions: toolbar.permissions,
479
514
  position: toolbar.position,
@@ -489,6 +524,7 @@ export const normalizeFileViewerToolbar = (options) => {
489
524
  exportHtml: true,
490
525
  zoom: true,
491
526
  search: true,
527
+ order: resolveFileViewerToolbarOrder(undefined),
492
528
  };
493
529
  };
494
530
  export const resolveFileViewerOperationAvailability = ({ extension, hasOriginalSource, renderedReady, hasError = false, adapter, source, zoomState, }) => {
@@ -543,6 +579,7 @@ export const resolveFileViewerToolbarState = ({ toolbar, options, loading = fals
543
579
  return {
544
580
  operationAvailability,
545
581
  visibleToolbar,
582
+ toolbarOrder: resolveFileViewerToolbarOrder(toolbar),
546
583
  showToolbar: hasVisibleFileViewerToolbarActions(visibleToolbar),
547
584
  toolbarPosition: resolveFileViewerToolbarPosition(options, availabilityInput.extension),
548
585
  toolbarDisabled: isFileViewerToolbarDisabled({
@@ -554,7 +591,7 @@ export const resolveFileViewerToolbarState = ({ toolbar, options, loading = fals
554
591
  export const resolveFileViewerToolbarPosition = (options, extension) => {
555
592
  const toolbar = options === null || options === void 0 ? void 0 : options.toolbar;
556
593
  const position = toolbar && typeof toolbar === 'object' ? toolbar.position : 'auto';
557
- if (position === 'top' || position === 'bottom-right') {
594
+ if (position === 'top' || position === 'top-center' || position === 'bottom-right') {
558
595
  return position;
559
596
  }
560
597
  return extension === 'pdf' ? 'bottom-right' : 'top';
@@ -102,7 +102,7 @@ export const DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS = [
102
102
  rendererId: 'archive',
103
103
  kind: 'worker',
104
104
  target: 'public',
105
- required: false,
105
+ required: true,
106
106
  defaultPath: DEFAULT_FILE_VIEWER_ARCHIVE_WORKER_PATH,
107
107
  optionPath: 'archive.workerUrl',
108
108
  description: 'libarchive.js module worker used for broad archive format parsing.',
@@ -112,7 +112,7 @@ export const DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS = [
112
112
  rendererId: 'archive',
113
113
  kind: 'wasm',
114
114
  target: 'public',
115
- required: false,
115
+ required: true,
116
116
  defaultPath: DEFAULT_FILE_VIEWER_ARCHIVE_WASM_PATH,
117
117
  optionPath: 'archive.wasmUrl',
118
118
  description: 'libarchive.js WebAssembly module expected next to the public worker.',
@@ -263,7 +263,7 @@ export const DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS = [
263
263
  ],
264
264
  },
265
265
  ];
266
- const DEFAULT_FILE_VIEWER_DOCUMENT_BASE_URL = 'http://localhost/';
266
+ const DEFAULT_FILE_VIEWER_DOCUMENT_BASE_URL = 'file:///';
267
267
  export const resolveFileViewerAssetUrl = (value, fallback, options = {}) => {
268
268
  const raw = value ? String(value) : fallback;
269
269
  const documentBaseUrl = options.documentBaseUrl || DEFAULT_FILE_VIEWER_DOCUMENT_BASE_URL;
@@ -1,2 +1,2 @@
1
- import type { FileViewerRenderedInstance } from '../contracts/types';
2
- export default function renderImage(buffer: ArrayBuffer, target: HTMLDivElement, type?: string): Promise<FileViewerRenderedInstance>;
1
+ import type { FileRenderContext, FileViewerRenderedInstance } from '../contracts/types';
2
+ export default function renderImage(buffer: ArrayBuffer, target: HTMLDivElement, type?: string, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
@@ -1,4 +1,5 @@
1
1
  import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../features/document/dom/index.js';
2
+ import { createFileViewerTranslator } from '../i18n/messages.js';
2
3
  import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from '../features/document/zoom.js';
3
4
  const imageMimeMap = {
4
5
  avif: 'image/avif',
@@ -28,8 +29,8 @@ const imageStyle = `
28
29
  @media (prefers-color-scheme:dark){.file-viewer[data-viewer-theme='system'] .image-viewer{background:#101820}}
29
30
  @media (max-width:767px){.image-stage{padding:12px}.image-lightbox{padding:16px}.image-lightbox button{top:12px;right:12px}}
30
31
  `;
31
- const createStyle = () => {
32
- const style = document.createElement('style');
32
+ const createStyle = (documentRef) => {
33
+ const style = documentRef.createElement('style');
33
34
  style.textContent = imageStyle;
34
35
  return style;
35
36
  };
@@ -63,18 +64,18 @@ const resolveImageUrl = async (buffer, type) => {
63
64
  const roundImageScale = (value) => {
64
65
  return Number(value.toFixed(3));
65
66
  };
66
- const createLightbox = (src) => {
67
- const lightbox = document.createElement('div');
67
+ const createLightbox = (documentRef, src, t) => {
68
+ const lightbox = documentRef.createElement('div');
68
69
  lightbox.className = 'image-lightbox';
69
70
  lightbox.hidden = true;
70
71
  lightbox.setAttribute('role', 'dialog');
71
72
  lightbox.setAttribute('aria-modal', 'true');
72
- const image = document.createElement('img');
73
- image.alt = 'Preview image';
73
+ const image = documentRef.createElement('img');
74
+ image.alt = t('image.lightbox.alt');
74
75
  image.src = src;
75
- const closeButton = document.createElement('button');
76
+ const closeButton = documentRef.createElement('button');
76
77
  closeButton.type = 'button';
77
- closeButton.setAttribute('aria-label', 'Close image preview');
78
+ closeButton.setAttribute('aria-label', t('image.lightbox.close'));
78
79
  closeButton.textContent = 'x';
79
80
  const close = () => {
80
81
  lightbox.hidden = true;
@@ -99,27 +100,29 @@ const createLightbox = (src) => {
99
100
  },
100
101
  };
101
102
  };
102
- export default async function renderImage(buffer, target, type) {
103
+ export default async function renderImage(buffer, target, type, context) {
104
+ var _a;
105
+ const t = createFileViewerTranslator(context === null || context === void 0 ? void 0 : context.options);
106
+ const documentRef = target.ownerDocument || document;
103
107
  const src = await resolveImageUrl(buffer, type);
104
108
  let userZoom = 1;
105
109
  let fitScale = 1;
106
110
  let currentScale = 1;
107
111
  let viewportHeight = 0;
108
112
  const zoomEmitter = createZoomChangeEmitter();
109
- const root = document.createElement('div');
113
+ const root = documentRef.createElement('div');
110
114
  root.className = 'image-viewer';
111
115
  root.dataset.viewerZoomProvider = 'image';
112
- const stage = document.createElement('div');
116
+ const stage = documentRef.createElement('div');
113
117
  stage.className = 'image-stage';
114
- const image = document.createElement('img');
115
- image.alt = '图片';
118
+ const image = documentRef.createElement('img');
119
+ image.alt = t('image.alt');
116
120
  image.src = src;
117
121
  stage.append(image);
118
122
  root.append(stage);
119
- const lightbox = createLightbox(src);
123
+ const lightbox = createLightbox(documentRef, src, t);
120
124
  const openLightbox = () => lightbox.open();
121
125
  image.addEventListener('click', openLightbox);
122
- document.body.append(lightbox.element);
123
126
  const getMinScale = () => Math.min(0.1, fitScale || 0.1);
124
127
  const clampScale = (value) => {
125
128
  const minScale = getMinScale();
@@ -185,7 +188,8 @@ export default async function renderImage(buffer, target, type) {
185
188
  getState: getZoomState,
186
189
  subscribe: zoomEmitter.subscribe,
187
190
  });
188
- target.replaceChildren(createStyle(), root);
191
+ target.replaceChildren(createStyle(documentRef), root);
192
+ (((_a = context === null || context === void 0 ? void 0 : context.surface) === null || _a === void 0 ? void 0 : _a.shadowRoot) || target).append(lightbox.element);
189
193
  updateViewportSize();
190
194
  return {
191
195
  $el: target,
@@ -16,9 +16,9 @@ const createWrapper = (el) => ({
16
16
  export const coreBrowserRendererHandlers = [
17
17
  {
18
18
  rendererId: 'image',
19
- handler: async (buffer, target, type) => {
19
+ handler: async (buffer, target, type, context) => {
20
20
  const { default: renderImage } = await import('./image.js');
21
- return renderImage(buffer, target, type);
21
+ return renderImage(buffer, target, type, context);
22
22
  },
23
23
  },
24
24
  ];
@@ -45,8 +45,8 @@ const resolveCoreRendererHandlers = (preset) => {
45
45
  }
46
46
  return coreBrowserRendererHandlers;
47
47
  };
48
- const renderUnsupported = async (_buffer, target, type) => {
49
- const state = createFileViewerUnsupportedState(type);
48
+ const renderUnsupported = async (_buffer, target, type, context) => {
49
+ const state = createFileViewerUnsupportedState(type, undefined, context === null || context === void 0 ? void 0 : context.options);
50
50
  const wrapper = document.createElement('div');
51
51
  wrapper.style.textAlign = 'center';
52
52
  wrapper.style.marginTop = '80px';
@@ -1,6 +1,6 @@
1
1
  import type { FileViewerRendererDispatcher } from './dispatcher';
2
2
  import { type FileViewerMutableAccessor, type MutableFileViewerRenderReadinessState } from '../source/loading';
3
- import type { FileRenderExportAdapter, FileRenderContext, FileRenderHandler, FileViewerLifecycleContext, RendererDefinition, RendererLoadContext, RendererLoader, RendererRegistry, RendererSession } from '../contracts/types';
3
+ import type { FileRenderExportAdapter, FileRenderContext, FileRenderHandler, FileViewerLifecycleContext, FileViewerOptions, FileViewerStyleIsolation, RenderSurface, RendererDefinition, RendererLoadContext, RendererLoader, RendererRegistry, RendererSession } from '../contracts/types';
4
4
  export declare const FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE = "\u9884\u89C8\u5185\u5BB9\u5378\u8F7D\u5931\u8D25";
5
5
  export interface ResolveFileViewerRenderSessionDisposeErrorMessageInput {
6
6
  message?: string;
@@ -47,6 +47,22 @@ export interface CreateFileViewerRenderSurfaceStateTargetInput<Session extends R
47
47
  export interface CreateFileViewerRenderTargetOptions {
48
48
  className?: string;
49
49
  }
50
+ export type ResolvedFileViewerStyleIsolation = Exclude<FileViewerStyleIsolation, 'auto'>;
51
+ export interface CreateFileViewerRenderSurfaceOptions extends CreateFileViewerRenderTargetOptions {
52
+ styleIsolation?: FileViewerStyleIsolation;
53
+ }
54
+ export interface FileViewerStyleHandle {
55
+ node?: HTMLStyleElement;
56
+ sheet?: CSSStyleSheet;
57
+ remove(): void;
58
+ }
59
+ export interface AppendFileViewerStyleOptions {
60
+ /**
61
+ * Constructable stylesheets are useful for long-lived ShadowRoots. Keep this
62
+ * opt-in so renderer styles still clean up naturally with their target node.
63
+ */
64
+ adoptedStyleSheet?: boolean;
65
+ }
50
66
  export interface ResetFileViewerRenderSurfaceInput<Session extends RendererSession = RendererSession> {
51
67
  surfaceState: MutableFileViewerRenderSurfaceState<Session>;
52
68
  readinessState: MutableFileViewerRenderReadinessState;
@@ -83,7 +99,9 @@ export interface RunFileViewerRenderSurfaceMountInput<Session extends RendererSe
83
99
  waitForPaint?: () => Promise<unknown> | unknown;
84
100
  disposeSession?: (session?: Session | null) => void;
85
101
  onStartZoomObserver?: () => void;
102
+ onStartFitObserver?: () => void;
86
103
  onStartViewStateObserver?: () => void;
104
+ onApplyInitialFit?: () => Promise<unknown> | unknown;
87
105
  onRefreshDocumentIndex?: () => Promise<unknown> | unknown;
88
106
  onRefreshZoomProvider?: () => void;
89
107
  onRefreshViewStateProvider?: () => void;
@@ -100,6 +118,7 @@ export interface RunFileViewerRenderSurfaceClearInput<Session extends RendererSe
100
118
  onClearDocumentState?: () => void;
101
119
  onStopZoomObserver?: () => void;
102
120
  onClearZoomProvider?: () => void;
121
+ onStopFitObserver?: () => void;
103
122
  onStopViewStateObserver?: () => void;
104
123
  onClearViewStateProvider?: () => void;
105
124
  }
@@ -130,16 +149,25 @@ export interface CreateFileViewerRenderSurfaceActionHandlersInput<Session extend
130
149
  onStartZoomObserver?: () => void;
131
150
  onStopZoomObserver?: () => void;
132
151
  onClearZoomProvider?: () => void;
152
+ onStartFitObserver?: () => void;
153
+ onStopFitObserver?: () => void;
133
154
  onStartViewStateObserver?: () => void;
134
155
  onStopViewStateObserver?: () => void;
135
156
  onClearViewStateProvider?: () => void;
157
+ onApplyInitialFit?: () => Promise<unknown> | unknown;
136
158
  onRefreshDocumentIndex?: () => Promise<unknown> | unknown;
137
159
  onRefreshZoomProvider?: () => void;
138
160
  onRefreshViewStateProvider?: () => void;
139
161
  }
140
162
  export declare const DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS = "file-render";
163
+ export declare const isFileViewerShadowRoot: (value: unknown) => value is ShadowRoot;
164
+ export declare const getFileViewerShadowRootForNode: (node: Node | null | undefined) => ShadowRoot | null;
165
+ export declare const normalizeFileViewerStyleIsolation: (isolation?: FileViewerStyleIsolation) => FileViewerStyleIsolation;
166
+ export declare const resolveFileViewerStyleIsolation: (options: Pick<FileViewerOptions, "styleIsolation"> | undefined, container?: HTMLElement | null) => ResolvedFileViewerStyleIsolation;
141
167
  export declare const clearFileViewerRenderSurface: (container?: HTMLElement | null) => void;
142
168
  export declare const createFileViewerRenderTarget: (container: HTMLElement, options?: CreateFileViewerRenderTargetOptions) => HTMLDivElement;
169
+ export declare const createFileViewerRenderSurface: (container: HTMLElement, options?: CreateFileViewerRenderSurfaceOptions) => RenderSurface;
170
+ export declare const appendFileViewerStyle: (target: HTMLElement | ShadowRoot, css: string, options?: AppendFileViewerStyleOptions) => FileViewerStyleHandle;
143
171
  export declare const removeFileViewerRenderTarget: (container: HTMLElement, target: HTMLElement) => boolean;
144
172
  export declare const createFileViewerRenderSurfaceState: <Session extends RendererSession = RendererSession>() => FileViewerRenderSurfaceState<Session>;
145
173
  export declare const createFileViewerRenderReadinessTarget: ({ renderedReady, progressiveReady, }: CreateFileViewerRenderReadinessTargetInput) => MutableFileViewerRenderReadinessState;
@@ -165,10 +193,10 @@ export declare const reportFileViewerRenderSessionDisposeError: ({ error, onLogE
165
193
  export declare const disposeFileViewerRendererSession: (session?: RendererSession | null, options?: DisposeFileViewerRendererSessionOptions) => void;
166
194
  export declare const disposeActiveFileViewerRendererSession: <Session extends RendererSession, Target extends MutableFileViewerRenderSurfaceState<Session>>(target: Target, options?: DisposeFileViewerRendererSessionOptions) => Session | null;
167
195
  export declare const resetFileViewerRenderSurface: <Session extends RendererSession>({ surfaceState, readinessState, container, disposeOptions, }: ResetFileViewerRenderSurfaceInput<Session>) => Session | null;
168
- export declare const runFileViewerRenderSurfaceClear: <Session extends RendererSession, UnloadContext = FileViewerLifecycleContext | null>({ reason, surfaceState, readinessState, container, disposeOptions, onUnloadStart, onUnloadComplete, onClearActiveDocumentContext, onClearDocumentState, onStopZoomObserver, onClearZoomProvider, onStopViewStateObserver, onClearViewStateProvider, }: RunFileViewerRenderSurfaceClearInput<Session, UnloadContext>) => FileViewerRenderSurfaceClearState<Session, UnloadContext>;
169
- export declare const runFileViewerRenderSurfaceMount: <Session extends RendererSession>({ buffer, file, version, sourceUrl, streamUrl, getContainer, surfaceState, readinessState, isCurrent, clearRenderedContent, render, waitForContainer, waitForPaint, disposeSession, onStartZoomObserver, onStartViewStateObserver, onRefreshDocumentIndex, onRefreshZoomProvider, onRefreshViewStateProvider, }: RunFileViewerRenderSurfaceMountInput<Session>) => Promise<Session | undefined>;
170
- export declare const createFileViewerRenderSurfaceActionHandlers: <Session extends RendererSession, UnloadContext = FileViewerLifecycleContext | null>({ getContainer, surfaceState, readinessState, isCurrent, render, waitForContainer, waitForPaint, disposeOptions, onUnloadStart, onUnloadComplete, onClearActiveDocumentContext, onClearDocumentState, onStartZoomObserver, onStopZoomObserver, onClearZoomProvider, onStartViewStateObserver, onStopViewStateObserver, onClearViewStateProvider, onRefreshDocumentIndex, onRefreshZoomProvider, onRefreshViewStateProvider, }: CreateFileViewerRenderSurfaceActionHandlersInput<Session, UnloadContext>) => FileViewerRenderSurfaceActionHandlers<Session, UnloadContext>;
171
- export declare const buildFileRenderContextFromLoadContext: ({ source, options, registerExportAdapter, renderContext, }: RendererLoadContext) => FileRenderContext;
196
+ export declare const runFileViewerRenderSurfaceClear: <Session extends RendererSession, UnloadContext = FileViewerLifecycleContext | null>({ reason, surfaceState, readinessState, container, disposeOptions, onUnloadStart, onUnloadComplete, onClearActiveDocumentContext, onClearDocumentState, onStopZoomObserver, onClearZoomProvider, onStopFitObserver, onStopViewStateObserver, onClearViewStateProvider, }: RunFileViewerRenderSurfaceClearInput<Session, UnloadContext>) => FileViewerRenderSurfaceClearState<Session, UnloadContext>;
197
+ export declare const runFileViewerRenderSurfaceMount: <Session extends RendererSession>({ buffer, file, version, sourceUrl, streamUrl, getContainer, surfaceState, readinessState, isCurrent, clearRenderedContent, render, waitForContainer, waitForPaint, disposeSession, onStartZoomObserver, onStartFitObserver, onStartViewStateObserver, onApplyInitialFit, onRefreshDocumentIndex, onRefreshZoomProvider, onRefreshViewStateProvider, }: RunFileViewerRenderSurfaceMountInput<Session>) => Promise<Session | undefined>;
198
+ export declare const createFileViewerRenderSurfaceActionHandlers: <Session extends RendererSession, UnloadContext = FileViewerLifecycleContext | null>({ getContainer, surfaceState, readinessState, isCurrent, render, waitForContainer, waitForPaint, disposeOptions, onUnloadStart, onUnloadComplete, onClearActiveDocumentContext, onClearDocumentState, onStartZoomObserver, onStopZoomObserver, onClearZoomProvider, onStartFitObserver, onStopFitObserver, onStartViewStateObserver, onStopViewStateObserver, onClearViewStateProvider, onApplyInitialFit, onRefreshDocumentIndex, onRefreshZoomProvider, onRefreshViewStateProvider, }: CreateFileViewerRenderSurfaceActionHandlersInput<Session, UnloadContext>) => FileViewerRenderSurfaceActionHandlers<Session, UnloadContext>;
199
+ export declare const buildFileRenderContextFromLoadContext: ({ source, surface, options, registerExportAdapter, renderContext, }: RendererLoadContext) => FileRenderContext;
172
200
  export declare const renderFileViewerHandler: <Rendered = unknown, Target extends HTMLElement = HTMLElement>({ dispatcher, buffer, target, type, context, throwOnMissingHandler, }: RenderFileViewerHandlerInput<Rendered, Target>) => Promise<Rendered | undefined>;
173
201
  export declare const createFileRenderHandlerLoader: <Rendered = unknown, Target extends HTMLElement = HTMLElement>({ handler, rendererId, getTarget, createContext, destroy, }: CreateFileRenderHandlerLoaderOptions<Rendered, Target>) => RendererLoader;
174
202
  export declare const createFileRenderHandlerRegistry: <Rendered = unknown, Target extends HTMLElement = HTMLElement>({ definitions, handlers, getTarget, createContext, destroy, }: CreateFileRenderHandlerRegistryOptions<Rendered, Target>) => FileRenderHandlerRegistryResult<Rendered, Target>;