ssovee-os-web-ui 0.1.103 → 0.1.104
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 +44 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +43 -46
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -7,7 +7,9 @@ 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');
|
|
10
11
|
|
|
12
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
11
13
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
14
|
|
|
13
15
|
function _interopNamespace(e) {
|
|
@@ -2318,6 +2320,10 @@ var Tabs = ({
|
|
|
2318
2320
|
] });
|
|
2319
2321
|
};
|
|
2320
2322
|
var Tabs_default = Tabs;
|
|
2323
|
+
reactPdf.pdfjs.GlobalWorkerOptions.workerSrc = new URL(
|
|
2324
|
+
"pdfjs-dist/build/pdf.worker.min.mjs",
|
|
2325
|
+
(typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))
|
|
2326
|
+
).toString();
|
|
2321
2327
|
var imageExtensions = /\.(avif|bmp|gif|heic|jpe?g|png|svg|tiff?|webp)$/i;
|
|
2322
2328
|
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
2329
|
var audioExtensions = /\.(aac|flac|m4a|mp3|ogg|wav|weba)$/i;
|
|
@@ -2390,56 +2396,48 @@ var toPdfBytes = (base64) => {
|
|
|
2390
2396
|
var PreviewComponent = ({ fileName, base64, className }) => {
|
|
2391
2397
|
const previewType = getPreviewType(fileName);
|
|
2392
2398
|
const dataUrl = toDataUrl(base64, fileName);
|
|
2393
|
-
const
|
|
2394
|
-
const [
|
|
2395
|
-
React24.useEffect(() => {
|
|
2396
|
-
if (previewType !== "pdf" || !pdfContainerRef.current) return;
|
|
2397
|
-
let cancelled = false;
|
|
2398
|
-
const container = pdfContainerRef.current;
|
|
2399
|
-
setPdfState("loading");
|
|
2400
|
-
container.replaceChildren();
|
|
2401
|
-
import('pdfjs-dist/legacy/build/pdf.mjs').then(async ({ getDocument }) => {
|
|
2402
|
-
const pdf = await getDocument({ data: toPdfBytes(base64) }).promise;
|
|
2403
|
-
for (let pageNumber = 1; pageNumber <= pdf.numPages; pageNumber += 1) {
|
|
2404
|
-
if (cancelled) return;
|
|
2405
|
-
const page = await pdf.getPage(pageNumber);
|
|
2406
|
-
const viewport = page.getViewport({ scale: 1.35 });
|
|
2407
|
-
const canvas = document.createElement("canvas");
|
|
2408
|
-
const context = canvas.getContext("2d");
|
|
2409
|
-
if (!context) throw new Error("Canvas is not supported");
|
|
2410
|
-
canvas.width = viewport.width;
|
|
2411
|
-
canvas.height = viewport.height;
|
|
2412
|
-
canvas.setAttribute("aria-label", `${fileName}, page ${pageNumber}`);
|
|
2413
|
-
canvas.className = "mb-3 max-w-full shadow-sm";
|
|
2414
|
-
container.appendChild(canvas);
|
|
2415
|
-
await page.render({ canvas, canvasContext: context, viewport }).promise;
|
|
2416
|
-
}
|
|
2417
|
-
if (!cancelled) setPdfState("ready");
|
|
2418
|
-
}).catch(() => {
|
|
2419
|
-
if (!cancelled) setPdfState("error");
|
|
2420
|
-
});
|
|
2421
|
-
return () => {
|
|
2422
|
-
cancelled = true;
|
|
2423
|
-
container.replaceChildren();
|
|
2424
|
-
};
|
|
2425
|
-
}, [base64, fileName, previewType]);
|
|
2399
|
+
const [pageCount, setPageCount] = React24.useState(null);
|
|
2400
|
+
const [pdfError, setPdfError] = React24.useState(false);
|
|
2426
2401
|
if (previewType === "image") {
|
|
2427
2402
|
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" }) });
|
|
2428
2403
|
}
|
|
2429
2404
|
if (previewType === "pdf") {
|
|
2430
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2405
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex min-h-96 flex-col items-center overflow-auto p-3", className), children: pdfError ? /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
2406
|
+
"Unable to render ",
|
|
2407
|
+
fileName,
|
|
2408
|
+
". The PDF may be invalid or corrupted."
|
|
2409
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2410
|
+
reactPdf.Document,
|
|
2411
|
+
{
|
|
2412
|
+
file: { data: toPdfBytes(base64) },
|
|
2413
|
+
loading: /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
2414
|
+
"Loading ",
|
|
2415
|
+
fileName,
|
|
2416
|
+
"..."
|
|
2417
|
+
] }),
|
|
2418
|
+
error: /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
2419
|
+
"Unable to render ",
|
|
2420
|
+
fileName,
|
|
2421
|
+
". The PDF may be invalid or corrupted."
|
|
2422
|
+
] }),
|
|
2423
|
+
onLoadSuccess: ({ numPages }) => {
|
|
2424
|
+
setPageCount(numPages);
|
|
2425
|
+
setPdfError(false);
|
|
2426
|
+
},
|
|
2427
|
+
onLoadError: () => setPdfError(true),
|
|
2428
|
+
className: "flex w-full flex-col items-center",
|
|
2429
|
+
children: pageCount !== null && Array.from({ length: pageCount }, (_, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2430
|
+
reactPdf.Page,
|
|
2431
|
+
{
|
|
2432
|
+
pageNumber: index + 1,
|
|
2433
|
+
renderAnnotationLayer: false,
|
|
2434
|
+
renderTextLayer: false,
|
|
2435
|
+
className: "mb-3 max-w-full shadow-sm"
|
|
2436
|
+
},
|
|
2437
|
+
`${fileName}-${index + 1}`
|
|
2438
|
+
))
|
|
2439
|
+
}
|
|
2440
|
+
) });
|
|
2443
2441
|
}
|
|
2444
2442
|
if (previewType === "audio") {
|
|
2445
2443
|
return /* @__PURE__ */ jsxRuntime.jsx("audio", { controls: true, src: dataUrl, className: cn("w-full", className) });
|