@file-viewer/core 2.0.0

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.
Files changed (166) hide show
  1. package/LICENSE +160 -0
  2. package/README.en.md +78 -0
  3. package/README.md +83 -0
  4. package/dist/assets.d.ts +62 -0
  5. package/dist/assets.js +260 -0
  6. package/dist/browser.d.ts +1 -0
  7. package/dist/browser.js +1 -0
  8. package/dist/capabilities.d.ts +24 -0
  9. package/dist/capabilities.js +95 -0
  10. package/dist/document.d.ts +9 -0
  11. package/dist/document.js +86 -0
  12. package/dist/documentDom/anchors.d.ts +7 -0
  13. package/dist/documentDom/anchors.js +196 -0
  14. package/dist/documentDom/index.d.ts +5 -0
  15. package/dist/documentDom/index.js +3 -0
  16. package/dist/documentDom/providers.d.ts +13 -0
  17. package/dist/documentDom/providers.js +52 -0
  18. package/dist/documentDom/scroll.d.ts +12 -0
  19. package/dist/documentDom/scroll.js +42 -0
  20. package/dist/documentDom.d.ts +5 -0
  21. package/dist/documentDom.js +3 -0
  22. package/dist/documentEvents.d.ts +73 -0
  23. package/dist/documentEvents.js +150 -0
  24. package/dist/documentSearch.d.ts +50 -0
  25. package/dist/documentSearch.js +459 -0
  26. package/dist/documentZoom.d.ts +47 -0
  27. package/dist/documentZoom.js +184 -0
  28. package/dist/export.d.ts +26 -0
  29. package/dist/export.js +466 -0
  30. package/dist/formats.d.ts +305 -0
  31. package/dist/formats.js +207 -0
  32. package/dist/headless.d.ts +25 -0
  33. package/dist/headless.js +14 -0
  34. package/dist/index.d.ts +78 -0
  35. package/dist/index.js +118 -0
  36. package/dist/lifecycleFacade.d.ts +46 -0
  37. package/dist/lifecycleFacade.js +68 -0
  38. package/dist/loading.d.ts +59 -0
  39. package/dist/loading.js +489 -0
  40. package/dist/operations.d.ts +287 -0
  41. package/dist/operations.js +485 -0
  42. package/dist/options.d.ts +16 -0
  43. package/dist/options.js +92 -0
  44. package/dist/presentation.d.ts +14 -0
  45. package/dist/presentation.js +16 -0
  46. package/dist/printLayout.d.ts +19 -0
  47. package/dist/printLayout.js +83 -0
  48. package/dist/registry.d.ts +2 -0
  49. package/dist/registry.js +63 -0
  50. package/dist/rendererDispatcher.d.ts +21 -0
  51. package/dist/rendererDispatcher.js +42 -0
  52. package/dist/rendererHandler.d.ts +165 -0
  53. package/dist/rendererHandler.js +354 -0
  54. package/dist/renderers/archive.d.ts +2 -0
  55. package/dist/renderers/archive.js +547 -0
  56. package/dist/renderers/archiveCache.d.ts +10 -0
  57. package/dist/renderers/archiveCache.js +96 -0
  58. package/dist/renderers/archiveFallback.d.ts +7 -0
  59. package/dist/renderers/archiveFallback.js +166 -0
  60. package/dist/renderers/archiveShared.d.ts +23 -0
  61. package/dist/renderers/archiveShared.js +71 -0
  62. package/dist/renderers/audio.d.ts +8 -0
  63. package/dist/renderers/audio.js +219 -0
  64. package/dist/renderers/cad.d.ts +2 -0
  65. package/dist/renderers/cad.js +445 -0
  66. package/dist/renderers/code.d.ts +11 -0
  67. package/dist/renderers/code.js +233 -0
  68. package/dist/renderers/data.d.ts +7 -0
  69. package/dist/renderers/data.js +370 -0
  70. package/dist/renderers/drawing.d.ts +10 -0
  71. package/dist/renderers/drawing.js +537 -0
  72. package/dist/renderers/eda.d.ts +2 -0
  73. package/dist/renderers/eda.js +434 -0
  74. package/dist/renderers/edaParser.d.ts +77 -0
  75. package/dist/renderers/edaParser.js +569 -0
  76. package/dist/renderers/email.d.ts +2 -0
  77. package/dist/renderers/email.js +463 -0
  78. package/dist/renderers/epub.d.ts +2 -0
  79. package/dist/renderers/epub.js +330 -0
  80. package/dist/renderers/geo.d.ts +2 -0
  81. package/dist/renderers/geo.js +284 -0
  82. package/dist/renderers/image.d.ts +2 -0
  83. package/dist/renderers/image.js +179 -0
  84. package/dist/renderers/index.d.ts +21 -0
  85. package/dist/renderers/index.js +207 -0
  86. package/dist/renderers/markdown.d.ts +2 -0
  87. package/dist/renderers/markdown.js +83 -0
  88. package/dist/renderers/model.d.ts +2 -0
  89. package/dist/renderers/model.js +566 -0
  90. package/dist/renderers/ofd.d.ts +2 -0
  91. package/dist/renderers/ofd.js +255 -0
  92. package/dist/renderers/openDocument.d.ts +2 -0
  93. package/dist/renderers/openDocument.js +122 -0
  94. package/dist/renderers/pdf.d.ts +3 -0
  95. package/dist/renderers/pdf.js +846 -0
  96. package/dist/renderers/pdfStyles.d.ts +1 -0
  97. package/dist/renderers/pdfStyles.js +1 -0
  98. package/dist/renderers/pptx.d.ts +2 -0
  99. package/dist/renderers/pptx.js +202 -0
  100. package/dist/renderers/spreadsheet/state.d.ts +80 -0
  101. package/dist/renderers/spreadsheet/state.js +96 -0
  102. package/dist/renderers/spreadsheet/view.d.ts +25 -0
  103. package/dist/renderers/spreadsheet/view.js +833 -0
  104. package/dist/renderers/spreadsheet/worker/index.d.ts +2 -0
  105. package/dist/renderers/spreadsheet/worker/index.js +1 -0
  106. package/dist/renderers/spreadsheet/worker/sheetjs/SheetJsModel.d.ts +73 -0
  107. package/dist/renderers/spreadsheet/worker/sheetjs/SheetJsModel.js +623 -0
  108. package/dist/renderers/spreadsheet/worker/sheetjs/color.d.ts +2 -0
  109. package/dist/renderers/spreadsheet/worker/sheetjs/color.js +73 -0
  110. package/dist/renderers/spreadsheet/worker/sheetjs/index.d.ts +1 -0
  111. package/dist/renderers/spreadsheet/worker/sheetjs/index.js +1 -0
  112. package/dist/renderers/spreadsheet/worker/sheetjs/parser.d.ts +18 -0
  113. package/dist/renderers/spreadsheet/worker/sheetjs/parser.js +106 -0
  114. package/dist/renderers/spreadsheet/worker/sheetjs/sheet.worker.d.ts +1 -0
  115. package/dist/renderers/spreadsheet/worker/sheetjs/sheet.worker.js +11 -0
  116. package/dist/renderers/spreadsheet/worker/type.d.ts +57 -0
  117. package/dist/renderers/spreadsheet/worker/type.js +1 -0
  118. package/dist/renderers/spreadsheet.d.ts +3 -0
  119. package/dist/renderers/spreadsheet.js +929 -0
  120. package/dist/renderers/typst.d.ts +8 -0
  121. package/dist/renderers/typst.js +415 -0
  122. package/dist/renderers/umd/parser.d.ts +30 -0
  123. package/dist/renderers/umd/parser.js +408 -0
  124. package/dist/renderers/umd.d.ts +2 -0
  125. package/dist/renderers/umd.js +297 -0
  126. package/dist/renderers/video.d.ts +8 -0
  127. package/dist/renderers/video.js +108 -0
  128. package/dist/renderers/wordDoc.d.ts +5 -0
  129. package/dist/renderers/wordDoc.js +284 -0
  130. package/dist/renderers/wordDocx.d.ts +5 -0
  131. package/dist/renderers/wordDocx.js +501 -0
  132. package/dist/renderers/wordDocx.worker.d.ts +1 -0
  133. package/dist/renderers/wordDocx.worker.js +96 -0
  134. package/dist/source.d.ts +18 -0
  135. package/dist/source.js +152 -0
  136. package/dist/sourceLoading.d.ts +566 -0
  137. package/dist/sourceLoading.js +918 -0
  138. package/dist/state.d.ts +16 -0
  139. package/dist/state.js +81 -0
  140. package/dist/types.d.ts +446 -0
  141. package/dist/types.js +1 -0
  142. package/dist/viewer.d.ts +8 -0
  143. package/dist/viewer.js +285 -0
  144. package/dist/viewerOperations.d.ts +88 -0
  145. package/dist/viewerOperations.js +242 -0
  146. package/dist/watermark.d.ts +15 -0
  147. package/dist/watermark.js +81 -0
  148. package/dist/worker.d.ts +34 -0
  149. package/dist/worker.js +101 -0
  150. package/package.json +109 -0
  151. package/vendor/ofd/dltech/jbig2/arithmetic_decoder.js +183 -0
  152. package/vendor/ofd/dltech/jbig2/ccitt.js +1070 -0
  153. package/vendor/ofd/dltech/jbig2/compatibility.js +12 -0
  154. package/vendor/ofd/dltech/jbig2/core_utils.js +180 -0
  155. package/vendor/ofd/dltech/jbig2/is_node.js +27 -0
  156. package/vendor/ofd/dltech/jbig2/jbig2.js +2589 -0
  157. package/vendor/ofd/dltech/jbig2/jbig2_stream.js +81 -0
  158. package/vendor/ofd/dltech/jbig2/primitives.js +387 -0
  159. package/vendor/ofd/dltech/jbig2/stream.js +1348 -0
  160. package/vendor/ofd/dltech/jbig2/util.js +972 -0
  161. package/vendor/ofd/dltech/ofd/ofd.d.ts +11 -0
  162. package/vendor/ofd/dltech/ofd/ofd.js +100 -0
  163. package/vendor/ofd/dltech/ofd/ofd_parser.js +395 -0
  164. package/vendor/ofd/dltech/ofd/ofd_render.js +473 -0
  165. package/vendor/ofd/dltech/ofd/ofd_util.js +350 -0
  166. package/vendor/ofd/dltech/ofd/pipeline.js +26 -0
