@file-viewer/core 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/LICENSE +160 -0
  2. package/README.en.md +78 -0
  3. package/README.md +83 -0
  4. package/dist/assets.d.ts +62 -0
  5. package/dist/assets.js +260 -0
  6. package/dist/browser.d.ts +1 -0
  7. package/dist/browser.js +1 -0
  8. package/dist/capabilities.d.ts +24 -0
  9. package/dist/capabilities.js +95 -0
  10. package/dist/document.d.ts +9 -0
  11. package/dist/document.js +86 -0
  12. package/dist/documentDom/anchors.d.ts +7 -0
  13. package/dist/documentDom/anchors.js +196 -0
  14. package/dist/documentDom/index.d.ts +5 -0
  15. package/dist/documentDom/index.js +3 -0
  16. package/dist/documentDom/providers.d.ts +13 -0
  17. package/dist/documentDom/providers.js +52 -0
  18. package/dist/documentDom/scroll.d.ts +12 -0
  19. package/dist/documentDom/scroll.js +42 -0
  20. package/dist/documentDom.d.ts +5 -0
  21. package/dist/documentDom.js +3 -0
  22. package/dist/documentEvents.d.ts +73 -0
  23. package/dist/documentEvents.js +150 -0
  24. package/dist/documentSearch.d.ts +50 -0
  25. package/dist/documentSearch.js +459 -0
  26. package/dist/documentZoom.d.ts +47 -0
  27. package/dist/documentZoom.js +184 -0
  28. package/dist/export.d.ts +26 -0
  29. package/dist/export.js +466 -0
  30. package/dist/formats.d.ts +305 -0
  31. package/dist/formats.js +207 -0
  32. package/dist/headless.d.ts +25 -0
  33. package/dist/headless.js +14 -0
  34. package/dist/index.d.ts +78 -0
  35. package/dist/index.js +118 -0
  36. package/dist/lifecycleFacade.d.ts +46 -0
  37. package/dist/lifecycleFacade.js +68 -0
  38. package/dist/loading.d.ts +59 -0
  39. package/dist/loading.js +489 -0
  40. package/dist/operations.d.ts +287 -0
  41. package/dist/operations.js +485 -0
  42. package/dist/options.d.ts +16 -0
  43. package/dist/options.js +92 -0
  44. package/dist/presentation.d.ts +14 -0
  45. package/dist/presentation.js +16 -0
  46. package/dist/printLayout.d.ts +19 -0
  47. package/dist/printLayout.js +83 -0
  48. package/dist/registry.d.ts +2 -0
  49. package/dist/registry.js +63 -0
  50. package/dist/rendererDispatcher.d.ts +21 -0
  51. package/dist/rendererDispatcher.js +42 -0
  52. package/dist/rendererHandler.d.ts +165 -0
  53. package/dist/rendererHandler.js +354 -0
  54. package/dist/renderers/archive.d.ts +2 -0
  55. package/dist/renderers/archive.js +547 -0
  56. package/dist/renderers/archiveCache.d.ts +10 -0
  57. package/dist/renderers/archiveCache.js +96 -0
  58. package/dist/renderers/archiveFallback.d.ts +7 -0
  59. package/dist/renderers/archiveFallback.js +166 -0
  60. package/dist/renderers/archiveShared.d.ts +23 -0
  61. package/dist/renderers/archiveShared.js +71 -0
  62. package/dist/renderers/audio.d.ts +8 -0
  63. package/dist/renderers/audio.js +219 -0
  64. package/dist/renderers/cad.d.ts +2 -0
  65. package/dist/renderers/cad.js +445 -0
  66. package/dist/renderers/code.d.ts +11 -0
  67. package/dist/renderers/code.js +233 -0
  68. package/dist/renderers/data.d.ts +7 -0
  69. package/dist/renderers/data.js +370 -0
  70. package/dist/renderers/drawing.d.ts +10 -0
  71. package/dist/renderers/drawing.js +537 -0
  72. package/dist/renderers/eda.d.ts +2 -0
  73. package/dist/renderers/eda.js +434 -0
  74. package/dist/renderers/edaParser.d.ts +77 -0
  75. package/dist/renderers/edaParser.js +569 -0
  76. package/dist/renderers/email.d.ts +2 -0
  77. package/dist/renderers/email.js +463 -0
  78. package/dist/renderers/epub.d.ts +2 -0
  79. package/dist/renderers/epub.js +330 -0
  80. package/dist/renderers/geo.d.ts +2 -0
  81. package/dist/renderers/geo.js +284 -0
  82. package/dist/renderers/image.d.ts +2 -0
  83. package/dist/renderers/image.js +179 -0
  84. package/dist/renderers/index.d.ts +21 -0
  85. package/dist/renderers/index.js +207 -0
  86. package/dist/renderers/markdown.d.ts +2 -0
  87. package/dist/renderers/markdown.js +83 -0
  88. package/dist/renderers/model.d.ts +2 -0
  89. package/dist/renderers/model.js +566 -0
  90. package/dist/renderers/ofd.d.ts +2 -0
  91. package/dist/renderers/ofd.js +255 -0
  92. package/dist/renderers/openDocument.d.ts +2 -0
  93. package/dist/renderers/openDocument.js +122 -0
  94. package/dist/renderers/pdf.d.ts +3 -0
  95. package/dist/renderers/pdf.js +846 -0
  96. package/dist/renderers/pdfStyles.d.ts +1 -0
  97. package/dist/renderers/pdfStyles.js +1 -0
  98. package/dist/renderers/pptx.d.ts +2 -0
  99. package/dist/renderers/pptx.js +202 -0
  100. package/dist/renderers/spreadsheet/state.d.ts +80 -0
  101. package/dist/renderers/spreadsheet/state.js +96 -0
  102. package/dist/renderers/spreadsheet/view.d.ts +25 -0
  103. package/dist/renderers/spreadsheet/view.js +833 -0
  104. package/dist/renderers/spreadsheet/worker/index.d.ts +2 -0
  105. package/dist/renderers/spreadsheet/worker/index.js +1 -0
  106. package/dist/renderers/spreadsheet/worker/sheetjs/SheetJsModel.d.ts +73 -0
  107. package/dist/renderers/spreadsheet/worker/sheetjs/SheetJsModel.js +623 -0
  108. package/dist/renderers/spreadsheet/worker/sheetjs/color.d.ts +2 -0
  109. package/dist/renderers/spreadsheet/worker/sheetjs/color.js +73 -0
  110. package/dist/renderers/spreadsheet/worker/sheetjs/index.d.ts +1 -0
  111. package/dist/renderers/spreadsheet/worker/sheetjs/index.js +1 -0
  112. package/dist/renderers/spreadsheet/worker/sheetjs/parser.d.ts +18 -0
  113. package/dist/renderers/spreadsheet/worker/sheetjs/parser.js +106 -0
  114. package/dist/renderers/spreadsheet/worker/sheetjs/sheet.worker.d.ts +1 -0
  115. package/dist/renderers/spreadsheet/worker/sheetjs/sheet.worker.js +11 -0
  116. package/dist/renderers/spreadsheet/worker/type.d.ts +57 -0
  117. package/dist/renderers/spreadsheet/worker/type.js +1 -0
  118. package/dist/renderers/spreadsheet.d.ts +3 -0
  119. package/dist/renderers/spreadsheet.js +929 -0
  120. package/dist/renderers/typst.d.ts +8 -0
  121. package/dist/renderers/typst.js +415 -0
  122. package/dist/renderers/umd/parser.d.ts +30 -0
  123. package/dist/renderers/umd/parser.js +408 -0
  124. package/dist/renderers/umd.d.ts +2 -0
  125. package/dist/renderers/umd.js +297 -0
  126. package/dist/renderers/video.d.ts +8 -0
  127. package/dist/renderers/video.js +108 -0
  128. package/dist/renderers/wordDoc.d.ts +5 -0
  129. package/dist/renderers/wordDoc.js +284 -0
  130. package/dist/renderers/wordDocx.d.ts +5 -0
  131. package/dist/renderers/wordDocx.js +501 -0
  132. package/dist/renderers/wordDocx.worker.d.ts +1 -0
  133. package/dist/renderers/wordDocx.worker.js +96 -0
  134. package/dist/source.d.ts +18 -0
  135. package/dist/source.js +152 -0
  136. package/dist/sourceLoading.d.ts +566 -0
  137. package/dist/sourceLoading.js +918 -0
  138. package/dist/state.d.ts +16 -0
  139. package/dist/state.js +81 -0
  140. package/dist/types.d.ts +446 -0
  141. package/dist/types.js +1 -0
  142. package/dist/viewer.d.ts +8 -0
  143. package/dist/viewer.js +285 -0
  144. package/dist/viewerOperations.d.ts +88 -0
  145. package/dist/viewerOperations.js +242 -0
  146. package/dist/watermark.d.ts +15 -0
  147. package/dist/watermark.js +81 -0
  148. package/dist/worker.d.ts +34 -0
  149. package/dist/worker.js +101 -0
  150. package/package.json +109 -0
  151. package/vendor/ofd/dltech/jbig2/arithmetic_decoder.js +183 -0
  152. package/vendor/ofd/dltech/jbig2/ccitt.js +1070 -0
  153. package/vendor/ofd/dltech/jbig2/compatibility.js +12 -0
  154. package/vendor/ofd/dltech/jbig2/core_utils.js +180 -0
  155. package/vendor/ofd/dltech/jbig2/is_node.js +27 -0
  156. package/vendor/ofd/dltech/jbig2/jbig2.js +2589 -0
  157. package/vendor/ofd/dltech/jbig2/jbig2_stream.js +81 -0
  158. package/vendor/ofd/dltech/jbig2/primitives.js +387 -0
  159. package/vendor/ofd/dltech/jbig2/stream.js +1348 -0
  160. package/vendor/ofd/dltech/jbig2/util.js +972 -0
  161. package/vendor/ofd/dltech/ofd/ofd.d.ts +11 -0
  162. package/vendor/ofd/dltech/ofd/ofd.js +100 -0
  163. package/vendor/ofd/dltech/ofd/ofd_parser.js +395 -0
  164. package/vendor/ofd/dltech/ofd/ofd_render.js +473 -0
  165. package/vendor/ofd/dltech/ofd/ofd_util.js +350 -0
  166. package/vendor/ofd/dltech/ofd/pipeline.js +26 -0
