@file-viewer/core 2.0.11 → 2.1.1
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 +2 -2
- package/README.md +2 -2
- package/dist/config/options.d.ts +1 -1
- package/dist/config/options.js +1 -1
- package/dist/contracts/types.d.ts +76 -1
- package/dist/headless.d.ts +3 -3
- package/dist/headless.js +2 -2
- package/dist/index.d.ts +10 -7
- package/dist/index.js +106 -49
- package/dist/lifecycle/operations.d.ts +1 -0
- package/dist/lifecycle/operations.js +65 -6
- package/dist/platform/assets.d.ts +3 -1
- package/dist/platform/assets.js +43 -6
- package/dist/registry/capabilities.d.ts +2 -2
- package/dist/registry/capabilities.js +2 -1
- package/dist/registry/formats.d.ts +20 -7
- package/dist/registry/formats.js +14 -5
- package/dist/registry/registry.d.ts +8 -1
- package/dist/registry/registry.js +29 -0
- package/dist/renderers/image.js +1 -10
- package/dist/renderers/index.d.ts +320 -2
- package/dist/renderers/index.js +27 -157
- package/dist/viewer/createViewer.js +86 -3
- package/package.json +17 -44
- package/dist/renderers/archive.d.ts +0 -2
- package/dist/renderers/archive.js +0 -547
- package/dist/renderers/archiveCache.d.ts +0 -10
- package/dist/renderers/archiveCache.js +0 -96
- package/dist/renderers/archiveFallback.d.ts +0 -7
- package/dist/renderers/archiveFallback.js +0 -166
- package/dist/renderers/archiveShared.d.ts +0 -23
- package/dist/renderers/archiveShared.js +0 -71
- package/dist/renderers/audio.d.ts +0 -8
- package/dist/renderers/audio.js +0 -219
- package/dist/renderers/cad.d.ts +0 -2
- package/dist/renderers/cad.js +0 -446
- package/dist/renderers/code.d.ts +0 -11
- package/dist/renderers/code.js +0 -233
- package/dist/renderers/data.d.ts +0 -7
- package/dist/renderers/data.js +0 -370
- package/dist/renderers/drawing.d.ts +0 -10
- package/dist/renderers/drawing.js +0 -882
- package/dist/renderers/eda.d.ts +0 -2
- package/dist/renderers/eda.js +0 -434
- package/dist/renderers/edaParser.d.ts +0 -77
- package/dist/renderers/edaParser.js +0 -569
- package/dist/renderers/email.d.ts +0 -2
- package/dist/renderers/email.js +0 -463
- package/dist/renderers/epub.d.ts +0 -2
- package/dist/renderers/epub.js +0 -331
- package/dist/renderers/geo.d.ts +0 -2
- package/dist/renderers/geo.js +0 -284
- package/dist/renderers/markdown.d.ts +0 -2
- package/dist/renderers/markdown.js +0 -83
- package/dist/renderers/model.d.ts +0 -2
- package/dist/renderers/model.js +0 -567
- package/dist/renderers/ofd.d.ts +0 -2
- package/dist/renderers/ofd.js +0 -256
- package/dist/renderers/openDocument.d.ts +0 -2
- package/dist/renderers/openDocument.js +0 -122
- package/dist/renderers/pdf.d.ts +0 -3
- package/dist/renderers/pdf.js +0 -1001
- package/dist/renderers/pdfStyles.d.ts +0 -1
- package/dist/renderers/pdfStyles.js +0 -1
- package/dist/renderers/pptx.d.ts +0 -2
- package/dist/renderers/pptx.js +0 -217
- package/dist/renderers/spreadsheet/state.d.ts +0 -80
- package/dist/renderers/spreadsheet/state.js +0 -96
- package/dist/renderers/spreadsheet/view.d.ts +0 -25
- package/dist/renderers/spreadsheet/view.js +0 -833
- package/dist/renderers/spreadsheet/worker/index.d.ts +0 -2
- package/dist/renderers/spreadsheet/worker/index.js +0 -1
- package/dist/renderers/spreadsheet/worker/sheetjs/SheetJsModel.d.ts +0 -73
- package/dist/renderers/spreadsheet/worker/sheetjs/SheetJsModel.js +0 -623
- package/dist/renderers/spreadsheet/worker/sheetjs/color.d.ts +0 -2
- package/dist/renderers/spreadsheet/worker/sheetjs/color.js +0 -73
- package/dist/renderers/spreadsheet/worker/sheetjs/index.d.ts +0 -1
- package/dist/renderers/spreadsheet/worker/sheetjs/index.js +0 -1
- package/dist/renderers/spreadsheet/worker/sheetjs/parser.d.ts +0 -18
- package/dist/renderers/spreadsheet/worker/sheetjs/parser.js +0 -106
- package/dist/renderers/spreadsheet/worker/sheetjs/sheet.worker.d.ts +0 -1
- package/dist/renderers/spreadsheet/worker/sheetjs/sheet.worker.js +0 -11
- package/dist/renderers/spreadsheet/worker/type.d.ts +0 -57
- package/dist/renderers/spreadsheet/worker/type.js +0 -1
- package/dist/renderers/spreadsheet.d.ts +0 -3
- package/dist/renderers/spreadsheet.js +0 -929
- package/dist/renderers/typst.d.ts +0 -8
- package/dist/renderers/typst.js +0 -547
- package/dist/renderers/umd/parser.d.ts +0 -30
- package/dist/renderers/umd/parser.js +0 -408
- package/dist/renderers/umd.d.ts +0 -2
- package/dist/renderers/umd.js +0 -297
- package/dist/renderers/video.d.ts +0 -8
- package/dist/renderers/video.js +0 -108
- package/dist/renderers/wordDoc.d.ts +0 -5
- package/dist/renderers/wordDoc.js +0 -284
- package/dist/renderers/wordDocx.d.ts +0 -5
- package/dist/renderers/wordDocx.js +0 -985
- package/dist/renderers/wordDocx.worker.d.ts +0 -1
- package/dist/renderers/wordDocx.worker.js +0 -96
- package/vendor/ofd/dltech/jbig2/arithmetic_decoder.js +0 -183
- package/vendor/ofd/dltech/jbig2/ccitt.js +0 -1070
- package/vendor/ofd/dltech/jbig2/compatibility.js +0 -12
- package/vendor/ofd/dltech/jbig2/core_utils.js +0 -180
- package/vendor/ofd/dltech/jbig2/is_node.js +0 -27
- package/vendor/ofd/dltech/jbig2/jbig2.js +0 -2589
- package/vendor/ofd/dltech/jbig2/jbig2_stream.js +0 -81
- package/vendor/ofd/dltech/jbig2/primitives.js +0 -387
- package/vendor/ofd/dltech/jbig2/stream.js +0 -1348
- package/vendor/ofd/dltech/jbig2/util.js +0 -972
- package/vendor/ofd/dltech/ofd/ofd.d.ts +0 -11
- package/vendor/ofd/dltech/ofd/ofd.js +0 -100
- package/vendor/ofd/dltech/ofd/ofd_parser.js +0 -395
- package/vendor/ofd/dltech/ofd/ofd_render.js +0 -473
- package/vendor/ofd/dltech/ofd/ofd_util.js +0 -350
- package/vendor/ofd/dltech/ofd/pipeline.js +0 -26
|
@@ -22,6 +22,12 @@ export const FILE_VIEWER_OPERATION_LABELS = {
|
|
|
22
22
|
};
|
|
23
23
|
export const FILE_VIEWER_BEFORE_OPERATION_ERROR_PREFIX = '操作前置校验失败';
|
|
24
24
|
export const FILE_VIEWER_LIFECYCLE_HOOK_ERROR_MESSAGE_PREFIX = 'FileViewer';
|
|
25
|
+
const FILE_VIEWER_ZOOM_OPERATIONS = ['zoom-in', 'zoom-out', 'zoom-reset'];
|
|
26
|
+
const FILE_VIEWER_ZOOM_BUTTON_OPERATIONS = {
|
|
27
|
+
canZoomIn: 'zoom-in',
|
|
28
|
+
canZoomOut: 'zoom-out',
|
|
29
|
+
canReset: 'zoom-reset',
|
|
30
|
+
};
|
|
25
31
|
export const buildFileViewerLifecycleContext = ({ phase, version, source, filename, file, url, size, bufferSize, startedAt, duration, timestamp, reason, }) => {
|
|
26
32
|
var _a;
|
|
27
33
|
const resolvedFilename = normalizeFilename((file === null || file === void 0 ? void 0 : file.name) || filename || url || '');
|
|
@@ -219,9 +225,49 @@ export const getFileViewerBeforeOperationHooks = (options, operation) => {
|
|
|
219
225
|
: undefined;
|
|
220
226
|
return [options === null || options === void 0 ? void 0 : options.beforeOperation, toolbar.beforeOperation, specificHook];
|
|
221
227
|
};
|
|
228
|
+
const isToolbarActionMapAllowed = (map, operation) => (map === null || map === void 0 ? void 0 : map[operation]) !== false;
|
|
229
|
+
export const isFileViewerToolbarOperationPermitted = (toolbar, operation) => {
|
|
230
|
+
if (!toolbar || typeof toolbar !== 'object') {
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
return isToolbarActionMapAllowed(toolbar.permissions, operation);
|
|
234
|
+
};
|
|
235
|
+
const isFileViewerToolbarOperationVisible = (toolbar, operation) => isToolbarActionMapAllowed(toolbar.items, operation) &&
|
|
236
|
+
isToolbarActionMapAllowed(toolbar.permissions, operation);
|
|
237
|
+
const hasAnyToolbarZoomOperation = (toolbar) => FILE_VIEWER_ZOOM_OPERATIONS.some(operation => isFileViewerToolbarOperationVisible(toolbar, operation));
|
|
238
|
+
const applyToolbarPermissionsToAvailability = (availability, toolbar) => {
|
|
239
|
+
if (!toolbar || typeof toolbar !== 'object' || !toolbar.permissions) {
|
|
240
|
+
return availability;
|
|
241
|
+
}
|
|
242
|
+
const next = cloneFileViewerOperationAvailability(availability);
|
|
243
|
+
if (!isFileViewerToolbarOperationPermitted(toolbar, 'download')) {
|
|
244
|
+
next.download = false;
|
|
245
|
+
}
|
|
246
|
+
if (!isFileViewerToolbarOperationPermitted(toolbar, 'print')) {
|
|
247
|
+
next.print = false;
|
|
248
|
+
}
|
|
249
|
+
if (!isFileViewerToolbarOperationPermitted(toolbar, 'export-html')) {
|
|
250
|
+
next.exportHtml = false;
|
|
251
|
+
}
|
|
252
|
+
if (!isFileViewerToolbarOperationPermitted(toolbar, 'zoom-in')) {
|
|
253
|
+
next.zoomIn = false;
|
|
254
|
+
}
|
|
255
|
+
if (!isFileViewerToolbarOperationPermitted(toolbar, 'zoom-out')) {
|
|
256
|
+
next.zoomOut = false;
|
|
257
|
+
}
|
|
258
|
+
if (!isFileViewerToolbarOperationPermitted(toolbar, 'zoom-reset')) {
|
|
259
|
+
next.zoomReset = false;
|
|
260
|
+
}
|
|
261
|
+
next.zoom = next.zoom && (next.zoomIn || next.zoomOut || next.zoomReset);
|
|
262
|
+
return next;
|
|
263
|
+
};
|
|
222
264
|
export const runFileViewerBeforeOperation = async ({ context, options, onBefore, onCancel, onError, }) => {
|
|
223
265
|
onBefore === null || onBefore === void 0 ? void 0 : onBefore(context);
|
|
224
266
|
try {
|
|
267
|
+
if (!isFileViewerToolbarOperationPermitted(options === null || options === void 0 ? void 0 : options.toolbar, context.operation)) {
|
|
268
|
+
onCancel === null || onCancel === void 0 ? void 0 : onCancel(context);
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
225
271
|
for (const hook of getFileViewerBeforeOperationHooks(options, context.operation)) {
|
|
226
272
|
if (!hook) {
|
|
227
273
|
continue;
|
|
@@ -413,10 +459,17 @@ export const normalizeFileViewerToolbar = (options) => {
|
|
|
413
459
|
}
|
|
414
460
|
if (toolbar && typeof toolbar === 'object') {
|
|
415
461
|
return {
|
|
416
|
-
download: toolbar.download !== false,
|
|
417
|
-
print: toolbar.print !== false,
|
|
418
|
-
exportHtml: toolbar.exportHtml !== false,
|
|
419
|
-
zoom: toolbar.zoom !== false,
|
|
462
|
+
download: toolbar.download !== false && isFileViewerToolbarOperationVisible(toolbar, 'download'),
|
|
463
|
+
print: toolbar.print !== false && isFileViewerToolbarOperationVisible(toolbar, 'print'),
|
|
464
|
+
exportHtml: toolbar.exportHtml !== false && isFileViewerToolbarOperationVisible(toolbar, 'export-html'),
|
|
465
|
+
zoom: toolbar.zoom !== false && hasAnyToolbarZoomOperation(toolbar),
|
|
466
|
+
items: toolbar.items,
|
|
467
|
+
permissions: toolbar.permissions,
|
|
468
|
+
position: toolbar.position,
|
|
469
|
+
beforeOperation: toolbar.beforeOperation,
|
|
470
|
+
beforeDownload: toolbar.beforeDownload,
|
|
471
|
+
beforePrint: toolbar.beforePrint,
|
|
472
|
+
beforeExportHtml: toolbar.beforeExportHtml,
|
|
420
473
|
};
|
|
421
474
|
}
|
|
422
475
|
return {
|
|
@@ -461,13 +514,19 @@ export const hasVisibleFileViewerToolbarActions = (toolbar) => {
|
|
|
461
514
|
return !!(toolbar.download || toolbar.print || toolbar.exportHtml || toolbar.zoom);
|
|
462
515
|
};
|
|
463
516
|
export const isFileViewerZoomButtonDisabled = ({ toolbarDisabled = false, availability, zoomState, action, }) => {
|
|
464
|
-
|
|
517
|
+
const operation = FILE_VIEWER_ZOOM_BUTTON_OPERATIONS[action];
|
|
518
|
+
const operationAllowed = operation === 'zoom-in'
|
|
519
|
+
? availability.zoomIn
|
|
520
|
+
: operation === 'zoom-out'
|
|
521
|
+
? availability.zoomOut
|
|
522
|
+
: availability.zoomReset;
|
|
523
|
+
return toolbarDisabled || !availability.zoom || !operationAllowed || !zoomState[action];
|
|
465
524
|
};
|
|
466
525
|
export const isFileViewerToolbarDisabled = ({ loading = false, hasError = false, }) => {
|
|
467
526
|
return !!(loading || hasError);
|
|
468
527
|
};
|
|
469
528
|
export const resolveFileViewerToolbarState = ({ toolbar, options, loading = false, ...availabilityInput }) => {
|
|
470
|
-
const operationAvailability = resolveFileViewerOperationAvailability(availabilityInput);
|
|
529
|
+
const operationAvailability = applyToolbarPermissionsToAvailability(resolveFileViewerOperationAvailability(availabilityInput), options === null || options === void 0 ? void 0 : options.toolbar);
|
|
471
530
|
const visibleToolbar = resolveVisibleFileViewerToolbar(toolbar, operationAvailability);
|
|
472
531
|
return {
|
|
473
532
|
operationAvailability,
|
|
@@ -15,6 +15,7 @@ export declare const DEFAULT_FILE_VIEWER_CAD_WORKER_PATH = "wasm/cad/dwg-worker.
|
|
|
15
15
|
export declare const DEFAULT_FILE_VIEWER_CAD_DWF_WASM_PATH = "wasm/cad/dwfv-render.wasm";
|
|
16
16
|
export declare const DEFAULT_FILE_VIEWER_TYPST_COMPILER_WASM_URL = "wasm/typst/typst_ts_web_compiler_bg.wasm";
|
|
17
17
|
export declare const DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_URL = "wasm/typst/typst_ts_renderer_bg.wasm";
|
|
18
|
+
export declare const DEFAULT_FILE_VIEWER_TYPST_FONT_ASSETS_URL = "wasm/typst/fonts/";
|
|
18
19
|
export declare const FALLBACK_FILE_VIEWER_TYPST_COMPILER_WASM_URL = "wasm/typst/typst_ts_web_compiler_bg.wasm";
|
|
19
20
|
export declare const FALLBACK_FILE_VIEWER_TYPST_RENDERER_WASM_URL = "wasm/typst/typst_ts_renderer_bg.wasm";
|
|
20
21
|
export declare const DEFAULT_FILE_VIEWER_TYPST_COMPILER_WASM_PACKAGE_PATH = "@myriaddreamin/typst-ts-web-compiler/pkg/typst_ts_web_compiler_bg.wasm";
|
|
@@ -39,7 +40,7 @@ export interface ResolvedFileViewerPdfAssetUrls {
|
|
|
39
40
|
}
|
|
40
41
|
export type FileViewerRendererAssetKind = 'directory' | 'worker' | 'wasm' | 'wasm-directory' | 'script' | 'bundled-wasm';
|
|
41
42
|
export type FileViewerRendererAssetTarget = 'public' | 'bundled' | 'external';
|
|
42
|
-
export type FileViewerRendererAssetOptionPath = 'archive.workerUrl' | 'archive.wasmUrl' | 'cad.wasmPath' | 'cad.workerUrl' | 'cad.dwfWasmUrl' | 'data.sqlWasmUrl' | 'docx.workerJsZipUrl' | 'docx.workerUrl' | 'drawing.viewerScriptUrl' | 'pdf.workerUrl' | 'pdf.cMapUrl' | 'pdf.wasmUrl' | 'pdf.standardFontDataUrl' | 'spreadsheet.workerUrl' | 'typst.compilerWasmUrl' | 'typst.rendererWasmUrl';
|
|
43
|
+
export type FileViewerRendererAssetOptionPath = 'archive.workerUrl' | 'archive.wasmUrl' | 'cad.wasmPath' | 'cad.workerUrl' | 'cad.dwfWasmUrl' | 'data.sqlWasmUrl' | 'docx.workerJsZipUrl' | 'docx.workerUrl' | 'drawing.viewerScriptUrl' | 'pdf.workerUrl' | 'pdf.cMapUrl' | 'pdf.wasmUrl' | 'pdf.standardFontDataUrl' | 'spreadsheet.workerUrl' | 'typst.compilerWasmUrl' | 'typst.fontAssetsUrl' | 'typst.rendererWasmUrl';
|
|
43
44
|
export interface FileViewerRendererAssetDefinition {
|
|
44
45
|
id: string;
|
|
45
46
|
rendererId: string;
|
|
@@ -76,6 +77,7 @@ export declare const resolveFileViewerDocxWorkerJsZipUrl: (options?: Pick<FileVi
|
|
|
76
77
|
export declare const resolveFileViewerSpreadsheetWorkerUrl: (options?: Pick<FileViewerSpreadsheetOptions, "workerUrl"> | null, documentBaseUrl?: string) => string;
|
|
77
78
|
export declare const resolveFileViewerTypstCompilerWasmUrl: (options?: Pick<FileViewerTypstOptions, "compilerWasmUrl"> | null, overrides?: Array<string | undefined>, documentBaseUrl?: string) => string;
|
|
78
79
|
export declare const resolveFileViewerTypstRendererWasmUrl: (options?: Pick<FileViewerTypstOptions, "rendererWasmUrl"> | null, overrides?: Array<string | undefined>, documentBaseUrl?: string) => string;
|
|
80
|
+
export declare const resolveFileViewerTypstFontAssetsUrl: (options?: Pick<FileViewerTypstOptions, "fontAssetsUrl"> | null, overrides?: Array<string | undefined>, documentBaseUrl?: string) => string;
|
|
79
81
|
export declare const resolveFileViewerDataSqlWasmUrl: (options?: Pick<FileViewerDataOptions, "sqlWasmUrl"> | null, overrides?: Array<string | undefined>, documentBaseUrl?: string) => string;
|
|
80
82
|
export declare const listFileViewerRendererAssetManifests: () => FileViewerRendererAssetManifest[];
|
|
81
83
|
export declare const getFileViewerRendererAssetManifest: (rendererId: string) => FileViewerRendererAssetManifest | null;
|
package/dist/platform/assets.js
CHANGED
|
@@ -14,6 +14,7 @@ export const DEFAULT_FILE_VIEWER_CAD_WORKER_PATH = 'wasm/cad/dwg-worker.js';
|
|
|
14
14
|
export const DEFAULT_FILE_VIEWER_CAD_DWF_WASM_PATH = 'wasm/cad/dwfv-render.wasm';
|
|
15
15
|
export const DEFAULT_FILE_VIEWER_TYPST_COMPILER_WASM_URL = 'wasm/typst/typst_ts_web_compiler_bg.wasm';
|
|
16
16
|
export const DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_URL = 'wasm/typst/typst_ts_renderer_bg.wasm';
|
|
17
|
+
export const DEFAULT_FILE_VIEWER_TYPST_FONT_ASSETS_URL = 'wasm/typst/fonts/';
|
|
17
18
|
// Compatibility aliases kept for older imports. They intentionally resolve to
|
|
18
19
|
// local viewer assets; the preview runtime must not fall back to a public CDN.
|
|
19
20
|
export const FALLBACK_FILE_VIEWER_TYPST_COMPILER_WASM_URL = DEFAULT_FILE_VIEWER_TYPST_COMPILER_WASM_URL;
|
|
@@ -217,6 +218,16 @@ export const DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS = [
|
|
|
217
218
|
optionPath: 'typst.rendererWasmUrl',
|
|
218
219
|
description: 'Typst SVG renderer WebAssembly module copied to the public assets directory.',
|
|
219
220
|
},
|
|
221
|
+
{
|
|
222
|
+
id: 'typst-font-assets',
|
|
223
|
+
rendererId: 'typst',
|
|
224
|
+
kind: 'directory',
|
|
225
|
+
target: 'public',
|
|
226
|
+
required: true,
|
|
227
|
+
defaultPath: DEFAULT_FILE_VIEWER_TYPST_FONT_ASSETS_URL,
|
|
228
|
+
optionPath: 'typst.fontAssetsUrl',
|
|
229
|
+
description: 'Self-hosted default Typst text fonts used by typst.ts without public CDN requests.',
|
|
230
|
+
},
|
|
220
231
|
],
|
|
221
232
|
},
|
|
222
233
|
{
|
|
@@ -249,6 +260,27 @@ export const resolveFileViewerAssetUrl = (value, fallback, options = {}) => {
|
|
|
249
260
|
const resolved = new URL(raw, resolvedBase).href;
|
|
250
261
|
return options.trimTrailingSlash ? resolved.replace(/\/+$/, '') : resolved;
|
|
251
262
|
};
|
|
263
|
+
const getFileViewerDocumentOriginBaseUrl = (documentBaseUrl) => {
|
|
264
|
+
try {
|
|
265
|
+
const parsed = new URL(documentBaseUrl || DEFAULT_FILE_VIEWER_DOCUMENT_BASE_URL, DEFAULT_FILE_VIEWER_DOCUMENT_BASE_URL);
|
|
266
|
+
if (parsed.origin && parsed.origin !== 'null') {
|
|
267
|
+
return `${parsed.origin}/`;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
catch {
|
|
271
|
+
// Keep the resolver deterministic in non-browser tests and unusual URL schemes.
|
|
272
|
+
}
|
|
273
|
+
return DEFAULT_FILE_VIEWER_DOCUMENT_BASE_URL;
|
|
274
|
+
};
|
|
275
|
+
const resolveFileViewerRootDefaultAssetUrl = (value, fallback, options = {}) => {
|
|
276
|
+
if (value !== undefined && value !== null && String(value).trim()) {
|
|
277
|
+
return resolveFileViewerAssetUrl(value, fallback, options);
|
|
278
|
+
}
|
|
279
|
+
return resolveFileViewerAssetUrl(undefined, fallback, {
|
|
280
|
+
...options,
|
|
281
|
+
baseUrl: getFileViewerDocumentOriginBaseUrl(options.documentBaseUrl),
|
|
282
|
+
});
|
|
283
|
+
};
|
|
252
284
|
export const resolveFileViewerArchiveWorkerUrl = (options, baseUrl) => {
|
|
253
285
|
return resolveFileViewerAssetUrl(options === null || options === void 0 ? void 0 : options.workerUrl, DEFAULT_FILE_VIEWER_ARCHIVE_WORKER_PATH, { baseUrl });
|
|
254
286
|
};
|
|
@@ -274,16 +306,16 @@ export const resolveFileViewerCadAssetUrls = (options, documentBaseUrl) => {
|
|
|
274
306
|
};
|
|
275
307
|
export const resolveFileViewerPdfAssetUrls = (options, documentBaseUrl) => {
|
|
276
308
|
return {
|
|
277
|
-
workerUrl:
|
|
309
|
+
workerUrl: resolveFileViewerRootDefaultAssetUrl(options === null || options === void 0 ? void 0 : options.workerUrl, DEFAULT_FILE_VIEWER_PDF_WORKER_PATH, {
|
|
278
310
|
documentBaseUrl,
|
|
279
311
|
}),
|
|
280
|
-
cMapUrl:
|
|
312
|
+
cMapUrl: resolveFileViewerRootDefaultAssetUrl(options === null || options === void 0 ? void 0 : options.cMapUrl, DEFAULT_FILE_VIEWER_PDF_CMAP_PATH, {
|
|
281
313
|
documentBaseUrl,
|
|
282
314
|
}),
|
|
283
|
-
wasmUrl:
|
|
315
|
+
wasmUrl: resolveFileViewerRootDefaultAssetUrl(options === null || options === void 0 ? void 0 : options.wasmUrl, DEFAULT_FILE_VIEWER_PDF_WASM_PATH, {
|
|
284
316
|
documentBaseUrl,
|
|
285
317
|
}),
|
|
286
|
-
standardFontDataUrl:
|
|
318
|
+
standardFontDataUrl: resolveFileViewerRootDefaultAssetUrl(options === null || options === void 0 ? void 0 : options.standardFontDataUrl, DEFAULT_FILE_VIEWER_PDF_STANDARD_FONT_PATH, { documentBaseUrl }),
|
|
287
319
|
};
|
|
288
320
|
};
|
|
289
321
|
export const resolveFileViewerDrawioViewerScriptUrl = (options, documentBaseUrl) => {
|
|
@@ -308,6 +340,9 @@ export const resolveFileViewerTypstCompilerWasmUrl = (options, overrides = [], d
|
|
|
308
340
|
export const resolveFileViewerTypstRendererWasmUrl = (options, overrides = [], documentBaseUrl) => {
|
|
309
341
|
return resolveFileViewerAssetUrl((options === null || options === void 0 ? void 0 : options.rendererWasmUrl) || overrides.find(Boolean), DEFAULT_FILE_VIEWER_TYPST_RENDERER_WASM_URL, { documentBaseUrl });
|
|
310
342
|
};
|
|
343
|
+
export const resolveFileViewerTypstFontAssetsUrl = (options, overrides = [], documentBaseUrl) => {
|
|
344
|
+
return resolveFileViewerAssetUrl((options === null || options === void 0 ? void 0 : options.fontAssetsUrl) || overrides.find(Boolean), DEFAULT_FILE_VIEWER_TYPST_FONT_ASSETS_URL, { documentBaseUrl, trimTrailingSlash: true });
|
|
345
|
+
};
|
|
311
346
|
export const resolveFileViewerDataSqlWasmUrl = (options, overrides = [], documentBaseUrl) => {
|
|
312
347
|
return resolveFileViewerAssetUrl((options === null || options === void 0 ? void 0 : options.sqlWasmUrl) || overrides.find(Boolean), DEFAULT_FILE_VIEWER_DATA_SQL_WASM_URL, { documentBaseUrl });
|
|
313
348
|
};
|
|
@@ -318,7 +353,7 @@ export const getFileViewerRendererAssetManifest = (rendererId) => {
|
|
|
318
353
|
return DEFAULT_FILE_VIEWER_RENDERER_ASSET_MANIFESTS.find(manifest => manifest.rendererId === rendererId) || null;
|
|
319
354
|
};
|
|
320
355
|
const getRendererAssetOptionValue = (options, optionPath) => {
|
|
321
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
356
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
322
357
|
switch (optionPath) {
|
|
323
358
|
case 'archive.workerUrl':
|
|
324
359
|
return (_a = options === null || options === void 0 ? void 0 : options.archive) === null || _a === void 0 ? void 0 : _a.workerUrl;
|
|
@@ -350,8 +385,10 @@ const getRendererAssetOptionValue = (options, optionPath) => {
|
|
|
350
385
|
return (_p = options === null || options === void 0 ? void 0 : options.spreadsheet) === null || _p === void 0 ? void 0 : _p.workerUrl;
|
|
351
386
|
case 'typst.compilerWasmUrl':
|
|
352
387
|
return (_q = options === null || options === void 0 ? void 0 : options.typst) === null || _q === void 0 ? void 0 : _q.compilerWasmUrl;
|
|
388
|
+
case 'typst.fontAssetsUrl':
|
|
389
|
+
return (_r = options === null || options === void 0 ? void 0 : options.typst) === null || _r === void 0 ? void 0 : _r.fontAssetsUrl;
|
|
353
390
|
case 'typst.rendererWasmUrl':
|
|
354
|
-
return (
|
|
391
|
+
return (_s = options === null || options === void 0 ? void 0 : options.typst) === null || _s === void 0 ? void 0 : _s.rendererWasmUrl;
|
|
355
392
|
default:
|
|
356
393
|
return undefined;
|
|
357
394
|
}
|
|
@@ -13,11 +13,11 @@ export declare const ADAPTER_PRINT_REQUIRED_EXTENSIONS: readonly ["docx", "docm"
|
|
|
13
13
|
* 这些格式的预览结果是完整 DOM / SVG / Canvas 截图,解除滚动容器裁切后
|
|
14
14
|
* 可以稳定进入浏览器打印流程。
|
|
15
15
|
*/
|
|
16
|
-
export declare const DOM_PRINTABLE_EXTENSIONS: readonly ["pptx", "pptm", "potx", "potm", "ppsx", "ppsm", "ofd", "dxf", "dwg", "dwf", "dwfx", "xps", "excalidraw", "drawio", "dio", "umd", "md", "markdown", "olb", "dra", "txt", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt", "gif", "jpg", "jpeg", "bmp", "tiff", "tif", "png", "svg", "webp", "avif", "ico", "heic", "heif", "jxl"];
|
|
16
|
+
export declare const DOM_PRINTABLE_EXTENSIONS: readonly ["pptx", "pptm", "potx", "potm", "ppsx", "ppsm", "ofd", "dxf", "dwg", "dwf", "dwfx", "xps", "excalidraw", "drawio", "dio", "mermaid", "mmd", "plantuml", "puml", "umd", "md", "markdown", "olb", "dra", "txt", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "patch", "bundle", "bdl", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt", "gif", "jpg", "jpeg", "bmp", "tiff", "tif", "png", "svg", "webp", "avif", "ico", "heic", "heif", "jxl"];
|
|
17
17
|
/**
|
|
18
18
|
* 这些格式默认不展示打印按钮,避免导出半截内容。
|
|
19
19
|
*/
|
|
20
|
-
export declare const NON_PRINTABLE_EXTENSIONS: readonly ["xlsx", "xltx", "xlsm", "xlsb", "xls", "xlt", "xltm", "csv", "ods", "fods", "numbers", "zip", "zipx", "7z", "rar", "tar", "gz", "gzip", "tgz", "bz2", "bzip2", "tbz", "tbz2", "xz", "txz", "lzma", "zst", "tzst", "cab", "ar", "cpio", "iso", "xar", "lha", "lzh", "jar", "war", "ear", "apk", "cbz", "cbr", "eml", "msg", "epub", "mp4", "mp3", "mpeg", "wav", "ogg", "oga", "opus", "m4a", "aac", "flac", "weba", "glb", "gltf", "obj", "stl", "ply", "fbx", "dae", "3ds", "3mf", "amf", "usd", "usda", "usdc", "usdz", "kmz", "step", "stp", "iges", "igs", "ifc", "3dm", "pcd", "wrl", "vrml", "xyz", "vtk", "vtp"];
|
|
20
|
+
export declare const NON_PRINTABLE_EXTENSIONS: readonly ["xlsx", "xltx", "xlsm", "xlsb", "xls", "xlt", "xltm", "csv", "ods", "fods", "numbers", "zip", "zipx", "7z", "rar", "tar", "gz", "gzip", "tgz", "bz2", "bzip2", "tbz", "tbz2", "xz", "txz", "lzma", "zst", "tzst", "cab", "ar", "cpio", "iso", "xar", "lha", "lzh", "jar", "war", "ear", "apk", "cbz", "cbr", "eml", "msg", "epub", "mp4", "mp3", "mpeg", "wav", "ogg", "oga", "opus", "m4a", "aac", "flac", "weba", "glb", "gltf", "obj", "stl", "ply", "fbx", "dae", "3ds", "3mf", "amf", "usd", "usda", "usdc", "usdz", "kmz", "step", "stp", "iges", "igs", "ifc", "3dm", "brep", "pcd", "wrl", "vrml", "xyz", "vtk", "vtp"];
|
|
21
21
|
export declare const needsDedicatedPrintAdapter: (extension: string) => boolean;
|
|
22
22
|
export declare const isDomPrintableExtension: (extension: string) => boolean;
|
|
23
23
|
export declare const isKnownNonPrintableExtension: (extension: string) => boolean;
|
|
@@ -50,7 +50,8 @@ export const ADAPTER_PRINT_REQUIRED_EXTENSIONS = [
|
|
|
50
50
|
*/
|
|
51
51
|
export const DOM_PRINTABLE_EXTENSIONS = [
|
|
52
52
|
'pptx', 'pptm', 'potx', 'potm', 'ppsx', 'ppsm', 'ofd', 'dxf', 'dwg', 'dwf', 'dwfx', 'xps',
|
|
53
|
-
'excalidraw', 'drawio', 'dio', '
|
|
53
|
+
'excalidraw', 'drawio', 'dio', 'mermaid', 'mmd', 'plantuml', 'puml', 'umd', 'md', 'markdown',
|
|
54
|
+
'olb', 'dra',
|
|
54
55
|
...TEXT_EXTENSIONS,
|
|
55
56
|
...IMAGE_EXTENSIONS,
|
|
56
57
|
];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const ARCHIVE_EXTENSIONS: readonly ["zip", "zipx", "7z", "rar", "tar", "gz", "gzip", "tgz", "bz2", "bzip2", "tbz", "tbz2", "xz", "txz", "lzma", "zst", "tzst", "cab", "ar", "cpio", "iso", "xar", "lha", "lzh", "jar", "war", "ear", "apk", "cbz", "cbr"];
|
|
2
|
-
export declare const MODEL_EXTENSIONS: readonly ["glb", "gltf", "obj", "stl", "ply", "fbx", "dae", "3ds", "3mf", "amf", "usd", "usda", "usdc", "usdz", "kmz", "step", "stp", "iges", "igs", "ifc", "3dm", "pcd", "wrl", "vrml", "xyz", "vtk", "vtp"];
|
|
3
|
-
export declare const TEXT_EXTENSIONS: readonly ["txt", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt"];
|
|
2
|
+
export declare const MODEL_EXTENSIONS: readonly ["glb", "gltf", "obj", "stl", "ply", "fbx", "dae", "3ds", "3mf", "amf", "usd", "usda", "usdc", "usdz", "kmz", "step", "stp", "iges", "igs", "ifc", "3dm", "brep", "pcd", "wrl", "vrml", "xyz", "vtk", "vtp"];
|
|
3
|
+
export declare const TEXT_EXTENSIONS: readonly ["txt", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "patch", "bundle", "bdl", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt"];
|
|
4
4
|
export declare const IMAGE_EXTENSIONS: readonly ["gif", "jpg", "jpeg", "bmp", "tiff", "tif", "png", "svg", "webp", "avif", "ico", "heic", "heif", "jxl"];
|
|
5
5
|
export declare const DEFAULT_RENDERER_DEFINITIONS: readonly [{
|
|
6
6
|
readonly id: "office-word-openxml";
|
|
@@ -136,7 +136,7 @@ export declare const DEFAULT_RENDERER_DEFINITIONS: readonly [{
|
|
|
136
136
|
readonly id: "eda";
|
|
137
137
|
readonly label: "EDA";
|
|
138
138
|
readonly category: "eda";
|
|
139
|
-
readonly extensions: readonly ["olb", "dra"];
|
|
139
|
+
readonly extensions: readonly ["olb", "dra", "gds", "oas", "oasis"];
|
|
140
140
|
readonly async: true;
|
|
141
141
|
readonly capabilities: {
|
|
142
142
|
readonly download: true;
|
|
@@ -162,7 +162,7 @@ export declare const DEFAULT_RENDERER_DEFINITIONS: readonly [{
|
|
|
162
162
|
readonly id: "model";
|
|
163
163
|
readonly label: "3D Model";
|
|
164
164
|
readonly category: "model";
|
|
165
|
-
readonly extensions: readonly ["glb", "gltf", "obj", "stl", "ply", "fbx", "dae", "3ds", "3mf", "amf", "usd", "usda", "usdc", "usdz", "kmz", "step", "stp", "iges", "igs", "ifc", "3dm", "pcd", "wrl", "vrml", "xyz", "vtk", "vtp"];
|
|
165
|
+
readonly extensions: readonly ["glb", "gltf", "obj", "stl", "ply", "fbx", "dae", "3ds", "3mf", "amf", "usd", "usda", "usdc", "usdz", "kmz", "step", "stp", "iges", "igs", "ifc", "3dm", "brep", "pcd", "wrl", "vrml", "xyz", "vtk", "vtp"];
|
|
166
166
|
readonly async: true;
|
|
167
167
|
readonly capabilities: {
|
|
168
168
|
readonly download: true;
|
|
@@ -188,7 +188,20 @@ export declare const DEFAULT_RENDERER_DEFINITIONS: readonly [{
|
|
|
188
188
|
readonly id: "drawing";
|
|
189
189
|
readonly label: "Drawing";
|
|
190
190
|
readonly category: "drawing";
|
|
191
|
-
readonly extensions: readonly ["excalidraw", "drawio", "dio"];
|
|
191
|
+
readonly extensions: readonly ["excalidraw", "drawio", "dio", "mermaid", "mmd", "plantuml", "puml"];
|
|
192
|
+
readonly async: true;
|
|
193
|
+
readonly capabilities: {
|
|
194
|
+
readonly download: true;
|
|
195
|
+
readonly print: true;
|
|
196
|
+
readonly exportHtml: true;
|
|
197
|
+
readonly zoom: "provider";
|
|
198
|
+
readonly search: true;
|
|
199
|
+
};
|
|
200
|
+
}, {
|
|
201
|
+
readonly id: "mindmap";
|
|
202
|
+
readonly label: "Mind Map";
|
|
203
|
+
readonly category: "mindmap";
|
|
204
|
+
readonly extensions: readonly ["xmind"];
|
|
192
205
|
readonly async: true;
|
|
193
206
|
readonly capabilities: {
|
|
194
207
|
readonly download: true;
|
|
@@ -253,7 +266,7 @@ export declare const DEFAULT_RENDERER_DEFINITIONS: readonly [{
|
|
|
253
266
|
readonly id: "code";
|
|
254
267
|
readonly label: "Code and Text";
|
|
255
268
|
readonly category: "code";
|
|
256
|
-
readonly extensions: readonly ["txt", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt"];
|
|
269
|
+
readonly extensions: readonly ["txt", "json", "js", "mjs", "cjs", "css", "java", "py", "html", "htm", "jsx", "ts", "tsx", "xml", "log", "vue", "yaml", "yml", "ini", "sh", "bash", "sql", "go", "rs", "php", "c", "cpp", "cc", "h", "hpp", "cs", "diff", "patch", "bundle", "bdl", "jsonc", "json5", "ipynb", "toml", "proto", "hcl", "tex", "gv", "http", "react", "rb", "swift", "kt"];
|
|
257
270
|
readonly async: true;
|
|
258
271
|
readonly capabilities: {
|
|
259
272
|
readonly download: true;
|
|
@@ -302,4 +315,4 @@ export declare const DEFAULT_RENDERER_DEFINITIONS: readonly [{
|
|
|
302
315
|
readonly search: true;
|
|
303
316
|
};
|
|
304
317
|
}];
|
|
305
|
-
export declare const DEFAULT_SUPPORTED_EXTENSIONS: readonly ("markdown" | "wasm" | "pdf" | "typst" | "zip" | "zipx" | "7z" | "rar" | "tar" | "gz" | "gzip" | "tgz" | "bz2" | "bzip2" | "tbz" | "tbz2" | "xz" | "txz" | "lzma" | "zst" | "tzst" | "cab" | "ar" | "cpio" | "iso" | "xar" | "lha" | "lzh" | "jar" | "war" | "ear" | "apk" | "cbz" | "cbr" | "glb" | "gltf" | "obj" | "stl" | "ply" | "fbx" | "dae" | "3ds" | "3mf" | "amf" | "usd" | "usda" | "usdc" | "usdz" | "kmz" | "step" | "stp" | "iges" | "igs" | "ifc" | "3dm" | "pcd" | "wrl" | "vrml" | "xyz" | "vtk" | "vtp" | "txt" | "json" | "js" | "mjs" | "cjs" | "css" | "java" | "py" | "html" | "htm" | "jsx" | "ts" | "tsx" | "xml" | "log" | "vue" | "yaml" | "yml" | "ini" | "sh" | "bash" | "sql" | "go" | "rs" | "php" | "c" | "cpp" | "cc" | "h" | "hpp" | "cs" | "diff" | "jsonc" | "json5" | "ipynb" | "toml" | "proto" | "hcl" | "tex" | "gv" | "http" | "react" | "rb" | "swift" | "kt" | "gif" | "jpg" | "jpeg" | "bmp" | "tiff" | "tif" | "png" | "svg" | "webp" | "avif" | "ico" | "heic" | "heif" | "jxl" | "docx" | "docm" | "dotx" | "dotm" | "doc" | "dot" | "pptx" | "pptm" | "potx" | "potm" | "ppsx" | "ppsm" | "rtf" | "odt" | "odp" | "xlsx" | "xltx" | "xlsm" | "xlsb" | "xls" | "xlt" | "xltm" | "csv" | "ods" | "fods" | "numbers" | "ofd" | "typ" | "eml" | "msg" | "mbox" | "olb" | "dra" | "dxf" | "dwg" | "dwf" | "dwfx" | "xps" | "geojson" | "kml" | "gpx" | "shp" | "excalidraw" | "drawio" | "dio" | "epub" | "umd" | "md" | "mp4" | "webm" | "m3u8" | "mp3" | "mpeg" | "wav" | "ogg" | "oga" | "opus" | "m4a" | "aac" | "flac" | "weba" | "midi" | "mid" | "ttf" | "otf" | "woff" | "woff2" | "psd" | "ai" | "eps" | "sqlite" | "parquet" | "avro" | "webarchive")[];
|
|
318
|
+
export declare const DEFAULT_SUPPORTED_EXTENSIONS: readonly ("markdown" | "wasm" | "pdf" | "typst" | "zip" | "zipx" | "7z" | "rar" | "tar" | "gz" | "gzip" | "tgz" | "bz2" | "bzip2" | "tbz" | "tbz2" | "xz" | "txz" | "lzma" | "zst" | "tzst" | "cab" | "ar" | "cpio" | "iso" | "xar" | "lha" | "lzh" | "jar" | "war" | "ear" | "apk" | "cbz" | "cbr" | "glb" | "gltf" | "obj" | "stl" | "ply" | "fbx" | "dae" | "3ds" | "3mf" | "amf" | "usd" | "usda" | "usdc" | "usdz" | "kmz" | "step" | "stp" | "iges" | "igs" | "ifc" | "3dm" | "brep" | "pcd" | "wrl" | "vrml" | "xyz" | "vtk" | "vtp" | "txt" | "json" | "js" | "mjs" | "cjs" | "css" | "java" | "py" | "html" | "htm" | "jsx" | "ts" | "tsx" | "xml" | "log" | "vue" | "yaml" | "yml" | "ini" | "sh" | "bash" | "sql" | "go" | "rs" | "php" | "c" | "cpp" | "cc" | "h" | "hpp" | "cs" | "diff" | "patch" | "bundle" | "bdl" | "jsonc" | "json5" | "ipynb" | "toml" | "proto" | "hcl" | "tex" | "gv" | "http" | "react" | "rb" | "swift" | "kt" | "gif" | "jpg" | "jpeg" | "bmp" | "tiff" | "tif" | "png" | "svg" | "webp" | "avif" | "ico" | "heic" | "heif" | "jxl" | "docx" | "docm" | "dotx" | "dotm" | "doc" | "dot" | "pptx" | "pptm" | "potx" | "potm" | "ppsx" | "ppsm" | "rtf" | "odt" | "odp" | "xlsx" | "xltx" | "xlsm" | "xlsb" | "xls" | "xlt" | "xltm" | "csv" | "ods" | "fods" | "numbers" | "ofd" | "typ" | "eml" | "msg" | "mbox" | "olb" | "dra" | "gds" | "oas" | "oasis" | "dxf" | "dwg" | "dwf" | "dwfx" | "xps" | "geojson" | "kml" | "gpx" | "shp" | "excalidraw" | "drawio" | "dio" | "mermaid" | "mmd" | "plantuml" | "puml" | "xmind" | "epub" | "umd" | "md" | "mp4" | "webm" | "m3u8" | "mp3" | "mpeg" | "wav" | "ogg" | "oga" | "opus" | "m4a" | "aac" | "flac" | "weba" | "midi" | "mid" | "ttf" | "otf" | "woff" | "woff2" | "psd" | "ai" | "eps" | "sqlite" | "parquet" | "avro" | "webarchive")[];
|
package/dist/registry/formats.js
CHANGED
|
@@ -5,14 +5,15 @@ export const ARCHIVE_EXTENSIONS = [
|
|
|
5
5
|
];
|
|
6
6
|
export const MODEL_EXTENSIONS = [
|
|
7
7
|
'glb', 'gltf', 'obj', 'stl', 'ply', 'fbx', 'dae', '3ds', '3mf', 'amf', 'usd', 'usda',
|
|
8
|
-
'usdc', 'usdz', 'kmz', 'step', 'stp', 'iges', 'igs', 'ifc', '3dm', 'pcd', 'wrl',
|
|
8
|
+
'usdc', 'usdz', 'kmz', 'step', 'stp', 'iges', 'igs', 'ifc', '3dm', 'brep', 'pcd', 'wrl',
|
|
9
9
|
'vrml', 'xyz', 'vtk', 'vtp',
|
|
10
10
|
];
|
|
11
11
|
export const TEXT_EXTENSIONS = [
|
|
12
12
|
'txt', 'json', 'js', 'mjs', 'cjs', 'css', 'java', 'py', 'html', 'htm', 'jsx', 'ts',
|
|
13
13
|
'tsx', 'xml', 'log', 'vue', 'yaml', 'yml', 'ini', 'sh', 'bash', 'sql', 'go', 'rs',
|
|
14
|
-
'php', 'c', 'cpp', 'cc', 'h', 'hpp', 'cs', 'diff', '
|
|
15
|
-
'
|
|
14
|
+
'php', 'c', 'cpp', 'cc', 'h', 'hpp', 'cs', 'diff', 'patch', 'bundle', 'bdl',
|
|
15
|
+
'jsonc', 'json5', 'ipynb', 'toml', 'proto', 'hcl', 'tex', 'gv', 'http', 'react',
|
|
16
|
+
'rb', 'swift', 'kt',
|
|
16
17
|
];
|
|
17
18
|
export const IMAGE_EXTENSIONS = [
|
|
18
19
|
'gif', 'jpg', 'jpeg', 'bmp', 'tiff', 'tif', 'png', 'svg', 'webp', 'avif', 'ico',
|
|
@@ -103,7 +104,7 @@ export const DEFAULT_RENDERER_DEFINITIONS = [
|
|
|
103
104
|
id: 'eda',
|
|
104
105
|
label: 'EDA',
|
|
105
106
|
category: 'eda',
|
|
106
|
-
extensions: ['olb', 'dra'],
|
|
107
|
+
extensions: ['olb', 'dra', 'gds', 'oas', 'oasis'],
|
|
107
108
|
async: true,
|
|
108
109
|
capabilities: { download: true, print: true, exportHtml: true, zoom: false, search: true },
|
|
109
110
|
},
|
|
@@ -135,7 +136,15 @@ export const DEFAULT_RENDERER_DEFINITIONS = [
|
|
|
135
136
|
id: 'drawing',
|
|
136
137
|
label: 'Drawing',
|
|
137
138
|
category: 'drawing',
|
|
138
|
-
extensions: ['excalidraw', 'drawio', 'dio'],
|
|
139
|
+
extensions: ['excalidraw', 'drawio', 'dio', 'mermaid', 'mmd', 'plantuml', 'puml'],
|
|
140
|
+
async: true,
|
|
141
|
+
capabilities: { download: true, print: true, exportHtml: true, zoom: 'provider', search: true },
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: 'mindmap',
|
|
145
|
+
label: 'Mind Map',
|
|
146
|
+
category: 'mindmap',
|
|
147
|
+
extensions: ['xmind'],
|
|
139
148
|
async: true,
|
|
140
149
|
capabilities: { download: true, print: true, exportHtml: true, zoom: 'provider', search: true },
|
|
141
150
|
},
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
import type { RendererDefinition, RendererRegistry } from '../contracts/types';
|
|
1
|
+
import type { FileViewerRendererHandlerRegistration, FileViewerRendererPluginInput, FileViewerRendererPlugin, RendererDefinition, RendererRegistry } from '../contracts/types';
|
|
2
2
|
export declare const createRendererRegistry: (initialDefinitions?: readonly RendererDefinition[]) => RendererRegistry;
|
|
3
|
+
export interface InstallFileViewerRendererPluginsOptions<Handler = unknown> {
|
|
4
|
+
registry: RendererRegistry;
|
|
5
|
+
plugins: Iterable<FileViewerRendererPlugin<Handler>>;
|
|
6
|
+
registerHandler?: (registration: FileViewerRendererHandlerRegistration<Handler>) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const collectFileViewerRendererPlugins: <Handler = unknown>(input?: FileViewerRendererPluginInput<Handler> | null) => FileViewerRendererPlugin<Handler>[];
|
|
9
|
+
export declare const installFileViewerRendererPlugins: <Handler = unknown>({ registry, plugins, registerHandler, }: InstallFileViewerRendererPluginsOptions<Handler>) => Promise<RendererRegistry>;
|
|
@@ -61,3 +61,32 @@ export const createRendererRegistry = (initialDefinitions = DEFAULT_RENDERER_DEF
|
|
|
61
61
|
},
|
|
62
62
|
};
|
|
63
63
|
};
|
|
64
|
+
const isRendererPreset = (input) => {
|
|
65
|
+
return !!input && typeof input === 'object' && !Array.isArray(input) &&
|
|
66
|
+
Array.isArray(input.renderers);
|
|
67
|
+
};
|
|
68
|
+
export const collectFileViewerRendererPlugins = (input) => {
|
|
69
|
+
if (!input) {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
if (Array.isArray(input)) {
|
|
73
|
+
return input.flatMap(item => collectFileViewerRendererPlugins(item));
|
|
74
|
+
}
|
|
75
|
+
if (isRendererPreset(input)) {
|
|
76
|
+
return collectFileViewerRendererPlugins(input.renderers);
|
|
77
|
+
}
|
|
78
|
+
return [input];
|
|
79
|
+
};
|
|
80
|
+
export const installFileViewerRendererPlugins = async ({ registry, plugins, registerHandler, }) => {
|
|
81
|
+
var _a, _b, _c;
|
|
82
|
+
for (const plugin of plugins) {
|
|
83
|
+
(_a = plugin.definitions) === null || _a === void 0 ? void 0 : _a.forEach(definition => {
|
|
84
|
+
registry.register(definition);
|
|
85
|
+
});
|
|
86
|
+
(_b = plugin.handlers) === null || _b === void 0 ? void 0 : _b.forEach(registration => {
|
|
87
|
+
registerHandler === null || registerHandler === void 0 ? void 0 : registerHandler(registration);
|
|
88
|
+
});
|
|
89
|
+
await ((_c = plugin.install) === null || _c === void 0 ? void 0 : _c.call(plugin, { registry, registerHandler }));
|
|
90
|
+
}
|
|
91
|
+
return registry;
|
|
92
|
+
};
|
package/dist/renderers/image.js
CHANGED
|
@@ -53,19 +53,10 @@ const readBlobDataUrl = async (blob) => {
|
|
|
53
53
|
reader.readAsDataURL(blob);
|
|
54
54
|
});
|
|
55
55
|
};
|
|
56
|
-
const renderHeic = async (buffer, type) => {
|
|
57
|
-
const { default: heic2any } = await import('heic2any');
|
|
58
|
-
const result = await heic2any({
|
|
59
|
-
blob: new Blob([buffer], { type: getImageBlobType(type) }),
|
|
60
|
-
toType: 'image/png',
|
|
61
|
-
});
|
|
62
|
-
const blob = Array.isArray(result) ? result[0] : result;
|
|
63
|
-
return readBlobDataUrl(blob);
|
|
64
|
-
};
|
|
65
56
|
const resolveImageUrl = async (buffer, type) => {
|
|
66
57
|
const normalizedType = (type || '').trim().toLowerCase();
|
|
67
58
|
if (normalizedType === 'heic' || normalizedType === 'heif') {
|
|
68
|
-
|
|
59
|
+
throw new Error('HEIC/HEIF image conversion has moved out of @file-viewer/core. Install and pass @file-viewer/renderer-image, or use @file-viewer/preset-all.');
|
|
69
60
|
}
|
|
70
61
|
return readBlobDataUrl(new Blob([buffer], { type: getImageBlobType(normalizedType) }));
|
|
71
62
|
};
|