@@ -0,0 +1,354 @@
1
+ import { DEFAULT_RENDERER_DEFINITIONS } from './formats.js';
2
+ import { waitForFileViewerNextPaint } from './export.js';
3
+ import { createFileViewerRendererDispatcher } from './rendererDispatcher.js';
4
+ import { createRendererRegistry } from './registry.js';
5
+ import { getExtension, normalizeFileExtension } from './source.js';
6
+ import { applyFileViewerRenderReadinessState, } from './sourceLoading.js';
7
+ export const FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE = '预览内容卸载失败';
8
+ export const DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS = 'file-render';
9
+ const isPromiseLike = (value) => {
10
+ return !!value &&
11
+ (typeof value === 'object' || typeof value === 'function') &&
12
+ typeof value.then === 'function';
13
+ };
14
+ export const clearFileViewerRenderSurface = (container) => {
15
+ if (!container) {
16
+ return;
17
+ }
18
+ while (container.firstChild) {
19
+ container.removeChild(container.firstChild);
20
+ }
21
+ };
22
+ export const createFileViewerRenderTarget = (container, options = {}) => {
23
+ const target = container.ownerDocument.createElement('div');
24
+ target.className = options.className || DEFAULT_FILE_VIEWER_RENDER_TARGET_CLASS;
25
+ container.appendChild(target);
26
+ return target;
27
+ };
28
+ export const removeFileViewerRenderTarget = (container, target) => {
29
+ if (target.parentNode !== container) {
30
+ return false;
31
+ }
32
+ container.removeChild(target);
33
+ return true;
34
+ };
35
+ export const createFileViewerRenderSurfaceState = () => ({
36
+ session: null,
37
+ exportAdapter: null,
38
+ });
39
+ export const createFileViewerRenderReadinessTarget = ({ renderedReady, progressiveReady, }) => {
40
+ return {
41
+ get renderedReady() {
42
+ return renderedReady.get();
43
+ },
44
+ set renderedReady(value) {
45
+ renderedReady.set(value);
46
+ },
47
+ get progressiveReady() {
48
+ return progressiveReady.get();
49
+ },
50
+ set progressiveReady(value) {
51
+ progressiveReady.set(value);
52
+ },
53
+ };
54
+ };
55
+ export const createFileViewerRenderSurfaceStateTarget = ({ session, exportAdapter, }) => {
56
+ return {
57
+ get session() {
58
+ return session.get();
59
+ },
60
+ set session(value) {
61
+ session.set(value);
62
+ },
63
+ get exportAdapter() {
64
+ return exportAdapter.get();
65
+ },
66
+ set exportAdapter(value) {
67
+ exportAdapter.set(value);
68
+ },
69
+ };
70
+ };
71
+ export const applyFileViewerRenderSurfaceState = (target, state) => {
72
+ var _a, _b;
73
+ if ('session' in state) {
74
+ target.session = (_a = state.session) !== null && _a !== void 0 ? _a : null;
75
+ }
76
+ if ('exportAdapter' in state) {
77
+ target.exportAdapter = (_b = state.exportAdapter) !== null && _b !== void 0 ? _b : null;
78
+ }
79
+ return target;
80
+ };
81
+ export const createFileRenderHandlerRendererSession = (rendered, destroy) => ({
82
+ rendered,
83
+ destroy: () => {
84
+ if (destroy) {
85
+ return destroy();
86
+ }
87
+ return disposeFileViewerRendered(rendered);
88
+ },
89
+ });
90
+ export const disposeFileViewerRendered = (rendered) => {
91
+ if (!rendered || typeof rendered !== 'object') {
92
+ return;
93
+ }
94
+ const disposable = rendered;
95
+ if (typeof disposable.unmount === 'function') {
96
+ return disposable.unmount();
97
+ }
98
+ if (typeof disposable.$destroy === 'function') {
99
+ return disposable.$destroy();
100
+ }
101
+ if (typeof disposable.destroy === 'function') {
102
+ return disposable.destroy();
103
+ }
104
+ };
105
+ export const resolveFileViewerRenderSessionDisposeErrorMessage = ({ message = FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_MESSAGE, } = {}) => message;
106
+ export const DEFAULT_FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_LOGGER = (message, error) => {
107
+ if (typeof console !== 'undefined' && typeof console.warn === 'function') {
108
+ console.warn(message, error);
109
+ }
110
+ };
111
+ export const reportFileViewerRenderSessionDisposeError = ({ error, onLogError = DEFAULT_FILE_VIEWER_RENDER_SESSION_DISPOSE_ERROR_LOGGER, ...messageInput }) => {
112
+ const message = resolveFileViewerRenderSessionDisposeErrorMessage(messageInput);
113
+ onLogError === null || onLogError === void 0 ? void 0 : onLogError(message, error);
114
+ return message;
115
+ };
116
+ export const disposeFileViewerRendererSession = (session, options = {}) => {
117
+ if (!(session === null || session === void 0 ? void 0 : session.destroy)) {
118
+ return;
119
+ }
120
+ const handleError = (error) => {
121
+ var _a;
122
+ (_a = options.onError) === null || _a === void 0 ? void 0 : _a.call(options, error);
123
+ };
124
+ try {
125
+ const result = session.destroy();
126
+ if (isPromiseLike(result)) {
127
+ void Promise.resolve(result).catch(handleError);
128
+ }
129
+ }
130
+ catch (error) {
131
+ handleError(error);
132
+ }
133
+ };
134
+ export const disposeActiveFileViewerRendererSession = (target, options = {}) => {
135
+ const session = target.session;
136
+ try {
137
+ disposeFileViewerRendererSession(session, options);
138
+ }
139
+ finally {
140
+ target.session = null;
141
+ }
142
+ return session;
143
+ };
144
+ export const resetFileViewerRenderSurface = ({ surfaceState, readinessState, container, disposeOptions, }) => {
145
+ const session = disposeActiveFileViewerRendererSession(surfaceState, disposeOptions);
146
+ applyFileViewerRenderSurfaceState(surfaceState, { exportAdapter: null });
147
+ applyFileViewerRenderReadinessState(readinessState, {
148
+ renderedReady: false,
149
+ progressiveReady: false,
150
+ });
151
+ clearFileViewerRenderSurface(container);
152
+ return session;
153
+ };
154
+ export const runFileViewerRenderSurfaceClear = ({ reason = 'replace', surfaceState, readinessState, container, disposeOptions, onUnloadStart, onUnloadComplete, onClearActiveDocumentContext, onClearDocumentState, onStopZoomObserver, onClearZoomProvider, }) => {
155
+ const unloadContext = onUnloadStart === null || onUnloadStart === void 0 ? void 0 : onUnloadStart(reason);
156
+ let session;
157
+ try {
158
+ session = resetFileViewerRenderSurface({
159
+ surfaceState,
160
+ readinessState,
161
+ container,
162
+ disposeOptions,
163
+ });
164
+ }
165
+ finally {
166
+ onClearActiveDocumentContext === null || onClearActiveDocumentContext === void 0 ? void 0 : onClearActiveDocumentContext();
167
+ onClearDocumentState === null || onClearDocumentState === void 0 ? void 0 : onClearDocumentState();
168
+ onStopZoomObserver === null || onStopZoomObserver === void 0 ? void 0 : onStopZoomObserver();
169
+ onClearZoomProvider === null || onClearZoomProvider === void 0 ? void 0 : onClearZoomProvider();
170
+ }
171
+ onUnloadComplete === null || onUnloadComplete === void 0 ? void 0 : onUnloadComplete(unloadContext, reason);
172
+ return {
173
+ reason,
174
+ unloadContext,
175
+ session,
176
+ };
177
+ };
178
+ export const runFileViewerRenderSurfaceMount = async ({ buffer, file, version, sourceUrl, streamUrl, getContainer, surfaceState, readinessState, isCurrent, clearRenderedContent, render, waitForContainer, waitForPaint = waitForFileViewerNextPaint, disposeSession = disposeFileViewerRendererSession, onStartZoomObserver, onRefreshDocumentIndex, onRefreshZoomProvider, }) => {
179
+ if (!getContainer()) {
180
+ await (waitForContainer === null || waitForContainer === void 0 ? void 0 : waitForContainer());
181
+ }
182
+ const container = getContainer();
183
+ if (!container || !isCurrent(version)) {
184
+ return undefined;
185
+ }
186
+ clearRenderedContent('replace');
187
+ const target = createFileViewerRenderTarget(container);
188
+ onStartZoomObserver === null || onStartZoomObserver === void 0 ? void 0 : onStartZoomObserver();
189
+ await (waitForContainer === null || waitForContainer === void 0 ? void 0 : waitForContainer());
190
+ await waitForPaint();
191
+ if (!isCurrent(version)) {
192
+ removeFileViewerRenderTarget(container, target);
193
+ return undefined;
194
+ }
195
+ const registerExportAdapter = (adapter) => {
196
+ applyFileViewerRenderSurfaceState(surfaceState, { exportAdapter: adapter });
197
+ };
198
+ const onProgressiveRender = () => {
199
+ if (isCurrent(version)) {
200
+ applyFileViewerRenderReadinessState(readinessState, { progressiveReady: true });
201
+ }
202
+ };
203
+ try {
204
+ const session = await render({
205
+ buffer,
206
+ file,
207
+ version,
208
+ type: getExtension(file.name),
209
+ target,
210
+ filename: file.name,
211
+ sourceUrl,
212
+ streamUrl,
213
+ onProgressiveRender,
214
+ registerExportAdapter,
215
+ surfaceState,
216
+ readinessState,
217
+ });
218
+ if (!isCurrent(version)) {
219
+ disposeSession(session);
220
+ removeFileViewerRenderTarget(container, target);
221
+ return undefined;
222
+ }
223
+ void (onRefreshDocumentIndex === null || onRefreshDocumentIndex === void 0 ? void 0 : onRefreshDocumentIndex());
224
+ onRefreshZoomProvider === null || onRefreshZoomProvider === void 0 ? void 0 : onRefreshZoomProvider();
225
+ return session;
226
+ }
227
+ catch (error) {
228
+ removeFileViewerRenderTarget(container, target);
229
+ throw error;
230
+ }
231
+ };
232
+ export const createFileViewerRenderSurfaceActionHandlers = ({ getContainer, surfaceState, readinessState, isCurrent, render, waitForContainer, waitForPaint, disposeOptions, onUnloadStart, onUnloadComplete, onClearActiveDocumentContext, onClearDocumentState, onStartZoomObserver, onStopZoomObserver, onClearZoomProvider, onRefreshDocumentIndex, onRefreshZoomProvider, }) => {
233
+ const handleDisposeError = (error) => {
234
+ if (disposeOptions === null || disposeOptions === void 0 ? void 0 : disposeOptions.onError) {
235
+ disposeOptions.onError(error);
236
+ return;
237
+ }
238
+ reportFileViewerRenderSessionDisposeError({ error });
239
+ };
240
+ const mergedDisposeOptions = {
241
+ ...disposeOptions,
242
+ onError: handleDisposeError,
243
+ };
244
+ const destroyRenderSession = (session) => {
245
+ disposeFileViewerRendererSession(session, mergedDisposeOptions);
246
+ };
247
+ const setActiveRenderSession = (session) => {
248
+ return applyFileViewerRenderSurfaceState(surfaceState, { session });
249
+ };
250
+ const clearRenderedContent = (reason = 'replace') => {
251
+ return runFileViewerRenderSurfaceClear({
252
+ reason,
253
+ surfaceState,
254
+ readinessState,
255
+ container: getContainer(),
256
+ disposeOptions: mergedDisposeOptions,
257
+ onUnloadStart,
258
+ onUnloadComplete,
259
+ onClearActiveDocumentContext,
260
+ onClearDocumentState,
261
+ onStopZoomObserver,
262
+ onClearZoomProvider,
263
+ });
264
+ };
265
+ const mountRenderedContent = async (buffer, file, version, sourceUrl, streamUrl) => {
266
+ return await runFileViewerRenderSurfaceMount({
267
+ buffer,
268
+ file,
269
+ version,
270
+ sourceUrl,
271
+ streamUrl,
272
+ getContainer,
273
+ surfaceState,
274
+ readinessState,
275
+ isCurrent,
276
+ clearRenderedContent,
277
+ render,
278
+ waitForContainer,
279
+ waitForPaint,
280
+ disposeSession: destroyRenderSession,
281
+ onStartZoomObserver,
282
+ onRefreshDocumentIndex,
283
+ onRefreshZoomProvider,
284
+ });
285
+ };
286
+ return {
287
+ destroyRenderSession,
288
+ setActiveRenderSession,
289
+ clearRenderedContent,
290
+ mountRenderedContent,
291
+ };
292
+ };
293
+ export const buildFileRenderContextFromLoadContext = ({ source, options, registerExportAdapter, renderContext, }) => ({
294
+ filename: source.filename,
295
+ url: source.url,
296
+ streamUrl: source.url,
297
+ options,
298
+ registerExportAdapter,
299
+ ...renderContext,
300
+ });
301
+ export const renderFileViewerHandler = async ({ dispatcher, buffer, target, type = '', context, throwOnMissingHandler = false, }) => {
302
+ const normalizedType = normalizeFileExtension(type);
303
+ const handler = dispatcher.resolve(normalizedType);
304
+ if (!handler) {
305
+ if (throwOnMissingHandler) {
306
+ throw new Error(`No file viewer renderer is registered for "${normalizedType}".`);
307
+ }
308
+ return undefined;
309
+ }
310
+ return handler(buffer, target, normalizedType, context);
311
+ };
312
+ export const createFileRenderHandlerLoader = ({ handler, getTarget = context => context.surface.container, createContext = buildFileRenderContextFromLoadContext, destroy, }) => {
313
+ return async (context) => {
314
+ const { source } = context;
315
+ if (!source.buffer) {
316
+ throw new Error('FileRenderHandler renderer requires an ArrayBuffer source.');
317
+ }
318
+ const target = getTarget(context);
319
+ const rendered = await handler(source.buffer, target, source.extension, createContext(context));
320
+ return createFileRenderHandlerRendererSession(rendered, () => {
321
+ if (destroy) {
322
+ return destroy(rendered, context);
323
+ }
324
+ return disposeFileViewerRendered(rendered);
325
+ });
326
+ };
327
+ };
328
+ export const createFileRenderHandlerRegistry = ({ definitions = DEFAULT_RENDERER_DEFINITIONS, handlers, getTarget, createContext, destroy, }) => {
329
+ const baseRegistry = createRendererRegistry(definitions);
330
+ const dispatcher = createFileViewerRendererDispatcher({
331
+ registry: baseRegistry,
332
+ handlers,
333
+ });
334
+ const definitionsWithLoaders = baseRegistry.list().map(definition => {
335
+ const handler = dispatcher.handlersByRendererId.get(definition.id);
336
+ if (!handler) {
337
+ return definition;
338
+ }
339
+ return {
340
+ ...definition,
341
+ load: createFileRenderHandlerLoader({
342
+ handler,
343
+ getTarget,
344
+ createContext,
345
+ destroy,
346
+ }),
347
+ };
348
+ });
349
+ return {
350
+ registry: createRendererRegistry(definitionsWithLoaders),
351
+ dispatcher,
352
+ missingRendererIds: dispatcher.missingRendererIds,
353
+ };
354
+ };
@@ -0,0 +1,2 @@
1
+ import type { FileRenderContext, FileViewerRenderedInstance } from '../types';
2
+ export default function renderArchive(buffer: ArrayBuffer, target: HTMLDivElement, _type?: string, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;