package/dist/source.js ADDED
@@ -0,0 +1,152 @@
1
+ export const DEFAULT_FILE_VIEWER_SOURCE_FILENAME = 'preview.bin';
2
+ export const normalizeFileExtension = (extension) => {
3
+ return extension.trim().replace(/^\./, '').toLowerCase();
4
+ };
5
+ export const decodeFilename = (name) => {
6
+ try {
7
+ return decodeURIComponent(name);
8
+ }
9
+ catch {
10
+ return name;
11
+ }
12
+ };
13
+ export const getExtension = (name) => {
14
+ const clean = name.split(/[?#]/)[0] || name;
15
+ const dot = clean.lastIndexOf('.');
16
+ return dot === -1 ? '' : normalizeFileExtension(clean.slice(dot + 1));
17
+ };
18
+ export const normalizeFilename = (value, fallback = DEFAULT_FILE_VIEWER_SOURCE_FILENAME) => {
19
+ const next = (value || '').split(/[?#]/)[0].trim();
20
+ if (!next) {
21
+ return fallback;
22
+ }
23
+ const slash = Math.max(next.lastIndexOf('/'), next.lastIndexOf('\\'));
24
+ return decodeFilename(slash === -1 ? next : next.slice(slash + 1));
25
+ };
26
+ const getSourceKind = (source) => {
27
+ if (source.file) {
28
+ return 'file';
29
+ }
30
+ if (source.buffer) {
31
+ return 'buffer';
32
+ }
33
+ if (source.url) {
34
+ return 'url';
35
+ }
36
+ return 'empty';
37
+ };
38
+ const getBlobName = (file) => {
39
+ return file && 'name' in file && typeof file.name === 'string' ? file.name : undefined;
40
+ };
41
+ export const resolveFileViewerSourceFilename = ({ filename, file, url, fallback = '', }) => {
42
+ if (filename) {
43
+ return normalizeFilename(filename, fallback);
44
+ }
45
+ const fileName = getBlobName(file);
46
+ if (fileName) {
47
+ return normalizeFilename(fileName, fallback);
48
+ }
49
+ if (url) {
50
+ return normalizeFilename(url, fallback);
51
+ }
52
+ return fallback;
53
+ };
54
+ export const normalizeSource = (source) => {
55
+ const kind = getSourceKind(source);
56
+ const filename = normalizeFilename(source.filename || getBlobName(source.file) || source.url, source.type ? `preview.${normalizeFileExtension(source.type)}` : DEFAULT_FILE_VIEWER_SOURCE_FILENAME);
57
+ const extension = normalizeFileExtension(source.type || getExtension(filename));
58
+ const sourceSize = typeof source.size === 'number'
59
+ ? source.size
60
+ : source.file
61
+ ? source.file.size
62
+ : source.buffer
63
+ ? source.buffer.byteLength
64
+ : undefined;
65
+ return {
66
+ kind,
67
+ filename,
68
+ extension,
69
+ url: source.url,
70
+ file: source.file,
71
+ buffer: source.buffer,
72
+ size: sourceSize,
73
+ };
74
+ };
75
+ export const wrapFileViewerFileRef = (data, filename = DEFAULT_FILE_VIEWER_SOURCE_FILENAME) => {
76
+ if (typeof File !== 'undefined' && data instanceof File) {
77
+ return data;
78
+ }
79
+ const safeFilename = normalizeFilename(filename || DEFAULT_FILE_VIEWER_SOURCE_FILENAME);
80
+ if (typeof Blob !== 'undefined' && data instanceof Blob) {
81
+ return new File([data], safeFilename, { type: data.type });
82
+ }
83
+ if (data instanceof ArrayBuffer) {
84
+ return new File([data], safeFilename, {});
85
+ }
86
+ throw new Error('Unsupported file source input.');
87
+ };
88
+ export const readFileViewerBuffer = async (file) => {
89
+ if (typeof file.arrayBuffer === 'function') {
90
+ return file.arrayBuffer();
91
+ }
92
+ return new Promise((resolve, reject) => {
93
+ const reader = new FileReader();
94
+ reader.onload = event => {
95
+ var _a;
96
+ const result = (_a = event.target) === null || _a === void 0 ? void 0 : _a.result;
97
+ if (result instanceof ArrayBuffer) {
98
+ resolve(result);
99
+ return;
100
+ }
101
+ reject(new Error('Failed to read file as ArrayBuffer.'));
102
+ };
103
+ reader.onerror = error => reject(error);
104
+ reader.readAsArrayBuffer(file);
105
+ });
106
+ };
107
+ const toFileViewerBlob = (source) => {
108
+ if (typeof Blob !== 'undefined' && source instanceof Blob) {
109
+ return source;
110
+ }
111
+ if (typeof Blob === 'undefined') {
112
+ throw new Error('Blob is not available in the current execution environment.');
113
+ }
114
+ return new Blob([source]);
115
+ };
116
+ export const readFileViewerDataUrl = async (source) => {
117
+ const blob = toFileViewerBlob(source);
118
+ return new Promise((resolve, reject) => {
119
+ const reader = new FileReader();
120
+ reader.onload = event => {
121
+ var _a;
122
+ const result = (_a = event.target) === null || _a === void 0 ? void 0 : _a.result;
123
+ if (typeof result === 'string') {
124
+ resolve(result);
125
+ return;
126
+ }
127
+ reject(new Error('Failed to read file as data URL.'));
128
+ };
129
+ reader.onerror = error => reject(error);
130
+ reader.readAsDataURL(blob);
131
+ });
132
+ };
133
+ export const readFileViewerText = async (source, encoding = 'utf-8') => {
134
+ const blob = toFileViewerBlob(source);
135
+ if (typeof blob.text === 'function' && encoding.toLowerCase() === 'utf-8') {
136
+ return blob.text();
137
+ }
138
+ return new Promise((resolve, reject) => {
139
+ const reader = new FileReader();
140
+ reader.onload = event => {
141
+ var _a;
142
+ const result = (_a = event.target) === null || _a === void 0 ? void 0 : _a.result;
143
+ if (typeof result === 'string') {
144
+ resolve(result);
145
+ return;
146
+ }
147
+ reject(new Error('Failed to read file as text.'));
148
+ };
149
+ reader.onerror = error => reject(error);
150
+ reader.readAsText(blob, encoding);
151
+ });
152
+ };