@cannymindstech/file-viewers 0.27.11 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/package.json +2 -2
  2. package/dist/chunk-2BLHLWNN.js +0 -299
  3. package/dist/chunk-2BLHLWNN.js.map +0 -1
  4. package/dist/chunk-6BRYDA3B.js +0 -329
  5. package/dist/chunk-6BRYDA3B.js.map +0 -1
  6. package/dist/chunk-7JPF5AYR.mjs +0 -488
  7. package/dist/chunk-7JPF5AYR.mjs.map +0 -1
  8. package/dist/chunk-7P6WEBHN.js +0 -2299
  9. package/dist/chunk-7P6WEBHN.js.map +0 -1
  10. package/dist/chunk-7PMZ4GN5.mjs +0 -290
  11. package/dist/chunk-7PMZ4GN5.mjs.map +0 -1
  12. package/dist/chunk-B5NNB4KD.mjs +0 -268
  13. package/dist/chunk-B5NNB4KD.mjs.map +0 -1
  14. package/dist/chunk-CIWCHSAA.js +0 -309
  15. package/dist/chunk-CIWCHSAA.js.map +0 -1
  16. package/dist/chunk-D7SDEVDM.js +0 -268
  17. package/dist/chunk-D7SDEVDM.js.map +0 -1
  18. package/dist/chunk-ECZ6IBOS.js +0 -424
  19. package/dist/chunk-ECZ6IBOS.js.map +0 -1
  20. package/dist/chunk-EI3EP65I.mjs +0 -868
  21. package/dist/chunk-EI3EP65I.mjs.map +0 -1
  22. package/dist/chunk-EKNP342T.mjs +0 -299
  23. package/dist/chunk-EKNP342T.mjs.map +0 -1
  24. package/dist/chunk-EM63H4SA.js +0 -290
  25. package/dist/chunk-EM63H4SA.js.map +0 -1
  26. package/dist/chunk-IJMNPAXX.mjs +0 -309
  27. package/dist/chunk-IJMNPAXX.mjs.map +0 -1
  28. package/dist/chunk-KJNOBIUZ.mjs +0 -36
  29. package/dist/chunk-KJNOBIUZ.mjs.map +0 -1
  30. package/dist/chunk-KQCU7XW2.mjs +0 -424
  31. package/dist/chunk-KQCU7XW2.mjs.map +0 -1
  32. package/dist/chunk-MPTCXAXO.js +0 -868
  33. package/dist/chunk-MPTCXAXO.js.map +0 -1
  34. package/dist/chunk-OPJOCUSL.js +0 -36
  35. package/dist/chunk-OPJOCUSL.js.map +0 -1
  36. package/dist/chunk-PZGUVU6N.mjs +0 -2299
  37. package/dist/chunk-PZGUVU6N.mjs.map +0 -1
  38. package/dist/chunk-QV63FULE.js +0 -488
  39. package/dist/chunk-QV63FULE.js.map +0 -1
  40. package/dist/chunk-XJQ5J2UF.mjs +0 -329
  41. package/dist/chunk-XJQ5J2UF.mjs.map +0 -1
  42. package/dist/components/viewers/AudioViewer.d.mts +0 -6
  43. package/dist/components/viewers/AudioViewer.d.ts +0 -6
  44. package/dist/components/viewers/AudioViewer.js +0 -10
  45. package/dist/components/viewers/AudioViewer.js.map +0 -1
  46. package/dist/components/viewers/AudioViewer.mjs +0 -10
  47. package/dist/components/viewers/AudioViewer.mjs.map +0 -1
  48. package/dist/components/viewers/DefaultViewer.d.mts +0 -6
  49. package/dist/components/viewers/DefaultViewer.d.ts +0 -6
  50. package/dist/components/viewers/DefaultViewer.js +0 -10
  51. package/dist/components/viewers/DefaultViewer.js.map +0 -1
  52. package/dist/components/viewers/DefaultViewer.mjs +0 -10
  53. package/dist/components/viewers/DefaultViewer.mjs.map +0 -1
  54. package/dist/components/viewers/ImageViewer.d.mts +0 -6
  55. package/dist/components/viewers/ImageViewer.d.ts +0 -6
  56. package/dist/components/viewers/ImageViewer.js +0 -10
  57. package/dist/components/viewers/ImageViewer.js.map +0 -1
  58. package/dist/components/viewers/ImageViewer.mjs +0 -10
  59. package/dist/components/viewers/ImageViewer.mjs.map +0 -1
  60. package/dist/components/viewers/PDFViewer.d.mts +0 -51
  61. package/dist/components/viewers/PDFViewer.d.ts +0 -51
  62. package/dist/components/viewers/PDFViewer.js +0 -11
  63. package/dist/components/viewers/PDFViewer.js.map +0 -1
  64. package/dist/components/viewers/PDFViewer.mjs +0 -11
  65. package/dist/components/viewers/PDFViewer.mjs.map +0 -1
  66. package/dist/components/viewers/TIFFViewer.d.mts +0 -6
  67. package/dist/components/viewers/TIFFViewer.d.ts +0 -6
  68. package/dist/components/viewers/TIFFViewer.js +0 -10
  69. package/dist/components/viewers/TIFFViewer.js.map +0 -1
  70. package/dist/components/viewers/TIFFViewer.mjs +0 -10
  71. package/dist/components/viewers/TIFFViewer.mjs.map +0 -1
  72. package/dist/components/viewers/TextViewer.d.mts +0 -6
  73. package/dist/components/viewers/TextViewer.d.ts +0 -6
  74. package/dist/components/viewers/TextViewer.js +0 -10
  75. package/dist/components/viewers/TextViewer.js.map +0 -1
  76. package/dist/components/viewers/TextViewer.mjs +0 -10
  77. package/dist/components/viewers/TextViewer.mjs.map +0 -1
  78. package/dist/components/viewers/VideoViewer.d.mts +0 -6
  79. package/dist/components/viewers/VideoViewer.d.ts +0 -6
  80. package/dist/components/viewers/VideoViewer.js +0 -10
  81. package/dist/components/viewers/VideoViewer.js.map +0 -1
  82. package/dist/components/viewers/VideoViewer.mjs +0 -10
  83. package/dist/components/viewers/VideoViewer.mjs.map +0 -1
  84. package/dist/index.d.mts +0 -75
  85. package/dist/index.d.ts +0 -75
  86. package/dist/index.js +0 -305
  87. package/dist/index.js.map +0 -1
  88. package/dist/index.mjs +0 -305
  89. package/dist/index.mjs.map +0 -1
  90. package/dist/types-BYTxtKEc.d.mts +0 -100
  91. package/dist/types-BYTxtKEc.d.ts +0 -100
