@cannymindstech/file-viewers 0.27.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 (91) hide show
  1. package/dist/chunk-2BLHLWNN.js +299 -0
  2. package/dist/chunk-2BLHLWNN.js.map +1 -0
  3. package/dist/chunk-6BRYDA3B.js +329 -0
  4. package/dist/chunk-6BRYDA3B.js.map +1 -0
  5. package/dist/chunk-6MV4VQQN.mjs +2269 -0
  6. package/dist/chunk-6MV4VQQN.mjs.map +1 -0
  7. package/dist/chunk-7JPF5AYR.mjs +488 -0
  8. package/dist/chunk-7JPF5AYR.mjs.map +1 -0
  9. package/dist/chunk-7LPCKPN2.js +2269 -0
  10. package/dist/chunk-7LPCKPN2.js.map +1 -0
  11. package/dist/chunk-7PMZ4GN5.mjs +290 -0
  12. package/dist/chunk-7PMZ4GN5.mjs.map +1 -0
  13. package/dist/chunk-B5NNB4KD.mjs +268 -0
  14. package/dist/chunk-B5NNB4KD.mjs.map +1 -0
  15. package/dist/chunk-CIWCHSAA.js +309 -0
  16. package/dist/chunk-CIWCHSAA.js.map +1 -0
  17. package/dist/chunk-D7SDEVDM.js +268 -0
  18. package/dist/chunk-D7SDEVDM.js.map +1 -0
  19. package/dist/chunk-ECZ6IBOS.js +424 -0
  20. package/dist/chunk-ECZ6IBOS.js.map +1 -0
  21. package/dist/chunk-EKNP342T.mjs +299 -0
  22. package/dist/chunk-EKNP342T.mjs.map +1 -0
  23. package/dist/chunk-EM63H4SA.js +290 -0
  24. package/dist/chunk-EM63H4SA.js.map +1 -0
  25. package/dist/chunk-IJMNPAXX.mjs +309 -0
  26. package/dist/chunk-IJMNPAXX.mjs.map +1 -0
  27. package/dist/chunk-KJNOBIUZ.mjs +36 -0
  28. package/dist/chunk-KJNOBIUZ.mjs.map +1 -0
  29. package/dist/chunk-KQCU7XW2.mjs +424 -0
  30. package/dist/chunk-KQCU7XW2.mjs.map +1 -0
  31. package/dist/chunk-MJYCPSD4.js +742 -0
  32. package/dist/chunk-MJYCPSD4.js.map +1 -0
  33. package/dist/chunk-OPJOCUSL.js +36 -0
  34. package/dist/chunk-OPJOCUSL.js.map +1 -0
  35. package/dist/chunk-QGL3ZOPD.mjs +742 -0
  36. package/dist/chunk-QGL3ZOPD.mjs.map +1 -0
  37. package/dist/chunk-QV63FULE.js +488 -0
  38. package/dist/chunk-QV63FULE.js.map +1 -0
  39. package/dist/chunk-XJQ5J2UF.mjs +329 -0
  40. package/dist/chunk-XJQ5J2UF.mjs.map +1 -0
  41. package/dist/components/viewers/AudioViewer.d.mts +6 -0
  42. package/dist/components/viewers/AudioViewer.d.ts +6 -0
  43. package/dist/components/viewers/AudioViewer.js +10 -0
  44. package/dist/components/viewers/AudioViewer.js.map +1 -0
  45. package/dist/components/viewers/AudioViewer.mjs +10 -0
  46. package/dist/components/viewers/AudioViewer.mjs.map +1 -0
  47. package/dist/components/viewers/DefaultViewer.d.mts +6 -0
  48. package/dist/components/viewers/DefaultViewer.d.ts +6 -0
  49. package/dist/components/viewers/DefaultViewer.js +10 -0
  50. package/dist/components/viewers/DefaultViewer.js.map +1 -0
  51. package/dist/components/viewers/DefaultViewer.mjs +10 -0
  52. package/dist/components/viewers/DefaultViewer.mjs.map +1 -0
  53. package/dist/components/viewers/ImageViewer.d.mts +6 -0
  54. package/dist/components/viewers/ImageViewer.d.ts +6 -0
  55. package/dist/components/viewers/ImageViewer.js +10 -0
  56. package/dist/components/viewers/ImageViewer.js.map +1 -0
  57. package/dist/components/viewers/ImageViewer.mjs +10 -0
  58. package/dist/components/viewers/ImageViewer.mjs.map +1 -0
  59. package/dist/components/viewers/PDFViewer.d.mts +51 -0
  60. package/dist/components/viewers/PDFViewer.d.ts +51 -0
  61. package/dist/components/viewers/PDFViewer.js +11 -0
  62. package/dist/components/viewers/PDFViewer.js.map +1 -0
  63. package/dist/components/viewers/PDFViewer.mjs +11 -0
  64. package/dist/components/viewers/PDFViewer.mjs.map +1 -0
  65. package/dist/components/viewers/TIFFViewer.d.mts +6 -0
  66. package/dist/components/viewers/TIFFViewer.d.ts +6 -0
  67. package/dist/components/viewers/TIFFViewer.js +10 -0
  68. package/dist/components/viewers/TIFFViewer.js.map +1 -0
  69. package/dist/components/viewers/TIFFViewer.mjs +10 -0
  70. package/dist/components/viewers/TIFFViewer.mjs.map +1 -0
  71. package/dist/components/viewers/TextViewer.d.mts +6 -0
  72. package/dist/components/viewers/TextViewer.d.ts +6 -0
  73. package/dist/components/viewers/TextViewer.js +10 -0
  74. package/dist/components/viewers/TextViewer.js.map +1 -0
  75. package/dist/components/viewers/TextViewer.mjs +10 -0
  76. package/dist/components/viewers/TextViewer.mjs.map +1 -0
  77. package/dist/components/viewers/VideoViewer.d.mts +6 -0
  78. package/dist/components/viewers/VideoViewer.d.ts +6 -0
  79. package/dist/components/viewers/VideoViewer.js +10 -0
  80. package/dist/components/viewers/VideoViewer.js.map +1 -0
  81. package/dist/components/viewers/VideoViewer.mjs +10 -0
  82. package/dist/components/viewers/VideoViewer.mjs.map +1 -0
  83. package/dist/index.d.mts +75 -0
  84. package/dist/index.d.ts +75 -0
  85. package/dist/index.js +305 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/index.mjs +305 -0
  88. package/dist/index.mjs.map +1 -0
  89. package/dist/types-AT684fjV.d.mts +96 -0
  90. package/dist/types-AT684fjV.d.ts +96 -0
  91. package/package.json +45 -0
