@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.
Files changed (116) hide show
  1. package/README.en.md +2 -2
  2. package/README.md +2 -2
  3. package/dist/config/options.d.ts +1 -1
  4. package/dist/config/options.js +1 -1
  5. package/dist/contracts/types.d.ts +76 -1
  6. package/dist/headless.d.ts +3 -3
  7. package/dist/headless.js +2 -2
  8. package/dist/index.d.ts +10 -7
  9. package/dist/index.js +106 -49
  10. package/dist/lifecycle/operations.d.ts +1 -0
  11. package/dist/lifecycle/operations.js +65 -6
  12. package/dist/platform/assets.d.ts +3 -1
  13. package/dist/platform/assets.js +43 -6
  14. package/dist/registry/capabilities.d.ts +2 -2
  15. package/dist/registry/capabilities.js +2 -1
  16. package/dist/registry/formats.d.ts +20 -7
  17. package/dist/registry/formats.js +14 -5
  18. package/dist/registry/registry.d.ts +8 -1
  19. package/dist/registry/registry.js +29 -0
  20. package/dist/renderers/image.js +1 -10
  21. package/dist/renderers/index.d.ts +320 -2
  22. package/dist/renderers/index.js +27 -157
  23. package/dist/viewer/createViewer.js +86 -3
  24. package/package.json +17 -44
  25. package/dist/renderers/archive.d.ts +0 -2
  26. package/dist/renderers/archive.js +0 -547
  27. package/dist/renderers/archiveCache.d.ts +0 -10
  28. package/dist/renderers/archiveCache.js +0 -96
  29. package/dist/renderers/archiveFallback.d.ts +0 -7
  30. package/dist/renderers/archiveFallback.js +0 -166
  31. package/dist/renderers/archiveShared.d.ts +0 -23
  32. package/dist/renderers/archiveShared.js +0 -71
  33. package/dist/renderers/audio.d.ts +0 -8
  34. package/dist/renderers/audio.js +0 -219
  35. package/dist/renderers/cad.d.ts +0 -2
  36. package/dist/renderers/cad.js +0 -446
  37. package/dist/renderers/code.d.ts +0 -11
  38. package/dist/renderers/code.js +0 -233
  39. package/dist/renderers/data.d.ts +0 -7
  40. package/dist/renderers/data.js +0 -370
  41. package/dist/renderers/drawing.d.ts +0 -10
  42. package/dist/renderers/drawing.js +0 -882
  43. package/dist/renderers/eda.d.ts +0 -2
  44. package/dist/renderers/eda.js +0 -434
  45. package/dist/renderers/edaParser.d.ts +0 -77
  46. package/dist/renderers/edaParser.js +0 -569
  47. package/dist/renderers/email.d.ts +0 -2
  48. package/dist/renderers/email.js +0 -463
  49. package/dist/renderers/epub.d.ts +0 -2
  50. package/dist/renderers/epub.js +0 -331
  51. package/dist/renderers/geo.d.ts +0 -2
  52. package/dist/renderers/geo.js +0 -284
  53. package/dist/renderers/markdown.d.ts +0 -2
  54. package/dist/renderers/markdown.js +0 -83
  55. package/dist/renderers/model.d.ts +0 -2
  56. package/dist/renderers/model.js +0 -567
  57. package/dist/renderers/ofd.d.ts +0 -2
  58. package/dist/renderers/ofd.js +0 -256
  59. package/dist/renderers/openDocument.d.ts +0 -2
  60. package/dist/renderers/openDocument.js +0 -122
  61. package/dist/renderers/pdf.d.ts +0 -3
  62. package/dist/renderers/pdf.js +0 -1001
  63. package/dist/renderers/pdfStyles.d.ts +0 -1
  64. package/dist/renderers/pdfStyles.js +0 -1
  65. package/dist/renderers/pptx.d.ts +0 -2
  66. package/dist/renderers/pptx.js +0 -217
  67. package/dist/renderers/spreadsheet/state.d.ts +0 -80
  68. package/dist/renderers/spreadsheet/state.js +0 -96
  69. package/dist/renderers/spreadsheet/view.d.ts +0 -25
  70. package/dist/renderers/spreadsheet/view.js +0 -833
  71. package/dist/renderers/spreadsheet/worker/index.d.ts +0 -2
  72. package/dist/renderers/spreadsheet/worker/index.js +0 -1
  73. package/dist/renderers/spreadsheet/worker/sheetjs/SheetJsModel.d.ts +0 -73
  74. package/dist/renderers/spreadsheet/worker/sheetjs/SheetJsModel.js +0 -623
  75. package/dist/renderers/spreadsheet/worker/sheetjs/color.d.ts +0 -2
  76. package/dist/renderers/spreadsheet/worker/sheetjs/color.js +0 -73
  77. package/dist/renderers/spreadsheet/worker/sheetjs/index.d.ts +0 -1
  78. package/dist/renderers/spreadsheet/worker/sheetjs/index.js +0 -1
  79. package/dist/renderers/spreadsheet/worker/sheetjs/parser.d.ts +0 -18
  80. package/dist/renderers/spreadsheet/worker/sheetjs/parser.js +0 -106
  81. package/dist/renderers/spreadsheet/worker/sheetjs/sheet.worker.d.ts +0 -1
  82. package/dist/renderers/spreadsheet/worker/sheetjs/sheet.worker.js +0 -11
  83. package/dist/renderers/spreadsheet/worker/type.d.ts +0 -57
  84. package/dist/renderers/spreadsheet/worker/type.js +0 -1
  85. package/dist/renderers/spreadsheet.d.ts +0 -3
  86. package/dist/renderers/spreadsheet.js +0 -929
  87. package/dist/renderers/typst.d.ts +0 -8
  88. package/dist/renderers/typst.js +0 -547
  89. package/dist/renderers/umd/parser.d.ts +0 -30
  90. package/dist/renderers/umd/parser.js +0 -408
  91. package/dist/renderers/umd.d.ts +0 -2
  92. package/dist/renderers/umd.js +0 -297
  93. package/dist/renderers/video.d.ts +0 -8
  94. package/dist/renderers/video.js +0 -108
  95. package/dist/renderers/wordDoc.d.ts +0 -5
  96. package/dist/renderers/wordDoc.js +0 -284
  97. package/dist/renderers/wordDocx.d.ts +0 -5
  98. package/dist/renderers/wordDocx.js +0 -985
  99. package/dist/renderers/wordDocx.worker.d.ts +0 -1
  100. package/dist/renderers/wordDocx.worker.js +0 -96
  101. package/vendor/ofd/dltech/jbig2/arithmetic_decoder.js +0 -183
  102. package/vendor/ofd/dltech/jbig2/ccitt.js +0 -1070
  103. package/vendor/ofd/dltech/jbig2/compatibility.js +0 -12
  104. package/vendor/ofd/dltech/jbig2/core_utils.js +0 -180
  105. package/vendor/ofd/dltech/jbig2/is_node.js +0 -27
  106. package/vendor/ofd/dltech/jbig2/jbig2.js +0 -2589
  107. package/vendor/ofd/dltech/jbig2/jbig2_stream.js +0 -81
  108. package/vendor/ofd/dltech/jbig2/primitives.js +0 -387
  109. package/vendor/ofd/dltech/jbig2/stream.js +0 -1348
  110. package/vendor/ofd/dltech/jbig2/util.js +0 -972
  111. package/vendor/ofd/dltech/ofd/ofd.d.ts +0 -11
  112. package/vendor/ofd/dltech/ofd/ofd.js +0 -100
  113. package/vendor/ofd/dltech/ofd/ofd_parser.js +0 -395
  114. package/vendor/ofd/dltech/ofd/ofd_render.js +0 -473
  115. package/vendor/ofd/dltech/ofd/ofd_util.js +0 -350
  116. package/vendor/ofd/dltech/ofd/pipeline.js +0 -26