@@ -1,290 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } 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
- // src/utils/toolbarUtils.ts
4
- function mergeToolbarConfig(props) {
5
- const { toolbarActions = {} } = props;
6
- const legacyVisibility = {
7
- download: props.showDownload,
8
- print: props.showPrint,
9
- search: props.showSearch,
10
- metadata: props.showMetadata,
11
- properties: props.showProperties,
12
- tags: props.showTags,
13
- history: props.showHistory,
14
- pageNavigation: props.showPageNavigation,
15
- zoomControls: props.showZoomControls,
16
- pageCount: props.showPageCount,
17
- rotation: props.showRotation,
18
- rotateLeft: props.showRotation,
19
- rotateRight: props.showRotation
20
- };
21
- const legacyHandlers = {
22
- download: props.onDownloadClick,
23
- print: props.onPrintClick,
24
- metadata: props.onMetadataClick,
25
- properties: props.onPropertiesClick,
26
- tags: props.onTagsClick,
27
- history: props.onHistoryClick
28
- };
29
- return {
30
- isHidden: (actionId) => {
31
- if (_optionalChain([toolbarActions, 'access', _ => _[actionId], 'optionalAccess', _2 => _2.hidden]) !== void 0) {
32
- return toolbarActions[actionId].hidden;
33
- }
34
- if (_optionalChain([toolbarActions, 'access', _3 => _3[actionId], 'optionalAccess', _4 => _4.disabled]) !== void 0) {
35
- return false;
36
- }
37
- if (legacyVisibility[actionId] !== void 0) {
38
- return !legacyVisibility[actionId];
39
- }
40
- return false;
41
- },
42
- isDisabled: (actionId) => {
43
- if (_optionalChain([toolbarActions, 'access', _5 => _5[actionId], 'optionalAccess', _6 => _6.disabled]) !== void 0) {
44
- return toolbarActions[actionId].disabled;
45
- }
46
- return false;
47
- },
48
- getHandler: (actionId, defaultHandler) => {
49
- return _nullishCoalesce(_nullishCoalesce(_optionalChain([toolbarActions, 'access', _7 => _7[actionId], 'optionalAccess', _8 => _8.onClick]), () => ( legacyHandlers[actionId])), () => ( defaultHandler));
50
- },
51
- getIcon: (actionId) => {
52
- return _optionalChain([toolbarActions, 'access', _9 => _9[actionId], 'optionalAccess', _10 => _10.icon]);
53
- },
54
- getLabel: (actionId) => {
55
- return _optionalChain([toolbarActions, 'access', _11 => _11[actionId], 'optionalAccess', _12 => _12.label]);
56
- }
57
- };
58
- }
59
-
60
- // src/components/FileIcon.tsx
61
- var _jsxruntime = require('react/jsx-runtime');
62
- var FileIcon = ({ ext, size = 48, sx = {} }) => {
63
- const extension = _optionalChain([ext, 'optionalAccess', _13 => _13.toLowerCase, 'call', _14 => _14(), 'access', _15 => _15.replace, 'call', _16 => _16(/^\./, "")]) || "";
64
- const getIconConfig = (extension2) => {
65
- switch (extension2) {
66
- case "pdf":
67
- return { color: "#d32f2f", bgColor: "#ffebee", label: "PDF" };
68
- case "doc":
69
- case "docx":
70
- return { color: "#1976d2", bgColor: "#e3f2fd", label: extension2.toUpperCase() };
71
- case "xls":
72
- case "xlsx":
73
- return { color: "#388e3c", bgColor: "#e8f5e8", label: extension2.toUpperCase() };
74
- case "ppt":
75
- case "pptx":
76
- return { color: "#f57c00", bgColor: "#fff3e0", label: extension2.toUpperCase() };
77
- case "jpg":
78
- case "jpeg":
79
- case "png":
80
- case "gif":
81
- case "svg":
82
- case "webp":
83
- case "bmp":
84
- case "tiff":
85
- case "tif":
86
- return { color: "#7b1fa2", bgColor: "#f3e5f5", label: extension2.toUpperCase() };
87
- case "mp4":
88
- case "avi":
89
- case "mov":
90
- case "wmv":
91
- case "webm":
92
- case "mkv":
93
- return { color: "#c2185b", bgColor: "#fce4ec", label: extension2.toUpperCase() };
94
- case "mp3":
95
- case "wav":
96
- case "flac":
97
- case "aac":
98
- case "ogg":
99
- case "m4a":
100
- return { color: "#303f9f", bgColor: "#e8eaf6", label: extension2.toUpperCase() };
101
- case "zip":
102
- case "rar":
103
- case "7z":
104
- case "tar":
105
- case "gz":
106
- return { color: "#f9a825", bgColor: "#fffde7", label: extension2.toUpperCase() };
107
- case "txt":
108
- case "md":
109
- case "csv":
110
- return { color: "#424242", bgColor: "#f5f5f5", label: extension2.toUpperCase() };
111
- case "js":
112
- case "jsx":
113
- case "ts":
114
- case "tsx":
115
- case "html":
116
- case "css":
117
- case "json":
118
- case "xml":
119
- case "py":
120
- case "java":
121
- case "cpp":
122
- case "c":
123
- return { color: "#424242", bgColor: "#f5f5f5", label: extension2.toUpperCase() };
124
- default:
125
- return { color: "#757575", bgColor: "#fafafa", label: extension2 ? extension2.toUpperCase() : "FILE" };
126
- }
127
- };
128
- const iconConfig = getIconConfig(extension);
129
- const getSVGIcon = (ext2) => {
130
- const iconSize = size * 0.6;
131
- switch (ext2) {
132
- case "pdf":
133
- case "doc":
134
- case "docx":
135
- case "ppt":
136
- case "pptx":
137
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", children: [
138
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
139
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polyline", { points: "14,2 14,8 20,8", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
140
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "16", y1: "13", x2: "8", y2: "13", stroke: iconConfig.color, strokeWidth: "2" }),
141
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "16", y1: "17", x2: "8", y2: "17", stroke: iconConfig.color, strokeWidth: "2" }),
142
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polyline", { points: "10,9 9,9 8,9", stroke: iconConfig.color, strokeWidth: "2" })
143
- ] });
144
- case "xls":
145
- case "xlsx":
146
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", children: [
147
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
148
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polyline", { points: "14,2 14,8 20,8", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
149
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "8", y1: "13", x2: "16", y2: "13", stroke: iconConfig.color, strokeWidth: "2" }),
150
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "8", y1: "17", x2: "16", y2: "17", stroke: iconConfig.color, strokeWidth: "2" }),
151
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "12", y1: "9", x2: "12", y2: "21", stroke: iconConfig.color, strokeWidth: "2" })
152
- ] });
153
- case "jpg":
154
- case "jpeg":
155
- case "png":
156
- case "gif":
157
- case "svg":
158
- case "webp":
159
- case "bmp":
160
- case "tiff":
161
- case "tif":
162
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", children: [
163
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", ry: "2", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
164
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "circle", { cx: "8.5", cy: "8.5", r: "1.5", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
165
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polyline", { points: "21,15 16,10 5,21", stroke: iconConfig.color, strokeWidth: "2", fill: "none" })
166
- ] });
167
- case "mp4":
168
- case "avi":
169
- case "mov":
170
- case "wmv":
171
- case "webm":
172
- case "mkv":
173
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", children: [
174
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polygon", { points: "23 12 8 2 8 22 23 12", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
175
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "rect", { x: "1", y: "5", width: "6", height: "14", rx: "1", stroke: iconConfig.color, strokeWidth: "2", fill: "none" })
176
- ] });
177
- case "mp3":
178
- case "wav":
179
- case "flac":
180
- case "aac":
181
- case "ogg":
182
- case "m4a":
183
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", children: [
184
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { d: "M9 18V5l12-2v13", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
185
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "circle", { cx: "6", cy: "18", r: "3", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
186
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "circle", { cx: "18", cy: "16", r: "3", stroke: iconConfig.color, strokeWidth: "2", fill: "none" })
187
- ] });
188
- case "zip":
189
- case "rar":
190
- case "7z":
191
- case "tar":
192
- case "gz":
193
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", children: [
194
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "rect", { x: "3", y: "11", width: "18", height: "10", rx: "2", ry: "2", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
195
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "circle", { cx: "12", cy: "16", r: "1", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
196
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { d: "M7 11V7a5 5 0 0 1 10 0v4", stroke: iconConfig.color, strokeWidth: "2", fill: "none" })
197
- ] });
198
- case "txt":
199
- case "md":
200
- case "csv":
201
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", children: [
202
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
203
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polyline", { points: "14,2 14,8 20,8", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
204
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "16", y1: "13", x2: "8", y2: "13", stroke: iconConfig.color, strokeWidth: "2" }),
205
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "16", y1: "17", x2: "8", y2: "17", stroke: iconConfig.color, strokeWidth: "2" })
206
- ] });
207
- case "js":
208
- case "jsx":
209
- case "ts":
210
- case "tsx":
211
- case "html":
212
- case "css":
213
- case "json":
214
- case "xml":
215
- case "py":
216
- case "java":
217
- case "cpp":
218
- case "c":
219
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", children: [
220
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polyline", { points: "16 18 22 12 16 6", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
221
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polyline", { points: "8 6 2 12 8 18", stroke: iconConfig.color, strokeWidth: "2", fill: "none" })
222
- ] });
223
- default:
224
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: iconSize, height: iconSize, viewBox: "0 0 24 24", fill: "none", children: [
225
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z", stroke: iconConfig.color, strokeWidth: "2", fill: "none" }),
226
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polyline", { points: "14,2 14,8 20,8", stroke: iconConfig.color, strokeWidth: "2", fill: "none" })
227
- ] });
228
- }
229
- };
230
- const containerStyle = {
231
- position: "relative",
232
- display: "inline-flex",
233
- alignItems: "center",
234
- justifyContent: "center",
235
- ...sx
236
- };
237
- const iconBoxStyle = {
238
- position: "relative",
239
- width: size,
240
- height: size,
241
- backgroundColor: iconConfig.bgColor,
242
- borderRadius: "8px",
243
- border: "1px solid rgba(0, 0, 0, 0.12)",
244
- display: "flex",
245
- alignItems: "center",
246
- justifyContent: "center",
247
- transition: "all 0.2s ease-in-out",
248
- cursor: "default"
249
- };
250
- const labelStyle = {
251
- position: "absolute",
252
- bottom: "-4px",
253
- right: "-4px",
254
- padding: "2px 4px",
255
- backgroundColor: "#ffffff",
256
- border: "1px solid rgba(0, 0, 0, 0.12)",
257
- borderRadius: "4px",
258
- boxShadow: "0px 2px 4px rgba(0, 0, 0, 0.1)",
259
- fontSize: "10px",
260
- fontWeight: 600,
261
- color: iconConfig.color,
262
- lineHeight: 1,
263
- fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif'
264
- };
265
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
266
- "div",
267
- {
268
- style: iconBoxStyle,
269
- onMouseEnter: (e) => {
270
- e.currentTarget.style.boxShadow = "0px 4px 8px rgba(0, 0, 0, 0.12)";
271
- e.currentTarget.style.transform = "translateY(-1px)";
272
- },
273
- onMouseLeave: (e) => {
274
- e.currentTarget.style.boxShadow = "none";
275
- e.currentTarget.style.transform = "translateY(0)";
276
- },
277
- children: [
278
- getSVGIcon(extension),
279
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: labelStyle, children: iconConfig.label })
280
- ]
281
- }
282
- ) });
283
- };
284
- var FileIcon_default = FileIcon;
285
-
286
-
287
-
288
-
289
- exports.mergeToolbarConfig = mergeToolbarConfig; exports.FileIcon_default = FileIcon_default;
290
- //# sourceMappingURL=chunk-EM63H4SA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/premkumar/Documents/GitHub/DMS-File-Viewers/packages/lib/dist/chunk-EM63H4SA.js","../src/utils/toolbarUtils.ts","../src/components/FileIcon.tsx"],"names":["extension","ext"],"mappings":"AAAA,6rBAAY;AACZ;AACA;ACIO,SAAS,kBAAA,CAAmB,KAAA,EASjC;AACA,EAAA,MAAM,EAAE,eAAA,EAAiB,CAAC,EAAE,EAAA,EAAI,KAAA;AAGhC,EAAA,MAAM,iBAAA,EAAwD;AAAA,IAC5D,QAAA,EAAU,KAAA,CAAM,YAAA;AAAA,IAChB,KAAA,EAAO,KAAA,CAAM,SAAA;AAAA,IACb,MAAA,EAAQ,KAAA,CAAM,UAAA;AAAA,IACd,QAAA,EAAU,KAAA,CAAM,YAAA;AAAA,IAChB,UAAA,EAAY,KAAA,CAAM,cAAA;AAAA,IAClB,IAAA,EAAM,KAAA,CAAM,QAAA;AAAA,IACZ,OAAA,EAAS,KAAA,CAAM,WAAA;AAAA,IACf,cAAA,EAAgB,KAAA,CAAM,kBAAA;AAAA,IACtB,YAAA,EAAc,KAAA,CAAM,gBAAA;AAAA,IACpB,SAAA,EAAW,KAAA,CAAM,aAAA;AAAA,IACjB,QAAA,EAAU,KAAA,CAAM,YAAA;AAAA,IAChB,UAAA,EAAY,KAAA,CAAM,YAAA;AAAA,IAClB,WAAA,EAAa,KAAA,CAAM;AAAA,EACrB,CAAA;AAEA,EAAA,MAAM,eAAA,EAA2D;AAAA,IAC/D,QAAA,EAAU,KAAA,CAAM,eAAA;AAAA,IAChB,KAAA,EAAO,KAAA,CAAM,YAAA;AAAA,IACb,QAAA,EAAU,KAAA,CAAM,eAAA;AAAA,IAChB,UAAA,EAAY,KAAA,CAAM,iBAAA;AAAA,IAClB,IAAA,EAAM,KAAA,CAAM,WAAA;AAAA,IACZ,OAAA,EAAS,KAAA,CAAM;AAAA,EACjB,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,CAAC,QAAA,EAAA,GAAqB;AAE9B,MAAA,GAAA,iBAAI,cAAA,mBAAe,QAAQ,CAAA,6BAAG,SAAA,IAAW,KAAA,CAAA,EAAW;AAClD,QAAA,OAAO,cAAA,CAAe,QAAQ,CAAA,CAAE,MAAA;AAAA,MAClC;AAEA,MAAA,GAAA,iBAAI,cAAA,qBAAe,QAAQ,CAAA,6BAAG,WAAA,IAAa,KAAA,CAAA,EAAW;AACpD,QAAA,OAAO,KAAA;AAAA,MACT;AAEA,MAAA,GAAA,CAAI,gBAAA,CAAiB,QAAQ,EAAA,IAAM,KAAA,CAAA,EAAW;AAC5C,QAAA,OAAO,CAAC,gBAAA,CAAiB,QAAQ,CAAA;AAAA,MACnC;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAA;AAAA,IAEA,UAAA,EAAY,CAAC,QAAA,EAAA,GAAqB;AAEhC,MAAA,GAAA,iBAAI,cAAA,qBAAe,QAAQ,CAAA,6BAAG,WAAA,IAAa,KAAA,CAAA,EAAW;AACpD,QAAA,OAAO,cAAA,CAAe,QAAQ,CAAA,CAAE,QAAA;AAAA,MAClC;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAA;AAAA,IAEA,UAAA,EAAY,CAAC,QAAA,EAAkB,cAAA,EAAA,GAAgC;AAE7D,MAAA,yDACE,cAAA,qBAAe,QAAQ,CAAA,6BAAG,SAAA,UAC1B,cAAA,CAAe,QAAQ,GAAA,UACvB,gBAAA;AAAA,IAEJ,CAAA;AAAA,IAEA,OAAA,EAAS,CAAC,QAAA,EAAA,GAAqB;AAC7B,MAAA,uBAAO,cAAA,qBAAe,QAAQ,CAAA,+BAAG,MAAA;AAAA,IACnC,CAAA;AAAA,IAEA,QAAA,EAAU,CAAC,QAAA,EAAA,GAAqB;AAC9B,MAAA,uBAAO,cAAA,uBAAe,QAAQ,CAAA,+BAAG,OAAA;AAAA,IACnC;AAAA,EACF,CAAA;AACF;AD5BA;AACA;AE6BU,+CAAA;AAhFV,IAAM,SAAA,EAAoC,CAAC,EAAE,GAAA,EAAK,KAAA,EAAO,EAAA,EAAI,GAAA,EAAK,CAAC,EAAE,CAAA,EAAA,GAAM;AACzE,EAAA,MAAM,UAAA,kBAAa,GAAA,+BAAK,WAAA,qBAAY,CAAA,uBAAE,OAAA,qBAAQ,KAAA,EAAO,EAAE,IAAA,GAAM,EAAA;AAE7D,EAAA,MAAM,cAAA,EAAgB,CAACA,UAAAA,EAAAA,GAAsB;AAC3C,IAAA,OAAA,CAAQA,UAAAA,EAAW;AAAA,MACjB,KAAK,KAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAO,MAAM,CAAA;AAAA,MAC9D,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,UAAAA,CAAU,WAAA,CAAY,EAAE,CAAA;AAAA,MAChF,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,UAAAA,CAAU,WAAA,CAAY,EAAE,CAAA;AAAA,MAChF,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,UAAAA,CAAU,WAAA,CAAY,EAAE,CAAA;AAAA,MAChF,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,UAAAA,CAAU,WAAA,CAAY,EAAE,CAAA;AAAA,MAChF,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,UAAAA,CAAU,WAAA,CAAY,EAAE,CAAA;AAAA,MAChF,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,UAAAA,CAAU,WAAA,CAAY,EAAE,CAAA;AAAA,MAChF,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,UAAAA,CAAU,WAAA,CAAY,EAAE,CAAA;AAAA,MAChF,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,UAAAA,CAAU,WAAA,CAAY,EAAE,CAAA;AAAA,MAChF,KAAK,IAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,GAAA;AACH,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,UAAAA,CAAU,WAAA,CAAY,EAAE,CAAA;AAAA,MAChF,OAAA;AACE,QAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,KAAA,EAAOA,WAAAA,EAAYA,UAAAA,CAAU,WAAA,CAAY,EAAA,EAAI,OAAO,CAAA;AAAA,IACvG;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,EAAa,aAAA,CAAc,SAAS,CAAA;AAE1C,EAAA,MAAM,WAAA,EAAa,CAACC,IAAAA,EAAAA,GAAgB;AAClC,IAAA,MAAM,SAAA,EAAW,KAAA,EAAO,GAAA;AAExB,IAAA,OAAA,CAAQA,IAAAA,EAAK;AAAA,MACX,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AACH,QAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAC/D,QAAA,EAAA;AAAA,0BAAA,6BAAA,MAAC,EAAA,EAAK,CAAA,EAAE,4DAAA,EAA6D,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BAC1H,6BAAA,UAAC,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BACvF,6BAAA,MAAC,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,IAAA,CAAG,CAAA;AAAA,0BAC9E,6BAAA,MAAC,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,IAAA,CAAG,CAAA;AAAA,0BAC9E,6BAAA,UAAC,EAAA,EAAS,MAAA,EAAO,cAAA,EAAe,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,IAAA,CAAG;AAAA,QAAA,EAAA,CAC3E,CAAA;AAAA,MAEJ,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AACH,QAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAC/D,QAAA,EAAA;AAAA,0BAAA,6BAAA,MAAC,EAAA,EAAK,CAAA,EAAE,4DAAA,EAA6D,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BAC1H,6BAAA,UAAC,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BACvF,6BAAA,MAAC,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,IAAA,CAAG,CAAA;AAAA,0BAC9E,6BAAA,MAAC,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,IAAA,CAAG,CAAA;AAAA,0BAC9E,6BAAA,MAAC,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,IAAA,CAAG;AAAA,QAAA,EAAA,CAChF,CAAA;AAAA,MAEJ,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAC/D,QAAA,EAAA;AAAA,0BAAA,6BAAA,MAAC,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BAC5G,6BAAA,QAAC,EAAA,EAAO,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,CAAA,EAAE,KAAA,EAAM,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BACvF,6BAAA,UAAC,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM;AAAA,QAAA,EAAA,CAC3F,CAAA;AAAA,MAEJ,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAC/D,QAAA,EAAA;AAAA,0BAAA,6BAAA,SAAC,EAAA,EAAQ,MAAA,EAAO,sBAAA,EAAuB,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BAC5F,6BAAA,MAAC,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM;AAAA,QAAA,EAAA,CACtG,CAAA;AAAA,MAEJ,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAC/D,QAAA,EAAA;AAAA,0BAAA,6BAAA,MAAC,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAkB,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BAC/E,6BAAA,QAAC,EAAA,EAAO,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BAClF,6BAAA,QAAC,EAAA,EAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM;AAAA,QAAA,EAAA,CACrF,CAAA;AAAA,MAEJ,KAAK,KAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAC/D,QAAA,EAAA;AAAA,0BAAA,6BAAA,MAAC,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BAC7G,6BAAA,QAAC,EAAA,EAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BACnF,6BAAA,MAAC,EAAA,EAAK,CAAA,EAAE,0BAAA,EAA2B,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM;AAAA,QAAA,EAAA,CAC1F,CAAA;AAAA,MAEJ,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAC/D,QAAA,EAAA;AAAA,0BAAA,6BAAA,MAAC,EAAA,EAAK,CAAA,EAAE,4DAAA,EAA6D,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BAC1H,6BAAA,UAAC,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BACvF,6BAAA,MAAC,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,IAAA,CAAG,CAAA;AAAA,0BAC9E,6BAAA,MAAC,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,IAAA,CAAG;AAAA,QAAA,EAAA,CAChF,CAAA;AAAA,MAEJ,KAAK,IAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,IAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AAAA,MACL,KAAK,GAAA;AACH,QAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAC/D,QAAA,EAAA;AAAA,0BAAA,6BAAA,UAAC,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BACzF,6BAAA,UAAC,EAAA,EAAS,MAAA,EAAO,eAAA,EAAgB,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM;AAAA,QAAA,EAAA,CACxF,CAAA;AAAA,MAEJ,OAAA;AACE,QAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAC/D,QAAA,EAAA;AAAA,0BAAA,6BAAA,MAAC,EAAA,EAAK,CAAA,EAAE,4DAAA,EAA6D,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM,CAAA;AAAA,0BAC1H,6BAAA,UAAC,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,MAAA,EAAQ,UAAA,CAAW,KAAA,EAAO,WAAA,EAAY,GAAA,EAAI,IAAA,EAAK,OAAA,CAAM;AAAA,QAAA,EAAA,CACzF,CAAA;AAAA,IAEN;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAA,EAAsC;AAAA,IAC1C,QAAA,EAAU,UAAA;AAAA,IACV,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,GAAG;AAAA,EACL,CAAA;AAEA,EAAA,MAAM,aAAA,EAAoC;AAAA,IACxC,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,IAAA;AAAA,IACP,MAAA,EAAQ,IAAA;AAAA,IACR,eAAA,EAAiB,UAAA,CAAW,OAAA;AAAA,IAC5B,YAAA,EAAc,KAAA;AAAA,IACd,MAAA,EAAQ,+BAAA;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,sBAAA;AAAA,IACZ,MAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,MAAM,WAAA,EAAkC;AAAA,IACtC,QAAA,EAAU,UAAA;AAAA,IACV,MAAA,EAAQ,MAAA;AAAA,IACR,KAAA,EAAO,MAAA;AAAA,IACP,OAAA,EAAS,SAAA;AAAA,IACT,eAAA,EAAiB,SAAA;AAAA,IACjB,MAAA,EAAQ,+BAAA;AAAA,IACR,YAAA,EAAc,KAAA;AAAA,IACd,SAAA,EAAW,gCAAA;AAAA,IACX,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,KAAA,EAAO,UAAA,CAAW,KAAA;AAAA,IAClB,UAAA,EAAY,CAAA;AAAA,IACZ,UAAA,EAAY;AAAA,EACd,CAAA;AAEA,EAAA,uBACE,6BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,cAAA,EACV,QAAA,kBAAA,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,YAAA;AAAA,MACP,YAAA,EAAc,CAAC,CAAA,EAAA,GAAM;AACnB,QAAA,CAAA,CAAE,aAAA,CAAc,KAAA,CAAM,UAAA,EAAY,iCAAA;AAClC,QAAA,CAAA,CAAE,aAAA,CAAc,KAAA,CAAM,UAAA,EAAY,kBAAA;AAAA,MACpC,CAAA;AAAA,MACA,YAAA,EAAc,CAAC,CAAA,EAAA,GAAM;AACnB,QAAA,CAAA,CAAE,aAAA,CAAc,KAAA,CAAM,UAAA,EAAY,MAAA;AAClC,QAAA,CAAA,CAAE,aAAA,CAAc,KAAA,CAAM,UAAA,EAAY,eAAA;AAAA,MACpC,CAAA;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,UAAA,CAAW,SAAS,CAAA;AAAA,wBACrB,6BAAA,KAAC,EAAA,EAAI,KAAA,EAAO,UAAA,EACT,QAAA,EAAA,UAAA,CAAW,MAAA,CACd;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,EAAA,CACF,CAAA;AAEJ,CAAA;AAEA,IAAO,iBAAA,EAAQ,QAAA;AFyBf;AACA;AACE;AACA;AACF,6FAAC","file":"/home/premkumar/Documents/GitHub/DMS-File-Viewers/packages/lib/dist/chunk-EM63H4SA.js","sourcesContent":[null,"import { ToolbarActionsConfig, FileViewerProps } from \"../types\";\n\n/**\n * Merges legacy toolbar props with new toolbarActions config\n * Priority: toolbarActions > legacy props\n */\nexport function mergeToolbarConfig(props: FileViewerProps): {\n isHidden: (actionId: string) => boolean;\n isDisabled: (actionId: string) => boolean;\n getHandler: (\n actionId: string,\n defaultHandler?: () => void\n ) => (() => void) | undefined;\n getIcon: (actionId: string) => React.ReactNode | undefined;\n getLabel: (actionId: string) => string | undefined;\n} {\n const { toolbarActions = {} } = props;\n\n // Map legacy props to action IDs\n const legacyVisibility: Record<string, boolean | undefined> = {\n download: props.showDownload,\n print: props.showPrint,\n search: props.showSearch,\n metadata: props.showMetadata,\n properties: props.showProperties,\n tags: props.showTags,\n history: props.showHistory,\n pageNavigation: props.showPageNavigation,\n zoomControls: props.showZoomControls,\n pageCount: props.showPageCount,\n rotation: props.showRotation,\n rotateLeft: props.showRotation,\n rotateRight: props.showRotation,\n };\n\n const legacyHandlers: Record<string, (() => void) | undefined> = {\n download: props.onDownloadClick,\n print: props.onPrintClick,\n metadata: props.onMetadataClick,\n properties: props.onPropertiesClick,\n tags: props.onTagsClick,\n history: props.onHistoryClick,\n };\n\n return {\n isHidden: (actionId: string) => {\n // Check toolbarActions first - if explicitly set, use it\n if (toolbarActions[actionId]?.hidden !== undefined) {\n return toolbarActions[actionId].hidden!;\n }\n // If toolbarActions has disabled set (meaning user wants to show it), don't hide\n if (toolbarActions[actionId]?.disabled !== undefined) {\n return false;\n }\n // Fall back to legacy props (if false, it means hidden)\n if (legacyVisibility[actionId] !== undefined) {\n return !legacyVisibility[actionId];\n }\n return false;\n },\n\n isDisabled: (actionId: string) => {\n // If toolbarActions explicitly sets disabled, use it\n if (toolbarActions[actionId]?.disabled !== undefined) {\n return toolbarActions[actionId].disabled!;\n }\n return false;\n },\n\n getHandler: (actionId: string, defaultHandler?: () => void) => {\n // Priority: toolbarActions > legacy handlers > default\n return (\n toolbarActions[actionId]?.onClick ??\n legacyHandlers[actionId] ??\n defaultHandler\n );\n },\n\n getIcon: (actionId: string) => {\n return toolbarActions[actionId]?.icon;\n },\n\n getLabel: (actionId: string) => {\n return toolbarActions[actionId]?.label;\n },\n };\n}\n","import React from 'react';\n\ninterface FileIconProps {\n ext?: string;\n size?: number;\n sx?: React.CSSProperties;\n}\n\nconst FileIcon: React.FC<FileIconProps> = ({ ext, size = 48, sx = {} }) => {\n const extension = (ext?.toLowerCase().replace(/^\\./, '')) || '';\n\n const getIconConfig = (extension: string) => {\n switch (extension) {\n case 'pdf':\n return { color: '#d32f2f', bgColor: '#ffebee', label: 'PDF' };\n case 'doc':\n case 'docx':\n return { color: '#1976d2', bgColor: '#e3f2fd', label: extension.toUpperCase() };\n case 'xls':\n case 'xlsx':\n return { color: '#388e3c', bgColor: '#e8f5e8', label: extension.toUpperCase() };\n case 'ppt':\n case 'pptx':\n return { color: '#f57c00', bgColor: '#fff3e0', label: extension.toUpperCase() };\n case 'jpg':\n case 'jpeg':\n case 'png':\n case 'gif':\n case 'svg':\n case 'webp':\n case 'bmp':\n case 'tiff':\n case 'tif':\n return { color: '#7b1fa2', bgColor: '#f3e5f5', label: extension.toUpperCase() };\n case 'mp4':\n case 'avi':\n case 'mov':\n case 'wmv':\n case 'webm':\n case 'mkv':\n return { color: '#c2185b', bgColor: '#fce4ec', label: extension.toUpperCase() };\n case 'mp3':\n case 'wav':\n case 'flac':\n case 'aac':\n case 'ogg':\n case 'm4a':\n return { color: '#303f9f', bgColor: '#e8eaf6', label: extension.toUpperCase() };\n case 'zip':\n case 'rar':\n case '7z':\n case 'tar':\n case 'gz':\n return { color: '#f9a825', bgColor: '#fffde7', label: extension.toUpperCase() };\n case 'txt':\n case 'md':\n case 'csv':\n return { color: '#424242', bgColor: '#f5f5f5', label: extension.toUpperCase() };\n case 'js':\n case 'jsx':\n case 'ts':\n case 'tsx':\n case 'html':\n case 'css':\n case 'json':\n case 'xml':\n case 'py':\n case 'java':\n case 'cpp':\n case 'c':\n return { color: '#424242', bgColor: '#f5f5f5', label: extension.toUpperCase() };\n default:\n return { color: '#757575', bgColor: '#fafafa', label: extension ? extension.toUpperCase() : 'FILE' };\n }\n };\n\n const iconConfig = getIconConfig(extension);\n\n const getSVGIcon = (ext: string) => {\n const iconSize = size * 0.6;\n \n switch (ext) {\n case 'pdf':\n case 'doc':\n case 'docx':\n case 'ppt':\n case 'pptx':\n return (\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <polyline points=\"14,2 14,8 20,8\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" stroke={iconConfig.color} strokeWidth=\"2\"/>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" stroke={iconConfig.color} strokeWidth=\"2\"/>\n <polyline points=\"10,9 9,9 8,9\" stroke={iconConfig.color} strokeWidth=\"2\"/>\n </svg>\n );\n case 'xls':\n case 'xlsx':\n return (\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <polyline points=\"14,2 14,8 20,8\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <line x1=\"8\" y1=\"13\" x2=\"16\" y2=\"13\" stroke={iconConfig.color} strokeWidth=\"2\"/>\n <line x1=\"8\" y1=\"17\" x2=\"16\" y2=\"17\" stroke={iconConfig.color} strokeWidth=\"2\"/>\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"21\" stroke={iconConfig.color} strokeWidth=\"2\"/>\n </svg>\n );\n case 'jpg':\n case 'jpeg':\n case 'png':\n case 'gif':\n case 'svg':\n case 'webp':\n case 'bmp':\n case 'tiff':\n case 'tif':\n return (\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <polyline points=\"21,15 16,10 5,21\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n </svg>\n );\n case 'mp4':\n case 'avi':\n case 'mov':\n case 'wmv':\n case 'webm':\n case 'mkv':\n return (\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\n <polygon points=\"23 12 8 2 8 22 23 12\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <rect x=\"1\" y=\"5\" width=\"6\" height=\"14\" rx=\"1\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n </svg>\n );\n case 'mp3':\n case 'wav':\n case 'flac':\n case 'aac':\n case 'ogg':\n case 'm4a':\n return (\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 18V5l12-2v13\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <circle cx=\"6\" cy=\"18\" r=\"3\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <circle cx=\"18\" cy=\"16\" r=\"3\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n </svg>\n );\n case 'zip':\n case 'rar':\n case '7z':\n case 'tar':\n case 'gz':\n return (\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"10\" rx=\"2\" ry=\"2\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n </svg>\n );\n case 'txt':\n case 'md':\n case 'csv':\n return (\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <polyline points=\"14,2 14,8 20,8\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" stroke={iconConfig.color} strokeWidth=\"2\"/>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" stroke={iconConfig.color} strokeWidth=\"2\"/>\n </svg>\n );\n case 'js':\n case 'jsx':\n case 'ts':\n case 'tsx':\n case 'html':\n case 'css':\n case 'json':\n case 'xml':\n case 'py':\n case 'java':\n case 'cpp':\n case 'c':\n return (\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\n <polyline points=\"16 18 22 12 16 6\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <polyline points=\"8 6 2 12 8 18\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n </svg>\n );\n default:\n return (\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n <polyline points=\"14,2 14,8 20,8\" stroke={iconConfig.color} strokeWidth=\"2\" fill=\"none\"/>\n </svg>\n );\n }\n };\n\n const containerStyle: React.CSSProperties = {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n ...sx\n };\n\n const iconBoxStyle: React.CSSProperties = {\n position: 'relative',\n width: size,\n height: size,\n backgroundColor: iconConfig.bgColor,\n borderRadius: '8px',\n border: '1px solid rgba(0, 0, 0, 0.12)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'all 0.2s ease-in-out',\n cursor: 'default'\n };\n\n const labelStyle: React.CSSProperties = {\n position: 'absolute',\n bottom: '-4px',\n right: '-4px',\n padding: '2px 4px',\n backgroundColor: '#ffffff',\n border: '1px solid rgba(0, 0, 0, 0.12)',\n borderRadius: '4px',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',\n fontSize: '10px',\n fontWeight: 600,\n color: iconConfig.color,\n lineHeight: 1,\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif'\n };\n\n return (\n <div style={containerStyle}>\n <div \n style={iconBoxStyle}\n onMouseEnter={(e) => {\n e.currentTarget.style.boxShadow = '0px 4px 8px rgba(0, 0, 0, 0.12)';\n e.currentTarget.style.transform = 'translateY(-1px)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = 'none';\n e.currentTarget.style.transform = 'translateY(0)';\n }}\n >\n {getSVGIcon(extension)}\n <div style={labelStyle}>\n {iconConfig.label}\n </div>\n </div>\n </div>\n );\n};\n\nexport default FileIcon;\n"]}
@@ -1,309 +0,0 @@
1
- "use client";
2
- import {
3
- getFileExtension
4
- } from "./chunk-KJNOBIUZ.mjs";
5
- import {
6
- FileIcon_default,
7
- mergeToolbarConfig
8
- } from "./chunk-7PMZ4GN5.mjs";
9
-
10
- // src/components/viewers/TextViewer.tsx
11
- import React, { useCallback, useEffect, useMemo, useState } from "react";
12
- import {
13
- Box,
14
- Card,
15
- CardContent,
16
- CardHeader,
17
- Divider,
18
- LinearProgress,
19
- Stack,
20
- Typography,
21
- IconButton,
22
- Tooltip
23
- } from "@mui/material";
24
- import DownloadIcon from "@mui/icons-material/Download";
25
- import PrintIcon from "@mui/icons-material/Print";
26
- import FullscreenIcon from "@mui/icons-material/Fullscreen";
27
- import InfoIcon from "@mui/icons-material/Info";
28
- import DescriptionIcon from "@mui/icons-material/Description";
29
- import HistoryIcon from "@mui/icons-material/History";
30
- import { LocalOffer } from "@mui/icons-material";
31
- import { jsx, jsxs } from "react/jsx-runtime";
32
- var LINE_HEIGHT = 24;
33
- var TextViewer = ({
34
- file,
35
- url,
36
- fileName,
37
- className = "",
38
- style = {},
39
- width = "100%",
40
- height = "100%",
41
- onLoad,
42
- onError,
43
- onDownloadClick,
44
- onPrintClick,
45
- onMetadataClick,
46
- onTagsClick,
47
- onPropertiesClick,
48
- onHistoryClick,
49
- showDownload = true,
50
- showPrint = true,
51
- showMetadata = false,
52
- showTags = true,
53
- showProperties = false,
54
- showHistory = true,
55
- // Extract props that shouldn't be passed to DOM elements
56
- mimeType,
57
- fileSize,
58
- showPageCount,
59
- showPageNavigation,
60
- showZoomControls,
61
- showSearch,
62
- customRegistry,
63
- initialSearchText,
64
- initialSearchPages,
65
- autoOpenSearch,
66
- autoExecuteSearch,
67
- onSearchComplete,
68
- toolbarActions,
69
- ...props
70
- }) => {
71
- const [content, setContent] = useState("");
72
- const [lines, setLines] = useState([]);
73
- const [isLoading, setIsLoading] = useState(false);
74
- const [error, setError] = useState(null);
75
- const [isFullScreen, setIsFullScreen] = useState(false);
76
- const containerRef = React.useRef(null);
77
- const resolvedFileName = useMemo(
78
- () => fileName || file?.name || (url ? url.split("/").pop() : "text-document"),
79
- [fileName, file, url]
80
- );
81
- const fileExtension = useMemo(
82
- () => getFileExtension(resolvedFileName || ""),
83
- [resolvedFileName]
84
- );
85
- const loadText = useCallback(async () => {
86
- if (!file && !url) {
87
- setContent("");
88
- setLines([]);
89
- setError(null);
90
- return;
91
- }
92
- setIsLoading(true);
93
- setError(null);
94
- try {
95
- let textContent;
96
- if (file) {
97
- textContent = await file.text();
98
- } else {
99
- const response = await fetch(url);
100
- if (!response.ok) {
101
- throw new Error(`Failed to fetch text (${response.status})`);
102
- }
103
- textContent = await response.text();
104
- }
105
- setContent(textContent);
106
- setLines(textContent.split(/\r?\n/));
107
- onLoad?.();
108
- } catch (err) {
109
- const message = err instanceof Error ? err.message : "Unable to load text file";
110
- setError(message);
111
- setContent("");
112
- setLines([]);
113
- onError?.(new Error(message));
114
- } finally {
115
- setIsLoading(false);
116
- }
117
- }, [file, url, onLoad, onError]);
118
- useEffect(() => {
119
- void loadText();
120
- }, [loadText]);
121
- const handleToggleFullScreen = () => {
122
- if (!isFullScreen && containerRef.current?.requestFullscreen) {
123
- containerRef.current.requestFullscreen();
124
- setIsFullScreen(true);
125
- } else if (isFullScreen && document.exitFullscreen) {
126
- document.exitFullscreen();
127
- setIsFullScreen(false);
128
- }
129
- };
130
- const toolbar = mergeToolbarConfig({
131
- showDownload,
132
- showPrint,
133
- showMetadata,
134
- showTags,
135
- showProperties,
136
- showHistory,
137
- onDownloadClick,
138
- onPrintClick,
139
- onMetadataClick,
140
- onTagsClick,
141
- onPropertiesClick,
142
- onHistoryClick,
143
- toolbarActions
144
- });
145
- return /* @__PURE__ */ jsx(
146
- Box,
147
- {
148
- ref: containerRef,
149
- className: `text-viewer ${className}`,
150
- sx: { width, height, ...style },
151
- ...props,
152
- children: /* @__PURE__ */ jsxs(
153
- Card,
154
- {
155
- sx: { height: "100%", display: "flex", flexDirection: "column" },
156
- elevation: 1,
157
- children: [
158
- /* @__PURE__ */ jsx(
159
- CardHeader,
160
- {
161
- avatar: /* @__PURE__ */ jsx(FileIcon_default, { ext: fileExtension, size: 32 }),
162
- title: /* @__PURE__ */ jsx(Typography, { variant: "subtitle1", fontWeight: 500, children: resolvedFileName }),
163
- action: /* @__PURE__ */ jsxs(Stack, { direction: "row", spacing: 1, children: [
164
- !toolbar.isHidden("download") && /* @__PURE__ */ jsx(Tooltip, { title: toolbar.getLabel("download") || "Download", children: /* @__PURE__ */ jsx(
165
- IconButton,
166
- {
167
- size: "small",
168
- onClick: toolbar.getHandler("download", onDownloadClick),
169
- disabled: toolbar.isDisabled("download"),
170
- "aria-label": "Download text file",
171
- children: toolbar.getIcon("download") || /* @__PURE__ */ jsx(DownloadIcon, {})
172
- }
173
- ) }),
174
- !toolbar.isHidden("print") && /* @__PURE__ */ jsx(Tooltip, { title: toolbar.getLabel("print") || "Print", children: /* @__PURE__ */ jsx(
175
- IconButton,
176
- {
177
- size: "small",
178
- onClick: toolbar.getHandler("print", onPrintClick),
179
- disabled: toolbar.isDisabled("print"),
180
- "aria-label": "Print text file",
181
- children: toolbar.getIcon("print") || /* @__PURE__ */ jsx(PrintIcon, {})
182
- }
183
- ) }),
184
- !toolbar.isHidden("fullscreen") && /* @__PURE__ */ jsx(Tooltip, { title: toolbar.getLabel("fullscreen") || "Fullscreen", children: /* @__PURE__ */ jsx(
185
- IconButton,
186
- {
187
- size: "small",
188
- onClick: toolbar.getHandler(
189
- "fullscreen",
190
- handleToggleFullScreen
191
- ),
192
- disabled: toolbar.isDisabled("fullscreen"),
193
- "aria-label": "Toggle fullscreen",
194
- children: toolbar.getIcon("fullscreen") || /* @__PURE__ */ jsx(FullscreenIcon, {})
195
- }
196
- ) }),
197
- !toolbar.isHidden("metadata") && /* @__PURE__ */ jsx(
198
- Tooltip,
199
- {
200
- title: toolbar.getLabel("metadata") || "Document Metadata",
201
- children: /* @__PURE__ */ jsx(
202
- IconButton,
203
- {
204
- size: "small",
205
- onClick: toolbar.getHandler("metadata", onMetadataClick),
206
- disabled: toolbar.isDisabled("metadata"),
207
- "aria-label": "View document metadata",
208
- children: toolbar.getIcon("metadata") || /* @__PURE__ */ jsx(DescriptionIcon, {})
209
- }
210
- )
211
- }
212
- ),
213
- !toolbar.isHidden("properties") && /* @__PURE__ */ jsx(
214
- Tooltip,
215
- {
216
- title: toolbar.getLabel("properties") || "Document Properties",
217
- children: /* @__PURE__ */ jsx(
218
- IconButton,
219
- {
220
- size: "small",
221
- onClick: toolbar.getHandler(
222
- "properties",
223
- onPropertiesClick
224
- ),
225
- disabled: toolbar.isDisabled("properties"),
226
- "aria-label": "View document properties",
227
- children: toolbar.getIcon("properties") || /* @__PURE__ */ jsx(InfoIcon, {})
228
- }
229
- )
230
- }
231
- ),
232
- !toolbar.isHidden("tags") && /* @__PURE__ */ jsx(Tooltip, { title: toolbar.getLabel("tags") || "Document Tags", children: /* @__PURE__ */ jsx(
233
- IconButton,
234
- {
235
- size: "small",
236
- onClick: toolbar.getHandler("tags", onTagsClick),
237
- disabled: toolbar.isDisabled("tags"),
238
- "aria-label": "View document tags",
239
- children: toolbar.getIcon("tags") || /* @__PURE__ */ jsx(LocalOffer, {})
240
- }
241
- ) }),
242
- !toolbar.isHidden("history") && /* @__PURE__ */ jsx(
243
- Tooltip,
244
- {
245
- title: toolbar.getLabel("history") || "Document History",
246
- children: /* @__PURE__ */ jsx(
247
- IconButton,
248
- {
249
- size: "small",
250
- onClick: toolbar.getHandler("history", onHistoryClick),
251
- disabled: toolbar.isDisabled("history"),
252
- "aria-label": "View document history",
253
- children: toolbar.getIcon("history") || /* @__PURE__ */ jsx(HistoryIcon, {})
254
- }
255
- )
256
- }
257
- )
258
- ] }),
259
- sx: { pb: 1 }
260
- }
261
- ),
262
- isLoading && /* @__PURE__ */ jsx(LinearProgress, { sx: { mx: 3, mb: 1 } }),
263
- error && /* @__PURE__ */ jsx(Typography, { color: "error", variant: "body2", sx: { px: 3, pb: 1 }, children: error }),
264
- /* @__PURE__ */ jsx(Divider, {}),
265
- /* @__PURE__ */ jsx(CardContent, { sx: { flexGrow: 1, minHeight: 0, p: 0, overflow: "auto" }, children: content ? /* @__PURE__ */ jsx(
266
- Box,
267
- {
268
- sx: {
269
- fontFamily: "monospace",
270
- fontSize: "0.85rem",
271
- p: 2,
272
- whiteSpace: "pre"
273
- },
274
- children: lines.map((line, index) => /* @__PURE__ */ jsx(
275
- Box,
276
- {
277
- sx: {
278
- minHeight: LINE_HEIGHT,
279
- lineHeight: `${LINE_HEIGHT}px`
280
- },
281
- children: line || "\xA0"
282
- },
283
- index
284
- ))
285
- }
286
- ) : /* @__PURE__ */ jsx(
287
- Box,
288
- {
289
- sx: {
290
- display: "flex",
291
- alignItems: "center",
292
- justifyContent: "center",
293
- p: 4,
294
- minHeight: 200
295
- },
296
- children: /* @__PURE__ */ jsx(Typography, { variant: "body2", color: "text.secondary", children: "No text content available." })
297
- }
298
- ) })
299
- ]
300
- }
301
- )
302
- }
303
- );
304
- };
305
-
306
- export {
307
- TextViewer
308
- };
309
- //# sourceMappingURL=chunk-IJMNPAXX.mjs.map