@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.
- package/dist/chunk-2BLHLWNN.js +299 -0
- package/dist/chunk-2BLHLWNN.js.map +1 -0
- package/dist/chunk-6BRYDA3B.js +329 -0
- package/dist/chunk-6BRYDA3B.js.map +1 -0
- package/dist/chunk-6MV4VQQN.mjs +2269 -0
- package/dist/chunk-6MV4VQQN.mjs.map +1 -0
- package/dist/chunk-7JPF5AYR.mjs +488 -0
- package/dist/chunk-7JPF5AYR.mjs.map +1 -0
- package/dist/chunk-7LPCKPN2.js +2269 -0
- package/dist/chunk-7LPCKPN2.js.map +1 -0
- package/dist/chunk-7PMZ4GN5.mjs +290 -0
- package/dist/chunk-7PMZ4GN5.mjs.map +1 -0
- package/dist/chunk-B5NNB4KD.mjs +268 -0
- package/dist/chunk-B5NNB4KD.mjs.map +1 -0
- package/dist/chunk-CIWCHSAA.js +309 -0
- package/dist/chunk-CIWCHSAA.js.map +1 -0
- package/dist/chunk-D7SDEVDM.js +268 -0
- package/dist/chunk-D7SDEVDM.js.map +1 -0
- package/dist/chunk-ECZ6IBOS.js +424 -0
- package/dist/chunk-ECZ6IBOS.js.map +1 -0
- package/dist/chunk-EKNP342T.mjs +299 -0
- package/dist/chunk-EKNP342T.mjs.map +1 -0
- package/dist/chunk-EM63H4SA.js +290 -0
- package/dist/chunk-EM63H4SA.js.map +1 -0
- package/dist/chunk-IJMNPAXX.mjs +309 -0
- package/dist/chunk-IJMNPAXX.mjs.map +1 -0
- package/dist/chunk-KJNOBIUZ.mjs +36 -0
- package/dist/chunk-KJNOBIUZ.mjs.map +1 -0
- package/dist/chunk-KQCU7XW2.mjs +424 -0
- package/dist/chunk-KQCU7XW2.mjs.map +1 -0
- package/dist/chunk-MJYCPSD4.js +742 -0
- package/dist/chunk-MJYCPSD4.js.map +1 -0
- package/dist/chunk-OPJOCUSL.js +36 -0
- package/dist/chunk-OPJOCUSL.js.map +1 -0
- package/dist/chunk-QGL3ZOPD.mjs +742 -0
- package/dist/chunk-QGL3ZOPD.mjs.map +1 -0
- package/dist/chunk-QV63FULE.js +488 -0
- package/dist/chunk-QV63FULE.js.map +1 -0
- package/dist/chunk-XJQ5J2UF.mjs +329 -0
- package/dist/chunk-XJQ5J2UF.mjs.map +1 -0
- package/dist/components/viewers/AudioViewer.d.mts +6 -0
- package/dist/components/viewers/AudioViewer.d.ts +6 -0
- package/dist/components/viewers/AudioViewer.js +10 -0
- package/dist/components/viewers/AudioViewer.js.map +1 -0
- package/dist/components/viewers/AudioViewer.mjs +10 -0
- package/dist/components/viewers/AudioViewer.mjs.map +1 -0
- package/dist/components/viewers/DefaultViewer.d.mts +6 -0
- package/dist/components/viewers/DefaultViewer.d.ts +6 -0
- package/dist/components/viewers/DefaultViewer.js +10 -0
- package/dist/components/viewers/DefaultViewer.js.map +1 -0
- package/dist/components/viewers/DefaultViewer.mjs +10 -0
- package/dist/components/viewers/DefaultViewer.mjs.map +1 -0
- package/dist/components/viewers/ImageViewer.d.mts +6 -0
- package/dist/components/viewers/ImageViewer.d.ts +6 -0
- package/dist/components/viewers/ImageViewer.js +10 -0
- package/dist/components/viewers/ImageViewer.js.map +1 -0
- package/dist/components/viewers/ImageViewer.mjs +10 -0
- package/dist/components/viewers/ImageViewer.mjs.map +1 -0
- package/dist/components/viewers/PDFViewer.d.mts +51 -0
- package/dist/components/viewers/PDFViewer.d.ts +51 -0
- package/dist/components/viewers/PDFViewer.js +11 -0
- package/dist/components/viewers/PDFViewer.js.map +1 -0
- package/dist/components/viewers/PDFViewer.mjs +11 -0
- package/dist/components/viewers/PDFViewer.mjs.map +1 -0
- package/dist/components/viewers/TIFFViewer.d.mts +6 -0
- package/dist/components/viewers/TIFFViewer.d.ts +6 -0
- package/dist/components/viewers/TIFFViewer.js +10 -0
- package/dist/components/viewers/TIFFViewer.js.map +1 -0
- package/dist/components/viewers/TIFFViewer.mjs +10 -0
- package/dist/components/viewers/TIFFViewer.mjs.map +1 -0
- package/dist/components/viewers/TextViewer.d.mts +6 -0
- package/dist/components/viewers/TextViewer.d.ts +6 -0
- package/dist/components/viewers/TextViewer.js +10 -0
- package/dist/components/viewers/TextViewer.js.map +1 -0
- package/dist/components/viewers/TextViewer.mjs +10 -0
- package/dist/components/viewers/TextViewer.mjs.map +1 -0
- package/dist/components/viewers/VideoViewer.d.mts +6 -0
- package/dist/components/viewers/VideoViewer.d.ts +6 -0
- package/dist/components/viewers/VideoViewer.js +10 -0
- package/dist/components/viewers/VideoViewer.js.map +1 -0
- package/dist/components/viewers/VideoViewer.mjs +10 -0
- package/dist/components/viewers/VideoViewer.mjs.map +1 -0
- package/dist/index.d.mts +75 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.js +305 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +305 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types-AT684fjV.d.mts +96 -0
- package/dist/types-AT684fjV.d.ts +96 -0
- 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
|