@cannyminds/dms-file-viewers 0.4.0 → 0.6.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.
- package/dist/{chunk-DOOYIHGW.js → chunk-56PP5GHZ.js} +70 -18
- package/dist/chunk-56PP5GHZ.js.map +1 -0
- package/dist/{chunk-7BLEPGZ4.mjs → chunk-7AUCINV2.mjs} +70 -18
- package/dist/chunk-7AUCINV2.mjs.map +1 -0
- package/dist/chunk-A2MSWOEM.js +159 -0
- package/dist/chunk-A2MSWOEM.js.map +1 -0
- package/dist/{chunk-SBEFC7HP.js → chunk-CQ3HSM5S.js} +70 -18
- package/dist/chunk-CQ3HSM5S.js.map +1 -0
- package/dist/{chunk-DDT3GC3C.js → chunk-D7LXG67Z.js} +482 -510
- package/dist/chunk-D7LXG67Z.js.map +1 -0
- package/dist/chunk-EAM7CURM.js +334 -0
- package/dist/chunk-EAM7CURM.js.map +1 -0
- package/dist/{chunk-SNEIVT4R.js → chunk-ETHSDRF5.js} +70 -18
- package/dist/chunk-ETHSDRF5.js.map +1 -0
- package/dist/{chunk-RE4XRGSV.js → chunk-FA5L62Y5.js} +52 -32
- package/dist/chunk-FA5L62Y5.js.map +1 -0
- package/dist/chunk-GMDRDOWP.mjs +159 -0
- package/dist/chunk-GMDRDOWP.mjs.map +1 -0
- package/dist/{chunk-4DJJINTB.mjs → chunk-KBST5Z5H.mjs} +69 -17
- package/dist/chunk-KBST5Z5H.mjs.map +1 -0
- package/dist/{chunk-WP55NYFS.js → chunk-LQVHD4FS.js} +71 -19
- package/dist/chunk-LQVHD4FS.js.map +1 -0
- package/dist/chunk-M57PSU4O.mjs +36 -0
- package/dist/chunk-M57PSU4O.mjs.map +1 -0
- package/dist/{chunk-YHMHDPLQ.mjs → chunk-PFJKVNUA.mjs} +69 -17
- package/dist/chunk-PFJKVNUA.mjs.map +1 -0
- package/dist/{chunk-677DWENS.mjs → chunk-THFHTTQX.mjs} +64 -17
- package/dist/chunk-THFHTTQX.mjs.map +1 -0
- package/dist/chunk-U4W524VZ.mjs +334 -0
- package/dist/chunk-U4W524VZ.mjs.map +1 -0
- package/dist/{chunk-77UARJVQ.js → chunk-UUM656JE.js} +66 -19
- package/dist/chunk-UUM656JE.js.map +1 -0
- package/dist/{chunk-QQDQJ7TS.mjs → chunk-VJFXCN5Z.mjs} +50 -30
- package/dist/chunk-VJFXCN5Z.mjs.map +1 -0
- package/dist/{chunk-BHMFZTZ7.mjs → chunk-WNZHGFNC.mjs} +69 -17
- package/dist/chunk-WNZHGFNC.mjs.map +1 -0
- package/dist/chunk-YEPEMLM3.js +36 -0
- package/dist/chunk-YEPEMLM3.js.map +1 -0
- package/dist/{chunk-J2YW5DHC.mjs → chunk-ZKGWS327.mjs} +517 -545
- package/dist/chunk-ZKGWS327.mjs.map +1 -0
- package/dist/components/viewers/AudioViewer.d.mts +1 -1
- package/dist/components/viewers/AudioViewer.d.ts +1 -1
- package/dist/components/viewers/AudioViewer.js +4 -3
- package/dist/components/viewers/AudioViewer.js.map +1 -1
- package/dist/components/viewers/AudioViewer.mjs +3 -2
- package/dist/components/viewers/DefaultViewer.d.mts +1 -1
- package/dist/components/viewers/DefaultViewer.d.ts +1 -1
- package/dist/components/viewers/DefaultViewer.js +4 -3
- package/dist/components/viewers/DefaultViewer.js.map +1 -1
- package/dist/components/viewers/DefaultViewer.mjs +3 -2
- package/dist/components/viewers/ImageViewer.d.mts +1 -1
- package/dist/components/viewers/ImageViewer.d.ts +1 -1
- package/dist/components/viewers/ImageViewer.js +4 -4
- package/dist/components/viewers/ImageViewer.mjs +3 -3
- package/dist/components/viewers/PDFViewer.d.mts +1 -1
- package/dist/components/viewers/PDFViewer.d.ts +1 -1
- package/dist/components/viewers/PDFViewer.js +5 -3
- package/dist/components/viewers/PDFViewer.js.map +1 -1
- package/dist/components/viewers/PDFViewer.mjs +4 -2
- package/dist/components/viewers/TIFFViewer.d.mts +1 -1
- package/dist/components/viewers/TIFFViewer.d.ts +1 -1
- package/dist/components/viewers/TIFFViewer.js +4 -3
- package/dist/components/viewers/TIFFViewer.js.map +1 -1
- package/dist/components/viewers/TIFFViewer.mjs +3 -2
- package/dist/components/viewers/TextViewer.d.mts +1 -1
- package/dist/components/viewers/TextViewer.d.ts +1 -1
- package/dist/components/viewers/TextViewer.js +4 -3
- package/dist/components/viewers/TextViewer.js.map +1 -1
- package/dist/components/viewers/TextViewer.mjs +3 -2
- package/dist/components/viewers/VideoViewer.d.mts +1 -1
- package/dist/components/viewers/VideoViewer.d.ts +1 -1
- package/dist/components/viewers/VideoViewer.js +4 -3
- package/dist/components/viewers/VideoViewer.js.map +1 -1
- package/dist/components/viewers/VideoViewer.mjs +3 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +14 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +12 -9
- package/dist/index.mjs.map +1 -1
- package/dist/{types-C6IEfcTM.d.mts → types-BmZB9kkJ.d.mts} +13 -1
- package/dist/{types-C6IEfcTM.d.ts → types-BmZB9kkJ.d.ts} +13 -1
- package/package.json +1 -1
- package/dist/chunk-4DJJINTB.mjs.map +0 -1
- package/dist/chunk-677DWENS.mjs.map +0 -1
- package/dist/chunk-77UARJVQ.js.map +0 -1
- package/dist/chunk-7BLEPGZ4.mjs.map +0 -1
- package/dist/chunk-BHMFZTZ7.mjs.map +0 -1
- package/dist/chunk-BONT4K3R.mjs +0 -294
- package/dist/chunk-BONT4K3R.mjs.map +0 -1
- package/dist/chunk-DDT3GC3C.js.map +0 -1
- package/dist/chunk-DOOYIHGW.js.map +0 -1
- package/dist/chunk-J2YW5DHC.mjs.map +0 -1
- package/dist/chunk-QQDQJ7TS.mjs.map +0 -1
- package/dist/chunk-RE4XRGSV.js.map +0 -1
- package/dist/chunk-SBEFC7HP.js.map +0 -1
- package/dist/chunk-SNEIVT4R.js.map +0 -1
- package/dist/chunk-WP55NYFS.js.map +0 -1
- package/dist/chunk-YHMHDPLQ.mjs.map +0 -1
- package/dist/chunk-Z3IUTTJQ.js +0 -294
- package/dist/chunk-Z3IUTTJQ.js.map +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { F as FileViewerProps, V as ViewerInfo, a as FileViewerComponent } from './types-
|
|
3
|
-
export { c as DynamicViewerImport, D as DynamicViewerRegistry, S as SearchResult, b as ViewerRegistry } from './types-
|
|
2
|
+
import { F as FileViewerProps, V as ViewerInfo, a as FileViewerComponent } from './types-BmZB9kkJ.mjs';
|
|
3
|
+
export { c as DynamicViewerImport, D as DynamicViewerRegistry, S as SearchResult, T as ToolbarActionId, d as ToolbarActionsConfig, b as ViewerRegistry } from './types-BmZB9kkJ.mjs';
|
|
4
4
|
export { TextViewer } from './components/viewers/TextViewer.mjs';
|
|
5
5
|
export { ImageViewer } from './components/viewers/ImageViewer.mjs';
|
|
6
6
|
export { PDFViewer } from './components/viewers/PDFViewer.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { F as FileViewerProps, V as ViewerInfo, a as FileViewerComponent } from './types-
|
|
3
|
-
export { c as DynamicViewerImport, D as DynamicViewerRegistry, S as SearchResult, b as ViewerRegistry } from './types-
|
|
2
|
+
import { F as FileViewerProps, V as ViewerInfo, a as FileViewerComponent } from './types-BmZB9kkJ.js';
|
|
3
|
+
export { c as DynamicViewerImport, D as DynamicViewerRegistry, S as SearchResult, T as ToolbarActionId, d as ToolbarActionsConfig, b as ViewerRegistry } from './types-BmZB9kkJ.js';
|
|
4
4
|
export { TextViewer } from './components/viewers/TextViewer.js';
|
|
5
5
|
export { ImageViewer } from './components/viewers/ImageViewer.js';
|
|
6
6
|
export { PDFViewer } from './components/viewers/PDFViewer.js';
|
package/dist/index.js
CHANGED
|
@@ -1,30 +1,33 @@
|
|
|
1
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
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk56PP5GHZjs = require('./chunk-56PP5GHZ.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkUUM656JEjs = require('./chunk-UUM656JE.js');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkEAM7CURMjs = require('./chunk-EAM7CURM.js');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkD7LXG67Zjs = require('./chunk-D7LXG67Z.js');
|
|
14
|
+
require('./chunk-A2MSWOEM.js');
|
|
14
15
|
|
|
15
16
|
|
|
16
|
-
var
|
|
17
|
+
var _chunkLQVHD4FSjs = require('./chunk-LQVHD4FS.js');
|
|
17
18
|
|
|
18
19
|
|
|
19
|
-
var
|
|
20
|
+
var _chunkCQ3HSM5Sjs = require('./chunk-CQ3HSM5S.js');
|
|
20
21
|
|
|
21
22
|
|
|
22
|
-
var
|
|
23
|
+
var _chunkETHSDRF5js = require('./chunk-ETHSDRF5.js');
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
|
|
27
|
+
var _chunkYEPEMLM3js = require('./chunk-YEPEMLM3.js');
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
|
|
30
|
+
var _chunkFA5L62Y5js = require('./chunk-FA5L62Y5.js');
|
|
28
31
|
|
|
29
32
|
// src/components/FileViewer.tsx
|
|
30
33
|
var _react = require('react');
|
|
@@ -200,13 +203,13 @@ var FileViewer = ({
|
|
|
200
203
|
if (!resolvedFileName && url) {
|
|
201
204
|
resolvedFileName = url.split("/").pop() || "unknown";
|
|
202
205
|
}
|
|
203
|
-
const extension = resolvedFileName ?
|
|
206
|
+
const extension = resolvedFileName ? _chunkYEPEMLM3js.getFileExtension.call(void 0, resolvedFileName) : "";
|
|
204
207
|
let resolvedMimeType = mimeType;
|
|
205
208
|
if (!resolvedMimeType && file) {
|
|
206
209
|
resolvedMimeType = file.type;
|
|
207
210
|
}
|
|
208
211
|
if (!resolvedMimeType && extension) {
|
|
209
|
-
resolvedMimeType =
|
|
212
|
+
resolvedMimeType = _chunkYEPEMLM3js.getMimeTypeFromExtension.call(void 0, extension);
|
|
210
213
|
}
|
|
211
214
|
const viewerInfo = getViewerInfo(extension);
|
|
212
215
|
return {
|
|
@@ -291,5 +294,5 @@ var FileViewer = ({
|
|
|
291
294
|
|
|
292
295
|
|
|
293
296
|
|
|
294
|
-
exports.AudioViewer =
|
|
297
|
+
exports.AudioViewer = _chunk56PP5GHZjs.AudioViewer; exports.DefaultViewer = _chunkUUM656JEjs.DefaultViewer; exports.FileIcon = _chunkFA5L62Y5js.FileIcon_default; exports.FileViewer = FileViewer; exports.ImageViewer = _chunkEAM7CURMjs.ImageViewer; exports.PDFViewer = _chunkD7LXG67Zjs.PDFViewer; exports.TIFFViewer = _chunkCQ3HSM5Sjs.TIFFViewer; exports.TextViewer = _chunkLQVHD4FSjs.TextViewer; exports.VideoViewer = _chunkETHSDRF5js.VideoViewer; exports.dynamicViewerRegistry = dynamicViewerRegistry; exports.getFileExtension = _chunkYEPEMLM3js.getFileExtension; exports.getMimeTypeFromExtension = _chunkYEPEMLM3js.getMimeTypeFromExtension; exports.getViewerComponent = getViewerComponent; exports.getViewerInfo = getViewerInfo;
|
|
295
298
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\index.js"],"names":[],"mappings":"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","file":"D:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\index.js","sourcesContent":[null]}
|
|
1
|
+
{"version":3,"sources":["d:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\index.js"],"names":[],"mappings":"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","file":"D:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\index.js","sourcesContent":[null]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
AudioViewer
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KBST5Z5H.mjs";
|
|
5
5
|
import {
|
|
6
6
|
DefaultViewer
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-THFHTTQX.mjs";
|
|
8
8
|
import {
|
|
9
9
|
ImageViewer
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-U4W524VZ.mjs";
|
|
11
11
|
import {
|
|
12
12
|
PDFViewer
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ZKGWS327.mjs";
|
|
14
|
+
import "./chunk-GMDRDOWP.mjs";
|
|
14
15
|
import {
|
|
15
16
|
TextViewer
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-7AUCINV2.mjs";
|
|
17
18
|
import {
|
|
18
19
|
TIFFViewer
|
|
19
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-PFJKVNUA.mjs";
|
|
20
21
|
import {
|
|
21
22
|
VideoViewer
|
|
22
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-WNZHGFNC.mjs";
|
|
23
24
|
import {
|
|
24
|
-
FileIcon_default,
|
|
25
25
|
getFileExtension,
|
|
26
26
|
getMimeTypeFromExtension
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-M57PSU4O.mjs";
|
|
28
|
+
import {
|
|
29
|
+
FileIcon_default
|
|
30
|
+
} from "./chunk-VJFXCN5Z.mjs";
|
|
28
31
|
|
|
29
32
|
// src/components/FileViewer.tsx
|
|
30
33
|
import { useState, useEffect, useMemo } from "react";
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/FileViewer.tsx","../src/registry.ts"],"sourcesContent":["import React, { useState, useEffect, useMemo } from 'react';\r\nimport { FileViewerProps, ViewerInfo, FileViewerComponent } from '../types';\r\nimport { getFileExtension, getMimeTypeFromExtension } from '../utils/fileUtils';\r\nimport { getViewerComponent, getViewerInfo } from '../registry';\r\n\r\nexport interface FileViewerComponentProps extends Partial<FileViewerProps> {\r\n customRegistry?: Record<string, ViewerInfo>;\r\n loadingComponent?: React.ComponentType<{ fileName?: string; type?: string; }>;\r\n errorComponent?: React.ComponentType<{ error: Error; retry: () => void; }>;\r\n}\r\n\r\n// Default loading component\r\nconst DefaultLoadingComponent: React.FC<{ fileName?: string; type?: string; }> = ({ fileName, type }) => (\r\n <div style={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: '40px',\r\n border: '1px solid #ddd',\r\n borderRadius: '4px',\r\n backgroundColor: '#f9f9f9'\r\n }}>\r\n <div style={{ textAlign: 'center' }}>\r\n <div style={{\r\n width: '24px',\r\n height: '24px',\r\n border: '2px solid #ccc',\r\n borderTop: '2px solid #007bff',\r\n borderRadius: '50%',\r\n animation: 'dms-file-viewer-spin 1s linear infinite',\r\n margin: '0 auto 16px'\r\n }} />\r\n <p>Loading {type} viewer...</p>\r\n {fileName && <p style={{ fontSize: '12px', color: '#666' }}>File: {fileName}</p>}\r\n </div>\r\n </div>\r\n);\r\n\r\n// Default error component\r\nconst DefaultErrorComponent: React.FC<{ error: Error; retry: () => void; }> = ({ error, retry }) => (\r\n <div style={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: '40px',\r\n border: '1px solid #ddd',\r\n borderRadius: '4px',\r\n backgroundColor: '#fff2f2'\r\n }}>\r\n <div style={{ textAlign: 'center' }}>\r\n <p style={{ color: '#d32f2f', marginBottom: '16px' }}>\r\n Failed to load file viewer\r\n </p>\r\n <p style={{ fontSize: '12px', color: '#666', marginBottom: '16px' }}>\r\n {error.message}\r\n </p>\r\n <button\r\n onClick={retry}\r\n style={{\r\n padding: '8px 16px',\r\n border: '1px solid #007bff',\r\n borderRadius: '4px',\r\n backgroundColor: '#007bff',\r\n color: '#fff',\r\n cursor: 'pointer'\r\n }}\r\n >\r\n Retry\r\n </button>\r\n </div>\r\n </div>\r\n);\r\n\r\nexport const FileViewer: React.FC<FileViewerComponentProps> = ({\r\n file,\r\n url,\r\n fileName,\r\n mimeType,\r\n customRegistry,\r\n loadingComponent: LoadingComponent = DefaultLoadingComponent,\r\n errorComponent: ErrorComponent = DefaultErrorComponent,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n ...props\r\n}) => {\r\n const [ViewerComponent, setViewerComponent] = useState<FileViewerComponent | null>(null);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState<Error | null>(null);\r\n\r\n // Resolve file information\r\n const resolvedFileInfo = useMemo(() => {\r\n // Determine file name\r\n let resolvedFileName = fileName;\r\n if (!resolvedFileName && file) {\r\n resolvedFileName = file.name;\r\n }\r\n if (!resolvedFileName && url) {\r\n resolvedFileName = url.split('/').pop() || 'unknown';\r\n }\r\n\r\n // Determine file extension\r\n const extension = resolvedFileName ? getFileExtension(resolvedFileName) : '';\r\n\r\n // Determine mime type\r\n let resolvedMimeType = mimeType;\r\n if (!resolvedMimeType && file) {\r\n resolvedMimeType = file.type;\r\n }\r\n if (!resolvedMimeType && extension) {\r\n resolvedMimeType = getMimeTypeFromExtension(extension);\r\n }\r\n\r\n // Get viewer info\r\n const viewerInfo = getViewerInfo(extension);\r\n\r\n return {\r\n fileName: resolvedFileName,\r\n extension,\r\n mimeType: resolvedMimeType,\r\n viewerInfo\r\n };\r\n }, [file, url, fileName, mimeType]);\r\n\r\n // Load viewer component dynamically\r\n const loadViewer = async () => {\r\n if (loading) return;\r\n\r\n setLoading(true);\r\n setError(null);\r\n\r\n try {\r\n const component = await getViewerComponent(resolvedFileInfo.extension, customRegistry);\r\n setViewerComponent(() => component);\r\n } catch (err) {\r\n setError(err instanceof Error ? err : new Error('Failed to load viewer'));\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n // Load viewer when file info changes\r\n useEffect(() => {\r\n loadViewer();\r\n }, [resolvedFileInfo.extension]);\r\n\r\n // Prepare props for the viewer\r\n const viewerProps = useMemo(() => ({\r\n file,\r\n url,\r\n fileName: resolvedFileInfo.fileName,\r\n mimeType: resolvedFileInfo.mimeType,\r\n fileSize: file?.size,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n ...props\r\n }), [\r\n file,\r\n url,\r\n resolvedFileInfo.fileName,\r\n resolvedFileInfo.mimeType,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n props\r\n ]);\r\n\r\n // Show loading state\r\n if (loading || !ViewerComponent) {\r\n return (\r\n <LoadingComponent\r\n fileName={resolvedFileInfo.fileName}\r\n type={resolvedFileInfo.viewerInfo.type}\r\n />\r\n );\r\n }\r\n\r\n // Show error state\r\n if (error) {\r\n return (\r\n <ErrorComponent\r\n error={error}\r\n retry={loadViewer}\r\n />\r\n );\r\n }\r\n\r\n // Render the loaded viewer component\r\n return <ViewerComponent {...viewerProps} />;\r\n};","import { DynamicViewerRegistry, ViewerInfo, FileViewerComponent } from './types';\r\n\r\n// Dynamic import functions for each viewer type\r\nconst loadTextViewer = () => import('./components/viewers/TextViewer').then(m => ({ default: m.TextViewer }));\r\nconst loadImageViewer = () => import('./components/viewers/ImageViewer').then(m => ({ default: m.ImageViewer }));\r\nconst loadPDFViewer = () => import('./components/viewers/PDFViewer').then(m => ({ default: m.PDFViewer }));\r\nconst loadVideoViewer = () => import('./components/viewers/VideoViewer').then(m => ({ default: m.VideoViewer }));\r\nconst loadAudioViewer = () => import('./components/viewers/AudioViewer').then(m => ({ default: m.AudioViewer }));\r\nconst loadTIFFViewer = () => import('./components/viewers/TIFFViewer').then(m => ({ default: m.TIFFViewer }));\r\nconst loadDefaultViewer = () => import('./components/viewers/DefaultViewer').then(m => ({ default: m.DefaultViewer }));\r\n\r\n// Registry mapping file extensions to viewer info\r\nexport const dynamicViewerRegistry: Record<string, ViewerInfo> = {\r\n // Text files\r\n 'txt': { type: 'text', loader: loadTextViewer },\r\n 'json': { type: 'text', loader: loadTextViewer },\r\n 'xml': { type: 'text', loader: loadTextViewer },\r\n 'csv': { type: 'text', loader: loadTextViewer },\r\n 'md': { type: 'text', loader: loadTextViewer },\r\n 'js': { type: 'text', loader: loadTextViewer },\r\n 'jsx': { type: 'text', loader: loadTextViewer },\r\n 'ts': { type: 'text', loader: loadTextViewer },\r\n 'tsx': { type: 'text', loader: loadTextViewer },\r\n 'css': { type: 'text', loader: loadTextViewer },\r\n 'scss': { type: 'text', loader: loadTextViewer },\r\n 'html': { type: 'text', loader: loadTextViewer },\r\n 'py': { type: 'text', loader: loadTextViewer },\r\n 'java': { type: 'text', loader: loadTextViewer },\r\n 'cpp': { type: 'text', loader: loadTextViewer },\r\n 'c': { type: 'text', loader: loadTextViewer },\r\n 'php': { type: 'text', loader: loadTextViewer },\r\n 'rb': { type: 'text', loader: loadTextViewer },\r\n 'go': { type: 'text', loader: loadTextViewer },\r\n 'rs': { type: 'text', loader: loadTextViewer },\r\n 'sql': { type: 'text', loader: loadTextViewer },\r\n 'yaml': { type: 'text', loader: loadTextViewer },\r\n 'yml': { type: 'text', loader: loadTextViewer },\r\n\r\n // Images\r\n 'jpg': { type: 'image', loader: loadImageViewer },\r\n 'jpeg': { type: 'image', loader: loadImageViewer },\r\n 'png': { type: 'image', loader: loadImageViewer },\r\n 'gif': { type: 'image', loader: loadImageViewer },\r\n 'svg': { type: 'image', loader: loadImageViewer },\r\n 'webp': { type: 'image', loader: loadImageViewer },\r\n 'bmp': { type: 'image', loader: loadImageViewer },\r\n 'ico': { type: 'image', loader: loadImageViewer },\r\n 'tif': { type: 'tiff', loader: loadTIFFViewer },\r\n 'tiff': { type: 'tiff', loader: loadTIFFViewer },\r\n\r\n // PDF\r\n 'pdf': { type: 'pdf', loader: loadPDFViewer },\r\n\r\n // Videos\r\n 'mp4': { type: 'video', loader: loadVideoViewer },\r\n 'webm': { type: 'video', loader: loadVideoViewer },\r\n 'ogg': { type: 'video', loader: loadVideoViewer },\r\n 'avi': { type: 'video', loader: loadVideoViewer },\r\n 'mov': { type: 'video', loader: loadVideoViewer },\r\n 'wmv': { type: 'video', loader: loadVideoViewer },\r\n 'flv': { type: 'video', loader: loadVideoViewer },\r\n 'mkv': { type: 'video', loader: loadVideoViewer },\r\n\r\n // Audio\r\n 'mp3': { type: 'audio', loader: loadAudioViewer },\r\n 'wav': { type: 'audio', loader: loadAudioViewer },\r\n 'm4a': { type: 'audio', loader: loadAudioViewer },\r\n 'flac': { type: 'audio', loader: loadAudioViewer },\r\n 'aac': { type: 'audio', loader: loadAudioViewer },\r\n 'oga': { type: 'audio', loader: loadAudioViewer },\r\n};\r\n\r\n// Cache to store loaded components\r\nconst componentCache = new Map<string, FileViewerComponent>();\r\n\r\nexport const getViewerInfo = (extension: string): ViewerInfo => {\r\n const ext = extension.toLowerCase();\r\n return dynamicViewerRegistry[ext] || { type: 'default', loader: loadDefaultViewer };\r\n};\r\n\r\nexport const getViewerComponent = async (\r\n extension: string,\r\n customRegistry?: Record<string, ViewerInfo>\r\n): Promise<FileViewerComponent> => {\r\n const ext = extension.toLowerCase();\r\n\r\n // Check cache first\r\n if (componentCache.has(ext)) {\r\n return componentCache.get(ext)!;\r\n }\r\n\r\n // Get viewer info from registry\r\n const registry = { ...dynamicViewerRegistry, ...customRegistry };\r\n const viewerInfo = registry[ext] || { type: 'default', loader: loadDefaultViewer };\r\n\r\n try {\r\n // Dynamically import the component\r\n const { default: Component } = await viewerInfo.loader();\r\n\r\n // Cache the loaded component\r\n componentCache.set(ext, Component);\r\n\r\n return Component;\r\n } catch (error) {\r\n // Fallback to default viewer on error\r\n if (!componentCache.has('default')) {\r\n const { default: DefaultComponent } = await loadDefaultViewer();\r\n componentCache.set('default', DefaultComponent);\r\n }\r\n\r\n return componentCache.get('default')!;\r\n }\r\n};"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/components/FileViewer.tsx","../src/registry.ts"],"sourcesContent":["import React, { useState, useEffect, useMemo } from 'react';\r\nimport { FileViewerProps, ViewerInfo, FileViewerComponent } from '../types';\r\nimport { getFileExtension, getMimeTypeFromExtension } from '../utils/fileUtils';\r\nimport { getViewerComponent, getViewerInfo } from '../registry';\r\n\r\nexport interface FileViewerComponentProps extends Partial<FileViewerProps> {\r\n customRegistry?: Record<string, ViewerInfo>;\r\n loadingComponent?: React.ComponentType<{ fileName?: string; type?: string; }>;\r\n errorComponent?: React.ComponentType<{ error: Error; retry: () => void; }>;\r\n}\r\n\r\n// Default loading component\r\nconst DefaultLoadingComponent: React.FC<{ fileName?: string; type?: string; }> = ({ fileName, type }) => (\r\n <div style={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: '40px',\r\n border: '1px solid #ddd',\r\n borderRadius: '4px',\r\n backgroundColor: '#f9f9f9'\r\n }}>\r\n <div style={{ textAlign: 'center' }}>\r\n <div style={{\r\n width: '24px',\r\n height: '24px',\r\n border: '2px solid #ccc',\r\n borderTop: '2px solid #007bff',\r\n borderRadius: '50%',\r\n animation: 'dms-file-viewer-spin 1s linear infinite',\r\n margin: '0 auto 16px'\r\n }} />\r\n <p>Loading {type} viewer...</p>\r\n {fileName && <p style={{ fontSize: '12px', color: '#666' }}>File: {fileName}</p>}\r\n </div>\r\n </div>\r\n);\r\n\r\n// Default error component\r\nconst DefaultErrorComponent: React.FC<{ error: Error; retry: () => void; }> = ({ error, retry }) => (\r\n <div style={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: '40px',\r\n border: '1px solid #ddd',\r\n borderRadius: '4px',\r\n backgroundColor: '#fff2f2'\r\n }}>\r\n <div style={{ textAlign: 'center' }}>\r\n <p style={{ color: '#d32f2f', marginBottom: '16px' }}>\r\n Failed to load file viewer\r\n </p>\r\n <p style={{ fontSize: '12px', color: '#666', marginBottom: '16px' }}>\r\n {error.message}\r\n </p>\r\n <button\r\n onClick={retry}\r\n style={{\r\n padding: '8px 16px',\r\n border: '1px solid #007bff',\r\n borderRadius: '4px',\r\n backgroundColor: '#007bff',\r\n color: '#fff',\r\n cursor: 'pointer'\r\n }}\r\n >\r\n Retry\r\n </button>\r\n </div>\r\n </div>\r\n);\r\n\r\nexport const FileViewer: React.FC<FileViewerComponentProps> = ({\r\n file,\r\n url,\r\n fileName,\r\n mimeType,\r\n customRegistry,\r\n loadingComponent: LoadingComponent = DefaultLoadingComponent,\r\n errorComponent: ErrorComponent = DefaultErrorComponent,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n ...props\r\n}) => {\r\n const [ViewerComponent, setViewerComponent] = useState<FileViewerComponent | null>(null);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState<Error | null>(null);\r\n\r\n // Resolve file information\r\n const resolvedFileInfo = useMemo(() => {\r\n // Determine file name\r\n let resolvedFileName = fileName;\r\n if (!resolvedFileName && file) {\r\n resolvedFileName = file.name;\r\n }\r\n if (!resolvedFileName && url) {\r\n resolvedFileName = url.split('/').pop() || 'unknown';\r\n }\r\n\r\n // Determine file extension\r\n const extension = resolvedFileName ? getFileExtension(resolvedFileName) : '';\r\n\r\n // Determine mime type\r\n let resolvedMimeType = mimeType;\r\n if (!resolvedMimeType && file) {\r\n resolvedMimeType = file.type;\r\n }\r\n if (!resolvedMimeType && extension) {\r\n resolvedMimeType = getMimeTypeFromExtension(extension);\r\n }\r\n\r\n // Get viewer info\r\n const viewerInfo = getViewerInfo(extension);\r\n\r\n return {\r\n fileName: resolvedFileName,\r\n extension,\r\n mimeType: resolvedMimeType,\r\n viewerInfo\r\n };\r\n }, [file, url, fileName, mimeType]);\r\n\r\n // Load viewer component dynamically\r\n const loadViewer = async () => {\r\n if (loading) return;\r\n\r\n setLoading(true);\r\n setError(null);\r\n\r\n try {\r\n const component = await getViewerComponent(resolvedFileInfo.extension, customRegistry);\r\n setViewerComponent(() => component);\r\n } catch (err) {\r\n setError(err instanceof Error ? err : new Error('Failed to load viewer'));\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n // Load viewer when file info changes\r\n useEffect(() => {\r\n loadViewer();\r\n }, [resolvedFileInfo.extension]);\r\n\r\n // Prepare props for the viewer\r\n const viewerProps = useMemo(() => ({\r\n file,\r\n url,\r\n fileName: resolvedFileInfo.fileName,\r\n mimeType: resolvedFileInfo.mimeType,\r\n fileSize: file?.size,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n ...props\r\n }), [\r\n file,\r\n url,\r\n resolvedFileInfo.fileName,\r\n resolvedFileInfo.mimeType,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n props\r\n ]);\r\n\r\n // Show loading state\r\n if (loading || !ViewerComponent) {\r\n return (\r\n <LoadingComponent\r\n fileName={resolvedFileInfo.fileName}\r\n type={resolvedFileInfo.viewerInfo.type}\r\n />\r\n );\r\n }\r\n\r\n // Show error state\r\n if (error) {\r\n return (\r\n <ErrorComponent\r\n error={error}\r\n retry={loadViewer}\r\n />\r\n );\r\n }\r\n\r\n // Render the loaded viewer component\r\n return <ViewerComponent {...viewerProps} />;\r\n};","import { DynamicViewerRegistry, ViewerInfo, FileViewerComponent } from './types';\r\n\r\n// Dynamic import functions for each viewer type\r\nconst loadTextViewer = () => import('./components/viewers/TextViewer').then(m => ({ default: m.TextViewer }));\r\nconst loadImageViewer = () => import('./components/viewers/ImageViewer').then(m => ({ default: m.ImageViewer }));\r\nconst loadPDFViewer = () => import('./components/viewers/PDFViewer').then(m => ({ default: m.PDFViewer }));\r\nconst loadVideoViewer = () => import('./components/viewers/VideoViewer').then(m => ({ default: m.VideoViewer }));\r\nconst loadAudioViewer = () => import('./components/viewers/AudioViewer').then(m => ({ default: m.AudioViewer }));\r\nconst loadTIFFViewer = () => import('./components/viewers/TIFFViewer').then(m => ({ default: m.TIFFViewer }));\r\nconst loadDefaultViewer = () => import('./components/viewers/DefaultViewer').then(m => ({ default: m.DefaultViewer }));\r\n\r\n// Registry mapping file extensions to viewer info\r\nexport const dynamicViewerRegistry: Record<string, ViewerInfo> = {\r\n // Text files\r\n 'txt': { type: 'text', loader: loadTextViewer },\r\n 'json': { type: 'text', loader: loadTextViewer },\r\n 'xml': { type: 'text', loader: loadTextViewer },\r\n 'csv': { type: 'text', loader: loadTextViewer },\r\n 'md': { type: 'text', loader: loadTextViewer },\r\n 'js': { type: 'text', loader: loadTextViewer },\r\n 'jsx': { type: 'text', loader: loadTextViewer },\r\n 'ts': { type: 'text', loader: loadTextViewer },\r\n 'tsx': { type: 'text', loader: loadTextViewer },\r\n 'css': { type: 'text', loader: loadTextViewer },\r\n 'scss': { type: 'text', loader: loadTextViewer },\r\n 'html': { type: 'text', loader: loadTextViewer },\r\n 'py': { type: 'text', loader: loadTextViewer },\r\n 'java': { type: 'text', loader: loadTextViewer },\r\n 'cpp': { type: 'text', loader: loadTextViewer },\r\n 'c': { type: 'text', loader: loadTextViewer },\r\n 'php': { type: 'text', loader: loadTextViewer },\r\n 'rb': { type: 'text', loader: loadTextViewer },\r\n 'go': { type: 'text', loader: loadTextViewer },\r\n 'rs': { type: 'text', loader: loadTextViewer },\r\n 'sql': { type: 'text', loader: loadTextViewer },\r\n 'yaml': { type: 'text', loader: loadTextViewer },\r\n 'yml': { type: 'text', loader: loadTextViewer },\r\n\r\n // Images\r\n 'jpg': { type: 'image', loader: loadImageViewer },\r\n 'jpeg': { type: 'image', loader: loadImageViewer },\r\n 'png': { type: 'image', loader: loadImageViewer },\r\n 'gif': { type: 'image', loader: loadImageViewer },\r\n 'svg': { type: 'image', loader: loadImageViewer },\r\n 'webp': { type: 'image', loader: loadImageViewer },\r\n 'bmp': { type: 'image', loader: loadImageViewer },\r\n 'ico': { type: 'image', loader: loadImageViewer },\r\n 'tif': { type: 'tiff', loader: loadTIFFViewer },\r\n 'tiff': { type: 'tiff', loader: loadTIFFViewer },\r\n\r\n // PDF\r\n 'pdf': { type: 'pdf', loader: loadPDFViewer },\r\n\r\n // Videos\r\n 'mp4': { type: 'video', loader: loadVideoViewer },\r\n 'webm': { type: 'video', loader: loadVideoViewer },\r\n 'ogg': { type: 'video', loader: loadVideoViewer },\r\n 'avi': { type: 'video', loader: loadVideoViewer },\r\n 'mov': { type: 'video', loader: loadVideoViewer },\r\n 'wmv': { type: 'video', loader: loadVideoViewer },\r\n 'flv': { type: 'video', loader: loadVideoViewer },\r\n 'mkv': { type: 'video', loader: loadVideoViewer },\r\n\r\n // Audio\r\n 'mp3': { type: 'audio', loader: loadAudioViewer },\r\n 'wav': { type: 'audio', loader: loadAudioViewer },\r\n 'm4a': { type: 'audio', loader: loadAudioViewer },\r\n 'flac': { type: 'audio', loader: loadAudioViewer },\r\n 'aac': { type: 'audio', loader: loadAudioViewer },\r\n 'oga': { type: 'audio', loader: loadAudioViewer },\r\n};\r\n\r\n// Cache to store loaded components\r\nconst componentCache = new Map<string, FileViewerComponent>();\r\n\r\nexport const getViewerInfo = (extension: string): ViewerInfo => {\r\n const ext = extension.toLowerCase();\r\n return dynamicViewerRegistry[ext] || { type: 'default', loader: loadDefaultViewer };\r\n};\r\n\r\nexport const getViewerComponent = async (\r\n extension: string,\r\n customRegistry?: Record<string, ViewerInfo>\r\n): Promise<FileViewerComponent> => {\r\n const ext = extension.toLowerCase();\r\n\r\n // Check cache first\r\n if (componentCache.has(ext)) {\r\n return componentCache.get(ext)!;\r\n }\r\n\r\n // Get viewer info from registry\r\n const registry = { ...dynamicViewerRegistry, ...customRegistry };\r\n const viewerInfo = registry[ext] || { type: 'default', loader: loadDefaultViewer };\r\n\r\n try {\r\n // Dynamically import the component\r\n const { default: Component } = await viewerInfo.loader();\r\n\r\n // Cache the loaded component\r\n componentCache.set(ext, Component);\r\n\r\n return Component;\r\n } catch (error) {\r\n // Fallback to default viewer on error\r\n if (!componentCache.has('default')) {\r\n const { default: DefaultComponent } = await loadDefaultViewer();\r\n componentCache.set('default', DefaultComponent);\r\n }\r\n\r\n return componentCache.get('default')!;\r\n }\r\n};"],"mappings":"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","names":[]}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
type ToolbarActionId = 'download' | 'print' | 'zoomIn' | 'zoomOut' | 'fitToWidth' | 'fitToPage' | 'search' | 'metadata' | 'properties' | 'fullscreen' | 'firstPage' | 'lastPage' | 'nextPage' | 'previousPage' | 'rotateLeft' | 'rotateRight' | string;
|
|
2
|
+
type ToolbarActionsConfig = Partial<Record<ToolbarActionId, {
|
|
3
|
+
/** Hide action entirely (not just disabled) */
|
|
4
|
+
hidden?: boolean;
|
|
5
|
+
/** Disable action (grayed out, still visible) */
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/** Optional: Override the handler or icon */
|
|
8
|
+
onClick?: () => void;
|
|
9
|
+
icon?: React.ReactNode;
|
|
10
|
+
label?: string;
|
|
11
|
+
}>>;
|
|
1
12
|
interface FileViewerProps {
|
|
2
13
|
file?: File;
|
|
3
14
|
url?: string;
|
|
@@ -11,6 +22,7 @@ interface FileViewerProps {
|
|
|
11
22
|
onLoad?: () => void;
|
|
12
23
|
onError?: (error: Error) => void;
|
|
13
24
|
onPasswordRequest?: (fileName?: string) => Promise<string | null>;
|
|
25
|
+
toolbarActions?: ToolbarActionsConfig;
|
|
14
26
|
showPageCount?: boolean;
|
|
15
27
|
showPageNavigation?: boolean;
|
|
16
28
|
showZoomControls?: boolean;
|
|
@@ -52,4 +64,4 @@ interface SearchResult {
|
|
|
52
64
|
index: number;
|
|
53
65
|
}
|
|
54
66
|
|
|
55
|
-
export type { DynamicViewerRegistry as D, FileViewerProps as F, SearchResult as S, ViewerInfo as V, FileViewerComponent as a, ViewerRegistry as b, DynamicViewerImport as c };
|
|
67
|
+
export type { DynamicViewerRegistry as D, FileViewerProps as F, SearchResult as S, ToolbarActionId as T, ViewerInfo as V, FileViewerComponent as a, ViewerRegistry as b, DynamicViewerImport as c, ToolbarActionsConfig as d };
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
type ToolbarActionId = 'download' | 'print' | 'zoomIn' | 'zoomOut' | 'fitToWidth' | 'fitToPage' | 'search' | 'metadata' | 'properties' | 'fullscreen' | 'firstPage' | 'lastPage' | 'nextPage' | 'previousPage' | 'rotateLeft' | 'rotateRight' | string;
|
|
2
|
+
type ToolbarActionsConfig = Partial<Record<ToolbarActionId, {
|
|
3
|
+
/** Hide action entirely (not just disabled) */
|
|
4
|
+
hidden?: boolean;
|
|
5
|
+
/** Disable action (grayed out, still visible) */
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/** Optional: Override the handler or icon */
|
|
8
|
+
onClick?: () => void;
|
|
9
|
+
icon?: React.ReactNode;
|
|
10
|
+
label?: string;
|
|
11
|
+
}>>;
|
|
1
12
|
interface FileViewerProps {
|
|
2
13
|
file?: File;
|
|
3
14
|
url?: string;
|
|
@@ -11,6 +22,7 @@ interface FileViewerProps {
|
|
|
11
22
|
onLoad?: () => void;
|
|
12
23
|
onError?: (error: Error) => void;
|
|
13
24
|
onPasswordRequest?: (fileName?: string) => Promise<string | null>;
|
|
25
|
+
toolbarActions?: ToolbarActionsConfig;
|
|
14
26
|
showPageCount?: boolean;
|
|
15
27
|
showPageNavigation?: boolean;
|
|
16
28
|
showZoomControls?: boolean;
|
|
@@ -52,4 +64,4 @@ interface SearchResult {
|
|
|
52
64
|
index: number;
|
|
53
65
|
}
|
|
54
66
|
|
|
55
|
-
export type { DynamicViewerRegistry as D, FileViewerProps as F, SearchResult as S, ViewerInfo as V, FileViewerComponent as a, ViewerRegistry as b, DynamicViewerImport as c };
|
|
67
|
+
export type { DynamicViewerRegistry as D, FileViewerProps as F, SearchResult as S, ToolbarActionId as T, ViewerInfo as V, FileViewerComponent as a, ViewerRegistry as b, DynamicViewerImport as c, ToolbarActionsConfig as d };
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/viewers/AudioViewer.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport { Box, Card, CardContent, CardHeader, LinearProgress, Typography, IconButton, Tooltip, Stack } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport DescriptionIcon from '@mui/icons-material/Description';\r\nimport { FileViewerProps } from '../../types';\r\nimport { getFileExtension } from '../../utils/fileUtils';\r\nimport FileIcon from '../FileIcon';\r\n\r\nexport const AudioViewer: React.FC<FileViewerProps> = ({\r\n file,\r\n url,\r\n fileName,\r\n className = '',\r\n style = {},\r\n width = '100%',\r\n height = '100%',\r\n onLoad,\r\n onError,\r\n onDownloadClick,\r\n onMetadataClick,\r\n onPropertiesClick,\r\n showMetadata = true,\r\n showProperties = true,\r\n // Extract props that shouldn't be passed to DOM elements\r\n mimeType,\r\n fileSize,\r\n showPageCount,\r\n showPageNavigation,\r\n showZoomControls,\r\n showDownload,\r\n showPrint,\r\n showSearch,\r\n onPrintClick,\r\n customRegistry,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n ...props\r\n}) => {\r\n const audioRef = useRef<HTMLAudioElement | null>(null);\r\n const [objectUrl, setObjectUrl] = useState<string | null>(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n let urlValue: string | null = null;\r\n\r\n if (file) {\r\n setIsLoading(true);\r\n urlValue = URL.createObjectURL(file);\r\n } else if (url) {\r\n urlValue = url;\r\n }\r\n\r\n setObjectUrl(urlValue);\r\n setError(null);\r\n\r\n return () => {\r\n if (urlValue && file) {\r\n URL.revokeObjectURL(urlValue);\r\n }\r\n };\r\n }, [file, url]);\r\n\r\n useEffect(() => {\r\n if (!audioRef.current) {\r\n return;\r\n }\r\n\r\n const handleLoadedMetadata = () => {\r\n setIsLoading(false);\r\n onLoad?.();\r\n };\r\n\r\n const handleError = () => {\r\n const message = 'Failed to load audio resource';\r\n setIsLoading(false);\r\n setError(message);\r\n onError?.(new Error(message));\r\n };\r\n\r\n const element = audioRef.current;\r\n element.addEventListener('loadedmetadata', handleLoadedMetadata);\r\n element.addEventListener('error', handleError);\r\n\r\n return () => {\r\n element.removeEventListener('loadedmetadata', handleLoadedMetadata);\r\n element.removeEventListener('error', handleError);\r\n };\r\n }, [onLoad, onError, objectUrl]);\r\n\r\n const resolvedFileName = useMemo(() => fileName || file?.name || (url ? url.split('/').pop() : 'audio'), [fileName, file, url]);\r\n\r\n const fileExtension = useMemo(\r\n () => getFileExtension(resolvedFileName || ''),\r\n [resolvedFileName]\r\n );\r\n\r\n return (\r\n <Box\r\n className={`audio-viewer ${className}`}\r\n sx={{ width, height, ...style }}\r\n {...props}\r\n >\r\n <Card sx={{ height: '100%', display: 'flex', flexDirection: 'column' }} elevation={1}>\r\n <CardHeader\r\n avatar={<FileIcon ext={fileExtension} size={32} />}\r\n title={\r\n <Typography variant=\"subtitle1\" fontWeight={500}>\r\n {resolvedFileName}\r\n </Typography>\r\n }\r\n action={\r\n <Stack direction=\"row\" spacing={1}>\r\n <Tooltip title=\"Download\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onDownloadClick}\r\n aria-label=\"Download audio\"\r\n >\r\n <DownloadIcon />\r\n </IconButton>\r\n </Tooltip>\r\n {showMetadata && (\r\n <Tooltip title=\"Document Metadata\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onMetadataClick}\r\n aria-label=\"View document metadata\"\r\n >\r\n <InfoIcon />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n {showProperties && (\r\n <Tooltip title=\"Document Properties\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPropertiesClick}\r\n aria-label=\"View document properties\"\r\n >\r\n <DescriptionIcon />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n </Stack>\r\n }\r\n sx={{ pb: 1.5 }}\r\n />\r\n {isLoading && (\r\n <LinearProgress sx={{ mx: 3, mb: 2 }} />\r\n )}\r\n {error && (\r\n <Typography color=\"error\" variant=\"body2\" sx={{ px: 3, pb: 1 }}>\r\n {error}\r\n </Typography>\r\n )}\r\n <CardContent sx={{ flexGrow: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n {objectUrl ? (\r\n <audio\r\n ref={audioRef}\r\n controls\r\n controlsList=\"nodownload\"\r\n style={{ width: '100%' }}\r\n src={objectUrl}\r\n />\r\n ) : (\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n No audio source provided.\r\n </Typography>\r\n )}\r\n </CardContent>\r\n </Card>\r\n </Box>\r\n );\r\n};\r\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/viewers/DefaultViewer.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\r\nimport { Box, Card, CardContent, CardHeader, Typography, IconButton, Tooltip, Stack } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport DescriptionIcon from '@mui/icons-material/Description';\r\nimport { FileViewerProps } from '../../types';\r\nimport { getFileExtension } from '../../utils/fileUtils';\r\nimport FileIcon from '../FileIcon';\r\n\r\nexport const DefaultViewer: React.FC<FileViewerProps> = ({\r\n file,\r\n url,\r\n fileName,\r\n className = '',\r\n style = {},\r\n width = '100%',\r\n height = '100%',\r\n onLoad,\r\n onError,\r\n // Extract props that shouldn't be passed to DOM elements\r\n mimeType,\r\n fileSize,\r\n showPageCount,\r\n showPageNavigation,\r\n showZoomControls,\r\n showDownload,\r\n showPrint,\r\n showSearch,\r\n showMetadata,\r\n showProperties,\r\n onMetadataClick,\r\n onPropertiesClick,\r\n onPrintClick,\r\n onDownloadClick,\r\n customRegistry,\r\n ...props\r\n}) => {\r\n const resolvedFileName = useMemo(\r\n () => fileName || file?.name || (url ? url.split('/').pop() : 'unknown-file'),\r\n [fileName, file, url]\r\n );\r\n\r\n const fileExtension = useMemo(\r\n () => getFileExtension(resolvedFileName || ''),\r\n [resolvedFileName]\r\n );\r\n\r\n return (\r\n <Box\r\n className={`default-viewer ${className}`}\r\n sx={{ width, height, ...style }}\r\n {...props}\r\n >\r\n <Card sx={{ height: '100%', display: 'flex', flexDirection: 'column' }} elevation={1}>\r\n <CardHeader\r\n avatar={<FileIcon ext={fileExtension} size={32} />}\r\n title={\r\n <Typography variant=\"subtitle1\" fontWeight={500}>\r\n {resolvedFileName}\r\n </Typography>\r\n }\r\n action={\r\n <Stack direction=\"row\" spacing={1}>\r\n <Tooltip title=\"Download\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onDownloadClick}\r\n aria-label=\"Download file\"\r\n >\r\n <DownloadIcon />\r\n </IconButton>\r\n </Tooltip>\r\n {showMetadata && (\r\n <Tooltip title=\"Document Metadata\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onMetadataClick}\r\n aria-label=\"View document metadata\"\r\n >\r\n <InfoIcon />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n {showProperties && (\r\n <Tooltip title=\"Document Properties\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPropertiesClick}\r\n aria-label=\"View document properties\"\r\n >\r\n <DescriptionIcon />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n </Stack>\r\n }\r\n sx={{ pb: 1 }}\r\n />\r\n <CardContent sx={{\r\n flexGrow: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexDirection: 'column',\r\n textAlign: 'center',\r\n color: '#666'\r\n }}>\r\n <Typography variant=\"h6\" gutterBottom color=\"text.primary\">\r\n File Preview Not Available\r\n </Typography>\r\n <Box sx={{ mt: 2 }}>\r\n <Typography variant=\"body2\"><strong>File:</strong> {resolvedFileName}</Typography>\r\n {mimeType && <Typography variant=\"body2\"><strong>Type:</strong> {mimeType}</Typography>}\r\n {fileSize && <Typography variant=\"body2\"><strong>Size:</strong> {Math.round(fileSize / 1024)} KB</Typography>}\r\n <Typography variant=\"body2\" sx={{ mt: 2 }}>\r\n This file type is not supported for preview.\r\n </Typography>\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n You can download the file using the button above.\r\n </Typography>\r\n </Box>\r\n </CardContent>\r\n </Card>\r\n </Box>\r\n );\r\n};\r\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-77UARJVQ.js"],"names":[],"mappings":"AAAA,yrBAAY;AACZ;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;AACA,8BAA+B;AAC/B,yCAA0G;AAC1G,4GAAuD;AACvD,4FAA+C;AAC/C,wHAA6D;AAC7D,+CAA6C;AAC7C,IAAI,cAAc,EAAE,CAAC;AACrB,EAAE,IAAI;AACN,EAAE,GAAG;AACL,EAAE,QAAQ;AACV,EAAE,UAAU,EAAE,EAAE;AAChB,EAAE,MAAM,EAAE,CAAC,CAAC;AACZ,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,OAAO,EAAE,MAAM;AACjB,EAAE,MAAM;AACR,EAAE,OAAO;AACT;AACA,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,aAAa;AACf,EAAE,kBAAkB;AACpB,EAAE,gBAAgB;AAClB,EAAE,YAAY;AACd,EAAE,SAAS;AACX,EAAE,UAAU;AACZ,EAAE,YAAY;AACd,EAAE,cAAc;AAChB,EAAE,eAAe;AACjB,EAAE,iBAAiB;AACnB,EAAE,YAAY;AACd,EAAE,eAAe;AACjB,EAAE,cAAc;AAChB,EAAE,GAAG;AACL,CAAC,EAAE,GAAG;AACN,EAAE,MAAM,iBAAiB,EAAE,4BAAO;AAClC,IAAI,CAAC,EAAE,GAAG,SAAS,mBAAG,IAAI,2BAAE,OAAK,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC;AACjF,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG;AACxB,EAAE,CAAC;AACH,EAAE,MAAM,cAAc,EAAE,4BAAO;AAC/B,IAAI,CAAC,EAAE,GAAG,+CAAgB,iBAAkB,GAAG,EAAE,CAAC;AAClD,IAAI,CAAC,gBAAgB;AACrB,EAAE,CAAC;AACH,EAAE,uBAAuB,6BAAG;AAC5B,IAAI,aAAG;AACP,IAAI;AACJ,MAAM,SAAS,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,wBAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,8BAAA;AACA,gBAAA;AACA,gBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,gBAAA;AACA,cAAA;AACA,cAAA;AACA,gBAAA;AACA,gBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,gBAAA;AACA,cAAA;AACA,cAAA;AACA,gBAAA;AACA,gBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,gBAAA;AACA,cAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,wBAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,0BAAA;AACA,0BAAA;AACA,4BAAA;AACA,8BAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,YAAA;AACA,8BAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,YAAA;AACA,8BAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,4BAAA;AACA,4BAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA","file":"D:\\Projects\\DMS-File-Viewers\\packages\\lib\\dist\\chunk-77UARJVQ.js","sourcesContent":[null]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/viewers/TextViewer.tsx"],"sourcesContent":["import React, {\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useState\r\n} from 'react';\r\nimport {\r\n Box,\r\n Button,\r\n Card,\r\n CardContent,\r\n CardHeader,\r\n Divider,\r\n LinearProgress,\r\n Stack,\r\n Typography,\r\n IconButton,\r\n Tooltip\r\n} from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport DescriptionIcon from '@mui/icons-material/Description';\r\nimport { FileViewerProps } from '../../types';\r\nimport { getFileExtension } from '../../utils/fileUtils';\r\nimport FileIcon from '../FileIcon';\r\n\r\nconst LINE_HEIGHT = 24;\r\n\r\nexport const TextViewer: React.FC<FileViewerProps> = ({\r\n file,\r\n url,\r\n fileName,\r\n className = '',\r\n style = {},\r\n width = '100%',\r\n height = '100%',\r\n onLoad,\r\n onError,\r\n onDownloadClick,\r\n onMetadataClick,\r\n onPropertiesClick,\r\n showMetadata = true,\r\n showProperties = true,\r\n // Extract props that shouldn't be passed to DOM elements\r\n mimeType,\r\n fileSize,\r\n showPageCount,\r\n showPageNavigation,\r\n showZoomControls,\r\n showDownload,\r\n showPrint,\r\n showSearch,\r\n onPrintClick,\r\n customRegistry,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n ...props\r\n}) => {\r\n const [content, setContent] = useState<string>('');\r\n const [lines, setLines] = useState<string[]>([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n const resolvedFileName = useMemo(\r\n () => fileName || file?.name || (url ? url.split('/').pop() : 'text-document'),\r\n [fileName, file, url]\r\n );\r\n\r\n const fileExtension = useMemo(\r\n () => getFileExtension(resolvedFileName || ''),\r\n [resolvedFileName]\r\n );\r\n\r\n const loadText = useCallback(async () => {\r\n if (!file && !url) {\r\n setContent('');\r\n setLines([]);\r\n setError(null);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n setError(null);\r\n\r\n try {\r\n let textContent: string;\r\n if (file) {\r\n textContent = await file.text();\r\n } else {\r\n const response = await fetch(url!);\r\n if (!response.ok) {\r\n throw new Error(`Failed to fetch text (${response.status})`);\r\n }\r\n textContent = await response.text();\r\n }\r\n\r\n setContent(textContent);\r\n setLines(textContent.split(/\\r?\\n/));\r\n onLoad?.();\r\n } catch (err) {\r\n const message = err instanceof Error ? err.message : 'Unable to load text file';\r\n setError(message);\r\n setContent('');\r\n setLines([]);\r\n onError?.(new Error(message));\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n }, [file, url, onLoad, onError]);\r\n\r\n useEffect(() => {\r\n void loadText();\r\n }, [loadText]);\r\n\r\n return (\r\n <Box\r\n className={`text-viewer ${className}`}\r\n sx={{ width, height, ...style }}\r\n {...props}\r\n >\r\n <Card sx={{ height: '100%', display: 'flex', flexDirection: 'column' }} elevation={1}>\r\n <CardHeader\r\n avatar={<FileIcon ext={fileExtension} size={32} />}\r\n title={\r\n <Typography variant=\"subtitle1\" fontWeight={500}>\r\n {resolvedFileName}\r\n </Typography>\r\n }\r\n action={\r\n <Stack direction=\"row\" spacing={1}>\r\n <Tooltip title=\"Download\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onDownloadClick}\r\n aria-label=\"Download text file\"\r\n >\r\n <DownloadIcon />\r\n </IconButton>\r\n </Tooltip>\r\n {showMetadata && (\r\n <Tooltip title=\"Document Metadata\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onMetadataClick}\r\n aria-label=\"View document metadata\"\r\n >\r\n <InfoIcon />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n {showProperties && (\r\n <Tooltip title=\"Document Properties\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPropertiesClick}\r\n aria-label=\"View document properties\"\r\n >\r\n <DescriptionIcon />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n </Stack>\r\n }\r\n sx={{ pb: 1 }}\r\n />\r\n {isLoading && <LinearProgress sx={{ mx: 3, mb: 1 }} />}\r\n {error && (\r\n <Typography color=\"error\" variant=\"body2\" sx={{ px: 3, pb: 1 }}>\r\n {error}\r\n </Typography>\r\n )}\r\n <Divider />\r\n <CardContent sx={{ flexGrow: 1, minHeight: 0, p: 0, overflow: 'auto' }}>\r\n {content ? (\r\n <Box sx={{ \r\n fontFamily: 'monospace', \r\n fontSize: '0.85rem',\r\n p: 2,\r\n whiteSpace: 'pre'\r\n }}>\r\n {lines.map((line, index) => (\r\n <Box\r\n key={index}\r\n sx={{\r\n minHeight: LINE_HEIGHT,\r\n lineHeight: `${LINE_HEIGHT}px`\r\n }}\r\n >\r\n {line || '\\u00A0'}\r\n </Box>\r\n ))}\r\n </Box>\r\n ) : (\r\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'center', p: 4, minHeight: 200 }}>\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n No text content available.\r\n </Typography>\r\n </Box>\r\n )}\r\n </CardContent>\r\n </Card>\r\n </Box>\r\n );\r\n};"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/viewers/VideoViewer.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport { Box, Card, CardContent, CardHeader, LinearProgress, Typography, Stack, IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport DescriptionIcon from '@mui/icons-material/Description';\r\nimport { FileViewerProps } from '../../types';\r\nimport { getFileExtension } from '../../utils/fileUtils';\r\nimport FileIcon from '../FileIcon';\r\n\r\nexport const VideoViewer: React.FC<FileViewerProps> = ({\r\n file,\r\n url,\r\n fileName,\r\n className = '',\r\n style = {},\r\n width = '100%',\r\n height = '100%',\r\n onLoad,\r\n onError,\r\n onDownloadClick,\r\n onMetadataClick,\r\n onPropertiesClick,\r\n showMetadata = true,\r\n showProperties = true,\r\n // Extract props that shouldn't be passed to DOM elements\r\n mimeType,\r\n fileSize,\r\n showPageCount,\r\n showPageNavigation,\r\n showZoomControls,\r\n showDownload,\r\n showPrint,\r\n showSearch,\r\n onPrintClick,\r\n customRegistry,\r\n initialSearchText,\r\n initialSearchPages,\r\n autoOpenSearch,\r\n autoExecuteSearch,\r\n onSearchComplete,\r\n ...props\r\n}) => {\r\n const videoRef = useRef<HTMLVideoElement | null>(null);\r\n const [videoSource, setVideoSource] = useState<string | null>(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState<string | null>(null);\r\n const [videoDimensions, setVideoDimensions] = useState<{ width: number; height: number } | null>(null);\r\n\r\n useEffect(() => {\r\n let objectUrl: string | null = null;\r\n\r\n if (file) {\r\n objectUrl = URL.createObjectURL(file);\r\n setVideoSource(objectUrl);\r\n setIsLoading(true);\r\n } else if (url) {\r\n setVideoSource(url);\r\n } else {\r\n setVideoSource(null);\r\n }\r\n\r\n setError(null);\r\n\r\n return () => {\r\n if (objectUrl) {\r\n URL.revokeObjectURL(objectUrl);\r\n }\r\n };\r\n }, [file, url]);\r\n\r\n useEffect(() => {\r\n const element = videoRef.current;\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const handleLoaded = () => {\r\n setIsLoading(false);\r\n // Capture video dimensions\r\n setVideoDimensions({\r\n width: element.videoWidth,\r\n height: element.videoHeight\r\n });\r\n onLoad?.();\r\n };\r\n\r\n const handleError = () => {\r\n const message = 'Failed to load video resource';\r\n setIsLoading(false);\r\n setError(message);\r\n onError?.(new Error(message));\r\n };\r\n\r\n element.addEventListener('loadedmetadata', handleLoaded);\r\n element.addEventListener('error', handleError);\r\n\r\n return () => {\r\n element.removeEventListener('loadedmetadata', handleLoaded);\r\n element.removeEventListener('error', handleError);\r\n };\r\n }, [onLoad, onError, videoSource]);\r\n\r\n const resolvedFileName = useMemo(\r\n () => fileName || file?.name || (url ? url.split('/').pop() : 'video'),\r\n [fileName, file, url]\r\n );\r\n\r\n const fileExtension = useMemo(\r\n () => getFileExtension(resolvedFileName || ''),\r\n [resolvedFileName]\r\n );\r\n\r\n return (\r\n <Box\r\n className={`video-viewer ${className}`}\r\n sx={{ width, height, ...style }}\r\n {...props}\r\n >\r\n <Card sx={{ height: '100%', display: 'flex', flexDirection: 'column' }} elevation={1}>\r\n <CardHeader\r\n avatar={<FileIcon ext={fileExtension} size={32} />}\r\n title={\r\n <Typography variant=\"subtitle1\" fontWeight={500}>\r\n {resolvedFileName}\r\n </Typography>\r\n }\r\n action={\r\n <Stack direction=\"row\" spacing={1}>\r\n <Tooltip title=\"Download\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onDownloadClick}\r\n aria-label=\"Download video\"\r\n >\r\n <DownloadIcon />\r\n </IconButton>\r\n </Tooltip>\r\n {showMetadata && (\r\n <Tooltip title=\"Document Metadata\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onMetadataClick}\r\n aria-label=\"View document metadata\"\r\n >\r\n <InfoIcon />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n {showProperties && (\r\n <Tooltip title=\"Document Properties\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPropertiesClick}\r\n aria-label=\"View document properties\"\r\n >\r\n <DescriptionIcon />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n </Stack>\r\n }\r\n sx={{ pb: 1.5 }}\r\n />\r\n {isLoading && <LinearProgress sx={{ mx: 3, mb: 2 }} />}\r\n {error && (\r\n <Typography color=\"error\" variant=\"body2\" sx={{ px: 3, pb: 1 }}>\r\n {error}\r\n </Typography>\r\n )}\r\n <CardContent sx={{ \r\n flexGrow: 1, \r\n display: 'flex', \r\n alignItems: 'center', \r\n justifyContent: 'center', \r\n p: 2,\r\n overflow: 'hidden'\r\n }}>\r\n {videoSource ? (\r\n <Box\r\n sx={{\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: '#000',\r\n borderRadius: 2\r\n }}\r\n >\r\n <video\r\n ref={videoRef}\r\n controls\r\n controlsList=\"nodownload\"\r\n style={{\r\n maxWidth: '100%',\r\n maxHeight: '100%',\r\n width: 'auto',\r\n height: 'auto',\r\n objectFit: 'contain'\r\n }}\r\n src={videoSource}\r\n />\r\n </Box>\r\n ) : (\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n No video source provided.\r\n </Typography>\r\n )}\r\n </CardContent>\r\n </Card>\r\n </Box>\r\n );\r\n};"],"mappings":"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","names":[]}
|