@@ -1,284 +0,0 @@
1
- import { defaultMsDocCss, parseMsDocToHtml } from 'msdoc-viewer';
2
- import { applyPrintPageSize, buildPrintPageStyle, formatCssPixels } from '../output/printLayout.js';
3
- import { createFileViewerZoomChangeEmitter as createZoomChangeEmitter, } from '../features/document/zoom.js';
4
- import { registerFileViewerZoomProvider, unregisterFileViewerZoomProvider } from '../features/document/dom/index.js';
5
- const PAGE_BREAK_MARKER = '<span class="msdoc-page-break"></span>';
6
- const EMPTY_PAGE_HTML = '<p class="msdoc-paragraph"><br></p>';
7
- const MSDOC_PAGE_SIZE = {
8
- width: 794,
9
- height: 1123
10
- };
11
- const MSDOC_MIN_SCALE = 0.24;
12
- const MSDOC_MAX_SCALE = 3;
13
- const MSDOC_ZOOM_STEP = 0.15;
14
- const WORD_PAGE_CSS = `
15
- .msdoc-stage{
16
- box-sizing:border-box;
17
- min-height:100%;
18
- padding:32px 24px 48px;
19
- background:#ececec;
20
- display:flex;
21
- flex-direction:column;
22
- align-items:center;
23
- gap:24px;
24
- }
25
- .msdoc-page{
26
- width:min(100%,794px);
27
- box-sizing:border-box;
28
- }
29
- .msdoc-page > .msdoc-root{
30
- box-sizing:border-box;
31
- width:100%;
32
- max-width:none;
33
- min-height:1123px;
34
- padding:clamp(24px,7%,96px) clamp(20px,6%,88px);
35
- background:#fff;
36
- border:1px solid #d9d9d9;
37
- box-shadow:0 1px 3px rgba(0,0,0,0.08), 0 12px 32px rgba(0,0,0,0.12);
38
- overflow-wrap:anywhere;
39
- }
40
- /* 表格不能沿用正文的 anywhere 断词,否则旧 DOC 的列宽和单元格内容会被过度压缩。 */
41
- .msdoc-page .msdoc-table{
42
- display:table;
43
- width:auto;
44
- max-width:100%;
45
- table-layout:auto!important;
46
- border-collapse:collapse;
47
- border-spacing:0;
48
- }
49
- .msdoc-page .msdoc-table tbody,
50
- .msdoc-page .msdoc-table tr{
51
- width:auto;
52
- }
53
- .msdoc-page .msdoc-cell{
54
- min-width:1.5em;
55
- padding:4px 6px;
56
- vertical-align:top;
57
- word-break:normal;
58
- overflow-wrap:normal;
59
- white-space:normal;
60
- }
61
- .msdoc-page .msdoc-cell .msdoc-paragraph{
62
- margin:0 0 4px;
63
- word-break:normal;
64
- overflow-wrap:break-word;
65
- }
66
- .msdoc-page .msdoc-cell .msdoc-paragraph:last-child{
67
- margin-bottom:0;
68
- }
69
- .msdoc-page .msdoc-cell span{
70
- white-space:normal!important;
71
- }
72
- .msdoc-page .msdoc-page-break{
73
- display:none;
74
- }
75
- @media (max-width: 860px){
76
- .msdoc-stage{
77
- padding:16px 12px 24px;
78
- gap:16px;
79
- }
80
- .msdoc-page{
81
- width:100%;
82
- }
83
- .msdoc-page > .msdoc-root{
84
- min-height:auto;
85
- padding:24px 20px;
86
- box-shadow:none;
87
- }
88
- }
89
- `;
90
- const MSDOC_ZOOM_CSS = `
91
- .msdoc-zoom-viewer{
92
- box-sizing:border-box;
93
- height:100%;
94
- overflow:auto;
95
- background:#ececec;
96
- }
97
- .msdoc-zoom-viewer .msdoc-stage{
98
- min-width:max-content;
99
- }
100
- .msdoc-zoom-viewer .msdoc-page{
101
- position:relative;
102
- max-width:none;
103
- overflow:visible;
104
- }
105
- .msdoc-zoom-viewer .msdoc-page > .msdoc-root{
106
- position:absolute;
107
- top:0;
108
- left:50%;
109
- width:${MSDOC_PAGE_SIZE.width}px;
110
- max-width:none;
111
- margin:0;
112
- transform-origin:top center;
113
- }
114
- `;
115
- const getTargetWindow = (target) => {
116
- return target.ownerDocument.defaultView;
117
- };
118
- function injectPageBreakMarkers(html) {
119
- return html.replace(/<(p|table|section)([^>]*?)style="([^"]*?\bbreak-before\s*:\s*page;?[^"]*?)"([^>]*)>/gi, (match) => `${PAGE_BREAK_MARKER}${match}`);
120
- }
121
- function wrapAsWordPages(html) {
122
- const normalizedHtml = injectPageBreakMarkers(html);
123
- const pages = normalizedHtml.split(PAGE_BREAK_MARKER);
124
- return `<div class="msdoc-stage">${pages.map(page => (`<section class="msdoc-page"><div class="msdoc-root">${page || EMPTY_PAGE_HTML}</div></section>`)).join('')}</div>`;
125
- }
126
- function prepareMsDocCloneForExport(target) {
127
- const clone = target.cloneNode(true);
128
- clone.classList.remove('msdoc-zoom-viewer');
129
- clone.querySelectorAll('style[data-msdoc-zoom]').forEach(style => style.remove());
130
- clone.querySelectorAll('.msdoc-stage, .msdoc-page, .msdoc-root').forEach(node => {
131
- node.style.height = 'auto';
132
- node.style.maxHeight = 'none';
133
- node.style.overflow = 'visible';
134
- node.style.transform = 'none';
135
- });
136
- clone.querySelectorAll('.msdoc-page').forEach(page => {
137
- applyPrintPageSize(page, MSDOC_PAGE_SIZE, { heightMode: 'min' });
138
- page.style.position = 'relative';
139
- page.style.width = formatCssPixels(MSDOC_PAGE_SIZE.width);
140
- page.style.maxWidth = 'none';
141
- page.style.margin = '0 auto 18px';
142
- const root = page.querySelector('.msdoc-root');
143
- if (!root) {
144
- return;
145
- }
146
- root.style.position = 'relative';
147
- root.style.top = 'auto';
148
- root.style.left = 'auto';
149
- root.style.width = formatCssPixels(MSDOC_PAGE_SIZE.width);
150
- root.style.maxWidth = 'none';
151
- root.style.minHeight = formatCssPixels(MSDOC_PAGE_SIZE.height);
152
- root.style.height = 'auto';
153
- root.style.transform = 'none';
154
- root.style.transformOrigin = 'top left';
155
- root.style.boxShadow = 'none';
156
- root.style.border = '0';
157
- root.style.overflow = 'visible';
158
- });
159
- return clone.innerHTML;
160
- }
161
- function buildMsDocPrintStyle() {
162
- return buildPrintPageStyle({
163
- selector: '.viewer-export-content .msdoc-page',
164
- width: MSDOC_PAGE_SIZE.width,
165
- height: MSDOC_PAGE_SIZE.height,
166
- heightMode: 'min'
167
- });
168
- }
169
- function makeMsDocResponsive(target) {
170
- const pages = Array.from(target.querySelectorAll('.msdoc-page'));
171
- if (!pages.length) {
172
- return () => { };
173
- }
174
- target.classList.add('msdoc-zoom-viewer');
175
- const view = getTargetWindow(target);
176
- const ResizeObserverCtor = view === null || view === void 0 ? void 0 : view.ResizeObserver;
177
- const style = target.ownerDocument.createElement('style');
178
- style.dataset.msdocZoom = 'true';
179
- style.textContent = MSDOC_ZOOM_CSS;
180
- target.prepend(style);
181
- const zoomEmitter = createZoomChangeEmitter();
182
- let resizeFrame = 0;
183
- let userZoom = 1;
184
- let currentScale = 1;
185
- let currentFitScale = 1;
186
- const clampScale = (scale) => {
187
- return Math.min(MSDOC_MAX_SCALE, Math.max(MSDOC_MIN_SCALE, Number(scale.toFixed(2))));
188
- };
189
- const resize = () => {
190
- if (!view) {
191
- return;
192
- }
193
- view.cancelAnimationFrame(resizeFrame);
194
- resizeFrame = view.requestAnimationFrame(() => {
195
- let firstScale = 1;
196
- let firstFitScale = 1;
197
- pages.forEach(page => {
198
- const root = page.querySelector('.msdoc-root');
199
- if (!root) {
200
- return;
201
- }
202
- const rootWidth = root.offsetWidth || MSDOC_PAGE_SIZE.width;
203
- const rootHeight = Math.max(root.scrollHeight, root.offsetHeight, MSDOC_PAGE_SIZE.height);
204
- const availableWidth = Math.max(target.clientWidth - 48, 120);
205
- const fitScale = Math.min(1, Math.max(MSDOC_MIN_SCALE, availableWidth / rootWidth));
206
- const scale = clampScale(fitScale * userZoom);
207
- firstScale = scale;
208
- firstFitScale = fitScale;
209
- root.style.transform = `translateX(-50%) scale(${scale})`;
210
- page.style.width = `${Math.ceil(Math.max(rootWidth * scale, 120))}px`;
211
- page.style.height = `${Math.ceil(rootHeight * scale)}px`;
212
- });
213
- currentScale = firstScale;
214
- currentFitScale = firstFitScale;
215
- zoomEmitter.emit();
216
- });
217
- };
218
- const getZoomState = () => ({
219
- scale: currentScale,
220
- label: `${Math.round(currentScale * 100)}%`,
221
- canZoomIn: currentScale < MSDOC_MAX_SCALE,
222
- canZoomOut: currentScale > MSDOC_MIN_SCALE,
223
- canReset: userZoom !== 1,
224
- minScale: MSDOC_MIN_SCALE,
225
- maxScale: MSDOC_MAX_SCALE
226
- });
227
- const setUserZoom = (nextZoom) => {
228
- userZoom = Math.min(6, Math.max(0.2, Number(nextZoom.toFixed(2))));
229
- resize();
230
- return getZoomState();
231
- };
232
- target.dataset.viewerZoomProvider = 'doc';
233
- registerFileViewerZoomProvider(target, {
234
- zoomIn: () => setUserZoom(userZoom + MSDOC_ZOOM_STEP),
235
- zoomOut: () => setUserZoom(userZoom - MSDOC_ZOOM_STEP),
236
- resetZoom: () => setUserZoom(1),
237
- setZoom: scale => setUserZoom(scale / Math.max(currentFitScale, 0.01)),
238
- getState: getZoomState,
239
- subscribe: zoomEmitter.subscribe
240
- });
241
- const observer = ResizeObserverCtor ? new ResizeObserverCtor(resize) : null;
242
- observer === null || observer === void 0 ? void 0 : observer.observe(target);
243
- pages.forEach(page => {
244
- const root = page.querySelector('.msdoc-root');
245
- if (root) {
246
- observer === null || observer === void 0 ? void 0 : observer.observe(root);
247
- }
248
- });
249
- resize();
250
- return () => {
251
- view === null || view === void 0 ? void 0 : view.cancelAnimationFrame(resizeFrame);
252
- observer === null || observer === void 0 ? void 0 : observer.disconnect();
253
- unregisterFileViewerZoomProvider(target);
254
- style.remove();
255
- target.classList.remove('msdoc-zoom-viewer');
256
- };
257
- }
258
- /**
259
- * 渲染 doc 文件
260
- */
261
- export default async function render(buffer, target, context) {
262
- var _a;
263
- const rendered = await parseMsDocToHtml(buffer, {
264
- renderOptions: {
265
- css: `${defaultMsDocCss()}\n${WORD_PAGE_CSS}`
266
- }
267
- });
268
- target.innerHTML = `<style data-msdoc>${rendered.css}</style>${wrapAsWordPages(rendered.html)}`;
269
- const disposeResponsive = makeMsDocResponsive(target);
270
- (_a = context === null || context === void 0 ? void 0 : context.registerExportAdapter) === null || _a === void 0 ? void 0 : _a.call(context, {
271
- includeDocumentStyles: false,
272
- printStyle: buildMsDocPrintStyle,
273
- toHtml: () => prepareMsDocCloneForExport(target)
274
- });
275
- return {
276
- $el: target,
277
- unmount() {
278
- var _a;
279
- (_a = context === null || context === void 0 ? void 0 : context.registerExportAdapter) === null || _a === void 0 ? void 0 : _a.call(context, null);
280
- disposeResponsive();
281
- target.innerHTML = '';
282
- }
283
- };
284
- }
@@ -1,5 +0,0 @@
1
- import type { FileRenderContext, FileViewerRenderedInstance as AppWrapper } from '../contracts/types';
2
- /**
3
- * 渲染docx文件
4
- */
5
- export default function (buffer: ArrayBuffer, target: HTMLDivElement, context?: FileRenderContext): Promise<AppWrapper>;