package/dist/index.js ADDED
@@ -0,0 +1,305 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
+
3
+
4
+ var _chunk2BLHLWNNjs = require('./chunk-2BLHLWNN.js');
5
+
6
+
7
+ var _chunkD7SDEVDMjs = require('./chunk-D7SDEVDM.js');
8
+
9
+
10
+ var _chunkQV63FULEjs = require('./chunk-QV63FULE.js');
11
+
12
+
13
+ var _chunk7LPCKPN2js = require('./chunk-7LPCKPN2.js');
14
+ require('./chunk-ECZ6IBOS.js');
15
+
16
+
17
+ var _chunkMJYCPSD4js = require('./chunk-MJYCPSD4.js');
18
+
19
+
20
+ var _chunkCIWCHSAAjs = require('./chunk-CIWCHSAA.js');
21
+
22
+
23
+ var _chunk6BRYDA3Bjs = require('./chunk-6BRYDA3B.js');
24
+
25
+
26
+
27
+ var _chunkOPJOCUSLjs = require('./chunk-OPJOCUSL.js');
28
+
29
+
30
+ var _chunkEM63H4SAjs = require('./chunk-EM63H4SA.js');
31
+
32
+ // src/components/FileViewer.tsx
33
+ var _react = require('react');
34
+
35
+ // src/registry.ts
36
+ var loadTextViewer = () => Promise.resolve().then(() => _interopRequireWildcard(require("./components/viewers/TextViewer.js"))).then((m) => ({ default: m.TextViewer }));
37
+ var loadImageViewer = () => Promise.resolve().then(() => _interopRequireWildcard(require("./components/viewers/ImageViewer.js"))).then((m) => ({ default: m.ImageViewer }));
38
+ var loadPDFViewer = () => Promise.resolve().then(() => _interopRequireWildcard(require("./components/viewers/PDFViewer.js"))).then((m) => ({ default: m.PDFViewer }));
39
+ var loadVideoViewer = () => Promise.resolve().then(() => _interopRequireWildcard(require("./components/viewers/VideoViewer.js"))).then((m) => ({ default: m.VideoViewer }));
40
+ var loadAudioViewer = () => Promise.resolve().then(() => _interopRequireWildcard(require("./components/viewers/AudioViewer.js"))).then((m) => ({ default: m.AudioViewer }));
41
+ var loadTIFFViewer = () => Promise.resolve().then(() => _interopRequireWildcard(require("./components/viewers/TIFFViewer.js"))).then((m) => ({ default: m.TIFFViewer }));
42
+ var loadDefaultViewer = () => Promise.resolve().then(() => _interopRequireWildcard(require("./components/viewers/DefaultViewer.js"))).then((m) => ({ default: m.DefaultViewer }));
43
+ var dynamicViewerRegistry = {
44
+ // Text files
45
+ "txt": { type: "text", loader: loadTextViewer },
46
+ "json": { type: "text", loader: loadTextViewer },
47
+ "xml": { type: "text", loader: loadTextViewer },
48
+ "csv": { type: "text", loader: loadTextViewer },
49
+ "md": { type: "text", loader: loadTextViewer },
50
+ "js": { type: "text", loader: loadTextViewer },
51
+ "jsx": { type: "text", loader: loadTextViewer },
52
+ "ts": { type: "text", loader: loadTextViewer },
53
+ "tsx": { type: "text", loader: loadTextViewer },
54
+ "css": { type: "text", loader: loadTextViewer },
55
+ "scss": { type: "text", loader: loadTextViewer },
56
+ "html": { type: "text", loader: loadTextViewer },
57
+ "py": { type: "text", loader: loadTextViewer },
58
+ "java": { type: "text", loader: loadTextViewer },
59
+ "cpp": { type: "text", loader: loadTextViewer },
60
+ "c": { type: "text", loader: loadTextViewer },
61
+ "php": { type: "text", loader: loadTextViewer },
62
+ "rb": { type: "text", loader: loadTextViewer },
63
+ "go": { type: "text", loader: loadTextViewer },
64
+ "rs": { type: "text", loader: loadTextViewer },
65
+ "sql": { type: "text", loader: loadTextViewer },
66
+ "yaml": { type: "text", loader: loadTextViewer },
67
+ "yml": { type: "text", loader: loadTextViewer },
68
+ // Images
69
+ "jpg": { type: "image", loader: loadImageViewer },
70
+ "jpeg": { type: "image", loader: loadImageViewer },
71
+ "png": { type: "image", loader: loadImageViewer },
72
+ "gif": { type: "image", loader: loadImageViewer },
73
+ "svg": { type: "image", loader: loadImageViewer },
74
+ "webp": { type: "image", loader: loadImageViewer },
75
+ "bmp": { type: "image", loader: loadImageViewer },
76
+ "ico": { type: "image", loader: loadImageViewer },
77
+ "tif": { type: "tiff", loader: loadTIFFViewer },
78
+ "tiff": { type: "tiff", loader: loadTIFFViewer },
79
+ // PDF
80
+ "pdf": { type: "pdf", loader: loadPDFViewer },
81
+ // Videos
82
+ "mp4": { type: "video", loader: loadVideoViewer },
83
+ "webm": { type: "video", loader: loadVideoViewer },
84
+ "ogg": { type: "video", loader: loadVideoViewer },
85
+ "avi": { type: "video", loader: loadVideoViewer },
86
+ "mov": { type: "video", loader: loadVideoViewer },
87
+ "wmv": { type: "video", loader: loadVideoViewer },
88
+ "flv": { type: "video", loader: loadVideoViewer },
89
+ "mkv": { type: "video", loader: loadVideoViewer },
90
+ // Audio
91
+ "mp3": { type: "audio", loader: loadAudioViewer },
92
+ "wav": { type: "audio", loader: loadAudioViewer },
93
+ "m4a": { type: "audio", loader: loadAudioViewer },
94
+ "flac": { type: "audio", loader: loadAudioViewer },
95
+ "aac": { type: "audio", loader: loadAudioViewer },
96
+ "oga": { type: "audio", loader: loadAudioViewer }
97
+ };
98
+ var componentCache = /* @__PURE__ */ new Map();
99
+ var getViewerInfo = (extension) => {
100
+ const ext = extension.toLowerCase();
101
+ return dynamicViewerRegistry[ext] || { type: "default", loader: loadDefaultViewer };
102
+ };
103
+ var getViewerComponent = async (extension, customRegistry) => {
104
+ const ext = extension.toLowerCase();
105
+ if (componentCache.has(ext)) {
106
+ return componentCache.get(ext);
107
+ }
108
+ const registry = { ...dynamicViewerRegistry, ...customRegistry };
109
+ const viewerInfo = registry[ext] || { type: "default", loader: loadDefaultViewer };
110
+ try {
111
+ const { default: Component } = await viewerInfo.loader();
112
+ componentCache.set(ext, Component);
113
+ return Component;
114
+ } catch (error) {
115
+ if (!componentCache.has("default")) {
116
+ const { default: DefaultComponent } = await loadDefaultViewer();
117
+ componentCache.set("default", DefaultComponent);
118
+ }
119
+ return componentCache.get("default");
120
+ }
121
+ };
122
+
123
+ // src/components/FileViewer.tsx
124
+ var _jsxruntime = require('react/jsx-runtime');
125
+ var DefaultLoadingComponent = ({ fileName, type }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { style: {
126
+ display: "flex",
127
+ alignItems: "center",
128
+ justifyContent: "center",
129
+ padding: "40px",
130
+ height: "100%",
131
+ width: "100%"
132
+ }, children: [
133
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "dms-loading-spinner", style: {
134
+ width: "40px",
135
+ height: "40px",
136
+ border: "3px solid #f3f3f3",
137
+ borderTop: "3px solid #3498db",
138
+ borderRadius: "50%",
139
+ animation: "spin 1s linear infinite"
140
+ } }),
141
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "style", { children: `
142
+ @keyframes spin {
143
+ 0% { transform: rotate(0deg); }
144
+ 100% { transform: rotate(360deg); }
145
+ }
146
+ ` })
147
+ ] });
148
+ var DefaultErrorComponent = ({ error, retry }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: {
149
+ display: "flex",
150
+ alignItems: "center",
151
+ justifyContent: "center",
152
+ padding: "40px",
153
+ border: "1px solid #ddd",
154
+ borderRadius: "4px",
155
+ backgroundColor: "#fff2f2"
156
+ }, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { style: { textAlign: "center" }, children: [
157
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { style: { color: "#d32f2f", marginBottom: "16px" }, children: "Failed to load file viewer" }),
158
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { style: { fontSize: "12px", color: "#666", marginBottom: "16px" }, children: error.message }),
159
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
160
+ "button",
161
+ {
162
+ onClick: retry,
163
+ style: {
164
+ padding: "8px 16px",
165
+ border: "1px solid #007bff",
166
+ borderRadius: "4px",
167
+ backgroundColor: "#007bff",
168
+ color: "#fff",
169
+ cursor: "pointer"
170
+ },
171
+ children: "Retry"
172
+ }
173
+ )
174
+ ] }) });
175
+ var FileViewer = ({
176
+ file,
177
+ url,
178
+ fileName,
179
+ mimeType,
180
+ loading: externalLoading,
181
+ customRegistry,
182
+ loadingComponent: LoadingComponent = DefaultLoadingComponent,
183
+ errorComponent: ErrorComponent = DefaultErrorComponent,
184
+ initialSearchText,
185
+ initialSearchPages,
186
+ autoOpenSearch,
187
+ autoExecuteSearch,
188
+ onSearchComplete,
189
+ ...props
190
+ }) => {
191
+ const [ViewerComponent, setViewerComponent] = _react.useState.call(void 0, null);
192
+ const [internalLoading, setInternalLoading] = _react.useState.call(void 0, false);
193
+ const [error, setError] = _react.useState.call(void 0, null);
194
+ const isLoading = externalLoading || internalLoading;
195
+ const resolvedFileInfo = _react.useMemo.call(void 0, () => {
196
+ let resolvedFileName = fileName;
197
+ if (!resolvedFileName && file) {
198
+ resolvedFileName = file.name;
199
+ }
200
+ if (!resolvedFileName && url) {
201
+ resolvedFileName = url.split("/").pop() || "unknown";
202
+ }
203
+ const extension = resolvedFileName ? _chunkOPJOCUSLjs.getFileExtension.call(void 0, resolvedFileName) : "";
204
+ let resolvedMimeType = mimeType;
205
+ if (!resolvedMimeType && file) {
206
+ resolvedMimeType = file.type;
207
+ }
208
+ if (!resolvedMimeType && extension) {
209
+ resolvedMimeType = _chunkOPJOCUSLjs.getMimeTypeFromExtension.call(void 0, extension);
210
+ }
211
+ const viewerInfo = getViewerInfo(extension);
212
+ return {
213
+ fileName: resolvedFileName,
214
+ extension,
215
+ mimeType: resolvedMimeType,
216
+ viewerInfo
217
+ };
218
+ }, [file, url, fileName, mimeType]);
219
+ const loadViewer = async () => {
220
+ if (internalLoading) return;
221
+ setInternalLoading(true);
222
+ setError(null);
223
+ try {
224
+ const component = await getViewerComponent(resolvedFileInfo.extension, customRegistry);
225
+ setViewerComponent(() => component);
226
+ } catch (err) {
227
+ setError(err instanceof Error ? err : new Error("Failed to load viewer"));
228
+ } finally {
229
+ setInternalLoading(false);
230
+ }
231
+ };
232
+ _react.useEffect.call(void 0, () => {
233
+ loadViewer();
234
+ }, [resolvedFileInfo.extension, customRegistry]);
235
+ const viewerProps = _react.useMemo.call(void 0, () => ({
236
+ file,
237
+ url,
238
+ fileName: resolvedFileInfo.fileName,
239
+ mimeType: resolvedFileInfo.mimeType,
240
+ fileSize: _optionalChain([file, 'optionalAccess', _ => _.size]),
241
+ initialSearchText,
242
+ initialSearchPages,
243
+ autoOpenSearch,
244
+ autoExecuteSearch,
245
+ onSearchComplete,
246
+ ...props
247
+ }), [
248
+ file,
249
+ url,
250
+ resolvedFileInfo.fileName,
251
+ resolvedFileInfo.mimeType,
252
+ initialSearchText,
253
+ initialSearchPages,
254
+ autoOpenSearch,
255
+ autoExecuteSearch,
256
+ onSearchComplete,
257
+ props
258
+ ]);
259
+ if (isLoading || !ViewerComponent) {
260
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
261
+ LoadingComponent,
262
+ {
263
+ fileName: resolvedFileInfo.fileName,
264
+ type: resolvedFileInfo.viewerInfo.type
265
+ }
266
+ );
267
+ }
268
+ if (error) {
269
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
270
+ ErrorComponent,
271
+ {
272
+ error,
273
+ retry: loadViewer
274
+ }
275
+ );
276
+ }
277
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ViewerComponent, { ...viewerProps });
278
+ };
279
+
280
+ // src/lock-types.ts
281
+ var LockModeType = /* @__PURE__ */ ((LockModeType2) => {
282
+ LockModeType2[LockModeType2["None"] = 0] = "None";
283
+ LockModeType2[LockModeType2["All"] = 1] = "All";
284
+ LockModeType2[LockModeType2["Include"] = 2] = "Include";
285
+ LockModeType2[LockModeType2["Exclude"] = 3] = "Exclude";
286
+ return LockModeType2;
287
+ })(LockModeType || {});
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+ exports.AudioViewer = _chunk2BLHLWNNjs.AudioViewer; exports.DefaultViewer = _chunkD7SDEVDMjs.DefaultViewer; exports.FileIcon = _chunkEM63H4SAjs.FileIcon_default; exports.FileViewer = FileViewer; exports.ImageViewer = _chunkQV63FULEjs.ImageViewer; exports.LockModeType = LockModeType; exports.PDFViewer = _chunk7LPCKPN2js.PDFViewer; exports.TIFFViewer = _chunkMJYCPSD4js.TIFFViewer; exports.TextViewer = _chunkCIWCHSAAjs.TextViewer; exports.VideoViewer = _chunk6BRYDA3Bjs.VideoViewer; exports.dynamicViewerRegistry = dynamicViewerRegistry; exports.getFileExtension = _chunkOPJOCUSLjs.getFileExtension; exports.getMimeTypeFromExtension = _chunkOPJOCUSLjs.getMimeTypeFromExtension; exports.getViewerComponent = getViewerComponent; exports.getViewerInfo = getViewerInfo;
305
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/premkumar/Documents/GitHub/DMS-File-Viewers/packages/lib/dist/index.js","../src/components/FileViewer.tsx","../src/registry.ts","../src/lock-types.ts"],"names":["LockModeType"],"mappings":"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","file":"/home/premkumar/Documents/GitHub/DMS-File-Viewers/packages/lib/dist/index.js","sourcesContent":[null,"import React, { useState, useEffect, useMemo } from 'react';\nimport { FileViewerProps, ViewerInfo, FileViewerComponent } from '../types';\nimport { getFileExtension, getMimeTypeFromExtension } from '../utils/fileUtils';\nimport { getViewerComponent, getViewerInfo } from '../registry';\n\nexport interface FileViewerComponentProps extends Partial<FileViewerProps> {\n customRegistry?: Record<string, ViewerInfo>;\n loadingComponent?: React.ComponentType<{ fileName?: string; type?: string; }>;\n errorComponent?: React.ComponentType<{ error: Error; retry: () => void; }>;\n}\n\n// Default loading component\n// Default loading component\nconst DefaultLoadingComponent: React.FC<{ fileName?: string; type?: string; }> = ({ fileName, type }) => (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '40px',\n height: '100%',\n width: '100%'\n }}>\n <div className=\"dms-loading-spinner\" style={{\n width: '40px',\n height: '40px',\n border: '3px solid #f3f3f3',\n borderTop: '3px solid #3498db',\n borderRadius: '50%',\n animation: 'spin 1s linear infinite'\n }} />\n <style>{`\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `}</style>\n </div>\n);\n\n// Default error component\nconst DefaultErrorComponent: React.FC<{ error: Error; retry: () => void; }> = ({ error, retry }) => (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '40px',\n border: '1px solid #ddd',\n borderRadius: '4px',\n backgroundColor: '#fff2f2'\n }}>\n <div style={{ textAlign: 'center' }}>\n <p style={{ color: '#d32f2f', marginBottom: '16px' }}>\n Failed to load file viewer\n </p>\n <p style={{ fontSize: '12px', color: '#666', marginBottom: '16px' }}>\n {error.message}\n </p>\n <button\n onClick={retry}\n style={{\n padding: '8px 16px',\n border: '1px solid #007bff',\n borderRadius: '4px',\n backgroundColor: '#007bff',\n color: '#fff',\n cursor: 'pointer'\n }}\n >\n Retry\n </button>\n </div>\n </div>\n);\n\nexport const FileViewer: React.FC<FileViewerComponentProps> = ({\n file,\n url,\n fileName,\n mimeType,\n loading: externalLoading,\n customRegistry,\n loadingComponent: LoadingComponent = DefaultLoadingComponent,\n errorComponent: ErrorComponent = DefaultErrorComponent,\n initialSearchText,\n initialSearchPages,\n autoOpenSearch,\n autoExecuteSearch,\n onSearchComplete,\n ...props\n}) => {\n const [ViewerComponent, setViewerComponent] = useState<FileViewerComponent | null>(null);\n const [internalLoading, setInternalLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n // Combined loading state: either external loading or internal component loading\n const isLoading = externalLoading || internalLoading;\n\n // Resolve file information\n const resolvedFileInfo = useMemo(() => {\n // Determine file name\n let resolvedFileName = fileName;\n if (!resolvedFileName && file) {\n resolvedFileName = file.name;\n }\n if (!resolvedFileName && url) {\n resolvedFileName = url.split('/').pop() || 'unknown';\n }\n\n // Determine file extension\n const extension = resolvedFileName ? getFileExtension(resolvedFileName) : '';\n\n // Determine mime type\n let resolvedMimeType = mimeType;\n if (!resolvedMimeType && file) {\n resolvedMimeType = file.type;\n }\n if (!resolvedMimeType && extension) {\n resolvedMimeType = getMimeTypeFromExtension(extension);\n }\n\n // Get viewer info\n const viewerInfo = getViewerInfo(extension);\n\n return {\n fileName: resolvedFileName,\n extension,\n mimeType: resolvedMimeType,\n viewerInfo\n };\n }, [file, url, fileName, mimeType]);\n\n // Load viewer component dynamically\n const loadViewer = async () => {\n if (internalLoading) return;\n\n setInternalLoading(true);\n setError(null);\n\n try {\n const component = await getViewerComponent(resolvedFileInfo.extension, customRegistry);\n setViewerComponent(() => component);\n } catch (err) {\n setError(err instanceof Error ? err : new Error('Failed to load viewer'));\n } finally {\n setInternalLoading(false);\n }\n };\n\n // Load viewer when file extension changes\n useEffect(() => {\n loadViewer();\n }, [resolvedFileInfo.extension, customRegistry]);\n\n // Prepare props for the viewer\n const viewerProps = useMemo(() => ({\n file,\n url,\n fileName: resolvedFileInfo.fileName,\n mimeType: resolvedFileInfo.mimeType,\n fileSize: file?.size,\n initialSearchText,\n initialSearchPages,\n autoOpenSearch,\n autoExecuteSearch,\n onSearchComplete,\n ...props\n }), [\n file,\n url,\n resolvedFileInfo.fileName,\n resolvedFileInfo.mimeType,\n initialSearchText,\n initialSearchPages,\n autoOpenSearch,\n autoExecuteSearch,\n onSearchComplete,\n props\n ]);\n\n // Show loading state\n if (isLoading || !ViewerComponent) {\n return (\n <LoadingComponent\n fileName={resolvedFileInfo.fileName}\n type={resolvedFileInfo.viewerInfo.type}\n />\n );\n }\n\n // Show error state\n if (error) {\n return (\n <ErrorComponent\n error={error}\n retry={loadViewer}\n />\n );\n }\n\n // Render the loaded viewer component\n return <ViewerComponent {...viewerProps} />;\n};","import { DynamicViewerRegistry, ViewerInfo, FileViewerComponent } from './types';\n\n// Dynamic import functions for each viewer type\nconst loadTextViewer = () => import('./components/viewers/TextViewer').then(m => ({ default: m.TextViewer }));\nconst loadImageViewer = () => import('./components/viewers/ImageViewer').then(m => ({ default: m.ImageViewer }));\nconst loadPDFViewer = () => import('./components/viewers/PDFViewer').then(m => ({ default: m.PDFViewer }));\nconst loadVideoViewer = () => import('./components/viewers/VideoViewer').then(m => ({ default: m.VideoViewer }));\nconst loadAudioViewer = () => import('./components/viewers/AudioViewer').then(m => ({ default: m.AudioViewer }));\nconst loadTIFFViewer = () => import('./components/viewers/TIFFViewer').then(m => ({ default: m.TIFFViewer }));\nconst loadDefaultViewer = () => import('./components/viewers/DefaultViewer').then(m => ({ default: m.DefaultViewer }));\n\n// Registry mapping file extensions to viewer info\nexport const dynamicViewerRegistry: Record<string, ViewerInfo> = {\n // Text files\n 'txt': { type: 'text', loader: loadTextViewer },\n 'json': { type: 'text', loader: loadTextViewer },\n 'xml': { type: 'text', loader: loadTextViewer },\n 'csv': { type: 'text', loader: loadTextViewer },\n 'md': { type: 'text', loader: loadTextViewer },\n 'js': { type: 'text', loader: loadTextViewer },\n 'jsx': { type: 'text', loader: loadTextViewer },\n 'ts': { type: 'text', loader: loadTextViewer },\n 'tsx': { type: 'text', loader: loadTextViewer },\n 'css': { type: 'text', loader: loadTextViewer },\n 'scss': { type: 'text', loader: loadTextViewer },\n 'html': { type: 'text', loader: loadTextViewer },\n 'py': { type: 'text', loader: loadTextViewer },\n 'java': { type: 'text', loader: loadTextViewer },\n 'cpp': { type: 'text', loader: loadTextViewer },\n 'c': { type: 'text', loader: loadTextViewer },\n 'php': { type: 'text', loader: loadTextViewer },\n 'rb': { type: 'text', loader: loadTextViewer },\n 'go': { type: 'text', loader: loadTextViewer },\n 'rs': { type: 'text', loader: loadTextViewer },\n 'sql': { type: 'text', loader: loadTextViewer },\n 'yaml': { type: 'text', loader: loadTextViewer },\n 'yml': { type: 'text', loader: loadTextViewer },\n\n // Images\n 'jpg': { type: 'image', loader: loadImageViewer },\n 'jpeg': { type: 'image', loader: loadImageViewer },\n 'png': { type: 'image', loader: loadImageViewer },\n 'gif': { type: 'image', loader: loadImageViewer },\n 'svg': { type: 'image', loader: loadImageViewer },\n 'webp': { type: 'image', loader: loadImageViewer },\n 'bmp': { type: 'image', loader: loadImageViewer },\n 'ico': { type: 'image', loader: loadImageViewer },\n 'tif': { type: 'tiff', loader: loadTIFFViewer },\n 'tiff': { type: 'tiff', loader: loadTIFFViewer },\n\n // PDF\n 'pdf': { type: 'pdf', loader: loadPDFViewer },\n\n // Videos\n 'mp4': { type: 'video', loader: loadVideoViewer },\n 'webm': { type: 'video', loader: loadVideoViewer },\n 'ogg': { type: 'video', loader: loadVideoViewer },\n 'avi': { type: 'video', loader: loadVideoViewer },\n 'mov': { type: 'video', loader: loadVideoViewer },\n 'wmv': { type: 'video', loader: loadVideoViewer },\n 'flv': { type: 'video', loader: loadVideoViewer },\n 'mkv': { type: 'video', loader: loadVideoViewer },\n\n // Audio\n 'mp3': { type: 'audio', loader: loadAudioViewer },\n 'wav': { type: 'audio', loader: loadAudioViewer },\n 'm4a': { type: 'audio', loader: loadAudioViewer },\n 'flac': { type: 'audio', loader: loadAudioViewer },\n 'aac': { type: 'audio', loader: loadAudioViewer },\n 'oga': { type: 'audio', loader: loadAudioViewer },\n};\n\n// Cache to store loaded components\nconst componentCache = new Map<string, FileViewerComponent>();\n\nexport const getViewerInfo = (extension: string): ViewerInfo => {\n const ext = extension.toLowerCase();\n return dynamicViewerRegistry[ext] || { type: 'default', loader: loadDefaultViewer };\n};\n\nexport const getViewerComponent = async (\n extension: string,\n customRegistry?: Record<string, ViewerInfo>\n): Promise<FileViewerComponent> => {\n const ext = extension.toLowerCase();\n\n // Check cache first\n if (componentCache.has(ext)) {\n return componentCache.get(ext)!;\n }\n\n // Get viewer info from registry\n const registry = { ...dynamicViewerRegistry, ...customRegistry };\n const viewerInfo = registry[ext] || { type: 'default', loader: loadDefaultViewer };\n\n try {\n // Dynamically import the component\n const { default: Component } = await viewerInfo.loader();\n\n // Cache the loaded component\n componentCache.set(ext, Component);\n\n return Component;\n } catch (error) {\n // Fallback to default viewer on error\n if (!componentCache.has('default')) {\n const { default: DefaultComponent } = await loadDefaultViewer();\n componentCache.set('default', DefaultComponent);\n }\n\n return componentCache.get('default')!;\n }\n};","/**\n * Local shim for @embedpdf/plugin-annotation v2.14.1 lock-mode types.\n *\n * Once @cannymindstech/pdf-viewer @ 0.7.0 is published with its own re-exports\n * of these from @embedpdf/plugin-annotation, this file should be deleted and\n * src/index.ts switched back to:\n *\n * export { LockModeType } from '@cannymindstech/pdf-viewer';\n * export type { LockMode, PdfAnnotationFlagName } from '@cannymindstech/pdf-viewer';\n *\n * Numeric values intentionally match the upstream enum so the shim is wire-\n * compatible with the engine even before the upstream bump.\n */\n\nexport enum LockModeType {\n None = 0,\n All = 1,\n Include = 2,\n Exclude = 3,\n}\n\nexport type LockMode =\n | { type: LockModeType.None }\n | { type: LockModeType.All }\n | { type: LockModeType.Include; categories: string[] }\n | { type: LockModeType.Exclude; categories: string[] };\n\n/**\n * PDF annotation flag names recognized by @embedpdf/plugin-annotation v2.14.1.\n * `lockedContents` is new in 2.14.1; older runtimes silently ignore it.\n */\nexport type PdfAnnotationFlagName =\n | 'invisible'\n | 'hidden'\n | 'print'\n | 'noZoom'\n | 'noRotate'\n | 'noView'\n | 'readOnly'\n | 'locked'\n | 'toggleNoView'\n | 'lockedContents';\n"]}
package/dist/index.mjs ADDED
@@ -0,0 +1,305 @@
1
+ "use client";
2
+ import {
3
+ AudioViewer
4
+ } from "./chunk-EKNP342T.mjs";
5
+ import {
6
+ DefaultViewer
7
+ } from "./chunk-B5NNB4KD.mjs";
8
+ import {
9
+ ImageViewer
10
+ } from "./chunk-7JPF5AYR.mjs";
11
+ import {
12
+ PDFViewer
13
+ } from "./chunk-6MV4VQQN.mjs";
14
+ import "./chunk-KQCU7XW2.mjs";
15
+ import {
16
+ TIFFViewer
17
+ } from "./chunk-QGL3ZOPD.mjs";
18
+ import {
19
+ TextViewer
20
+ } from "./chunk-IJMNPAXX.mjs";
21
+ import {
22
+ VideoViewer
23
+ } from "./chunk-XJQ5J2UF.mjs";
24
+ import {
25
+ getFileExtension,
26
+ getMimeTypeFromExtension
27
+ } from "./chunk-KJNOBIUZ.mjs";
28
+ import {
29
+ FileIcon_default
30
+ } from "./chunk-7PMZ4GN5.mjs";
31
+
32
+ // src/components/FileViewer.tsx
33
+ import { useState, useEffect, useMemo } from "react";
34
+
35
+ // src/registry.ts
36
+ var loadTextViewer = () => import("./components/viewers/TextViewer.mjs").then((m) => ({ default: m.TextViewer }));
37
+ var loadImageViewer = () => import("./components/viewers/ImageViewer.mjs").then((m) => ({ default: m.ImageViewer }));
38
+ var loadPDFViewer = () => import("./components/viewers/PDFViewer.mjs").then((m) => ({ default: m.PDFViewer }));
39
+ var loadVideoViewer = () => import("./components/viewers/VideoViewer.mjs").then((m) => ({ default: m.VideoViewer }));
40
+ var loadAudioViewer = () => import("./components/viewers/AudioViewer.mjs").then((m) => ({ default: m.AudioViewer }));
41
+ var loadTIFFViewer = () => import("./components/viewers/TIFFViewer.mjs").then((m) => ({ default: m.TIFFViewer }));
42
+ var loadDefaultViewer = () => import("./components/viewers/DefaultViewer.mjs").then((m) => ({ default: m.DefaultViewer }));
43
+ var dynamicViewerRegistry = {
44
+ // Text files
45
+ "txt": { type: "text", loader: loadTextViewer },
46
+ "json": { type: "text", loader: loadTextViewer },
47
+ "xml": { type: "text", loader: loadTextViewer },
48
+ "csv": { type: "text", loader: loadTextViewer },
49
+ "md": { type: "text", loader: loadTextViewer },
50
+ "js": { type: "text", loader: loadTextViewer },
51
+ "jsx": { type: "text", loader: loadTextViewer },
52
+ "ts": { type: "text", loader: loadTextViewer },
53
+ "tsx": { type: "text", loader: loadTextViewer },
54
+ "css": { type: "text", loader: loadTextViewer },
55
+ "scss": { type: "text", loader: loadTextViewer },
56
+ "html": { type: "text", loader: loadTextViewer },
57
+ "py": { type: "text", loader: loadTextViewer },
58
+ "java": { type: "text", loader: loadTextViewer },
59
+ "cpp": { type: "text", loader: loadTextViewer },
60
+ "c": { type: "text", loader: loadTextViewer },
61
+ "php": { type: "text", loader: loadTextViewer },
62
+ "rb": { type: "text", loader: loadTextViewer },
63
+ "go": { type: "text", loader: loadTextViewer },
64
+ "rs": { type: "text", loader: loadTextViewer },
65
+ "sql": { type: "text", loader: loadTextViewer },
66
+ "yaml": { type: "text", loader: loadTextViewer },
67
+ "yml": { type: "text", loader: loadTextViewer },
68
+ // Images
69
+ "jpg": { type: "image", loader: loadImageViewer },
70
+ "jpeg": { type: "image", loader: loadImageViewer },
71
+ "png": { type: "image", loader: loadImageViewer },
72
+ "gif": { type: "image", loader: loadImageViewer },
73
+ "svg": { type: "image", loader: loadImageViewer },
74
+ "webp": { type: "image", loader: loadImageViewer },
75
+ "bmp": { type: "image", loader: loadImageViewer },
76
+ "ico": { type: "image", loader: loadImageViewer },
77
+ "tif": { type: "tiff", loader: loadTIFFViewer },
78
+ "tiff": { type: "tiff", loader: loadTIFFViewer },
79
+ // PDF
80
+ "pdf": { type: "pdf", loader: loadPDFViewer },
81
+ // Videos
82
+ "mp4": { type: "video", loader: loadVideoViewer },
83
+ "webm": { type: "video", loader: loadVideoViewer },
84
+ "ogg": { type: "video", loader: loadVideoViewer },
85
+ "avi": { type: "video", loader: loadVideoViewer },
86
+ "mov": { type: "video", loader: loadVideoViewer },
87
+ "wmv": { type: "video", loader: loadVideoViewer },
88
+ "flv": { type: "video", loader: loadVideoViewer },
89
+ "mkv": { type: "video", loader: loadVideoViewer },
90
+ // Audio
91
+ "mp3": { type: "audio", loader: loadAudioViewer },
92
+ "wav": { type: "audio", loader: loadAudioViewer },
93
+ "m4a": { type: "audio", loader: loadAudioViewer },
94
+ "flac": { type: "audio", loader: loadAudioViewer },
95
+ "aac": { type: "audio", loader: loadAudioViewer },
96
+ "oga": { type: "audio", loader: loadAudioViewer }
97
+ };
98
+ var componentCache = /* @__PURE__ */ new Map();
99
+ var getViewerInfo = (extension) => {
100
+ const ext = extension.toLowerCase();
101
+ return dynamicViewerRegistry[ext] || { type: "default", loader: loadDefaultViewer };
102
+ };
103
+ var getViewerComponent = async (extension, customRegistry) => {
104
+ const ext = extension.toLowerCase();
105
+ if (componentCache.has(ext)) {
106
+ return componentCache.get(ext);
107
+ }
108
+ const registry = { ...dynamicViewerRegistry, ...customRegistry };
109
+ const viewerInfo = registry[ext] || { type: "default", loader: loadDefaultViewer };
110
+ try {
111
+ const { default: Component } = await viewerInfo.loader();
112
+ componentCache.set(ext, Component);
113
+ return Component;
114
+ } catch (error) {
115
+ if (!componentCache.has("default")) {
116
+ const { default: DefaultComponent } = await loadDefaultViewer();
117
+ componentCache.set("default", DefaultComponent);
118
+ }
119
+ return componentCache.get("default");
120
+ }
121
+ };
122
+
123
+ // src/components/FileViewer.tsx
124
+ import { jsx, jsxs } from "react/jsx-runtime";
125
+ var DefaultLoadingComponent = ({ fileName, type }) => /* @__PURE__ */ jsxs("div", { style: {
126
+ display: "flex",
127
+ alignItems: "center",
128
+ justifyContent: "center",
129
+ padding: "40px",
130
+ height: "100%",
131
+ width: "100%"
132
+ }, children: [
133
+ /* @__PURE__ */ jsx("div", { className: "dms-loading-spinner", style: {
134
+ width: "40px",
135
+ height: "40px",
136
+ border: "3px solid #f3f3f3",
137
+ borderTop: "3px solid #3498db",
138
+ borderRadius: "50%",
139
+ animation: "spin 1s linear infinite"
140
+ } }),
141
+ /* @__PURE__ */ jsx("style", { children: `
142
+ @keyframes spin {
143
+ 0% { transform: rotate(0deg); }
144
+ 100% { transform: rotate(360deg); }
145
+ }
146
+ ` })
147
+ ] });
148
+ var DefaultErrorComponent = ({ error, retry }) => /* @__PURE__ */ jsx("div", { style: {
149
+ display: "flex",
150
+ alignItems: "center",
151
+ justifyContent: "center",
152
+ padding: "40px",
153
+ border: "1px solid #ddd",
154
+ borderRadius: "4px",
155
+ backgroundColor: "#fff2f2"
156
+ }, children: /* @__PURE__ */ jsxs("div", { style: { textAlign: "center" }, children: [
157
+ /* @__PURE__ */ jsx("p", { style: { color: "#d32f2f", marginBottom: "16px" }, children: "Failed to load file viewer" }),
158
+ /* @__PURE__ */ jsx("p", { style: { fontSize: "12px", color: "#666", marginBottom: "16px" }, children: error.message }),
159
+ /* @__PURE__ */ jsx(
160
+ "button",
161
+ {
162
+ onClick: retry,
163
+ style: {
164
+ padding: "8px 16px",
165
+ border: "1px solid #007bff",
166
+ borderRadius: "4px",
167
+ backgroundColor: "#007bff",
168
+ color: "#fff",
169
+ cursor: "pointer"
170
+ },
171
+ children: "Retry"
172
+ }
173
+ )
174
+ ] }) });
175
+ var FileViewer = ({
176
+ file,
177
+ url,
178
+ fileName,
179
+ mimeType,
180
+ loading: externalLoading,
181
+ customRegistry,
182
+ loadingComponent: LoadingComponent = DefaultLoadingComponent,
183
+ errorComponent: ErrorComponent = DefaultErrorComponent,
184
+ initialSearchText,
185
+ initialSearchPages,
186
+ autoOpenSearch,
187
+ autoExecuteSearch,
188
+ onSearchComplete,
189
+ ...props
190
+ }) => {
191
+ const [ViewerComponent, setViewerComponent] = useState(null);
192
+ const [internalLoading, setInternalLoading] = useState(false);
193
+ const [error, setError] = useState(null);
194
+ const isLoading = externalLoading || internalLoading;
195
+ const resolvedFileInfo = useMemo(() => {
196
+ let resolvedFileName = fileName;
197
+ if (!resolvedFileName && file) {
198
+ resolvedFileName = file.name;
199
+ }
200
+ if (!resolvedFileName && url) {
201
+ resolvedFileName = url.split("/").pop() || "unknown";
202
+ }
203
+ const extension = resolvedFileName ? getFileExtension(resolvedFileName) : "";
204
+ let resolvedMimeType = mimeType;
205
+ if (!resolvedMimeType && file) {
206
+ resolvedMimeType = file.type;
207
+ }
208
+ if (!resolvedMimeType && extension) {
209
+ resolvedMimeType = getMimeTypeFromExtension(extension);
210
+ }
211
+ const viewerInfo = getViewerInfo(extension);
212
+ return {
213
+ fileName: resolvedFileName,
214
+ extension,
215
+ mimeType: resolvedMimeType,
216
+ viewerInfo
217
+ };
218
+ }, [file, url, fileName, mimeType]);
219
+ const loadViewer = async () => {
220
+ if (internalLoading) return;
221
+ setInternalLoading(true);
222
+ setError(null);
223
+ try {
224
+ const component = await getViewerComponent(resolvedFileInfo.extension, customRegistry);
225
+ setViewerComponent(() => component);
226
+ } catch (err) {
227
+ setError(err instanceof Error ? err : new Error("Failed to load viewer"));
228
+ } finally {
229
+ setInternalLoading(false);
230
+ }
231
+ };
232
+ useEffect(() => {
233
+ loadViewer();
234
+ }, [resolvedFileInfo.extension, customRegistry]);
235
+ const viewerProps = useMemo(() => ({
236
+ file,
237
+ url,
238
+ fileName: resolvedFileInfo.fileName,
239
+ mimeType: resolvedFileInfo.mimeType,
240
+ fileSize: file?.size,
241
+ initialSearchText,
242
+ initialSearchPages,
243
+ autoOpenSearch,
244
+ autoExecuteSearch,
245
+ onSearchComplete,
246
+ ...props
247
+ }), [
248
+ file,
249
+ url,
250
+ resolvedFileInfo.fileName,
251
+ resolvedFileInfo.mimeType,
252
+ initialSearchText,
253
+ initialSearchPages,
254
+ autoOpenSearch,
255
+ autoExecuteSearch,
256
+ onSearchComplete,
257
+ props
258
+ ]);
259
+ if (isLoading || !ViewerComponent) {
260
+ return /* @__PURE__ */ jsx(
261
+ LoadingComponent,
262
+ {
263
+ fileName: resolvedFileInfo.fileName,
264
+ type: resolvedFileInfo.viewerInfo.type
265
+ }
266
+ );
267
+ }
268
+ if (error) {
269
+ return /* @__PURE__ */ jsx(
270
+ ErrorComponent,
271
+ {
272
+ error,
273
+ retry: loadViewer
274
+ }
275
+ );
276
+ }
277
+ return /* @__PURE__ */ jsx(ViewerComponent, { ...viewerProps });
278
+ };
279
+
280
+ // src/lock-types.ts
281
+ var LockModeType = /* @__PURE__ */ ((LockModeType2) => {
282
+ LockModeType2[LockModeType2["None"] = 0] = "None";
283
+ LockModeType2[LockModeType2["All"] = 1] = "All";
284
+ LockModeType2[LockModeType2["Include"] = 2] = "Include";
285
+ LockModeType2[LockModeType2["Exclude"] = 3] = "Exclude";
286
+ return LockModeType2;
287
+ })(LockModeType || {});
288
+ export {
289
+ AudioViewer,
290
+ DefaultViewer,
291
+ FileIcon_default as FileIcon,
292
+ FileViewer,
293
+ ImageViewer,
294
+ LockModeType,
295
+ PDFViewer,
296
+ TIFFViewer,
297
+ TextViewer,
298
+ VideoViewer,
299
+ dynamicViewerRegistry,
300
+ getFileExtension,
301
+ getMimeTypeFromExtension,
302
+ getViewerComponent,
303
+ getViewerInfo
304
+ };
305
+ //# sourceMappingURL=index.mjs.map