ssovee-os-web-ui 0.1.107 → 0.1.108
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/index.cjs +54 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +6 -4
- package/dist/index.d.cts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +53 -17
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
package/dist/index.cjs
CHANGED
|
@@ -7,7 +7,11 @@ var Editor = require('@monaco-editor/react');
|
|
|
7
7
|
var react$1 = require('@tiptap/react');
|
|
8
8
|
var StarterKit = require('@tiptap/starter-kit');
|
|
9
9
|
var uaParserJs = require('ua-parser-js');
|
|
10
|
+
var reactPdf = require('react-pdf');
|
|
11
|
+
require('react-pdf/dist/Page/TextLayer.css');
|
|
12
|
+
require('react-pdf/dist/Page/AnnotationLayer.css');
|
|
10
13
|
|
|
14
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
11
15
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
16
|
|
|
13
17
|
function _interopNamespace(e) {
|
|
@@ -2318,6 +2322,54 @@ var Tabs = ({
|
|
|
2318
2322
|
] });
|
|
2319
2323
|
};
|
|
2320
2324
|
var Tabs_default = Tabs;
|
|
2325
|
+
reactPdf.pdfjs.GlobalWorkerOptions.workerSrc = new URL(
|
|
2326
|
+
"pdfjs-dist/build/pdf.worker.min.mjs",
|
|
2327
|
+
(typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))
|
|
2328
|
+
).toString();
|
|
2329
|
+
var base64ToUint8Array = (base64) => {
|
|
2330
|
+
const value = base64.includes(",") ? base64.slice(base64.indexOf(",") + 1) : base64;
|
|
2331
|
+
const binary = atob(value);
|
|
2332
|
+
const bytes = new Uint8Array(binary.length);
|
|
2333
|
+
for (let index = 0; index < binary.length; index += 1) {
|
|
2334
|
+
bytes[index] = binary.charCodeAt(index);
|
|
2335
|
+
}
|
|
2336
|
+
return bytes;
|
|
2337
|
+
};
|
|
2338
|
+
var PdfPreview = ({ base64, fileName, className }) => {
|
|
2339
|
+
const [numPages, setNumPages] = React24.useState(0);
|
|
2340
|
+
const [error, setError] = React24.useState();
|
|
2341
|
+
const [pageWidth, setPageWidth] = React24.useState(900);
|
|
2342
|
+
React24.useEffect(() => {
|
|
2343
|
+
const updatePageWidth = () => setPageWidth(Math.min(900, Math.max(320, window.innerWidth - 48)));
|
|
2344
|
+
updatePageWidth();
|
|
2345
|
+
window.addEventListener("resize", updatePageWidth);
|
|
2346
|
+
return () => window.removeEventListener("resize", updatePageWidth);
|
|
2347
|
+
}, []);
|
|
2348
|
+
let pdfData;
|
|
2349
|
+
try {
|
|
2350
|
+
pdfData = base64ToUint8Array(base64);
|
|
2351
|
+
} catch {
|
|
2352
|
+
pdfData = new Uint8Array();
|
|
2353
|
+
}
|
|
2354
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-full min-h-96 w-full overflow-auto bg-muted/30", className), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2355
|
+
reactPdf.Document,
|
|
2356
|
+
{
|
|
2357
|
+
file: { data: pdfData },
|
|
2358
|
+
onLoadSuccess: ({ numPages: loadedPages }) => {
|
|
2359
|
+
setNumPages(loadedPages);
|
|
2360
|
+
setError(void 0);
|
|
2361
|
+
},
|
|
2362
|
+
onLoadError: (loadError) => {
|
|
2363
|
+
console.error("PDF preview error:", loadError);
|
|
2364
|
+
setError(`Unable to preview ${fileName}`);
|
|
2365
|
+
},
|
|
2366
|
+
loading: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-h-96 items-center justify-center", children: "Loading PDF..." }),
|
|
2367
|
+
error: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-h-96 items-center justify-center", children: error ?? "Unable to preview this PDF." }),
|
|
2368
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-center gap-4 p-4", children: Array.from({ length: numPages }, (_, index) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg bg-white shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(reactPdf.Page, { pageNumber: index + 1, renderTextLayer: true, renderAnnotationLayer: true, width: pageWidth }) }, `page_${index + 1}`)) })
|
|
2369
|
+
}
|
|
2370
|
+
) });
|
|
2371
|
+
};
|
|
2372
|
+
var PdfPreview_default = PdfPreview;
|
|
2321
2373
|
var imageExtensions = /\.(avif|bmp|gif|heic|jpe?g|png|svg|tiff?|webp)$/i;
|
|
2322
2374
|
var textExtensions = /\.(c|cc|conf|cpp|css|csv|env|h|hpp|html?|ini|java|js|jsx|log|md|mjs|php|py|rb|rs|sh|sql|swift|ts|tsx|txt|xml|yaml|yml)$/i;
|
|
2323
2375
|
var audioExtensions = /\.(aac|flac|m4a|mp3|ogg|wav|weba)$/i;
|
|
@@ -2383,29 +2435,14 @@ var decodeBase64 = (base64) => {
|
|
|
2383
2435
|
const bytes = Uint8Array.from(atob(value), (character) => character.charCodeAt(0));
|
|
2384
2436
|
return new TextDecoder().decode(bytes);
|
|
2385
2437
|
};
|
|
2386
|
-
var toBlobUrl = (base64, fileName) => {
|
|
2387
|
-
const value = base64.includes(",") ? base64.slice(base64.indexOf(",") + 1) : base64;
|
|
2388
|
-
const bytes = Uint8Array.from(atob(value), (character) => character.charCodeAt(0));
|
|
2389
|
-
return URL.createObjectURL(new Blob([bytes], { type: getMimeType(fileName) }));
|
|
2390
|
-
};
|
|
2391
2438
|
var PreviewComponent = ({ fileName, base64, className }) => {
|
|
2392
2439
|
const previewType = getPreviewType(fileName);
|
|
2393
2440
|
const dataUrl = toDataUrl(base64, fileName);
|
|
2394
|
-
const [pdfUrl, setPdfUrl] = React24.useState();
|
|
2395
|
-
React24.useEffect(() => {
|
|
2396
|
-
if (previewType !== "pdf") {
|
|
2397
|
-
setPdfUrl(void 0);
|
|
2398
|
-
return;
|
|
2399
|
-
}
|
|
2400
|
-
const objectUrl = toBlobUrl(base64, fileName);
|
|
2401
|
-
setPdfUrl(objectUrl);
|
|
2402
|
-
return () => URL.revokeObjectURL(objectUrl);
|
|
2403
|
-
}, [base64, fileName, previewType]);
|
|
2404
2441
|
if (previewType === "image") {
|
|
2405
2442
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex h-full min-h-48 w-full items-center justify-center overflow-auto", className), children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: dataUrl, alt: fileName, className: "max-h-full max-w-full object-contain" }) });
|
|
2406
2443
|
}
|
|
2407
2444
|
if (previewType === "pdf") {
|
|
2408
|
-
return
|
|
2445
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PdfPreview_default, { base64, fileName, className });
|
|
2409
2446
|
}
|
|
2410
2447
|
if (previewType === "audio") {
|
|
2411
2448
|
return /* @__PURE__ */ jsxRuntime.jsx("audio", { controls: true, src: dataUrl, className: cn("w-full", className) });
|
|
@@ -3641,6 +3678,7 @@ exports.Input = Input_default;
|
|
|
3641
3678
|
exports.Loading = Loading_default;
|
|
3642
3679
|
exports.Modal = Modal_default;
|
|
3643
3680
|
exports.Pagination = Pagination_default;
|
|
3681
|
+
exports.PdfPreview = PdfPreview_default;
|
|
3644
3682
|
exports.PluginPlayground = PluginPlayground;
|
|
3645
3683
|
exports.PreviewComponent = PreviewComponent_default;
|
|
3646
3684
|
exports.Progress = Progress_default;
|