@file-viewer/core 2.1.21 → 2.1.22

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.
@@ -41,7 +41,7 @@ const sanitizeJsonValue = (value) => {
41
41
  return Object.keys(output).length ? output : undefined;
42
42
  };
43
43
  const stripExecutionOnlyOptions = (value) => {
44
- const { beforeOperation: _beforeOperation, hooks: _hooks, preset: _preset, presets: _presets, renderers: _renderers, rendererMode: _rendererMode, ...rest } = value;
44
+ const { beforeOperation: _beforeOperation, hooks: _hooks, preset: _preset, presets: _presets, renderers: _renderers, rendererMode: _rendererMode, branding: _branding, ...rest } = value;
45
45
  if (isRecord(rest.toolbar)) {
46
46
  const { beforeOperation: _toolbarBeforeOperation, beforeDownload: _beforeDownload, beforePrint: _beforePrint, beforeExportHtml: _beforeExportHtml, ...toolbar } = rest.toolbar;
47
47
  rest.toolbar = toolbar;
@@ -42,35 +42,6 @@ export interface FileViewerWatermarkOptions {
42
42
  color?: string;
43
43
  fontFamily?: string;
44
44
  }
45
- export type FileViewerBrandingPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
46
- export interface FileViewerBrandLicenseCertificate {
47
- format?: string;
48
- product?: string;
49
- project?: string;
50
- licenseKind?: string;
51
- permissions?: string[];
52
- expiresAt?: string | null;
53
- [key: string]: unknown;
54
- }
55
- export interface FileViewerBrandLicenseBundle {
56
- format?: string;
57
- licenseNo?: string;
58
- algorithm?: string;
59
- publicKey?: string;
60
- privateKey?: string;
61
- certificate?: FileViewerBrandLicenseCertificate | string;
62
- signature?: string;
63
- [key: string]: unknown;
64
- }
65
- export type FileViewerBrandLicenseInput = string | FileViewerBrandLicenseCertificate | FileViewerBrandLicenseBundle;
66
- export interface FileViewerBrandingOptions {
67
- enabled?: boolean;
68
- text?: string;
69
- href?: string;
70
- title?: string;
71
- position?: FileViewerBrandingPosition;
72
- license?: FileViewerBrandLicenseInput;
73
- }
74
45
  export interface FileViewerToolbarOptions {
75
46
  download?: boolean;
76
47
  print?: boolean;
@@ -482,11 +453,6 @@ export interface FileViewerOptions {
482
453
  */
483
454
  presets?: FileViewerRendererPresetInput;
484
455
  renderers?: FileViewerRendererPluginInput;
485
- /**
486
- * Built-in attribution badge. Pass `{ enabled:false, license }` with a
487
- * Flyfish Viewer brand-removal authorization package to hide it legitimately.
488
- */
489
- branding?: boolean | FileViewerBrandingOptions;
490
456
  watermark?: boolean | FileViewerWatermarkOptions;
491
457
  ui?: FileViewerUiOptions;
492
458
  toolbar?: boolean | FileViewerToolbarOptions;
@@ -22,8 +22,6 @@ export { cancelFileViewerPreviewRequest, DEFAULT_FILE_VIEWER_PREVIEW_LOAD_ERROR_
22
22
  export type { CancelFileViewerPreviewRequestInput, CommitFileViewerEmptyPreviewResetStateInput, CommitFileViewerLoadStartStateInput, CommitFileViewerPreviewRequestStartStateInput, CommitFileViewerRenderCompleteStateInput, CommitFileViewerRemoteDownloadStateInput, CreateFileViewerLoadStartStateInput, CreateFileViewerPreviewStateTargetInput, CreateFileViewerReadPreviewStateInput, CreateFileViewerRenderCompleteStateInput, CreateFileViewerSourceLoadingActionHandlersInput, FileViewerEmptyPreviewState, FileViewerFileRefSourcePlan, FileViewerLocalFilePreviewState, FileViewerLoadStartState, FileViewerLocationLike, FileViewerMutableAccessor, FileViewerPreviewComponentUnmountState, FileViewerPreviewLoadErrorKind, FileViewerPreviewLoadErrorLogger, FileViewerPreviewLoadErrorPrefixes, FileViewerPreviewRequestResetState, FileViewerPreviewRequestRunState, FileViewerReadAndRenderFileState, FileViewerReadPreviewState, FileViewerRemoteDownloadState, FileViewerRemoteFileDownloadInput, FileViewerRemoteFilePreviewErrorKind, FileViewerRemoteFilePreviewState, FileViewerRemoteSourcePlan, FileViewerRenderCompleteState, FileViewerRenderReadinessState, FileViewerRequestController, FileViewerRequestScope, FileViewerSourceLoadingActionHandlers, FileViewerStreamingPdfPreviewState, FinalizeFileViewerPreviewLoadStateInput, MutableFileViewerPreviewFilenameState, MutableFileViewerPreviewRequestState, MutableFileViewerPreviewSourceUrlState, MutableFileViewerPreviewState, MutableFileViewerReadPreviewState, MutableFileViewerRenderReadinessState, ReportFileViewerMissingRemoteDataInput, ReportFileViewerPreviewLoadErrorInput, ResolveFileViewerFileRefSourcePlanInput, ResolveFileViewerMissingRemoteDataErrorMessageInput, ResolveFileViewerPreviewLoadErrorMessageInput, ResolveFileViewerPreviewRequestReasonInput, RunFileViewerLocalFilePreviewInput, RunFileViewerPreviewComponentUnmountInput, RunFileViewerPreviewRequestInput, RunFileViewerPreviewSourceChangeInput, RunFileViewerReadAndRenderFileInput, RunFileViewerRemoteFilePreviewInput, RunFileViewerStreamingPdfPreviewInput, } from './source/loading';
23
23
  export { DEFAULT_FILE_VIEWER_STATE_THEME, DEFAULT_FILE_VIEWER_UNSUPPORTED_DESCRIPTION, FILE_VIEWER_PREVIEW_MESSAGES, createFileViewerEmptyState, createFileViewerErrorState, createFileViewerPreviewLoadingState, createFileViewerReadyState, createFileViewerUnsupportedState, formatFileViewerErrorMessage, normalizeFileViewerErrorMessage, } from './viewer/state';
24
24
  export type { FileViewerErrorMessageFormatter, } from './viewer/state';
25
- export { FILE_VIEWER_BRAND_LICENSE_FORMAT, FILE_VIEWER_BRAND_LICENSE_KIND, FILE_VIEWER_BRAND_LICENSE_PERMISSION, FILE_VIEWER_BRAND_LICENSE_PRODUCT, FILE_VIEWER_BRAND_LICENSE_PROJECT, buildFileViewerBrandingInlineStyle, isFileViewerBrandRemovalLicense, resolveFileViewerBrandingPresentationState, } from './features/branding';
26
- export type { FileViewerBrandingPresentationState, } from './features/branding';
27
25
  export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark';
28
26
  export type { FileViewerWatermarkPresentationState, FileViewerWatermarkStyle, } from './features/watermark';
29
- export type { FileRenderContext, FileRenderExportAdapter, FileRenderExportMode, FileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerBuiltinRendererPreset, FileViewerAiOptions, FileViewerArchiveEntryActionContext, FileViewerArchiveEntryActionPolicy, FileViewerArchiveEntryActionsOptions, FileViewerArchiveOptions, FileViewerApplyViewStateOptions, FileViewerBeforeOperation, FileViewerBrandingOptions, FileViewerBrandingPosition, FileViewerBrandLicenseBundle, FileViewerBrandLicenseCertificate, FileViewerBrandLicenseInput, FileViewerCadDwfLineWeightMode, FileViewerCadOptions, FileViewerCadRenderer, FileViewerComponentEmits, FileViewerComponentEventMap, FileViewerComponentProps, FileViewerDocumentAnchor, FileViewerDocumentChunk, FileViewerDocxOptions, FileViewerDrawingOptions, FileViewerDownloadOptions, FileViewerEvent, FileViewerEventHandler, FileViewerEventType, FileViewerExportHtmlOptions, FileViewerFileRef, FileViewerFitMode, FileViewerFitOptions, FileViewerFitRequest, FileViewerFitResize, FileViewerFitResult, FileViewerGeoOptions, FileViewerInstance, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerI18nOptions, FileViewerLocale, FileViewerMessageKey, FileViewerMessageParams, FileViewerMessageResolver, FileViewerMessages, FileViewerNavigationState, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerPdfOptions, FileViewerPresentationOptions, FileViewerPrintOptions, FileViewerPublicApi, FileViewerRenderStateKind, FileViewerRenderedInstance, FileViewerRendererCategory, FileViewerSearchMatch, FileViewerSearchOptions, FileViewerSearchProvider, FileViewerSearchState, FileViewerSource, FileViewerSourceKind, FileViewerSpreadsheetOptions, FileViewerStateDescriptor, FileViewerStateTheme, FileViewerThemeMode, FileViewerToolbarActionMap, FileViewerToolbarItem, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerResolvedToolbarItem, FileViewerUiDensity, FileViewerUiOptions, FileViewerTypstOptions, FileViewerViewScrollState, FileViewerViewState, FileViewerViewStateChange, FileViewerViewStateChangeAction, FileViewerViewStateChangeSource, FileViewerViewStateProvider, FileViewerWatermarkOptions, FileViewerZoomProvider, FileViewerZoomState, NormalizedFileViewerSource, RenderSurface, RendererCapability, RendererDefinition, RendererLoadContext, RendererLoader, RendererPlugin, RendererRegistry, RendererSession, ViewerCapabilityState, ViewerLifecycleContext, ViewerOperationContext, } from './contracts/types';
27
+ export type { FileRenderContext, FileRenderExportAdapter, FileRenderExportMode, FileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerBuiltinRendererPreset, FileViewerAiOptions, FileViewerArchiveEntryActionContext, FileViewerArchiveEntryActionPolicy, FileViewerArchiveEntryActionsOptions, FileViewerArchiveOptions, FileViewerApplyViewStateOptions, FileViewerBeforeOperation, FileViewerCadDwfLineWeightMode, FileViewerCadOptions, FileViewerCadRenderer, FileViewerComponentEmits, FileViewerComponentEventMap, FileViewerComponentProps, FileViewerDocumentAnchor, FileViewerDocumentChunk, FileViewerDocxOptions, FileViewerDrawingOptions, FileViewerDownloadOptions, FileViewerEvent, FileViewerEventHandler, FileViewerEventType, FileViewerExportHtmlOptions, FileViewerFileRef, FileViewerFitMode, FileViewerFitOptions, FileViewerFitRequest, FileViewerFitResize, FileViewerFitResult, FileViewerGeoOptions, FileViewerInstance, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerI18nOptions, FileViewerLocale, FileViewerMessageKey, FileViewerMessageParams, FileViewerMessageResolver, FileViewerMessages, FileViewerNavigationState, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerPdfOptions, FileViewerPresentationOptions, FileViewerPrintOptions, FileViewerPublicApi, FileViewerRenderStateKind, FileViewerRenderedInstance, FileViewerRendererCategory, FileViewerSearchMatch, FileViewerSearchOptions, FileViewerSearchProvider, FileViewerSearchState, FileViewerSource, FileViewerSourceKind, FileViewerSpreadsheetOptions, FileViewerStateDescriptor, FileViewerStateTheme, FileViewerThemeMode, FileViewerToolbarActionMap, FileViewerToolbarItem, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerResolvedToolbarItem, FileViewerUiDensity, FileViewerUiOptions, FileViewerTypstOptions, FileViewerViewScrollState, FileViewerViewState, FileViewerViewStateChange, FileViewerViewStateChangeAction, FileViewerViewStateChangeSource, FileViewerViewStateProvider, FileViewerWatermarkOptions, FileViewerZoomProvider, FileViewerZoomState, NormalizedFileViewerSource, RenderSurface, RendererCapability, RendererDefinition, RendererLoadContext, RendererLoader, RendererPlugin, RendererRegistry, RendererSession, ViewerCapabilityState, ViewerLifecycleContext, ViewerOperationContext, } from './contracts/types';
package/dist/headless.js CHANGED
@@ -17,5 +17,4 @@ export { buildFileRenderContextFromLoadContext, createFileRenderHandlerRegistry,
17
17
  export { DEFAULT_FILE_VIEWER_SOURCE_FILENAME, decodeFilename, getExtension, normalizeFileExtension, normalizeFilename, normalizeSource, readFileViewerBuffer, readFileViewerDataUrl, readFileViewerText, resolveFileViewerSourceFilename, wrapFileViewerFileRef, } from './source/index.js';
18
18
  export { cancelFileViewerPreviewRequest, DEFAULT_FILE_VIEWER_PREVIEW_LOAD_ERROR_LOGGER, DEFAULT_FILE_VIEWER_STREAMING_PDF_FILENAME, DEFAULT_PDF_RANGE_CHUNK_SIZE, FILE_VIEWER_PREVIEW_LOAD_ERROR_PREFIXES, FILE_VIEWER_REMOTE_MISSING_DATA_ERROR_MESSAGE, applyFileViewerEmptyPreviewState, applyFileViewerPreviewFilenameState, applyFileViewerPreviewRequestResetState, applyFileViewerPreviewSourceUrlState, applyFileViewerReadPreviewState, applyFileViewerRenderReadinessState, commitFileViewerEmptyPreviewResetState, commitFileViewerLoadStartState, commitFileViewerPreviewRequestStartState, commitFileViewerRemoteDownloadState, createFileViewerEmptyPreviewState, createFileViewerLoadStartState, createFileViewerPreviewRequestResetState, createFileViewerPreviewStateTarget, createFileViewerReadPreviewState, createFileViewerRenderCompleteState, createFileViewerRequestController, createFileViewerRequestScope, createFileViewerSourceLoadingActionHandlers, createFileViewerStreamingPdfPlaceholderFile, finalizeFileViewerPreviewLoadState, hasFileViewerPreviewSource, isFileViewerAbortError, isSameOriginUrl, normalizeFileViewerSourceUrl, normalizePdfStreamingMode, reportFileViewerMissingRemoteData, reportFileViewerPreviewLoadError, resolveFileViewerFileRefSourcePlan, resolveFileViewerLoadStartMessage, resolveFileViewerMissingRemoteDataErrorMessage, resolveFileViewerPageHref, resolveFileViewerPreviewLoadErrorMessage, resolveFileViewerPreviewRequestReason, resolveFileViewerRemoteSourcePlan, runFileViewerLocalFilePreview, runFileViewerPreviewComponentUnmount, runFileViewerPreviewRequest, runFileViewerPreviewSourceChange, runFileViewerRemoteFilePreview, runFileViewerReadAndRenderFile, runFileViewerStreamingPdfPreview, shouldStreamPdfUrl, } from './source/loading.js';
19
19
  export { DEFAULT_FILE_VIEWER_STATE_THEME, DEFAULT_FILE_VIEWER_UNSUPPORTED_DESCRIPTION, FILE_VIEWER_PREVIEW_MESSAGES, createFileViewerEmptyState, createFileViewerErrorState, createFileViewerPreviewLoadingState, createFileViewerReadyState, createFileViewerUnsupportedState, formatFileViewerErrorMessage, normalizeFileViewerErrorMessage, } from './viewer/state.js';
20
- export { FILE_VIEWER_BRAND_LICENSE_FORMAT, FILE_VIEWER_BRAND_LICENSE_KIND, FILE_VIEWER_BRAND_LICENSE_PERMISSION, FILE_VIEWER_BRAND_LICENSE_PRODUCT, FILE_VIEWER_BRAND_LICENSE_PROJECT, buildFileViewerBrandingInlineStyle, isFileViewerBrandRemovalLicense, resolveFileViewerBrandingPresentationState, } from './features/branding.js';
21
20
  export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark.js';
package/dist/index.d.ts CHANGED
@@ -65,8 +65,6 @@ export { DEFAULT_FILE_VIEWER_SOURCE_FILENAME, decodeFilename, getExtension, norm
65
65
  export type { FileViewerReadResult } from './source';
66
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';
67
67
  export type { FileViewerErrorMessageFormatter, FileViewerRendererInstallHint, } from './viewer/state';
68
- export { FILE_VIEWER_BRAND_LICENSE_FORMAT, FILE_VIEWER_BRAND_LICENSE_KIND, FILE_VIEWER_BRAND_LICENSE_PERMISSION, FILE_VIEWER_BRAND_LICENSE_PRODUCT, FILE_VIEWER_BRAND_LICENSE_PROJECT, buildFileViewerBrandingInlineStyle, isFileViewerBrandRemovalLicense, resolveFileViewerBrandingPresentationState, } from './features/branding';
69
- export type { FileViewerBrandingPresentationState, } from './features/branding';
70
68
  export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark';
71
69
  export type { FileViewerWatermarkPresentationState, FileViewerWatermarkStyle, } from './features/watermark';
72
70
  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';
@@ -87,4 +85,4 @@ export type { CreateFileViewerZoomControllerOptions, FileViewerZoomOperation, }
87
85
  export type { CreateViewerOptions } from './viewer/createViewer';
88
86
  export type { BuildExportHtmlDocumentOptions, BuildFileViewerRenderedHtmlDocumentOptions, } from './output/export';
89
87
  export type { CreateFileViewerWorkerControllerOptions, FileViewerWorkerContext, FileViewerWorkerController, FileViewerWorkerErrorHook, FileViewerWorkerEventHandler, FileViewerWorkerFactory, FileViewerWorkerMessageHook, WorkerProvider, WorkerRef, } from './platform/worker';
90
- export type { FileViewerAiOptions, FileViewerArchiveEntryActionContext, FileViewerArchiveEntryActionPolicy, FileViewerArchiveEntryActionsOptions, FileViewerArchivePasswordRequestContext, FileViewerArchivePasswordRequestReason, FileViewerArchiveOptions, FileViewerApplyViewStateOptions, FileViewerBeforeOperation, FileViewerBrandingOptions, FileViewerBrandingPosition, FileViewerBrandLicenseBundle, FileViewerBrandLicenseCertificate, FileViewerBrandLicenseInput, 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, FileViewerUiDensity, FileViewerUiOptions, 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, FileViewerArchiveEntryActionContext, FileViewerArchiveEntryActionPolicy, FileViewerArchiveEntryActionsOptions, 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, FileViewerUiDensity, FileViewerUiOptions, 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
@@ -172,7 +172,6 @@ export { createFileViewerRendererDispatcher, } from './rendering/dispatcher.js';
172
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';
173
173
  export { DEFAULT_FILE_VIEWER_SOURCE_FILENAME, decodeFilename, getExtension, normalizeFileExtension, normalizeFilename, resolveFileViewerSourceFilename, normalizeSource, readFileViewerBuffer, readFileViewerDataUrl, readFileViewerText, wrapFileViewerFileRef, } from './source/index.js';
174
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';
175
- export { FILE_VIEWER_BRAND_LICENSE_FORMAT, FILE_VIEWER_BRAND_LICENSE_KIND, FILE_VIEWER_BRAND_LICENSE_PERMISSION, FILE_VIEWER_BRAND_LICENSE_PRODUCT, FILE_VIEWER_BRAND_LICENSE_PROJECT, buildFileViewerBrandingInlineStyle, isFileViewerBrandRemovalLicense, resolveFileViewerBrandingPresentationState, } from './features/branding.js';
176
175
  export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark.js';
177
176
  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';
178
177
  export { createViewer } from './viewer/createViewer.js';
@@ -17,7 +17,6 @@ import { createFileRenderHandlerLoader, applyFileViewerRenderSurfaceState, creat
17
17
  import { createFileViewerCoreRendererRegistry } from '../renderers/index.js';
18
18
  import { createFileViewerRequestScope } from '../source/loading.js';
19
19
  import { normalizeSource } from '../source/index.js';
20
- import { resolveFileViewerBrandingPresentationState } from '../features/branding.js';
21
20
  import { buildFileViewerWatermarkInlineStyle } from '../features/watermark.js';
22
21
  import { createFileViewerUnsupportedState } from './state.js';
23
22
  const emitLifecycle = async (options, onEvent, phase, source, version, startedAt, reason) => {
@@ -108,7 +107,6 @@ export const createViewer = (container, createOptions = {}) => {
108
107
  let watermarkResizeObserver = null;
109
108
  let watermarkMutationObserver = null;
110
109
  let watermarkFrame = null;
111
- let brandingEl = null;
112
110
  const getContainerWindow = () => container.ownerDocument.defaultView || (typeof window !== 'undefined' ? window : undefined);
113
111
  const cancelWatermarkFrame = () => {
114
112
  if (watermarkFrame === null) {
@@ -236,40 +234,6 @@ export const createViewer = (container, createOptions = {}) => {
236
234
  }
237
235
  startWatermarkObservers();
238
236
  };
239
- const removeBrandingBadge = () => {
240
- brandingEl === null || brandingEl === void 0 ? void 0 : brandingEl.remove();
241
- brandingEl = null;
242
- };
243
- const syncBrandingBadge = () => {
244
- const state = resolveFileViewerBrandingPresentationState(options.branding);
245
- if (!state.visible) {
246
- removeBrandingBadge();
247
- return;
248
- }
249
- if (!brandingEl || brandingEl.ownerDocument !== container.ownerDocument) {
250
- brandingEl = container.ownerDocument.createElement('a');
251
- brandingEl.className = 'viewer-branding';
252
- brandingEl.target = '_blank';
253
- brandingEl.rel = 'noreferrer noopener';
254
- }
255
- if (state.href) {
256
- brandingEl.href = state.href;
257
- }
258
- else {
259
- brandingEl.removeAttribute('href');
260
- }
261
- brandingEl.textContent = state.text;
262
- brandingEl.title = state.title;
263
- brandingEl.setAttribute('aria-label', state.title);
264
- brandingEl.style.cssText = state.inlineStyle;
265
- const view = getContainerWindow();
266
- if ((view === null || view === void 0 ? void 0 : view.getComputedStyle) && view.getComputedStyle(container).position === 'static' && !container.style.position) {
267
- container.style.position = 'relative';
268
- }
269
- if (brandingEl.parentElement !== container) {
270
- container.appendChild(brandingEl);
271
- }
272
- };
273
237
  const ensureRendererPluginsInstalled = async () => {
274
238
  const nextMode = options.rendererMode || 'extend';
275
239
  const nextRendererInput = options.renderers;
@@ -495,7 +459,6 @@ export const createViewer = (container, createOptions = {}) => {
495
459
  renderMissingRendererState(target, normalized.extension, options);
496
460
  applyFileViewerRenderSurfaceState(renderSurfaceState, { session: null });
497
461
  syncWatermarkOverlay();
498
- syncBrandingBadge();
499
462
  emitZoomAndOperationAvailabilityChange();
500
463
  await emitLifecycle(options, createOptions.onEvent, 'load-complete', normalized, version, startedAt);
501
464
  return null;
@@ -528,7 +491,6 @@ export const createViewer = (container, createOptions = {}) => {
528
491
  }
529
492
  applyFileViewerRenderSurfaceState(renderSurfaceState, { session });
530
493
  syncWatermarkOverlay();
531
- syncBrandingBadge();
532
494
  zoomController.refreshProvider();
533
495
  viewStateController.refreshProvider();
534
496
  await documentActions.refreshDocumentIndex({ notify: false });
@@ -549,7 +511,6 @@ export const createViewer = (container, createOptions = {}) => {
549
511
  viewStateController.destroy();
550
512
  fitController.destroy();
551
513
  removeWatermarkOverlay();
552
- removeBrandingBadge();
553
514
  },
554
515
  updateOptions(nextOptions) {
555
516
  const previousFit = options.fit;
@@ -558,7 +519,6 @@ export const createViewer = (container, createOptions = {}) => {
558
519
  ...nextOptions,
559
520
  };
560
521
  syncWatermarkOverlay();
561
- syncBrandingBadge();
562
522
  if ('fit' in nextOptions && nextOptions.fit !== previousFit) {
563
523
  fitController.resetAutoFit();
564
524
  fitController.scheduleFit('resize');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@file-viewer/core",
3
- "version": "2.1.21",
3
+ "version": "2.1.22",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Framework-neutral modular TypeScript core for Flyfish File Viewer renderer orchestration, lifecycle APIs, search, zoom, print, and export",
@@ -1,17 +0,0 @@
1
- import type { FileViewerBrandLicenseInput, FileViewerBrandingOptions } from '../contracts/types';
2
- export declare const FILE_VIEWER_BRAND_LICENSE_FORMAT = "flyfish-viewer-brand-license-v1";
3
- export declare const FILE_VIEWER_BRAND_LICENSE_PRODUCT = "flyfish-viewer";
4
- export declare const FILE_VIEWER_BRAND_LICENSE_PROJECT = "file-viewer";
5
- export declare const FILE_VIEWER_BRAND_LICENSE_KIND = "brand-removal";
6
- export declare const FILE_VIEWER_BRAND_LICENSE_PERMISSION = "remove-branding";
7
- export interface FileViewerBrandingPresentationState {
8
- visible: boolean;
9
- licenseValid: boolean;
10
- text: string;
11
- href: string;
12
- title: string;
13
- inlineStyle: string;
14
- }
15
- export declare const isFileViewerBrandRemovalLicense: (input: FileViewerBrandLicenseInput | undefined, now?: number) => boolean;
16
- export declare const buildFileViewerBrandingInlineStyle: (branding?: boolean | FileViewerBrandingOptions) => string;
17
- export declare const resolveFileViewerBrandingPresentationState: (branding?: boolean | FileViewerBrandingOptions, now?: number) => FileViewerBrandingPresentationState;
@@ -1,128 +0,0 @@
1
- export const FILE_VIEWER_BRAND_LICENSE_FORMAT = 'flyfish-viewer-brand-license-v1';
2
- export const FILE_VIEWER_BRAND_LICENSE_PRODUCT = 'flyfish-viewer';
3
- export const FILE_VIEWER_BRAND_LICENSE_PROJECT = 'file-viewer';
4
- export const FILE_VIEWER_BRAND_LICENSE_KIND = 'brand-removal';
5
- export const FILE_VIEWER_BRAND_LICENSE_PERMISSION = 'remove-branding';
6
- const DEFAULT_BRANDING_TEXT = 'Powered by Flyfish Viewer';
7
- const DEFAULT_BRANDING_HREF = '';
8
- const DEFAULT_BRANDING_TITLE = 'Flyfish Viewer';
9
- const isRecord = (value) => {
10
- return !!value && typeof value === 'object' && !Array.isArray(value);
11
- };
12
- const readJson = (value) => {
13
- try {
14
- return JSON.parse(value);
15
- }
16
- catch {
17
- return undefined;
18
- }
19
- };
20
- const normalizeLicenseInput = (input) => {
21
- const value = typeof input === 'string' ? readJson(input) : input;
22
- if (!isRecord(value)) {
23
- return null;
24
- }
25
- const certificateValue = 'certificate' in value ? value.certificate : value;
26
- const certificate = typeof certificateValue === 'string'
27
- ? readJson(certificateValue)
28
- : certificateValue;
29
- if (!isRecord(certificate)) {
30
- return null;
31
- }
32
- return {
33
- certificate,
34
- signature: typeof value.signature === 'string' ? value.signature.trim() : '',
35
- };
36
- };
37
- const getString = (record, key) => {
38
- const value = record[key];
39
- return typeof value === 'string' ? value.trim() : '';
40
- };
41
- const hasPermission = (record, permission) => {
42
- const permissions = record.permissions;
43
- return Array.isArray(permissions) && permissions.some(item => item === permission);
44
- };
45
- const isWithinValidTime = (record, now) => {
46
- const expiresAt = getString(record, 'expiresAt');
47
- if (!expiresAt) {
48
- return true;
49
- }
50
- const timestamp = Date.parse(expiresAt);
51
- return Number.isFinite(timestamp) && timestamp >= now;
52
- };
53
- export const isFileViewerBrandRemovalLicense = (input, now = Date.now()) => {
54
- const normalized = normalizeLicenseInput(input);
55
- if (!normalized || !normalized.signature) {
56
- return false;
57
- }
58
- const certificate = normalized.certificate;
59
- return getString(certificate, 'format') === FILE_VIEWER_BRAND_LICENSE_FORMAT
60
- && getString(certificate, 'product') === FILE_VIEWER_BRAND_LICENSE_PRODUCT
61
- && getString(certificate, 'project') === FILE_VIEWER_BRAND_LICENSE_PROJECT
62
- && getString(certificate, 'licenseKind') === FILE_VIEWER_BRAND_LICENSE_KIND
63
- && hasPermission(certificate, FILE_VIEWER_BRAND_LICENSE_PERMISSION)
64
- && isWithinValidTime(certificate, now);
65
- };
66
- const normalizeBrandingOptions = (branding) => {
67
- if (branding === undefined || branding === false) {
68
- return null;
69
- }
70
- if (branding === true) {
71
- return { enabled: true };
72
- }
73
- return branding;
74
- };
75
- const resolvePositionStyle = (position) => {
76
- switch (position) {
77
- case 'bottom-left':
78
- return 'left:10px;bottom:10px;';
79
- case 'top-left':
80
- return 'left:10px;top:10px;';
81
- case 'top-right':
82
- return 'right:10px;top:10px;';
83
- case 'bottom-right':
84
- default:
85
- return 'right:10px;bottom:10px;';
86
- }
87
- };
88
- export const buildFileViewerBrandingInlineStyle = (branding) => {
89
- const normalized = normalizeBrandingOptions(branding);
90
- if (!normalized) {
91
- return '';
92
- }
93
- return [
94
- 'position:absolute',
95
- resolvePositionStyle(normalized.position),
96
- 'z-index:30',
97
- 'display:inline-flex',
98
- 'align-items:center',
99
- 'max-width:calc(100% - 20px)',
100
- 'height:24px',
101
- 'padding:0 9px',
102
- 'border-radius:999px',
103
- 'box-sizing:border-box',
104
- 'background:rgba(15,23,42,0.68)',
105
- 'color:#fff',
106
- 'font:500 11px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif',
107
- 'text-decoration:none',
108
- 'white-space:nowrap',
109
- 'overflow:hidden',
110
- 'text-overflow:ellipsis',
111
- 'backdrop-filter:blur(8px)',
112
- 'box-shadow:0 6px 18px rgba(15,23,42,0.18)',
113
- ].join(';');
114
- };
115
- export const resolveFileViewerBrandingPresentationState = (branding, now = Date.now()) => {
116
- var _a, _b, _c;
117
- const normalized = normalizeBrandingOptions(branding);
118
- const licenseValid = !!normalized && isFileViewerBrandRemovalLicense(normalized.license, now);
119
- const visible = !!normalized && (normalized.enabled !== false || !licenseValid);
120
- return {
121
- visible,
122
- licenseValid,
123
- text: ((_a = normalized === null || normalized === void 0 ? void 0 : normalized.text) === null || _a === void 0 ? void 0 : _a.trim()) || DEFAULT_BRANDING_TEXT,
124
- href: ((_b = normalized === null || normalized === void 0 ? void 0 : normalized.href) === null || _b === void 0 ? void 0 : _b.trim()) || DEFAULT_BRANDING_HREF,
125
- title: ((_c = normalized === null || normalized === void 0 ? void 0 : normalized.title) === null || _c === void 0 ? void 0 : _c.trim()) || DEFAULT_BRANDING_TITLE,
126
- inlineStyle: visible ? buildFileViewerBrandingInlineStyle(normalized || undefined) : '',
127
- };
128
- };