@file-viewer/core 2.1.13 → 2.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contracts/types.d.ts +71 -1
- package/dist/features/document/dom/index.d.ts +2 -2
- package/dist/features/document/dom/index.js +1 -1
- package/dist/features/document/dom/providers.d.ts +7 -1
- package/dist/features/document/dom/providers.js +32 -0
- package/dist/features/document/viewState.d.ts +44 -0
- package/dist/features/document/viewState.js +308 -0
- package/dist/features/document/zoom.d.ts +2 -1
- package/dist/features/document/zoom.js +17 -4
- package/dist/headless.d.ts +2 -2
- package/dist/headless.js +1 -1
- package/dist/i18n/messages.js +4 -4
- package/dist/index.d.ts +6 -4
- package/dist/index.js +3 -2
- package/dist/registry/capabilities.d.ts +2 -1
- package/dist/registry/capabilities.js +10 -0
- package/dist/renderers/image.js +53 -22
- package/dist/rendering/handler.d.ts +13 -4
- package/dist/rendering/handler.js +42 -8
- package/dist/source/loading.d.ts +2 -1
- package/dist/source/loading.js +2 -1
- package/dist/viewer/createViewer.js +34 -12
- package/package.json +1 -1
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
import { createEmptyFileViewerSearchState, } from '../features/document/model.js';
|
|
8
8
|
import { createFileViewerDocumentFeatureControllerActionHandlers, } from '../features/document/events.js';
|
|
9
9
|
import { createFileViewerZoomController } from '../features/document/zoom.js';
|
|
10
|
+
import { createFileViewerViewStateController } from '../features/document/viewState.js';
|
|
10
11
|
import { DEFAULT_FILE_VIEWER_DOWNLOAD_FILENAME, DEFAULT_FILE_VIEWER_EXPORT_FILENAME, DEFAULT_FILE_VIEWER_PREVIEW_TITLE, createFileViewerOriginalSourceStateFromNormalizedSource, executeFileViewerDownloadOperation, executeFileViewerExportHtmlOperation, executeFileViewerPrintOperation, resolveFileViewerDisplayFilename, resolveFileViewerOperationFilename, } from './operations.js';
|
|
11
|
-
import {
|
|
12
|
+
import { applyFileViewerZoomAvailability, createUnsupportedAvailability, getRendererAvailability, } from '../registry/capabilities.js';
|
|
12
13
|
import { buildFileViewerLifecycleContextFromNormalizedSource, buildFileViewerOperationContext, runFileViewerBeforeOperation, runFileViewerLifecycleHook, } from '../lifecycle/operations.js';
|
|
13
14
|
import { collectFileViewerRendererPlugins, createRendererRegistry, getFileViewerAutoRendererPresetVersion, hasFileViewerRendererPresetName, installFileViewerRendererPlugins, listFileViewerAutoRendererPresets, resolveFileViewerRendererPresetInputs, } from '../registry/registry.js';
|
|
14
15
|
import { createFileRenderHandlerLoader, applyFileViewerRenderSurfaceState, createFileViewerRenderSurfaceState, } from '../rendering/handler.js';
|
|
@@ -149,6 +150,7 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
149
150
|
...definition,
|
|
150
151
|
load: createFileRenderHandlerLoader({
|
|
151
152
|
handler: registration.handler,
|
|
153
|
+
rendererId: definition.id,
|
|
152
154
|
getTarget: context => context.surface.container,
|
|
153
155
|
}),
|
|
154
156
|
});
|
|
@@ -195,10 +197,11 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
195
197
|
const getCapabilitiesForExtension = (extension) => {
|
|
196
198
|
const targetExtension = extension || (currentSource === null || currentSource === void 0 ? void 0 : currentSource.extension) || '';
|
|
197
199
|
const renderer = registry.getByExtension(targetExtension);
|
|
200
|
+
const zoomState = zoomController.getState();
|
|
198
201
|
if (!renderer) {
|
|
199
|
-
return createUnsupportedAvailability(targetExtension);
|
|
202
|
+
return applyFileViewerZoomAvailability(createUnsupportedAvailability(targetExtension), zoomState);
|
|
200
203
|
}
|
|
201
|
-
return getRendererAvailability(renderer, renderSurfaceState.session);
|
|
204
|
+
return applyFileViewerZoomAvailability(getRendererAvailability(renderer, renderSurfaceState.session), zoomState);
|
|
202
205
|
};
|
|
203
206
|
const emitOperationAvailabilityChange = () => {
|
|
204
207
|
var _a;
|
|
@@ -214,9 +217,21 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
214
217
|
payload: state,
|
|
215
218
|
});
|
|
216
219
|
};
|
|
220
|
+
const emitZoomAndOperationAvailabilityChange = (state = zoomController.getState()) => {
|
|
221
|
+
emitZoomChange(state);
|
|
222
|
+
emitOperationAvailabilityChange();
|
|
223
|
+
};
|
|
217
224
|
const zoomController = createFileViewerZoomController({
|
|
218
225
|
root: () => container,
|
|
219
226
|
beforeZoom: runBeforeViewerOperation,
|
|
227
|
+
onChange: state => emitZoomAndOperationAvailabilityChange(state),
|
|
228
|
+
});
|
|
229
|
+
const viewStateController = createFileViewerViewStateController({
|
|
230
|
+
root: () => container,
|
|
231
|
+
onChange: change => {
|
|
232
|
+
var _a;
|
|
233
|
+
(_a = createOptions.onEvent) === null || _a === void 0 ? void 0 : _a.call(createOptions, { type: 'view-state-change', payload: change });
|
|
234
|
+
},
|
|
220
235
|
});
|
|
221
236
|
const documentActions = createFileViewerDocumentFeatureControllerActionHandlers({
|
|
222
237
|
root: () => container,
|
|
@@ -233,6 +248,7 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
233
248
|
},
|
|
234
249
|
});
|
|
235
250
|
zoomController.observe();
|
|
251
|
+
viewStateController.observe();
|
|
236
252
|
const destroyCurrent = async (reason = 'replace') => {
|
|
237
253
|
var _a, _b;
|
|
238
254
|
if (!currentSource) {
|
|
@@ -250,8 +266,8 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
250
266
|
});
|
|
251
267
|
await documentActions.clearDocumentState();
|
|
252
268
|
zoomController.clearProvider();
|
|
253
|
-
|
|
254
|
-
|
|
269
|
+
viewStateController.clearProvider();
|
|
270
|
+
emitZoomAndOperationAvailabilityChange();
|
|
255
271
|
await emitLifecycle(options, createOptions.onEvent, 'unload-complete', source, version, startedAt, reason);
|
|
256
272
|
};
|
|
257
273
|
return {
|
|
@@ -268,8 +284,7 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
268
284
|
if (!(renderer === null || renderer === void 0 ? void 0 : renderer.load)) {
|
|
269
285
|
renderMissingRendererState(container, normalized.extension, options);
|
|
270
286
|
applyFileViewerRenderSurfaceState(renderSurfaceState, { session: null });
|
|
271
|
-
|
|
272
|
-
emitZoomChange();
|
|
287
|
+
emitZoomAndOperationAvailabilityChange();
|
|
273
288
|
await emitLifecycle(options, createOptions.onEvent, 'load-complete', normalized, version, startedAt);
|
|
274
289
|
return null;
|
|
275
290
|
}
|
|
@@ -284,9 +299,9 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
284
299
|
});
|
|
285
300
|
applyFileViewerRenderSurfaceState(renderSurfaceState, { session });
|
|
286
301
|
zoomController.refreshProvider();
|
|
302
|
+
viewStateController.refreshProvider();
|
|
287
303
|
await documentActions.refreshDocumentIndex({ notify: false });
|
|
288
|
-
|
|
289
|
-
emitZoomChange();
|
|
304
|
+
emitZoomAndOperationAvailabilityChange();
|
|
290
305
|
await emitLifecycle(options, createOptions.onEvent, 'load-complete', normalized, version, startedAt);
|
|
291
306
|
return session;
|
|
292
307
|
},
|
|
@@ -294,6 +309,7 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
294
309
|
await destroyCurrent(reason);
|
|
295
310
|
documentActions.destroyDocumentFeatures();
|
|
296
311
|
zoomController.destroy();
|
|
312
|
+
viewStateController.destroy();
|
|
297
313
|
},
|
|
298
314
|
updateOptions(nextOptions) {
|
|
299
315
|
options = {
|
|
@@ -362,22 +378,28 @@ export const createViewer = (container, createOptions = {}) => {
|
|
|
362
378
|
},
|
|
363
379
|
async zoomIn() {
|
|
364
380
|
const state = await zoomController.zoomIn();
|
|
365
|
-
|
|
381
|
+
emitZoomAndOperationAvailabilityChange(state);
|
|
366
382
|
return state;
|
|
367
383
|
},
|
|
368
384
|
async zoomOut() {
|
|
369
385
|
const state = await zoomController.zoomOut();
|
|
370
|
-
|
|
386
|
+
emitZoomAndOperationAvailabilityChange(state);
|
|
371
387
|
return state;
|
|
372
388
|
},
|
|
373
389
|
async resetZoom() {
|
|
374
390
|
const state = await zoomController.resetZoom();
|
|
375
|
-
|
|
391
|
+
emitZoomAndOperationAvailabilityChange(state);
|
|
376
392
|
return state;
|
|
377
393
|
},
|
|
378
394
|
getZoomState() {
|
|
379
395
|
return zoomController.getState();
|
|
380
396
|
},
|
|
397
|
+
getViewState() {
|
|
398
|
+
return viewStateController.getState();
|
|
399
|
+
},
|
|
400
|
+
applyViewState(state, applyOptions) {
|
|
401
|
+
return viewStateController.applyState(state, applyOptions);
|
|
402
|
+
},
|
|
381
403
|
search(query) {
|
|
382
404
|
return documentActions.searchDocument(query);
|
|
383
405
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@file-viewer/core",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.15",
|
|
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",
|