@file-viewer/core 2.1.18 → 2.1.20
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 +27 -0
- package/dist/features/document/dom/providers.d.ts +5 -3
- package/dist/features/document/dom/providers.js +33 -11
- package/dist/features/document/fit.js +10 -1
- package/dist/headless.d.ts +2 -2
- package/dist/headless.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/presentation/state.d.ts +2 -1
- package/dist/presentation/state.js +2 -1
- package/dist/renderers/image.js +47 -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;
|
|
@@ -60,6 +60,23 @@ export interface FileViewerToolbarOptions {
|
|
|
60
60
|
beforePrint?: FileViewerBeforeOperation;
|
|
61
61
|
beforeExportHtml?: FileViewerBeforeOperation;
|
|
62
62
|
}
|
|
63
|
+
export interface FileViewerArchiveEntryActionContext {
|
|
64
|
+
path: string;
|
|
65
|
+
name: string;
|
|
66
|
+
extension: string;
|
|
67
|
+
size: number;
|
|
68
|
+
lastModified?: number;
|
|
69
|
+
depth: number;
|
|
70
|
+
previewable: boolean;
|
|
71
|
+
}
|
|
72
|
+
export type FileViewerArchiveEntryActionPolicy = boolean | ((entry: FileViewerArchiveEntryActionContext) => boolean);
|
|
73
|
+
export interface FileViewerArchiveEntryActionsOptions {
|
|
74
|
+
/**
|
|
75
|
+
* Controls the download button for files opened from inside an archive.
|
|
76
|
+
* The viewer-level original-file download remains controlled by toolbar options.
|
|
77
|
+
*/
|
|
78
|
+
download?: FileViewerArchiveEntryActionPolicy;
|
|
79
|
+
}
|
|
63
80
|
export interface FileViewerArchiveOptions {
|
|
64
81
|
workerUrl?: string;
|
|
65
82
|
wasmUrl?: string;
|
|
@@ -67,6 +84,7 @@ export interface FileViewerArchiveOptions {
|
|
|
67
84
|
cache?: boolean;
|
|
68
85
|
maxArchiveSize?: number;
|
|
69
86
|
maxEntryPreviewSize?: number;
|
|
87
|
+
entryActions?: FileViewerArchiveEntryActionsOptions;
|
|
70
88
|
/**
|
|
71
89
|
* Optional archive password. It is used for the first encrypted archive
|
|
72
90
|
* attempt; if it is wrong, the built-in password dialog or requestPassword
|
|
@@ -360,6 +378,14 @@ export interface FileViewerAiOptions {
|
|
|
360
378
|
chunkSize?: number;
|
|
361
379
|
chunkOverlap?: number;
|
|
362
380
|
}
|
|
381
|
+
export type FileViewerUiDensity = 'comfortable' | 'compact';
|
|
382
|
+
export interface FileViewerUiOptions {
|
|
383
|
+
/**
|
|
384
|
+
* Controls spacing density for viewer chrome such as toolbars, headers,
|
|
385
|
+
* archive lists, badges, search inputs, and compact action clusters.
|
|
386
|
+
*/
|
|
387
|
+
density?: FileViewerUiDensity;
|
|
388
|
+
}
|
|
363
389
|
export interface FileViewerOptions {
|
|
364
390
|
theme?: FileViewerThemeMode;
|
|
365
391
|
/**
|
|
@@ -428,6 +454,7 @@ export interface FileViewerOptions {
|
|
|
428
454
|
presets?: FileViewerRendererPresetInput;
|
|
429
455
|
renderers?: FileViewerRendererPluginInput;
|
|
430
456
|
watermark?: boolean | FileViewerWatermarkOptions;
|
|
457
|
+
ui?: FileViewerUiOptions;
|
|
431
458
|
toolbar?: boolean | FileViewerToolbarOptions;
|
|
432
459
|
search?: boolean | FileViewerSearchOptions;
|
|
433
460
|
ai?: boolean | FileViewerAiOptions;
|
|
@@ -8,12 +8,14 @@ export interface FileViewerZoomProviderHost extends HTMLElement {
|
|
|
8
8
|
export interface FileViewerViewStateProviderHost extends HTMLElement {
|
|
9
9
|
__flyfishViewerViewStateProvider?: FileViewerViewStateProvider;
|
|
10
10
|
}
|
|
11
|
+
type FileViewerProviderSearchRoot = HTMLElement | ShadowRoot | null | undefined;
|
|
11
12
|
export declare const registerFileViewerSearchProvider: (host: HTMLElement, provider: FileViewerSearchProvider) => void;
|
|
12
13
|
export declare const unregisterFileViewerSearchProvider: (host: HTMLElement | null | undefined) => void;
|
|
13
|
-
export declare const findFileViewerSearchProvider: (root:
|
|
14
|
+
export declare const findFileViewerSearchProvider: (root: FileViewerProviderSearchRoot) => FileViewerSearchProvider | null;
|
|
14
15
|
export declare const registerFileViewerZoomProvider: (host: HTMLElement, provider: FileViewerZoomProvider) => void;
|
|
15
16
|
export declare const unregisterFileViewerZoomProvider: (host: HTMLElement | null | undefined) => void;
|
|
16
|
-
export declare const findFileViewerZoomProvider: (root:
|
|
17
|
+
export declare const findFileViewerZoomProvider: (root: FileViewerProviderSearchRoot) => FileViewerZoomProvider | null;
|
|
17
18
|
export declare const registerFileViewerViewStateProvider: (host: HTMLElement, provider: FileViewerViewStateProvider) => void;
|
|
18
19
|
export declare const unregisterFileViewerViewStateProvider: (host: HTMLElement | null | undefined) => void;
|
|
19
|
-
export declare const findFileViewerViewStateProvider: (root:
|
|
20
|
+
export declare const findFileViewerViewStateProvider: (root: FileViewerProviderSearchRoot) => FileViewerViewStateProvider | null;
|
|
21
|
+
export {};
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
const searchProviderRegistry = new WeakMap();
|
|
2
2
|
const zoomProviderRegistry = new WeakMap();
|
|
3
3
|
const viewStateProviderRegistry = new WeakMap();
|
|
4
|
+
const isProviderElement = (root) => {
|
|
5
|
+
return !!root && root.nodeType === 1;
|
|
6
|
+
};
|
|
7
|
+
const queryProviderHosts = (root, selector) => {
|
|
8
|
+
if (!(root === null || root === void 0 ? void 0 : root.querySelectorAll)) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
const hosts = Array.from(root.querySelectorAll(selector));
|
|
12
|
+
if (isProviderElement(root) && root.shadowRoot) {
|
|
13
|
+
hosts.push(...queryProviderHosts(root.shadowRoot, selector));
|
|
14
|
+
}
|
|
15
|
+
const elements = Array.from(root.querySelectorAll('*'));
|
|
16
|
+
for (const element of elements) {
|
|
17
|
+
if (element.shadowRoot) {
|
|
18
|
+
hosts.push(...queryProviderHosts(element.shadowRoot, selector));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return hosts;
|
|
22
|
+
};
|
|
4
23
|
export const registerFileViewerSearchProvider = (host, provider) => {
|
|
5
24
|
searchProviderRegistry.set(host, provider);
|
|
6
25
|
host.__flyfishViewerSearchProvider = provider;
|
|
@@ -13,15 +32,16 @@ export const unregisterFileViewerSearchProvider = (host) => {
|
|
|
13
32
|
delete host.__flyfishViewerSearchProvider;
|
|
14
33
|
};
|
|
15
34
|
export const findFileViewerSearchProvider = (root) => {
|
|
16
|
-
var _a;
|
|
17
35
|
if (!root) {
|
|
18
36
|
return null;
|
|
19
37
|
}
|
|
20
|
-
const direct =
|
|
38
|
+
const direct = isProviderElement(root)
|
|
39
|
+
? searchProviderRegistry.get(root) || root.__flyfishViewerSearchProvider
|
|
40
|
+
: null;
|
|
21
41
|
if (direct) {
|
|
22
42
|
return direct;
|
|
23
43
|
}
|
|
24
|
-
const host = (
|
|
44
|
+
const host = queryProviderHosts(root, '[data-viewer-search-provider]')[0];
|
|
25
45
|
return host
|
|
26
46
|
? searchProviderRegistry.get(host) || host.__flyfishViewerSearchProvider || null
|
|
27
47
|
: null;
|
|
@@ -40,15 +60,16 @@ export const unregisterFileViewerZoomProvider = (host) => {
|
|
|
40
60
|
delete host.__flyfishViewerZoomProvider;
|
|
41
61
|
};
|
|
42
62
|
export const findFileViewerZoomProvider = (root) => {
|
|
43
|
-
var _a;
|
|
44
63
|
if (!root) {
|
|
45
64
|
return null;
|
|
46
65
|
}
|
|
47
|
-
const direct =
|
|
66
|
+
const direct = isProviderElement(root)
|
|
67
|
+
? zoomProviderRegistry.get(root) || root.__flyfishViewerZoomProvider
|
|
68
|
+
: null;
|
|
48
69
|
if (direct) {
|
|
49
70
|
return direct;
|
|
50
71
|
}
|
|
51
|
-
const host = (
|
|
72
|
+
const host = queryProviderHosts(root, '[data-viewer-zoom-provider]')[0];
|
|
52
73
|
return host
|
|
53
74
|
? zoomProviderRegistry.get(host) || host.__flyfishViewerZoomProvider || null
|
|
54
75
|
: null;
|
|
@@ -67,16 +88,17 @@ export const unregisterFileViewerViewStateProvider = (host) => {
|
|
|
67
88
|
delete host.__flyfishViewerViewStateProvider;
|
|
68
89
|
};
|
|
69
90
|
export const findFileViewerViewStateProvider = (root) => {
|
|
70
|
-
var _a;
|
|
71
91
|
if (!root) {
|
|
72
92
|
return null;
|
|
73
93
|
}
|
|
74
|
-
const direct =
|
|
75
|
-
root
|
|
76
|
-
|
|
94
|
+
const direct = isProviderElement(root)
|
|
95
|
+
? viewStateProviderRegistry.get(root) ||
|
|
96
|
+
root.__flyfishViewerViewStateProvider
|
|
97
|
+
: null;
|
|
98
|
+
if (direct && (!isProviderElement(root) || root.dataset.viewerViewStateProvider !== 'generic')) {
|
|
77
99
|
return direct;
|
|
78
100
|
}
|
|
79
|
-
const hosts =
|
|
101
|
+
const hosts = queryProviderHosts(root, '[data-viewer-view-state-provider]');
|
|
80
102
|
const customHost = hosts.find(host => host.dataset.viewerViewStateProvider !== 'generic');
|
|
81
103
|
const genericHost = hosts.find(host => host.dataset.viewerViewStateProvider === 'generic');
|
|
82
104
|
const host = customHost || genericHost;
|
|
@@ -147,6 +147,12 @@ const withProviderResult = (result, request, provider) => ({
|
|
|
147
147
|
provider: (result === null || result === void 0 ? void 0 : result.provider) || provider,
|
|
148
148
|
state: result === null || result === void 0 ? void 0 : result.state,
|
|
149
149
|
});
|
|
150
|
+
const isRetriableFitReason = (reason) => {
|
|
151
|
+
return reason === 'pending' ||
|
|
152
|
+
reason === 'retry' ||
|
|
153
|
+
reason === 'image-not-ready' ||
|
|
154
|
+
reason === 'unmeasurable';
|
|
155
|
+
};
|
|
150
156
|
const readViewportSize = (root) => {
|
|
151
157
|
var _a;
|
|
152
158
|
const rect = (_a = root.getBoundingClientRect) === null || _a === void 0 ? void 0 : _a.call(root);
|
|
@@ -237,6 +243,7 @@ export const createFileViewerFitController = ({ root, enabled, getFit = () => un
|
|
|
237
243
|
container: currentRoot,
|
|
238
244
|
};
|
|
239
245
|
const viewStateProvider = findFileViewerViewStateProvider(currentRoot);
|
|
246
|
+
let lastProviderResult = null;
|
|
240
247
|
if (viewStateProvider === null || viewStateProvider === void 0 ? void 0 : viewStateProvider.fit) {
|
|
241
248
|
const result = withProviderResult(await viewStateProvider.fit(request), request, 'view-state');
|
|
242
249
|
if (result.applied) {
|
|
@@ -244,6 +251,7 @@ export const createFileViewerFitController = ({ root, enabled, getFit = () => un
|
|
|
244
251
|
onFit === null || onFit === void 0 ? void 0 : onFit(result);
|
|
245
252
|
return result;
|
|
246
253
|
}
|
|
254
|
+
lastProviderResult = result;
|
|
247
255
|
}
|
|
248
256
|
const zoomProvider = findFileViewerZoomProvider(currentRoot);
|
|
249
257
|
if (zoomProvider === null || zoomProvider === void 0 ? void 0 : zoomProvider.fit) {
|
|
@@ -253,11 +261,12 @@ export const createFileViewerFitController = ({ root, enabled, getFit = () => un
|
|
|
253
261
|
onFit === null || onFit === void 0 ? void 0 : onFit(result);
|
|
254
262
|
return result;
|
|
255
263
|
}
|
|
264
|
+
lastProviderResult = result;
|
|
256
265
|
}
|
|
257
266
|
const noop = createNoopFitResult(normalized, viewStateProvider || zoomProvider
|
|
258
267
|
? 'unsupported'
|
|
259
268
|
: 'no-provider', source);
|
|
260
|
-
if (noop.reason === 'no-provider') {
|
|
269
|
+
if (noop.reason === 'no-provider' || isRetriableFitReason(lastProviderResult === null || lastProviderResult === void 0 ? void 0 : lastProviderResult.reason)) {
|
|
261
270
|
scheduleRetry(fit, source, reason);
|
|
262
271
|
}
|
|
263
272
|
return noop;
|
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';
|
|
@@ -24,4 +24,4 @@ export { DEFAULT_FILE_VIEWER_STATE_THEME, DEFAULT_FILE_VIEWER_UNSUPPORTED_DESCRI
|
|
|
24
24
|
export type { FileViewerErrorMessageFormatter, } from './viewer/state';
|
|
25
25
|
export { buildFileViewerWatermarkBackgroundImage, buildFileViewerWatermarkInlineStyle, buildFileViewerWatermarkStyle, buildFileViewerWatermarkSvg, normalizeFileViewerWatermark, resolveFileViewerWatermarkPresentationState, } from './features/watermark';
|
|
26
26
|
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';
|
|
27
|
+
export type { FileRenderContext, FileRenderExportAdapter, FileRenderExportMode, FileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerBuiltinRendererPreset, FileViewerAiOptions, FileViewerArchiveEntryActionContext, FileViewerArchiveEntryActionPolicy, FileViewerArchiveEntryActionsOptions, FileViewerArchiveOptions, FileViewerApplyViewStateOptions, FileViewerBeforeOperation, FileViewerCadDwfLineWeightMode, FileViewerCadOptions, FileViewerCadRenderer, FileViewerComponentEmits, FileViewerComponentEventMap, FileViewerComponentProps, FileViewerDocumentAnchor, FileViewerDocumentChunk, FileViewerDocxOptions, FileViewerDrawingOptions, FileViewerDownloadOptions, FileViewerEvent, FileViewerEventHandler, FileViewerEventType, FileViewerExportHtmlOptions, FileViewerFileRef, FileViewerFitMode, FileViewerFitOptions, FileViewerFitRequest, FileViewerFitResize, FileViewerFitResult, FileViewerGeoOptions, FileViewerInstance, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerI18nOptions, FileViewerLocale, FileViewerMessageKey, FileViewerMessageParams, FileViewerMessageResolver, FileViewerMessages, FileViewerNavigationState, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerPdfOptions, FileViewerPresentationOptions, FileViewerPrintOptions, FileViewerPublicApi, FileViewerRenderStateKind, FileViewerRenderedInstance, FileViewerRendererCategory, FileViewerSearchMatch, FileViewerSearchOptions, FileViewerSearchProvider, FileViewerSearchState, FileViewerSource, FileViewerSourceKind, FileViewerSpreadsheetOptions, FileViewerStateDescriptor, FileViewerStateTheme, FileViewerThemeMode, FileViewerToolbarActionMap, FileViewerToolbarItem, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerResolvedToolbarItem, FileViewerUiDensity, FileViewerUiOptions, FileViewerTypstOptions, FileViewerViewScrollState, FileViewerViewState, FileViewerViewStateChange, FileViewerViewStateChangeAction, FileViewerViewStateChangeSource, FileViewerViewStateProvider, FileViewerWatermarkOptions, FileViewerZoomProvider, FileViewerZoomState, NormalizedFileViewerSource, RenderSurface, RendererCapability, RendererDefinition, RendererLoadContext, RendererLoader, RendererPlugin, RendererRegistry, RendererSession, ViewerCapabilityState, ViewerLifecycleContext, ViewerOperationContext, } from './contracts/types';
|
package/dist/headless.js
CHANGED
|
@@ -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';
|
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';
|
|
@@ -85,4 +85,4 @@ export type { CreateFileViewerZoomControllerOptions, FileViewerZoomOperation, }
|
|
|
85
85
|
export type { CreateViewerOptions } from './viewer/createViewer';
|
|
86
86
|
export type { BuildExportHtmlDocumentOptions, BuildFileViewerRenderedHtmlDocumentOptions, } from './output/export';
|
|
87
87
|
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';
|
|
88
|
+
export type { FileViewerAiOptions, FileViewerArchiveEntryActionContext, FileViewerArchiveEntryActionPolicy, FileViewerArchiveEntryActionsOptions, FileViewerArchivePasswordRequestContext, FileViewerArchivePasswordRequestReason, FileViewerArchiveOptions, FileViewerApplyViewStateOptions, FileViewerBeforeOperation, FileViewerCadDwfLineWeightMode, FileViewerCadOptions, FileViewerCadRenderer, FileViewerComponentEmits, FileViewerComponentEventMap, FileViewerComponentProps, FileViewerDocumentAnchor, FileViewerDocumentChunk, FileViewerDownloadOptions, FileViewerDocxOptions, FileViewerDrawingOptions, FileViewerEvent, FileViewerEventHandler, FileViewerEventType, FileViewerExportHtmlOptions, FileViewerFileRef, FileViewerFitMode, FileViewerFitOptions, FileViewerFitRequest, FileViewerFitResize, FileViewerFitResult, FileViewerGeoBasemapOptions, FileViewerGeoBasemapPreset, FileViewerGeoOptions, FileRenderContext, FileRenderExportAdapter, FileRenderExportMode, FileRenderExportOptions, FileRenderHandler, FileRenderHandlerComposite, FileViewerBuiltinRendererPreset, FileViewerInstance, FileViewerLifecycleContext, FileViewerLifecycleHooks, FileViewerLifecyclePhase, FileViewerI18nOptions, FileViewerLocale, FileViewerMessageKey, FileViewerMessageParams, FileViewerMessageResolver, FileViewerMessages, FileViewerNavigationState, FileViewerOperationAvailability, FileViewerOperationContext, FileViewerOperationType, FileViewerOptions, FileViewerPdfOptions, FileViewerPresentationOptions, FileViewerPrintOptions, FileViewerPublicApi, FileViewerRenderedInstance, FileViewerRendererMode, FileViewerRendererPluginAssetKind, FileViewerRendererPluginAssetManifest, FileViewerRendererPluginAssetEntry, FileViewerRenderStateKind, FileViewerRendererCategory, FileViewerRendererHandlerRegistration, FileViewerRendererInstallContext, FileViewerRendererPlugin, FileViewerRendererPluginInput, FileViewerRendererPresetInput, FileViewerRendererPresetName, FileViewerRendererPreset, FileViewerSearchMatch, FileViewerSearchOptions, FileViewerSearchProvider, FileViewerSearchState, FileViewerSource, FileViewerSourceKind, FileViewerSpreadsheetOptions, FileViewerStateDescriptor, FileViewerStateTheme, FileViewerStyleIsolation, FileViewerThemeMode, FileViewerToolbarActionMap, FileViewerToolbarItem, FileViewerToolbarOptions, FileViewerToolbarPosition, FileViewerResolvedToolbarItem, FileViewerUiDensity, FileViewerUiOptions, FileViewerTypstOptions, FileViewerViewScrollState, FileViewerViewState, FileViewerViewStateChange, FileViewerViewStateChangeAction, FileViewerViewStateChangeSource, FileViewerViewStateProvider, FileViewerWatermarkOptions, FileViewerZoomProvider, FileViewerZoomState, NormalizedFileViewerSource, RendererCapability, RendererDefinition, RendererPlugin, RendererLoadContext, RendererLoader, RendererRegistry, RendererSession, RenderSurface, ViewerCapabilityState, ViewerLifecycleContext, ViewerOperationContext, } from './contracts/types';
|
package/dist/index.js
CHANGED
|
@@ -166,7 +166,7 @@ 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';
|
|
@@ -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
|
};
|
package/dist/renderers/image.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../features/document/dom/index.js';
|
|
2
|
+
import { resolveFileViewerFitScale, } from '../features/document/fit.js';
|
|
2
3
|
import { createFileViewerTranslator } from '../i18n/messages.js';
|
|
3
4
|
import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from '../features/document/zoom.js';
|
|
4
5
|
const imageMimeMap = {
|
|
@@ -175,6 +176,51 @@ export default async function renderImage(buffer, target, type, context) {
|
|
|
175
176
|
zoomEmitter.emit();
|
|
176
177
|
return getZoomState();
|
|
177
178
|
};
|
|
179
|
+
const fitImage = (request) => {
|
|
180
|
+
var _a, _b;
|
|
181
|
+
const naturalWidth = image.naturalWidth || 0;
|
|
182
|
+
const naturalHeight = image.naturalHeight || 0;
|
|
183
|
+
if (!naturalWidth || !naturalHeight) {
|
|
184
|
+
return {
|
|
185
|
+
applied: false,
|
|
186
|
+
mode: request.mode,
|
|
187
|
+
resize: request.resize,
|
|
188
|
+
source: request.source,
|
|
189
|
+
reason: 'image-not-ready',
|
|
190
|
+
provider: 'zoom',
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
const mode = request.mode === 'auto' ? 'scale-down' : request.mode;
|
|
194
|
+
const scale = resolveFileViewerFitScale({
|
|
195
|
+
mode,
|
|
196
|
+
viewportWidth: Math.max(1, request.viewportWidth || root.clientWidth || 0),
|
|
197
|
+
viewportHeight: Math.max(1, request.viewportHeight || root.clientHeight || viewportHeight || 0),
|
|
198
|
+
contentWidth: naturalWidth,
|
|
199
|
+
contentHeight: naturalHeight,
|
|
200
|
+
currentScale,
|
|
201
|
+
minScale: (_a = request.minScale) !== null && _a !== void 0 ? _a : getMinScale(),
|
|
202
|
+
maxScale: (_b = request.maxScale) !== null && _b !== void 0 ? _b : 5,
|
|
203
|
+
});
|
|
204
|
+
if (!scale) {
|
|
205
|
+
return {
|
|
206
|
+
applied: false,
|
|
207
|
+
mode: request.mode,
|
|
208
|
+
resize: request.resize,
|
|
209
|
+
source: request.source,
|
|
210
|
+
reason: 'unmeasurable',
|
|
211
|
+
provider: 'zoom',
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
const state = setZoom(scale);
|
|
215
|
+
return {
|
|
216
|
+
applied: true,
|
|
217
|
+
mode: request.mode,
|
|
218
|
+
resize: request.resize,
|
|
219
|
+
scale: state.scale,
|
|
220
|
+
source: request.source,
|
|
221
|
+
provider: 'zoom',
|
|
222
|
+
};
|
|
223
|
+
};
|
|
178
224
|
registerFileViewerZoomProvider(root, {
|
|
179
225
|
zoomIn: () => setZoom(currentScale + 0.15),
|
|
180
226
|
zoomOut: () => setZoom(currentScale - 0.15),
|
|
@@ -185,6 +231,7 @@ export default async function renderImage(buffer, target, type, context) {
|
|
|
185
231
|
return getZoomState();
|
|
186
232
|
},
|
|
187
233
|
setZoom,
|
|
234
|
+
fit: fitImage,
|
|
188
235
|
getState: getZoomState,
|
|
189
236
|
subscribe: zoomEmitter.subscribe,
|
|
190
237
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@file-viewer/core",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.20",
|
|
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",
|