@file-viewer/core 2.1.20 → 2.1.21
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/contracts/types.d.ts +34 -0
- package/dist/features/branding.d.ts +17 -0
- package/dist/features/branding.js +128 -0
- package/dist/headless.d.ts +3 -1
- package/dist/headless.js +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -0
- package/dist/viewer/createViewer.js +40 -0
- package/package.json +1 -1
|
@@ -42,6 +42,35 @@ 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
|
+
}
|
|
45
74
|
export interface FileViewerToolbarOptions {
|
|
46
75
|
download?: boolean;
|
|
47
76
|
print?: boolean;
|
|
@@ -453,6 +482,11 @@ export interface FileViewerOptions {
|
|
|
453
482
|
*/
|
|
454
483
|
presets?: FileViewerRendererPresetInput;
|
|
455
484
|
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;
|
|
456
490
|
watermark?: boolean | FileViewerWatermarkOptions;
|
|
457
491
|
ui?: FileViewerUiOptions;
|
|
458
492
|
toolbar?: boolean | FileViewerToolbarOptions;
|
|
@@ -0,0 +1,17 @@
|
|
|
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;
|
|
@@ -0,0 +1,128 @@
|
|
|
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
|
+
};
|
package/dist/headless.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ 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';
|
|
25
27
|
export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark';
|
|
26
28
|
export type { FileViewerWatermarkPresentationState, FileViewerWatermarkStyle, } from './features/watermark';
|
|
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';
|
|
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';
|
package/dist/headless.js
CHANGED
|
@@ -17,4 +17,5 @@ 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';
|
|
20
21
|
export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -65,6 +65,8 @@ 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';
|
|
68
70
|
export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark';
|
|
69
71
|
export type { FileViewerWatermarkPresentationState, FileViewerWatermarkStyle, } from './features/watermark';
|
|
70
72
|
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';
|
|
@@ -85,4 +87,4 @@ export type { CreateFileViewerZoomControllerOptions, FileViewerZoomOperation, }
|
|
|
85
87
|
export type { CreateViewerOptions } from './viewer/createViewer';
|
|
86
88
|
export type { BuildExportHtmlDocumentOptions, BuildFileViewerRenderedHtmlDocumentOptions, } from './output/export';
|
|
87
89
|
export type { CreateFileViewerWorkerControllerOptions, FileViewerWorkerContext, FileViewerWorkerController, FileViewerWorkerErrorHook, FileViewerWorkerEventHandler, FileViewerWorkerFactory, FileViewerWorkerMessageHook, WorkerProvider, WorkerRef, } from './platform/worker';
|
|
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';
|
|
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';
|
package/dist/index.js
CHANGED
|
@@ -172,6 +172,7 @@ 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';
|
|
175
176
|
export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark.js';
|
|
176
177
|
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';
|
|
177
178
|
export { createViewer } from './viewer/createViewer.js';
|
|
@@ -17,6 +17,7 @@ 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';
|
|
20
21
|
import { buildFileViewerWatermarkInlineStyle } from '../features/watermark.js';
|
|
21
22
|
import { createFileViewerUnsupportedState } from './state.js';
|
|
22
23
|
const emitLifecycle = async (options, onEvent, phase, source, version, startedAt, reason) => {
|
|
@@ -107,6 +108,7 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
107
108
|
let watermarkResizeObserver = null;
|
|
108
109
|
let watermarkMutationObserver = null;
|
|
109
110
|
let watermarkFrame = null;
|
|
111
|
+
let brandingEl = null;
|
|
110
112
|
const getContainerWindow = () => container.ownerDocument.defaultView || (typeof window !== 'undefined' ? window : undefined);
|
|
111
113
|
const cancelWatermarkFrame = () => {
|
|
112
114
|
if (watermarkFrame === null) {
|
|
@@ -234,6 +236,40 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
234
236
|
}
|
|
235
237
|
startWatermarkObservers();
|
|
236
238
|
};
|
|
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
|
+
};
|
|
237
273
|
const ensureRendererPluginsInstalled = async () => {
|
|
238
274
|
const nextMode = options.rendererMode || 'extend';
|
|
239
275
|
const nextRendererInput = options.renderers;
|
|
@@ -459,6 +495,7 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
459
495
|
renderMissingRendererState(target, normalized.extension, options);
|
|
460
496
|
applyFileViewerRenderSurfaceState(renderSurfaceState, { session: null });
|
|
461
497
|
syncWatermarkOverlay();
|
|
498
|
+
syncBrandingBadge();
|
|
462
499
|
emitZoomAndOperationAvailabilityChange();
|
|
463
500
|
await emitLifecycle(options, createOptions.onEvent, 'load-complete', normalized, version, startedAt);
|
|
464
501
|
return null;
|
|
@@ -491,6 +528,7 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
491
528
|
}
|
|
492
529
|
applyFileViewerRenderSurfaceState(renderSurfaceState, { session });
|
|
493
530
|
syncWatermarkOverlay();
|
|
531
|
+
syncBrandingBadge();
|
|
494
532
|
zoomController.refreshProvider();
|
|
495
533
|
viewStateController.refreshProvider();
|
|
496
534
|
await documentActions.refreshDocumentIndex({ notify: false });
|
|
@@ -511,6 +549,7 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
511
549
|
viewStateController.destroy();
|
|
512
550
|
fitController.destroy();
|
|
513
551
|
removeWatermarkOverlay();
|
|
552
|
+
removeBrandingBadge();
|
|
514
553
|
},
|
|
515
554
|
updateOptions(nextOptions) {
|
|
516
555
|
const previousFit = options.fit;
|
|
@@ -519,6 +558,7 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
519
558
|
...nextOptions,
|
|
520
559
|
};
|
|
521
560
|
syncWatermarkOverlay();
|
|
561
|
+
syncBrandingBadge();
|
|
522
562
|
if ('fit' in nextOptions && nextOptions.fit !== previousFit) {
|
|
523
563
|
fitController.resetAutoFit();
|
|
524
564
|
fitController.scheduleFit('resize');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@file-viewer/core",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.21",
|
|
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",
|