@file-viewer/core 2.1.19 → 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/config/options.d.ts +3 -1
- package/dist/config/options.js +4 -0
- package/dist/contracts/types.d.ts +61 -0
- package/dist/features/branding.d.ts +17 -0
- package/dist/features/branding.js +128 -0
- package/dist/headless.d.ts +4 -2
- package/dist/headless.js +2 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -1
- package/dist/presentation/state.d.ts +2 -1
- package/dist/presentation/state.js +2 -1
- package/dist/viewer/createViewer.js +40 -0
- package/package.json +1 -1
package/dist/config/options.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileViewerArchiveOptions, FileViewerCadOptions, FileViewerOptions, FileViewerThemeMode, FileViewerToolbarOptions } from '../contracts/types';
|
|
1
|
+
import type { FileViewerArchiveOptions, FileViewerCadOptions, FileViewerOptions, FileViewerThemeMode, FileViewerToolbarOptions, FileViewerUiDensity } from '../contracts/types';
|
|
2
2
|
export type FileViewerSerializableToolbarOptions = Omit<FileViewerToolbarOptions, 'beforeOperation' | 'beforeDownload' | 'beforePrint' | 'beforeExportHtml'>;
|
|
3
3
|
export type FileViewerSerializableCadOptions = Omit<FileViewerCadOptions, 'workerUrl'> & {
|
|
4
4
|
workerUrl?: string;
|
|
@@ -9,6 +9,8 @@ export interface FileViewerSerializableOptions extends Omit<FileViewerOptions, '
|
|
|
9
9
|
cad?: FileViewerSerializableCadOptions;
|
|
10
10
|
}
|
|
11
11
|
export declare const normalizeFileViewerTheme: (theme: FileViewerThemeMode | undefined) => FileViewerThemeMode;
|
|
12
|
+
export declare const normalizeFileViewerUiDensity: (density: FileViewerUiDensity | undefined) => FileViewerUiDensity;
|
|
13
|
+
export declare const resolveFileViewerUiDensity: (options?: Pick<FileViewerOptions, "ui"> | null) => FileViewerUiDensity;
|
|
12
14
|
export declare const sanitizeFileViewerOptions: (options?: FileViewerOptions | FileViewerSerializableOptions | null) => FileViewerSerializableOptions | undefined;
|
|
13
15
|
export declare const serializeFileViewerOptions: (options?: FileViewerOptions | FileViewerSerializableOptions | null) => string | undefined;
|
|
14
16
|
export declare const parseFileViewerOptions: (value: unknown) => FileViewerSerializableOptions | undefined;
|
package/dist/config/options.js
CHANGED
|
@@ -51,6 +51,10 @@ const stripExecutionOnlyOptions = (value) => {
|
|
|
51
51
|
export const normalizeFileViewerTheme = (theme) => {
|
|
52
52
|
return theme === 'light' || theme === 'dark' || theme === 'system' ? theme : 'system';
|
|
53
53
|
};
|
|
54
|
+
export const normalizeFileViewerUiDensity = (density) => {
|
|
55
|
+
return density === 'compact' ? 'compact' : 'comfortable';
|
|
56
|
+
};
|
|
57
|
+
export const resolveFileViewerUiDensity = (options) => { var _a; return normalizeFileViewerUiDensity((_a = options === null || options === void 0 ? void 0 : options.ui) === null || _a === void 0 ? void 0 : _a.density); };
|
|
54
58
|
export const sanitizeFileViewerOptions = (options) => {
|
|
55
59
|
if (!isRecord(options)) {
|
|
56
60
|
return undefined;
|
|
@@ -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;
|
|
@@ -60,6 +89,23 @@ export interface FileViewerToolbarOptions {
|
|
|
60
89
|
beforePrint?: FileViewerBeforeOperation;
|
|
61
90
|
beforeExportHtml?: FileViewerBeforeOperation;
|
|
62
91
|
}
|
|
92
|
+
export interface FileViewerArchiveEntryActionContext {
|
|
93
|
+
path: string;
|
|
94
|
+
name: string;
|
|
95
|
+
extension: string;
|
|
96
|
+
size: number;
|
|
97
|
+
lastModified?: number;
|
|
98
|
+
depth: number;
|
|
99
|
+
previewable: boolean;
|
|
100
|
+
}
|
|
101
|
+
export type FileViewerArchiveEntryActionPolicy = boolean | ((entry: FileViewerArchiveEntryActionContext) => boolean);
|
|
102
|
+
export interface FileViewerArchiveEntryActionsOptions {
|
|
103
|
+
/**
|
|
104
|
+
* Controls the download button for files opened from inside an archive.
|
|
105
|
+
* The viewer-level original-file download remains controlled by toolbar options.
|
|
106
|
+
*/
|
|
107
|
+
download?: FileViewerArchiveEntryActionPolicy;
|
|
108
|
+
}
|
|
63
109
|
export interface FileViewerArchiveOptions {
|
|
64
110
|
workerUrl?: string;
|
|
65
111
|
wasmUrl?: string;
|
|
@@ -67,6 +113,7 @@ export interface FileViewerArchiveOptions {
|
|
|
67
113
|
cache?: boolean;
|
|
68
114
|
maxArchiveSize?: number;
|
|
69
115
|
maxEntryPreviewSize?: number;
|
|
116
|
+
entryActions?: FileViewerArchiveEntryActionsOptions;
|
|
70
117
|
/**
|
|
71
118
|
* Optional archive password. It is used for the first encrypted archive
|
|
72
119
|
* attempt; if it is wrong, the built-in password dialog or requestPassword
|
|
@@ -360,6 +407,14 @@ export interface FileViewerAiOptions {
|
|
|
360
407
|
chunkSize?: number;
|
|
361
408
|
chunkOverlap?: number;
|
|
362
409
|
}
|
|
410
|
+
export type FileViewerUiDensity = 'comfortable' | 'compact';
|
|
411
|
+
export interface FileViewerUiOptions {
|
|
412
|
+
/**
|
|
413
|
+
* Controls spacing density for viewer chrome such as toolbars, headers,
|
|
414
|
+
* archive lists, badges, search inputs, and compact action clusters.
|
|
415
|
+
*/
|
|
416
|
+
density?: FileViewerUiDensity;
|
|
417
|
+
}
|
|
363
418
|
export interface FileViewerOptions {
|
|
364
419
|
theme?: FileViewerThemeMode;
|
|
365
420
|
/**
|
|
@@ -427,7 +482,13 @@ export interface FileViewerOptions {
|
|
|
427
482
|
*/
|
|
428
483
|
presets?: FileViewerRendererPresetInput;
|
|
429
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;
|
|
430
490
|
watermark?: boolean | FileViewerWatermarkOptions;
|
|
491
|
+
ui?: FileViewerUiOptions;
|
|
431
492
|
toolbar?: boolean | FileViewerToolbarOptions;
|
|
432
493
|
search?: boolean | FileViewerSearchOptions;
|
|
433
494
|
ai?: boolean | FileViewerAiOptions;
|
|
@@ -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
|
@@ -7,7 +7,7 @@ export { FILE_VIEWER_BEFORE_OPERATION_ERROR_PREFIX, DEFAULT_FILE_VIEWER_TOOLBAR_
|
|
|
7
7
|
export { FILE_VIEWER_BUILTIN_MESSAGES, FILE_VIEWER_DEFAULT_LOCALE, FILE_VIEWER_FALLBACK_LOCALE, createFileViewerTranslator, formatFileViewerMessage, normalizeFileViewerLocale, resolveFileViewerLocale, translateFileViewerMessage, } from './i18n/messages';
|
|
8
8
|
export type { FileViewerI18nInput, FileViewerResolvedLocale, ResolveFileViewerI18nInput, } from './i18n/messages';
|
|
9
9
|
export type { BuildFileViewerLifecycleContextFromNormalizedSourceInput, BuildFileViewerOperationContextFromLifecycleStateInput, BuildFileViewerLifecycleContextInput, BuiltFileViewerLifecycleContext, BuiltFileViewerOperationContext, CreateFileViewerLifecycleActionsInput, CreateFileViewerPublicApiInput, CreateFileViewerToolbarActionsInput, CreateFileViewerToolbarControllerActionHandlersInput, DispatchFileViewerLifecycleEventInput, DispatchFileViewerOperationAvailabilityChangeInput, DispatchFileViewerOperationContextEventInput, DispatchFileViewerZoomChangeInput, FileViewerActiveUnloadState, FileViewerLifecycleActions, FileViewerLifecycleComponentEmit, FileViewerLifecycleHookErrorLogger, FileViewerLifecycleStateController, FileViewerOperationErrorLogger, FileViewerToolbarActions, FileViewerToolbarControllerActionHandlers, FileViewerToolbarState, FileViewerToolbarZoomSyncSnapshot, FileViewerZoomButtonAction, ReportFileViewerLifecycleHookErrorInput, ReportFileViewerOperationErrorInput, ResolveFileViewerBeforeOperationErrorMessageInput, ResolveFileViewerLifecycleHookErrorMessageInput, ResolveFileViewerOperationAvailabilityInput, ResolveFileViewerToolbarStateInput, RunFileViewerActiveUnloadCompleteInput, RunFileViewerActiveUnloadStartInput, RunFileViewerBeforeOperationInput, RunFileViewerToolbarAvailabilitySyncInput, RunFileViewerToolbarZoomSyncInput, SerializedFileViewerContext, } from './lifecycle/operations';
|
|
10
|
-
export { getFileViewerOptionsSearchParam, normalizeFileViewerTheme, parseFileViewerOptions, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, } from './config/options';
|
|
10
|
+
export { getFileViewerOptionsSearchParam, normalizeFileViewerUiDensity, normalizeFileViewerTheme, parseFileViewerOptions, resolveFileViewerUiDensity, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, } from './config/options';
|
|
11
11
|
export type { FileViewerSerializableCadOptions, FileViewerSerializableOptions, FileViewerSerializableToolbarOptions, } from './config/options';
|
|
12
12
|
export { resolveFileViewerPresentationState, } from './presentation/state';
|
|
13
13
|
export type { FileViewerPresentationState, ResolveFileViewerPresentationStateInput, } from './presentation/state';
|
|
@@ -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, 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, 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
|
@@ -9,7 +9,7 @@ export { DEFAULT_FILE_VIEWER_TEXT_CHUNK_OVERLAP, DEFAULT_FILE_VIEWER_TEXT_CHUNK_
|
|
|
9
9
|
export { ARCHIVE_EXTENSIONS, DEFAULT_RENDERER_DEFINITIONS, DEFAULT_SUPPORTED_EXTENSIONS, IMAGE_EXTENSIONS, MODEL_EXTENSIONS, TEXT_EXTENSIONS, } from './registry/formats.js';
|
|
10
10
|
export { FILE_VIEWER_BEFORE_OPERATION_ERROR_PREFIX, DEFAULT_FILE_VIEWER_TOOLBAR_ORDER, FILE_VIEWER_LIFECYCLE_HOOK_ERROR_MESSAGE_PREFIX, FILE_VIEWER_LIFECYCLE_HOOKS, 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, dispatchFileViewerOperationAvailabilityChange, dispatchFileViewerOperationContextEvent, dispatchFileViewerZoomChange, emitFileViewerComponentLifecycleEvent, getFileViewerBeforeOperationHooks, getFileViewerLifecycleHookName, hasVisibleFileViewerToolbarActions, isFileViewerToolbarOperationPermitted, isFileViewerZoomButtonDisabled, normalizeFileViewerToolbar, reportFileViewerLifecycleHookError, reportFileViewerOperationError, resolveFileViewerBeforeOperationErrorMessage, resolveFileViewerLifecycleFallbackSource, resolveFileViewerLifecycleHookErrorMessage, resolveFileViewerOperationAvailability, resolveFileViewerToolbarPosition, resolveFileViewerToolbarOrder, resolveFileViewerToolbarState, resolveVisibleFileViewerToolbar, runFileViewerActiveUnloadComplete, runFileViewerActiveUnloadStart, runFileViewerBeforeOperation, runFileViewerLifecycleHook, runFileViewerToolbarAvailabilitySync, runFileViewerToolbarZoomSync, serializeFileViewerContext, } from './lifecycle/operations.js';
|
|
11
11
|
export { FILE_VIEWER_BUILTIN_MESSAGES, FILE_VIEWER_DEFAULT_LOCALE, FILE_VIEWER_FALLBACK_LOCALE, createFileViewerTranslator, formatFileViewerMessage, normalizeFileViewerLocale, resolveFileViewerLocale, translateFileViewerMessage, } from './i18n/messages.js';
|
|
12
|
-
export { getFileViewerOptionsSearchParam, normalizeFileViewerTheme, parseFileViewerOptions, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, } from './config/options.js';
|
|
12
|
+
export { getFileViewerOptionsSearchParam, normalizeFileViewerUiDensity, normalizeFileViewerTheme, parseFileViewerOptions, resolveFileViewerUiDensity, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, } from './config/options.js';
|
|
13
13
|
export { resolveFileViewerPresentationState, } from './presentation/state.js';
|
|
14
14
|
export { createRendererRegistry, } from './registry/registry.js';
|
|
15
15
|
export { createFileViewerRendererDispatcher, } from './rendering/dispatcher.js';
|
|
@@ -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
|
@@ -55,7 +55,7 @@ export { FALLBACK_FILE_VIEWER_LOADING_THEME, FILE_VIEWER_LOADING_THEME_MAP, appl
|
|
|
55
55
|
export type { FileViewerLoadingController, FileViewerLoadingControllerActionHandlers, RunFileViewerLoadingExtensionSyncInput, } from './viewer/loading';
|
|
56
56
|
export { createFileViewerLifecycleFacade, } from './lifecycle/facade';
|
|
57
57
|
export type { BuildFileViewerLifecycleFacadeLoadStartStateInput, BuildFileViewerLifecycleFacadeRenderCompleteStateInput, CreateFileViewerLifecycleFacadeInput, FileViewerLifecycleFacade, } from './lifecycle/facade';
|
|
58
|
-
export { getFileViewerOptionsSearchParam, normalizeFileViewerTheme, parseFileViewerOptions, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, } from './config/options';
|
|
58
|
+
export { getFileViewerOptionsSearchParam, normalizeFileViewerUiDensity, normalizeFileViewerTheme, parseFileViewerOptions, resolveFileViewerUiDensity, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, } from './config/options';
|
|
59
59
|
export { resolveFileViewerPresentationState, } from './presentation/state';
|
|
60
60
|
export type { FileViewerPresentationState, ResolveFileViewerPresentationStateInput, } from './presentation/state';
|
|
61
61
|
export { createFileViewerRendererDispatcher, } from './rendering/dispatcher';
|
|
@@ -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, 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';
|
|
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
|
@@ -166,12 +166,13 @@ export { ADAPTER_PRINT_REQUIRED_EXTENSIONS, applyFileViewerZoomAvailability, cre
|
|
|
166
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';
|
|
167
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';
|
|
168
168
|
export { createFileViewerLifecycleFacade, } from './lifecycle/facade.js';
|
|
169
|
-
export { getFileViewerOptionsSearchParam, normalizeFileViewerTheme, parseFileViewerOptions, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, } from './config/options.js';
|
|
169
|
+
export { getFileViewerOptionsSearchParam, normalizeFileViewerUiDensity, normalizeFileViewerTheme, parseFileViewerOptions, resolveFileViewerUiDensity, sanitizeFileViewerOptions, serializeFileViewerOptions, setFileViewerOptionsSearchParam, } from './config/options.js';
|
|
170
170
|
export { resolveFileViewerPresentationState, } from './presentation/state.js';
|
|
171
171
|
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';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileViewerFileRef, FileViewerOptions, FileViewerThemeMode, FileViewerToolbarOptions } from '../contracts/types';
|
|
1
|
+
import type { FileViewerFileRef, FileViewerOptions, FileViewerThemeMode, FileViewerToolbarOptions, FileViewerUiDensity } from '../contracts/types';
|
|
2
2
|
export interface ResolveFileViewerPresentationStateInput {
|
|
3
3
|
filename?: string;
|
|
4
4
|
file?: FileViewerFileRef;
|
|
@@ -10,5 +10,6 @@ export interface FileViewerPresentationState {
|
|
|
10
10
|
extension: string;
|
|
11
11
|
toolbar: FileViewerToolbarOptions;
|
|
12
12
|
theme: FileViewerThemeMode;
|
|
13
|
+
density: FileViewerUiDensity;
|
|
13
14
|
}
|
|
14
15
|
export declare const resolveFileViewerPresentationState: ({ filename, file, url, options, }: ResolveFileViewerPresentationStateInput) => FileViewerPresentationState;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { normalizeFileViewerToolbar } from '../lifecycle/operations.js';
|
|
2
|
-
import { normalizeFileViewerTheme } from '../config/options.js';
|
|
2
|
+
import { normalizeFileViewerTheme, resolveFileViewerUiDensity } from '../config/options.js';
|
|
3
3
|
import { getExtension, resolveFileViewerSourceFilename } from '../source/index.js';
|
|
4
4
|
export const resolveFileViewerPresentationState = ({ filename, file, url, options, }) => {
|
|
5
5
|
const displayFilename = resolveFileViewerSourceFilename({
|
|
@@ -12,5 +12,6 @@ export const resolveFileViewerPresentationState = ({ filename, file, url, option
|
|
|
12
12
|
extension: getExtension(displayFilename),
|
|
13
13
|
toolbar: normalizeFileViewerToolbar(options),
|
|
14
14
|
theme: normalizeFileViewerTheme(options === null || options === void 0 ? void 0 : options.theme),
|
|
15
|
+
density: resolveFileViewerUiDensity(options),
|
|
15
16
|
};
|
|
16
17
|
};
|
|
@@ -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",
|