@file-viewer/core 2.0.0 → 2.0.2
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/README.en.md +3 -3
- package/README.md +3 -3
- package/dist/assets.d.ts +2 -62
- package/dist/assets.js +5 -260
- package/dist/{options.d.ts → config/options.d.ts} +1 -1
- package/dist/{documentDom → features/document/dom}/anchors.d.ts +1 -1
- package/dist/{documentDom → features/document/dom}/providers.d.ts +1 -1
- package/dist/{documentEvents.d.ts → features/document/events.d.ts} +2 -2
- package/dist/{documentEvents.js → features/document/events.js} +3 -3
- package/dist/{document.d.ts → features/document/model.d.ts} +1 -1
- package/dist/{documentSearch.d.ts → features/document/search.d.ts} +1 -1
- package/dist/{documentSearch.js → features/document/search.js} +2 -2
- package/dist/{documentZoom.d.ts → features/document/zoom.d.ts} +1 -1
- package/dist/{documentZoom.js → features/document/zoom.js} +2 -2
- package/dist/{watermark.d.ts → features/watermark.d.ts} +1 -1
- package/dist/headless.d.ts +21 -21
- package/dist/headless.js +18 -13
- package/dist/index.d.ts +48 -48
- package/dist/index.js +23 -23
- package/dist/{lifecycleFacade.d.ts → lifecycle/facade.d.ts} +3 -3
- package/dist/{lifecycleFacade.js → lifecycle/facade.js} +1 -1
- package/dist/{operations.d.ts → lifecycle/operations.d.ts} +3 -3
- package/dist/{operations.js → lifecycle/operations.js} +8 -3
- package/dist/{export.d.ts → output/export.d.ts} +1 -1
- package/dist/platform/assets.d.ts +62 -0
- package/dist/platform/assets.js +260 -0
- package/dist/{presentation.d.ts → presentation/state.d.ts} +1 -1
- package/dist/{presentation.js → presentation/state.js} +3 -3
- package/dist/{capabilities.d.ts → registry/capabilities.d.ts} +1 -1
- package/dist/{capabilities.js → registry/capabilities.js} +1 -1
- package/dist/{registry.d.ts → registry/registry.d.ts} +1 -1
- package/dist/{registry.js → registry/registry.js} +1 -1
- package/dist/renderers/archive.d.ts +1 -1
- package/dist/renderers/archive.js +2 -2
- package/dist/renderers/archiveShared.js +1 -1
- package/dist/renderers/audio.d.ts +1 -1
- package/dist/renderers/cad.d.ts +1 -1
- package/dist/renderers/cad.js +3 -3
- package/dist/renderers/code.d.ts +1 -1
- package/dist/renderers/code.js +3 -3
- package/dist/renderers/data.d.ts +1 -1
- package/dist/renderers/data.js +1 -1
- package/dist/renderers/drawing.d.ts +1 -1
- package/dist/renderers/drawing.js +4 -4
- package/dist/renderers/eda.d.ts +1 -1
- package/dist/renderers/email.d.ts +1 -1
- package/dist/renderers/email.js +1 -1
- package/dist/renderers/epub.d.ts +1 -1
- package/dist/renderers/geo.d.ts +1 -1
- package/dist/renderers/geo.js +1 -1
- package/dist/renderers/image.d.ts +1 -1
- package/dist/renderers/image.js +2 -2
- package/dist/renderers/index.d.ts +1 -1
- package/dist/renderers/index.js +9 -4
- package/dist/renderers/markdown.d.ts +1 -1
- package/dist/renderers/markdown.js +3 -3
- package/dist/renderers/model.d.ts +1 -1
- package/dist/renderers/ofd.d.ts +1 -1
- package/dist/renderers/ofd.js +2 -2
- package/dist/renderers/openDocument.d.ts +1 -1
- package/dist/renderers/pdf.d.ts +1 -1
- package/dist/renderers/pdf.js +7 -5
- package/dist/renderers/pptx.d.ts +1 -1
- package/dist/renderers/pptx.js +19 -4
- package/dist/renderers/spreadsheet.d.ts +1 -1
- package/dist/renderers/spreadsheet.js +4 -4
- package/dist/renderers/typst.d.ts +1 -1
- package/dist/renderers/typst.js +5 -5
- package/dist/renderers/umd.d.ts +1 -1
- package/dist/renderers/video.d.ts +1 -1
- package/dist/renderers/wordDoc.d.ts +1 -1
- package/dist/renderers/wordDoc.js +3 -3
- package/dist/renderers/wordDocx.d.ts +1 -1
- package/dist/renderers/wordDocx.js +557 -4
- package/dist/{rendererDispatcher.d.ts → rendering/dispatcher.d.ts} +1 -1
- package/dist/{rendererDispatcher.js → rendering/dispatcher.js} +3 -3
- package/dist/{rendererHandler.d.ts → rendering/handler.d.ts} +3 -3
- package/dist/{rendererHandler.js → rendering/handler.js} +11 -6
- package/dist/{source.d.ts → source/index.d.ts} +1 -1
- package/dist/{sourceLoading.d.ts → source/loading.d.ts} +3 -3
- package/dist/{sourceLoading.js → source/loading.js} +3 -3
- package/dist/{viewer.d.ts → viewer/createViewer.d.ts} +1 -1
- package/dist/{viewer.js → viewer/createViewer.js} +17 -11
- package/dist/{loading.d.ts → viewer/loading.d.ts} +1 -1
- package/dist/{viewerOperations.d.ts → viewer/operations.d.ts} +1 -1
- package/dist/{viewerOperations.js → viewer/operations.js} +2 -2
- package/dist/{state.d.ts → viewer/state.d.ts} +1 -1
- package/dist/{state.js → viewer/state.js} +1 -1
- package/package.json +3 -3
- package/dist/documentDom.d.ts +0 -5
- package/dist/documentDom.js +0 -3
- /package/dist/{options.js → config/options.js} +0 -0
- /package/dist/{types.d.ts → contracts/types.d.ts} +0 -0
- /package/dist/{types.js → contracts/types.js} +0 -0
- /package/dist/{documentDom → features/document/dom}/anchors.js +0 -0
- /package/dist/{documentDom → features/document/dom}/index.d.ts +0 -0
- /package/dist/{documentDom → features/document/dom}/index.js +0 -0
- /package/dist/{documentDom → features/document/dom}/providers.js +0 -0
- /package/dist/{documentDom → features/document/dom}/scroll.d.ts +0 -0
- /package/dist/{documentDom → features/document/dom}/scroll.js +0 -0
- /package/dist/{document.js → features/document/model.js} +0 -0
- /package/dist/{watermark.js → features/watermark.js} +0 -0
- /package/dist/{export.js → output/export.js} +0 -0
- /package/dist/{printLayout.d.ts → output/printLayout.d.ts} +0 -0
- /package/dist/{printLayout.js → output/printLayout.js} +0 -0
- /package/dist/{worker.d.ts → platform/worker.d.ts} +0 -0
- /package/dist/{worker.js → platform/worker.js} +0 -0
- /package/dist/{formats.d.ts → registry/formats.d.ts} +0 -0
- /package/dist/{formats.js → registry/formats.js} +0 -0
- /package/dist/{source.js → source/index.js} +0 -0
- /package/dist/{loading.js → viewer/loading.js} +0 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
export const DEFAULT_FILE_VIEWER_ARCHIVE_WORKER_PATH = 'vendor/libarchive/worker-bundle.js';
|
|
2
|
+
export const DEFAULT_FILE_VIEWER_ARCHIVE_WASM_PATH = 'vendor/libarchive/libarchive.wasm';
|
|
3
|
+
export const DEFAULT_FILE_VIEWER_DOCX_WORKER_PATH = 'vendor/docx/docx.worker.js';
|
|
4
|
+
export const DEFAULT_FILE_VIEWER_SPREADSHEET_WORKER_PATH = 'vendor/xlsx/sheet.worker.js';
|
|
5
|
+
export const DEFAULT_FILE_VIEWER_CAD_WASM_PATH = 'wasm/cad/';
|
|
6
|
+
export const DEFAULT_FILE_VIEWER_CAD_WORKER_PATH = 'wasm/cad/dwg-worker.js';
|
|
7
|
+
export const DEFAULT_FILE_VIEWER_CAD_DWF_WASM_PATH = 'wasm/cad/dwfv-render.wasm';
|
|
8
|
+
export const DEFAULT_FILE_VIEWER_TYPST_COMPILER_WASM_URL = 'https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-web-compiler@0.7.0/pkg/typst_ts_web_compiler_bg.wasm';
|
|
9
|
+
export const DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_URL = 'https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-renderer@0.7.0/pkg/typst_ts_renderer_bg.wasm';
|
|
10
|
+
export const DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_PACKAGE_PATH = '@myriaddreamin/typst-ts-renderer/pkg/typst_ts_renderer_bg.wasm';
|
|
11
|
+
export const DEFAULT_FILE_VIEWER_DATA_SQL_WASM_URL = 'https://cdn.jsdelivr.net/npm/sql.js@1.14.1/dist/sql-wasm.wasm';
|
|
12
|
+
export const DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS = [
|
|
13
|
+
{
|
|
14
|
+
rendererId: 'archive',
|
|
15
|
+
assets: [
|
|
16
|
+
{
|
|
17
|
+
id: 'libarchive-worker',
|
|
18
|
+
rendererId: 'archive',
|
|
19
|
+
kind: 'worker',
|
|
20
|
+
target: 'public',
|
|
21
|
+
required: false,
|
|
22
|
+
defaultPath: DEFAULT_FILE_VIEWER_ARCHIVE_WORKER_PATH,
|
|
23
|
+
optionPath: 'archive.workerUrl',
|
|
24
|
+
description: 'libarchive.js module worker used for broad archive format parsing.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: 'libarchive-wasm',
|
|
28
|
+
rendererId: 'archive',
|
|
29
|
+
kind: 'wasm',
|
|
30
|
+
target: 'public',
|
|
31
|
+
required: false,
|
|
32
|
+
defaultPath: DEFAULT_FILE_VIEWER_ARCHIVE_WASM_PATH,
|
|
33
|
+
optionPath: 'archive.wasmUrl',
|
|
34
|
+
description: 'libarchive.js WebAssembly module expected next to the public worker.',
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
rendererId: 'cad',
|
|
40
|
+
assets: [
|
|
41
|
+
{
|
|
42
|
+
id: 'cad-wasm-directory',
|
|
43
|
+
rendererId: 'cad',
|
|
44
|
+
kind: 'wasm-directory',
|
|
45
|
+
target: 'public',
|
|
46
|
+
required: true,
|
|
47
|
+
defaultPath: DEFAULT_FILE_VIEWER_CAD_WASM_PATH,
|
|
48
|
+
optionPath: 'cad.wasmPath',
|
|
49
|
+
description: '@flyfish-dev/cad-viewer WebAssembly directory for DWG/DXF helpers.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'cad-dwg-worker',
|
|
53
|
+
rendererId: 'cad',
|
|
54
|
+
kind: 'worker',
|
|
55
|
+
target: 'public',
|
|
56
|
+
required: true,
|
|
57
|
+
defaultPath: DEFAULT_FILE_VIEWER_CAD_WORKER_PATH,
|
|
58
|
+
optionPath: 'cad.workerUrl',
|
|
59
|
+
description: 'DWG worker entry used by @flyfish-dev/cad-viewer.',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'cad-dwf-wasm',
|
|
63
|
+
rendererId: 'cad',
|
|
64
|
+
kind: 'wasm',
|
|
65
|
+
target: 'public',
|
|
66
|
+
required: true,
|
|
67
|
+
defaultPath: DEFAULT_FILE_VIEWER_CAD_DWF_WASM_PATH,
|
|
68
|
+
optionPath: 'cad.dwfWasmUrl',
|
|
69
|
+
description: 'DWF/DWFx/XPS raster WebAssembly module used by @flyfish-dev/cad-viewer.',
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
rendererId: 'office-word-openxml',
|
|
75
|
+
assets: [
|
|
76
|
+
{
|
|
77
|
+
id: 'docx-worker',
|
|
78
|
+
rendererId: 'office-word-openxml',
|
|
79
|
+
kind: 'worker',
|
|
80
|
+
target: 'public',
|
|
81
|
+
required: false,
|
|
82
|
+
defaultPath: DEFAULT_FILE_VIEWER_DOCX_WORKER_PATH,
|
|
83
|
+
optionPath: 'docx.workerUrl',
|
|
84
|
+
description: 'Optional DOCX worker for off-main-thread docx-preview parsing and HTML assembly.',
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
rendererId: 'spreadsheet-openxml',
|
|
90
|
+
assets: [
|
|
91
|
+
{
|
|
92
|
+
id: 'spreadsheet-worker',
|
|
93
|
+
rendererId: 'spreadsheet-openxml',
|
|
94
|
+
kind: 'worker',
|
|
95
|
+
target: 'public',
|
|
96
|
+
required: false,
|
|
97
|
+
defaultPath: DEFAULT_FILE_VIEWER_SPREADSHEET_WORKER_PATH,
|
|
98
|
+
optionPath: 'spreadsheet.workerUrl',
|
|
99
|
+
description: 'Optional Spreadsheet worker for off-main-thread styled-exceljs workbook parsing.',
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
rendererId: 'typst',
|
|
105
|
+
assets: [
|
|
106
|
+
{
|
|
107
|
+
id: 'typst-compiler-wasm',
|
|
108
|
+
rendererId: 'typst',
|
|
109
|
+
kind: 'wasm',
|
|
110
|
+
target: 'external',
|
|
111
|
+
required: true,
|
|
112
|
+
defaultUrl: DEFAULT_FILE_VIEWER_TYPST_COMPILER_WASM_URL,
|
|
113
|
+
optionPath: 'typst.compilerWasmUrl',
|
|
114
|
+
description: 'Typst compiler WebAssembly module; configurable for private CDN deployment.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 'typst-renderer-wasm',
|
|
118
|
+
rendererId: 'typst',
|
|
119
|
+
kind: 'bundled-wasm',
|
|
120
|
+
target: 'bundled',
|
|
121
|
+
required: true,
|
|
122
|
+
defaultUrl: DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_URL,
|
|
123
|
+
packagePath: DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_PACKAGE_PATH,
|
|
124
|
+
optionPath: 'typst.rendererWasmUrl',
|
|
125
|
+
description: 'Typst SVG renderer WebAssembly module bundled by the active frontend build tool.',
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
rendererId: 'data-asset',
|
|
131
|
+
assets: [
|
|
132
|
+
{
|
|
133
|
+
id: 'data-sql-wasm',
|
|
134
|
+
rendererId: 'data-asset',
|
|
135
|
+
kind: 'wasm',
|
|
136
|
+
target: 'external',
|
|
137
|
+
required: false,
|
|
138
|
+
defaultUrl: DEFAULT_FILE_VIEWER_DATA_SQL_WASM_URL,
|
|
139
|
+
optionPath: 'data.sqlWasmUrl',
|
|
140
|
+
description: 'sql.js WebAssembly module used when previewing SQLite files.',
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
];
|
|
145
|
+
const DEFAULT_FILE_VIEWER_DOCUMENT_BASE_URL = 'http://localhost/';
|
|
146
|
+
export const resolveFileViewerAssetUrl = (value, fallback, options = {}) => {
|
|
147
|
+
const raw = value ? String(value) : fallback;
|
|
148
|
+
const documentBaseUrl = options.documentBaseUrl || DEFAULT_FILE_VIEWER_DOCUMENT_BASE_URL;
|
|
149
|
+
const baseUrl = options.baseUrl
|
|
150
|
+
? options.baseUrl.endsWith('/') ? options.baseUrl : `${options.baseUrl}/`
|
|
151
|
+
: documentBaseUrl;
|
|
152
|
+
const resolvedBase = options.baseUrl
|
|
153
|
+
? new URL(baseUrl, documentBaseUrl).href
|
|
154
|
+
: baseUrl;
|
|
155
|
+
const resolved = new URL(raw, resolvedBase).href;
|
|
156
|
+
return options.trimTrailingSlash ? resolved.replace(/\/+$/, '') : resolved;
|
|
157
|
+
};
|
|
158
|
+
export const resolveFileViewerArchiveWorkerUrl = (options, baseUrl) => {
|
|
159
|
+
return resolveFileViewerAssetUrl(options === null || options === void 0 ? void 0 : options.workerUrl, DEFAULT_FILE_VIEWER_ARCHIVE_WORKER_PATH, { baseUrl });
|
|
160
|
+
};
|
|
161
|
+
export const resolveFileViewerArchiveWasmUrl = (options, fallback = '') => {
|
|
162
|
+
if (!(options === null || options === void 0 ? void 0 : options.wasmUrl)) {
|
|
163
|
+
return fallback;
|
|
164
|
+
}
|
|
165
|
+
return resolveFileViewerAssetUrl(options.wasmUrl, fallback || options.wasmUrl);
|
|
166
|
+
};
|
|
167
|
+
export const resolveFileViewerCadAssetUrls = (options, documentBaseUrl) => {
|
|
168
|
+
return {
|
|
169
|
+
wasmPath: resolveFileViewerAssetUrl(options === null || options === void 0 ? void 0 : options.wasmPath, DEFAULT_FILE_VIEWER_CAD_WASM_PATH, {
|
|
170
|
+
documentBaseUrl,
|
|
171
|
+
trimTrailingSlash: true,
|
|
172
|
+
}),
|
|
173
|
+
workerUrl: resolveFileViewerAssetUrl(options === null || options === void 0 ? void 0 : options.workerUrl, DEFAULT_FILE_VIEWER_CAD_WORKER_PATH, {
|
|
174
|
+
documentBaseUrl,
|
|
175
|
+
}),
|
|
176
|
+
dwfWasmUrl: resolveFileViewerAssetUrl(options === null || options === void 0 ? void 0 : options.dwfWasmUrl, DEFAULT_FILE_VIEWER_CAD_DWF_WASM_PATH, {
|
|
177
|
+
documentBaseUrl,
|
|
178
|
+
}),
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
export const resolveFileViewerDocxWorkerUrl = (options, documentBaseUrl) => {
|
|
182
|
+
return resolveFileViewerAssetUrl(options === null || options === void 0 ? void 0 : options.workerUrl, DEFAULT_FILE_VIEWER_DOCX_WORKER_PATH, {
|
|
183
|
+
documentBaseUrl,
|
|
184
|
+
});
|
|
185
|
+
};
|
|
186
|
+
export const resolveFileViewerSpreadsheetWorkerUrl = (options, documentBaseUrl) => {
|
|
187
|
+
return resolveFileViewerAssetUrl(options === null || options === void 0 ? void 0 : options.workerUrl, DEFAULT_FILE_VIEWER_SPREADSHEET_WORKER_PATH, {
|
|
188
|
+
documentBaseUrl,
|
|
189
|
+
});
|
|
190
|
+
};
|
|
191
|
+
export const resolveFileViewerTypstCompilerWasmUrl = (options, overrides = []) => {
|
|
192
|
+
return (options === null || options === void 0 ? void 0 : options.compilerWasmUrl) ||
|
|
193
|
+
overrides.find(Boolean) ||
|
|
194
|
+
DEFAULT_FILE_VIEWER_TYPST_COMPILER_WASM_URL;
|
|
195
|
+
};
|
|
196
|
+
export const resolveFileViewerTypstRendererWasmUrl = (options, overrides = []) => {
|
|
197
|
+
return (options === null || options === void 0 ? void 0 : options.rendererWasmUrl) ||
|
|
198
|
+
overrides.find(Boolean) ||
|
|
199
|
+
DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_URL;
|
|
200
|
+
};
|
|
201
|
+
export const resolveFileViewerDataSqlWasmUrl = (options, overrides = []) => {
|
|
202
|
+
return (options === null || options === void 0 ? void 0 : options.sqlWasmUrl) ||
|
|
203
|
+
overrides.find(Boolean) ||
|
|
204
|
+
DEFAULT_FILE_VIEWER_DATA_SQL_WASM_URL;
|
|
205
|
+
};
|
|
206
|
+
export const listFileViewerRendererAssetManifests = () => {
|
|
207
|
+
return [...DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS];
|
|
208
|
+
};
|
|
209
|
+
export const getFileViewerRendererAssetManifest = (rendererId) => {
|
|
210
|
+
return DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS.find(manifest => manifest.rendererId === rendererId) || null;
|
|
211
|
+
};
|
|
212
|
+
const getRendererAssetOptionValue = (options, optionPath) => {
|
|
213
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
214
|
+
switch (optionPath) {
|
|
215
|
+
case 'archive.workerUrl':
|
|
216
|
+
return (_a = options === null || options === void 0 ? void 0 : options.archive) === null || _a === void 0 ? void 0 : _a.workerUrl;
|
|
217
|
+
case 'archive.wasmUrl':
|
|
218
|
+
return (_b = options === null || options === void 0 ? void 0 : options.archive) === null || _b === void 0 ? void 0 : _b.wasmUrl;
|
|
219
|
+
case 'cad.wasmPath':
|
|
220
|
+
return (_c = options === null || options === void 0 ? void 0 : options.cad) === null || _c === void 0 ? void 0 : _c.wasmPath;
|
|
221
|
+
case 'cad.workerUrl':
|
|
222
|
+
return (_d = options === null || options === void 0 ? void 0 : options.cad) === null || _d === void 0 ? void 0 : _d.workerUrl;
|
|
223
|
+
case 'cad.dwfWasmUrl':
|
|
224
|
+
return (_e = options === null || options === void 0 ? void 0 : options.cad) === null || _e === void 0 ? void 0 : _e.dwfWasmUrl;
|
|
225
|
+
case 'data.sqlWasmUrl':
|
|
226
|
+
return (_f = options === null || options === void 0 ? void 0 : options.data) === null || _f === void 0 ? void 0 : _f.sqlWasmUrl;
|
|
227
|
+
case 'docx.workerUrl':
|
|
228
|
+
return (_g = options === null || options === void 0 ? void 0 : options.docx) === null || _g === void 0 ? void 0 : _g.workerUrl;
|
|
229
|
+
case 'spreadsheet.workerUrl':
|
|
230
|
+
return (_h = options === null || options === void 0 ? void 0 : options.spreadsheet) === null || _h === void 0 ? void 0 : _h.workerUrl;
|
|
231
|
+
case 'typst.compilerWasmUrl':
|
|
232
|
+
return (_j = options === null || options === void 0 ? void 0 : options.typst) === null || _j === void 0 ? void 0 : _j.compilerWasmUrl;
|
|
233
|
+
case 'typst.rendererWasmUrl':
|
|
234
|
+
return (_k = options === null || options === void 0 ? void 0 : options.typst) === null || _k === void 0 ? void 0 : _k.rendererWasmUrl;
|
|
235
|
+
default:
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
export const resolveFileViewerRendererAssets = (rendererId, resolveOptions = {}) => {
|
|
240
|
+
const manifest = getFileViewerRendererAssetManifest(rendererId);
|
|
241
|
+
if (!manifest) {
|
|
242
|
+
return [];
|
|
243
|
+
}
|
|
244
|
+
return manifest.assets.map(asset => {
|
|
245
|
+
const optionValue = getRendererAssetOptionValue(resolveOptions.options, asset.optionPath);
|
|
246
|
+
const raw = optionValue ? String(optionValue) : asset.defaultUrl || asset.defaultPath;
|
|
247
|
+
const resolved = {
|
|
248
|
+
...asset,
|
|
249
|
+
configured: Boolean(optionValue),
|
|
250
|
+
};
|
|
251
|
+
if (raw) {
|
|
252
|
+
resolved.url = resolveFileViewerAssetUrl(raw, raw, {
|
|
253
|
+
baseUrl: resolveOptions.baseUrl,
|
|
254
|
+
documentBaseUrl: resolveOptions.documentBaseUrl,
|
|
255
|
+
trimTrailingSlash: asset.kind === 'wasm-directory' || resolveOptions.trimTrailingSlash,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
return resolved;
|
|
259
|
+
});
|
|
260
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileViewerFileRef, FileViewerOptions, FileViewerThemeMode, FileViewerToolbarOptions } from '
|
|
1
|
+
import type { FileViewerFileRef, FileViewerOptions, FileViewerThemeMode, FileViewerToolbarOptions } from '../contracts/types';
|
|
2
2
|
export interface ResolveFileViewerPresentationStateInput {
|
|
3
3
|
filename?: string;
|
|
4
4
|
file?: FileViewerFileRef;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { normalizeFileViewerToolbar } from '
|
|
2
|
-
import { normalizeFileViewerTheme } from '
|
|
3
|
-
import { getExtension, resolveFileViewerSourceFilename } from '
|
|
1
|
+
import { normalizeFileViewerToolbar } from '../lifecycle/operations.js';
|
|
2
|
+
import { normalizeFileViewerTheme } from '../config/options.js';
|
|
3
|
+
import { getExtension, resolveFileViewerSourceFilename } from '../source';
|
|
4
4
|
export const resolveFileViewerPresentationState = ({ filename, file, url, options, }) => {
|
|
5
5
|
const displayFilename = resolveFileViewerSourceFilename({
|
|
6
6
|
filename,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileRenderExportAdapter, FileViewerOperationAvailability, RendererDefinition, RendererSession } from '
|
|
1
|
+
import type { FileRenderExportAdapter, FileViewerOperationAvailability, RendererDefinition, RendererSession } from '../contracts/types';
|
|
2
2
|
export declare const DEFAULT_OPERATION_AVAILABILITY: FileViewerOperationAvailability;
|
|
3
3
|
export declare const getRendererAvailability: (renderer: RendererDefinition | undefined, session?: RendererSession | null) => FileViewerOperationAvailability;
|
|
4
4
|
export declare const createUnsupportedAvailability: (extension: string) => FileViewerOperationAvailability;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ARCHIVE_EXTENSIONS, IMAGE_EXTENSIONS, MODEL_EXTENSIONS, TEXT_EXTENSIONS } from './formats.js';
|
|
2
|
-
import { normalizeFileExtension } from '
|
|
2
|
+
import { normalizeFileExtension } from '../source';
|
|
3
3
|
export const DEFAULT_OPERATION_AVAILABILITY = Object.freeze({
|
|
4
4
|
download: false,
|
|
5
5
|
print: false,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { RendererDefinition, RendererRegistry } from '
|
|
1
|
+
import type { RendererDefinition, RendererRegistry } from '../contracts/types';
|
|
2
2
|
export declare const createRendererRegistry: (initialDefinitions?: readonly RendererDefinition[]) => RendererRegistry;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DEFAULT_RENDERER_DEFINITIONS } from './formats.js';
|
|
2
|
-
import { normalizeFileExtension } from '
|
|
2
|
+
import { normalizeFileExtension } from '../source';
|
|
3
3
|
const normalizeDefinition = (definition) => ({
|
|
4
4
|
...definition,
|
|
5
5
|
extensions: definition.extensions.map(normalizeFileExtension),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderArchive(buffer: ArrayBuffer, target: HTMLDivElement, _type?: string, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { resolveFileViewerArchiveWasmUrl, resolveFileViewerArchiveWorkerUrl, } from '../assets.js';
|
|
2
|
-
import { disposeFileViewerRendered } from '../
|
|
1
|
+
import { resolveFileViewerArchiveWasmUrl, resolveFileViewerArchiveWorkerUrl, } from '../platform/assets.js';
|
|
2
|
+
import { disposeFileViewerRendered } from '../rendering/handler.js';
|
|
3
3
|
import { createArchiveCacheKey, flattenArchiveObject, formatArchiveBytes, getArchiveEntryExtension, } from './archiveShared.js';
|
|
4
4
|
import { readArchiveCache, writeArchiveCache } from './archiveCache.js';
|
|
5
5
|
import { loadArchiveEntriesWithoutWorker } from './archiveFallback.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ARCHIVE_EXTENSIONS, DEFAULT_SUPPORTED_EXTENSIONS, } from '../formats.js';
|
|
1
|
+
import { ARCHIVE_EXTENSIONS, DEFAULT_SUPPORTED_EXTENSIONS, } from '../registry/formats.js';
|
|
2
2
|
export const ARCHIVE_PREVIEWABLE_EXTENSIONS = DEFAULT_SUPPORTED_EXTENSIONS;
|
|
3
3
|
export const getArchiveEntryExtension = (name) => {
|
|
4
4
|
const clean = name.split(/[?#]/)[0] || name;
|
package/dist/renderers/cad.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderCad(buffer: ArrayBuffer, target: HTMLDivElement, type?: string, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/cad.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CadViewer, } from '@flyfish-dev/cad-viewer';
|
|
2
|
-
import { resolveFileViewerCadAssetUrls } from '../assets.js';
|
|
3
|
-
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../
|
|
4
|
-
import { createFileViewerZoomChangeEmitter } from '../
|
|
2
|
+
import { resolveFileViewerCadAssetUrls } from '../platform/assets.js';
|
|
3
|
+
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../features/document/dom';
|
|
4
|
+
import { createFileViewerZoomChangeEmitter } from '../features/document/zoom.js';
|
|
5
5
|
const CAD_WORKER_TIMEOUT = 120000;
|
|
6
6
|
const cadStyle = `
|
|
7
7
|
.cad-shell{display:flex;height:100%;min-height:100%;flex-direction:column;background:#f5f7fb;color:#142335}
|
package/dist/renderers/code.d.ts
CHANGED
package/dist/renderers/code.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from '../
|
|
2
|
-
import { readFileViewerText as readText } from '../source
|
|
3
|
-
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider } from '../
|
|
1
|
+
import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from '../features/document/zoom.js';
|
|
2
|
+
import { readFileViewerText as readText } from '../source';
|
|
3
|
+
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider } from '../features/document/dom';
|
|
4
4
|
const languageMap = {
|
|
5
5
|
bash: 'bash',
|
|
6
6
|
c: 'cpp',
|
package/dist/renderers/data.d.ts
CHANGED
package/dist/renderers/data.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveFileViewerDataSqlWasmUrl } from '../assets.js';
|
|
1
|
+
import { resolveFileViewerDataSqlWasmUrl } from '../platform/assets.js';
|
|
2
2
|
const dataStyle = `
|
|
3
3
|
.data-viewer{min-height:100%;padding:28px;background:#eef1f4;color:#132235}
|
|
4
4
|
.data-card{max-width:1080px;margin:0 auto;overflow:hidden;border:1px solid rgba(15,23,42,.08);border-radius:8px;background:#fff;box-shadow:0 18px 48px rgba(15,23,42,.12)}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../
|
|
2
|
-
import { createFileViewerZoomChangeEmitter } from '../
|
|
3
|
-
import { waitForFileViewerNextPaint } from '../export.js';
|
|
4
|
-
import { readFileViewerText } from '../source
|
|
1
|
+
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../features/document/dom';
|
|
2
|
+
import { createFileViewerZoomChangeEmitter } from '../features/document/zoom.js';
|
|
3
|
+
import { waitForFileViewerNextPaint } from '../output/export.js';
|
|
4
|
+
import { readFileViewerText } from '../source';
|
|
5
5
|
const DIAGRAMS_VIEWER_URL = 'https://viewer.diagrams.net/js/viewer-static.min.js';
|
|
6
6
|
const SVG_NS = 'http://www.w3.org/2000/svg';
|
|
7
7
|
const EXCALIDRAW_OFFICIAL_TIMEOUT = 6000;
|
package/dist/renderers/eda.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderEda(buffer: ArrayBuffer, target: HTMLDivElement, type?: string, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderEmail(buffer: ArrayBuffer, target: HTMLDivElement, type?: string, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/email.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { disposeFileViewerRendered } from '../
|
|
1
|
+
import { disposeFileViewerRendered } from '../rendering/handler.js';
|
|
2
2
|
const emailStyle = `
|
|
3
3
|
.email-viewer{position:relative;height:100%;min-height:0;display:flex;flex-direction:column;background:#f3f6f8;color:#172033;box-sizing:border-box}
|
|
4
4
|
.email-viewer *{box-sizing:border-box}
|
package/dist/renderers/epub.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderEpub(buffer: ArrayBuffer, target: HTMLDivElement): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/geo.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderGeo(buffer: ArrayBuffer, target: HTMLDivElement, type?: string): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/geo.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderImage(buffer: ArrayBuffer, target: HTMLDivElement, type?: string): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/image.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../
|
|
2
|
-
import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from '../
|
|
1
|
+
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../features/document/dom';
|
|
2
|
+
import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from '../features/document/zoom.js';
|
|
3
3
|
const imageMimeMap = {
|
|
4
4
|
avif: 'image/avif',
|
|
5
5
|
bmp: 'image/bmp',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileRenderHandler, FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileRenderHandler, FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
type CoreBrowserRendererHandler = FileRenderHandler<FileViewerRenderedInstance, HTMLDivElement>;
|
|
3
3
|
interface CoreBrowserRendererHandlerEntry {
|
|
4
4
|
rendererId: string;
|
package/dist/renderers/index.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// Browser renderer strategy registry.
|
|
2
|
+
//
|
|
3
|
+
// Each entry lazy-loads a concrete renderer only after its format is selected.
|
|
4
|
+
// Keep renderer-specific dependencies inside the leaf renderer files so the
|
|
5
|
+
// core shell and framework wrappers stay fast on first load.
|
|
6
|
+
import { DEFAULT_RENDERER_DEFINITIONS } from '../registry/formats.js';
|
|
7
|
+
import { createFileRenderHandlerRegistry } from '../rendering/handler.js';
|
|
8
|
+
import { createFileViewerRendererDispatcher } from '../rendering/dispatcher.js';
|
|
9
|
+
import { createFileViewerUnsupportedState } from '../viewer/state.js';
|
|
5
10
|
const createWrapper = (el) => ({
|
|
6
11
|
$el: el,
|
|
7
12
|
unmount() {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderMarkdown(buffer: ArrayBuffer, target: HTMLDivElement): Promise<FileViewerRenderedInstance>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { marked } from 'marked';
|
|
2
|
-
import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from '../
|
|
3
|
-
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../
|
|
4
|
-
import { readFileViewerText as readText } from '../source
|
|
2
|
+
import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter } from '../features/document/zoom.js';
|
|
3
|
+
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../features/document/dom';
|
|
4
|
+
import { readFileViewerText as readText } from '../source';
|
|
5
5
|
const markdownStyle = `
|
|
6
6
|
.markdown-viewer{min-height:100%;padding:28px 16px 48px;background:#eef1f4;overflow:auto;box-sizing:border-box}
|
|
7
7
|
.markdown-body{color-scheme:light;--bgColor-default:#fff;--bgColor-muted:#f6f8fa;--bgColor-neutral-muted:#818b981f;--borderColor-default:#d1d9e0;--borderColor-muted:#d1d9e0b3;--borderColor-neutral-muted:#d1d9e0b3;--fgColor-default:#1f2328;--fgColor-muted:#59636e;--fgColor-accent:#0969da;background:var(--bgColor-default);border:1px solid rgba(20,35,53,.1);border-radius:12px;margin:0 auto;box-sizing:border-box;min-width:200px;max-width:var(--markdown-max-width,980px);padding:var(--markdown-padding,45px);color:var(--fgColor-default);font-size:var(--markdown-font-size,16px);box-shadow:0 18px 42px rgba(15,23,42,.1)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderModel(buffer: ArrayBuffer, target: HTMLDivElement, type?: string, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/ofd.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderOfd(buffer: ArrayBuffer, target: HTMLDivElement, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/ofd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../
|
|
2
|
-
import { createFileViewerZoomChangeEmitter } from '../
|
|
1
|
+
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../features/document/dom';
|
|
2
|
+
import { createFileViewerZoomChangeEmitter } from '../features/document/zoom.js';
|
|
3
3
|
const OFD_MIN_SCALE = 0.35;
|
|
4
4
|
const OFD_MAX_SCALE = 3;
|
|
5
5
|
const OFD_ZOOM_STEP = 0.1;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderOpenDocument(buffer: ArrayBuffer, target: HTMLDivElement, type?: string): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/pdf.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export declare const DEFAULT_FILE_VIEWER_PDF_WORKER_URL: string;
|
|
3
3
|
export default function renderPdf(buffer: ArrayBuffer, target: HTMLDivElement, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/pdf.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { getDocument, GlobalWorkerOptions, PDFWorker as PdfJsWorker, PixelsPerInch, version, } from 'pdfjs-dist/legacy/build/pdf.mjs';
|
|
2
2
|
import { EventBus, GenericL10n, PDFFindController, PDFLinkService, PDFViewer, } from 'pdfjs-dist/legacy/web/pdf_viewer.mjs';
|
|
3
|
-
import { registerFileViewerSearchProvider, registerFileViewerZoomProvider, unregisterFileViewerSearchProvider, unregisterFileViewerZoomProvider, } from '../
|
|
4
|
-
import { createFileViewerZoomChangeEmitter } from '../
|
|
5
|
-
import { buildPrintPageStyle, formatCssPixels, } from '../printLayout.js';
|
|
6
|
-
import { DEFAULT_PDF_RANGE_CHUNK_SIZE } from '../
|
|
3
|
+
import { registerFileViewerSearchProvider, registerFileViewerZoomProvider, unregisterFileViewerSearchProvider, unregisterFileViewerZoomProvider, } from '../features/document/dom';
|
|
4
|
+
import { createFileViewerZoomChangeEmitter } from '../features/document/zoom.js';
|
|
5
|
+
import { buildPrintPageStyle, formatCssPixels, } from '../output/printLayout.js';
|
|
6
|
+
import { DEFAULT_PDF_RANGE_CHUNK_SIZE } from '../source/loading.js';
|
|
7
7
|
import { pdfViewerStyle } from './pdfStyles.js';
|
|
8
8
|
export const DEFAULT_FILE_VIEWER_PDF_WORKER_URL = `https://npm.onmicrosoft.cn/pdfjs-dist@${version}/legacy/build/pdf.worker.mjs`;
|
|
9
9
|
const MIN_SCALE = 0.2;
|
|
@@ -14,7 +14,9 @@ const PAGE_BORDER_WIDTH = 18;
|
|
|
14
14
|
const PDF_EXPORT_MAX_PAGE_PIXELS = 8000000;
|
|
15
15
|
const createStyle = (documentRef) => {
|
|
16
16
|
const style = documentRef.createElement('style');
|
|
17
|
-
style.textContent = pdfViewerStyle
|
|
17
|
+
style.textContent = `${pdfViewerStyle}
|
|
18
|
+
.pdf-state[hidden],.pdf-nav-pane[hidden]{display:none!important}
|
|
19
|
+
`;
|
|
18
20
|
return style;
|
|
19
21
|
};
|
|
20
22
|
const createElement = (documentRef, tagName, className, text) => {
|
package/dist/renderers/pptx.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance } from '../types';
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance } from '../contracts/types';
|
|
2
2
|
export default function renderPptx(buffer: ArrayBuffer, target: HTMLDivElement, _type?: string, context?: FileRenderContext): Promise<FileViewerRenderedInstance>;
|
package/dist/renderers/pptx.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { PptxViewer, RECOMMENDED_ZIP_LIMITS } from '@
|
|
2
|
-
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../
|
|
3
|
-
import { createFileViewerZoomChangeEmitter } from '../
|
|
4
|
-
import { waitForFileViewerNextPaint } from '../export.js';
|
|
1
|
+
import { PptxViewer, RECOMMENDED_ZIP_LIMITS } from '@file-viewer/pptx';
|
|
2
|
+
import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '../features/document/dom';
|
|
3
|
+
import { createFileViewerZoomChangeEmitter } from '../features/document/zoom.js';
|
|
4
|
+
import { waitForFileViewerNextPaint } from '../output/export.js';
|
|
5
5
|
const pptxStyle = `
|
|
6
6
|
.pptx-viewer-shell{position:relative;box-sizing:border-box;min-height:100%;padding:24px 20px;background:#eef3f8;color:#1f2d3b;font-family:Aptos,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif}
|
|
7
7
|
.pptx-render-surface{min-height:240px}
|
|
8
8
|
.pptx-render-surface.is-loading{opacity:.72}
|
|
9
9
|
.pptx-loading{position:sticky;top:12px;z-index:3;box-sizing:border-box;display:inline-flex;align-items:center;gap:10px;margin:0 0 16px 50%;padding:10px 14px;border:1px solid rgba(42,94,144,.14);border-radius:999px;background:rgba(255,255,255,.92);color:#41556b;box-shadow:0 12px 32px rgba(24,44,64,.12);transform:translateX(-50%)}
|
|
10
|
+
.pptx-loading[hidden],.pptx-error[hidden]{display:none!important}
|
|
10
11
|
.pptx-loading-dot{width:9px;height:9px;border-radius:999px;background:#1f9d67;box-shadow:0 0 0 6px rgba(31,157,103,.13)}
|
|
11
12
|
.pptx-error{box-sizing:border-box;width:min(680px,calc(100% - 32px));margin:48px auto;padding:24px;border:1px solid rgba(28,43,58,.12);border-radius:14px;background:#fff;color:#1f2d3b;box-shadow:0 16px 42px rgba(25,42,54,.08)}
|
|
12
13
|
.pptx-error strong{display:block;margin-bottom:10px;font-size:18px}
|
|
@@ -167,13 +168,27 @@ export default async function renderPptx(buffer, target, _type, context) {
|
|
|
167
168
|
onSlideError: (_index, error) => {
|
|
168
169
|
console.warn('PPTX slide render warning:', error);
|
|
169
170
|
},
|
|
171
|
+
onError: error => {
|
|
172
|
+
var _a;
|
|
173
|
+
if (disposed) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
state = 'error';
|
|
177
|
+
errorMessage = formatErrorMessage(error);
|
|
178
|
+
(_a = context === null || context === void 0 ? void 0 : context.registerExportAdapter) === null || _a === void 0 ? void 0 : _a.call(context, null);
|
|
179
|
+
syncUi();
|
|
180
|
+
},
|
|
170
181
|
});
|
|
171
182
|
if (disposed) {
|
|
172
183
|
nextViewer.destroy();
|
|
173
184
|
return;
|
|
174
185
|
}
|
|
175
186
|
viewer = nextViewer;
|
|
187
|
+
state = 'ready';
|
|
188
|
+
notifyProgressiveReady();
|
|
189
|
+
zoomPercent = getCurrentZoomPercent();
|
|
176
190
|
registerExportAdapter();
|
|
191
|
+
syncUi();
|
|
177
192
|
zoomEmitter.emit();
|
|
178
193
|
}
|
|
179
194
|
catch (error) {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FileRenderContext, FileViewerRenderedInstance as AppWrapper } from '../types';
|
|
1
|
+
import type { FileRenderContext, FileViewerRenderedInstance as AppWrapper } from '../contracts/types';
|
|
2
2
|
declare const renderFileViewerSpreadsheet: (buffer: ArrayBuffer, target: HTMLDivElement, _type?: string, context?: FileRenderContext) => Promise<AppWrapper>;
|
|
3
3
|
export default renderFileViewerSpreadsheet;
|