@cyber-harbour/ui 2.0.51 → 2.0.53
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/PdfDriver-T552NJVX.js +3 -0
- package/dist/{PdfDriver-VUIDQV2Z.js.map → PdfDriver-T552NJVX.js.map} +1 -1
- package/dist/PdfDriver-YEDZENTX.mjs +3 -0
- package/dist/{PdfDriver-7VZZUN7X.mjs.map → PdfDriver-YEDZENTX.mjs.map} +1 -1
- package/dist/{chunk-5EVUUSQ3.mjs → chunk-JKG3AKM4.mjs} +4 -2
- package/dist/chunk-JKG3AKM4.mjs.map +1 -0
- package/dist/{chunk-TAKANP3V.js → chunk-ZQO4NO5E.js} +4 -2
- package/dist/chunk-ZQO4NO5E.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.js +17 -17
- package/dist/index.mjs +2 -2
- package/dist/styles/tailwind.css +1 -1
- package/dist/styles/tailwind.css.map +1 -1
- package/package.json +1 -1
- package/dist/PdfDriver-7VZZUN7X.mjs +0 -3
- package/dist/PdfDriver-VUIDQV2Z.js +0 -3
- package/dist/chunk-5EVUUSQ3.mjs.map +0 -1
- package/dist/chunk-TAKANP3V.js.map +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';var chunkZQO4NO5E_js=require('./chunk-ZQO4NO5E.js'),react=require('react'),reactPdf=require('react-pdf');require('react-pdf/dist/Page/AnnotationLayer.css'),require('react-pdf/dist/Page/TextLayer.css');var jsxRuntime=require('react/jsx-runtime');var l="/pdfjs";typeof window<"u"&&typeof document<"u"&&(reactPdf.pdfjs.GlobalWorkerOptions.workerSrc=`${l}/pdf.worker.min.js`);var H=chunkZQO4NO5E_js.a(({url:b})=>{let[a,y]=react.useState(0),[d,m]=react.useState(1),[N,f]=react.useState(true),[p,P]=react.useState(null),[k,L]=react.useState(400),[c,v]=react.useState(1),u=react.useRef(null),D=chunkZQO4NO5E_js.a(()=>{v(t=>Math.min(t+.25,4));},"handleZoomIn"),j=chunkZQO4NO5E_js.a(()=>{v(t=>Math.max(t-.25,.25));},"handleZoomOut");react.useEffect(()=>{let t=chunkZQO4NO5E_js.a(()=>{u.current&&L(u.current.offsetWidth-70);},"updateSize");return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[]);let z=react.useMemo(()=>({cMapPacked:true,cMapUrl:`${l}/cmaps/`,standardFontDataUrl:`${l}/standard_fonts/`,wasmUrl:`${l}/wasm/`,iccUrl:`${l}/icc/`}),[]);function E({numPages:t}){y(t),f(false);}chunkZQO4NO5E_js.a(E,"onDocumentLoadSuccess");function C(t){P(`Failed to load PDF: ${t.message}`),f(false);}chunkZQO4NO5E_js.a(C,"onDocumentLoadError");function g(t){m(i=>i+t);}chunkZQO4NO5E_js.a(g,"changePage");function M(){g(-1);}chunkZQO4NO5E_js.a(M,"previousPage");function S(){g(1);}return chunkZQO4NO5E_js.a(S,"nextPage"),p?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsxRuntime.jsx("div",{className:"text-red-500 text-center",children:jsxRuntime.jsx("p",{children:p})})}):jsxRuntime.jsxs("div",{className:"h-full w-full flex flex-col overflow-hidden pb-5",children:[N&&jsxRuntime.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntime.jsx("div",{className:"text-gray-500",children:"Loading PDF..."})}),a>0&&jsxRuntime.jsxs("div",{className:"flex items-center justify-center md:justify-between flex-wrap gap-3 p-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-center gap-3",children:[jsxRuntime.jsx(chunkZQO4NO5E_js.z,{variant:"outlined","aria-label":"previous page",color:"secondary",size:"small",type:"button",disabled:d<=1,onClick:M,p:5,icon:jsxRuntime.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:jsxRuntime.jsx("path",{d:"m15 18-6-6 6-6"})})}),jsxRuntime.jsxs("span",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("input",{type:"number",min:1,max:a,value:d,onChange:t=>{let i=parseInt(t.target.value,10);i>=1&&i<=a&&m(i);},className:"w-15 px-1 py-1 border border-gray-400! rounded text-center"}),"/ ",a]}),jsxRuntime.jsx(chunkZQO4NO5E_js.z,{variant:"outlined","aria-label":"next page",color:"secondary",size:"small",type:"button",disabled:d>=a,onClick:S,p:7,icon:jsxRuntime.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:jsxRuntime.jsx("path",{d:"m9 18 6-6-6-6"})})})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-center gap-3",children:[jsxRuntime.jsx(chunkZQO4NO5E_js.z,{variant:"outlined","aria-label":"zoom-out",color:"secondary",size:"small",icon:jsxRuntime.jsx(chunkZQO4NO5E_js.Pa,{style:{width:20,height:20}}),onClick:j,disabled:c<=.25,p:7}),jsxRuntime.jsxs(chunkZQO4NO5E_js.mb,{py:5,px:8,children:[c*100,"%"]}),jsxRuntime.jsx(chunkZQO4NO5E_js.z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"secondary",icon:jsxRuntime.jsx(chunkZQO4NO5E_js.ma,{style:{width:14,height:14}}),onClick:D,disabled:c>=4,p:8})]})]}),jsxRuntime.jsx("div",{ref:u,className:"flex-1 overflow-auto",children:jsxRuntime.jsx(reactPdf.Document,{options:z,file:b,onLoadSuccess:E,onLoadError:C,loading:"",className:"mx-auto w-fit",children:jsxRuntime.jsx(reactPdf.Page,{pageNumber:d,renderTextLayer:true,renderAnnotationLayer:true,width:k*c,className:"h-auto w-full transition-[width] duration-[600ms] ease-in-out mx-auto"})})})]})},"PdfDriver");
|
|
2
|
+
exports.PdfDriver=H;//# sourceMappingURL=PdfDriver-T552NJVX.js.map
|
|
3
|
+
//# sourceMappingURL=PdfDriver-T552NJVX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/FileViewer/drivers/PdfDriver/PdfDriver.tsx"],"names":["BASE_DIR","pdfjs","PdfDriver","__name","url","numPages","setNumPages","useState","pageNumber","setPageNumber","loading","setLoading","error","setError","width","setWidth","scale","setScale","containerRef","useRef","handleZoomIn","prev","handleZoomOut","useEffect","updateSize","options","useMemo","onDocumentLoadSuccess","onDocumentLoadError","changePage","offset","prevPageNumber","previousPage","nextPage","jsx","jsxs","Button","e","page","MinusIcon","Box","PlusIcon","Document","Page"],"mappings":"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","file":"PdfDriver-VUIDQV2Z.js","sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/Page/AnnotationLayer.css';\nimport 'react-pdf/dist/Page/TextLayer.css';\nimport { Box, Button, MinusIcon, PlusIcon } from '../../../Core';\n\nconst BASE_DIR = '/pdfjs';\n\n// Set up the worker - self-hosted configuration (client-side only)\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n pdfjs.GlobalWorkerOptions.workerSrc = `${BASE_DIR}/pdf.worker.min.js`;\n}\n\ninterface PdfDriverProps {\n url: string;\n}\n\nexport const PdfDriver: React.FC<PdfDriverProps> = ({ url }) => {\n const [numPages, setNumPages] = useState<number>(0);\n const [pageNumber, setPageNumber] = useState<number>(1);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n const [width, setWidth] = useState<number>(400);\n const [scale, setScale] = useState(1);\n const containerRef = useRef<HTMLDivElement>(null);\n const handleZoomIn = () => {\n setScale((prev) => Math.min(prev + 0.25, 4));\n };\n\n const handleZoomOut = () => {\n setScale((prev) => Math.max(prev - 0.25, 0.25));\n };\n\n useEffect(() => {\n const updateSize = () => {\n if (containerRef.current) {\n setWidth(containerRef.current.offsetWidth - 70);\n }\n };\n updateSize();\n window.addEventListener('resize', updateSize);\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n\n const options = useMemo(\n () => ({\n cMapPacked: true,\n cMapUrl: `${BASE_DIR}/cmaps/`,\n standardFontDataUrl: `${BASE_DIR}/standard_fonts/`,\n wasmUrl: `${BASE_DIR}/wasm/`,\n iccUrl: `${BASE_DIR}/icc/`,\n }),\n []\n );\n\n //TODO: add fix 100px problem;\n\n function onDocumentLoadSuccess({ numPages }: { numPages: number }): void {\n setNumPages(numPages);\n setLoading(false);\n }\n\n function onDocumentLoadError(error: Error): void {\n setError(`Failed to load PDF: ${error.message}`);\n setLoading(false);\n }\n\n function changePage(offset: number): void {\n setPageNumber((prevPageNumber) => prevPageNumber + offset);\n }\n\n function previousPage(): void {\n changePage(-1);\n }\n\n function nextPage(): void {\n changePage(1);\n }\n\n if (error) {\n return (\n <div className=\"flex items-center justify-center h-full w-full\">\n <div className=\"text-red-500 text-center\">\n <p>{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full w-full flex flex-col overflow-hidden pb-5\">\n {loading && (\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"text-gray-500\">Loading PDF...</div>\n </div>\n )}\n {numPages > 0 && (\n <div className=\"flex items-center justify-between flex-wrap gap-3 p-4\">\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"previous page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber <= 1}\n onClick={previousPage}\n p={5}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n }\n />\n\n <span className=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min={1}\n max={numPages}\n value={pageNumber}\n onChange={(e) => {\n const page = parseInt(e.target.value, 10);\n if (page >= 1 && page <= numPages) {\n setPageNumber(page);\n }\n }}\n className=\"w-15 px-1 py-1 border border-gray-400! rounded text-center\"\n />\n / {numPages}\n </span>\n <Button\n variant=\"outlined\"\n aria-label=\"next page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber >= numPages}\n onClick={nextPage}\n p={7}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n }\n />\n </div>\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-out\"\n color=\"secondary\"\n size=\"small\"\n icon={<MinusIcon style={{ width: 20, height: 20 }} />}\n onClick={handleZoomOut}\n disabled={scale <= 0.25}\n p={7}\n />\n <Box py={5} px={8}>\n {scale * 100}%\n </Box>\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-in\"\n size=\"small\"\n color=\"secondary\"\n icon={<PlusIcon style={{ width: 14, height: 14 }} />}\n onClick={handleZoomIn}\n disabled={scale >= 4}\n p={8}\n />\n </div>\n </div>\n )}\n <div ref={containerRef} className=\"flex-1 overflow-auto\">\n <Document\n options={options}\n file={url}\n onLoadSuccess={onDocumentLoadSuccess}\n onLoadError={onDocumentLoadError}\n loading=\"\"\n className=\"mx-auto w-fit\"\n >\n <Page\n pageNumber={pageNumber}\n renderTextLayer={true}\n renderAnnotationLayer={true}\n width={width * scale}\n className=\"h-auto w-full transition-[width] duration-[600ms] ease-in-out mx-auto\"\n />\n </Document>\n </div>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/FileViewer/drivers/PdfDriver/PdfDriver.tsx"],"names":["BASE_DIR","pdfjs","PdfDriver","__name","url","numPages","setNumPages","useState","pageNumber","setPageNumber","loading","setLoading","error","setError","width","setWidth","scale","setScale","containerRef","useRef","handleZoomIn","prev","handleZoomOut","useEffect","updateSize","options","useMemo","onDocumentLoadSuccess","onDocumentLoadError","changePage","offset","prevPageNumber","previousPage","nextPage","jsx","jsxs","Button","e","page","MinusIcon","Box","PlusIcon","Document","Page"],"mappings":"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","file":"PdfDriver-T552NJVX.js","sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/Page/AnnotationLayer.css';\nimport 'react-pdf/dist/Page/TextLayer.css';\nimport { Box, Button, MinusIcon, PlusIcon } from '../../../Core';\n\nconst BASE_DIR = '/pdfjs';\n\n// Set up the worker - self-hosted configuration (client-side only)\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n pdfjs.GlobalWorkerOptions.workerSrc = `${BASE_DIR}/pdf.worker.min.js`;\n}\n\ninterface PdfDriverProps {\n url: string;\n}\n\nexport const PdfDriver: React.FC<PdfDriverProps> = ({ url }) => {\n const [numPages, setNumPages] = useState<number>(0);\n const [pageNumber, setPageNumber] = useState<number>(1);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n const [width, setWidth] = useState<number>(400);\n const [scale, setScale] = useState(1);\n const containerRef = useRef<HTMLDivElement>(null);\n const handleZoomIn = () => {\n setScale((prev) => Math.min(prev + 0.25, 4));\n };\n\n const handleZoomOut = () => {\n setScale((prev) => Math.max(prev - 0.25, 0.25));\n };\n\n useEffect(() => {\n const updateSize = () => {\n if (containerRef.current) {\n setWidth(containerRef.current.offsetWidth - 70);\n }\n };\n updateSize();\n window.addEventListener('resize', updateSize);\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n\n const options = useMemo(\n () => ({\n cMapPacked: true,\n cMapUrl: `${BASE_DIR}/cmaps/`,\n standardFontDataUrl: `${BASE_DIR}/standard_fonts/`,\n wasmUrl: `${BASE_DIR}/wasm/`,\n iccUrl: `${BASE_DIR}/icc/`,\n }),\n []\n );\n\n //TODO: add fix 100px problem;\n\n function onDocumentLoadSuccess({ numPages }: { numPages: number }): void {\n setNumPages(numPages);\n setLoading(false);\n }\n\n function onDocumentLoadError(error: Error): void {\n setError(`Failed to load PDF: ${error.message}`);\n setLoading(false);\n }\n\n function changePage(offset: number): void {\n setPageNumber((prevPageNumber) => prevPageNumber + offset);\n }\n\n function previousPage(): void {\n changePage(-1);\n }\n\n function nextPage(): void {\n changePage(1);\n }\n\n if (error) {\n return (\n <div className=\"flex items-center justify-center h-full w-full\">\n <div className=\"text-red-500 text-center\">\n <p>{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full w-full flex flex-col overflow-hidden pb-5\">\n {loading && (\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"text-gray-500\">Loading PDF...</div>\n </div>\n )}\n {numPages > 0 && (\n <div className=\"flex items-center justify-center md:justify-between flex-wrap gap-3 p-4\">\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"previous page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber <= 1}\n onClick={previousPage}\n p={5}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n }\n />\n\n <span className=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min={1}\n max={numPages}\n value={pageNumber}\n onChange={(e) => {\n const page = parseInt(e.target.value, 10);\n if (page >= 1 && page <= numPages) {\n setPageNumber(page);\n }\n }}\n className=\"w-15 px-1 py-1 border border-gray-400! rounded text-center\"\n />\n / {numPages}\n </span>\n <Button\n variant=\"outlined\"\n aria-label=\"next page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber >= numPages}\n onClick={nextPage}\n p={7}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n }\n />\n </div>\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-out\"\n color=\"secondary\"\n size=\"small\"\n icon={<MinusIcon style={{ width: 20, height: 20 }} />}\n onClick={handleZoomOut}\n disabled={scale <= 0.25}\n p={7}\n />\n <Box py={5} px={8}>\n {scale * 100}%\n </Box>\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-in\"\n size=\"small\"\n color=\"secondary\"\n icon={<PlusIcon style={{ width: 14, height: 14 }} />}\n onClick={handleZoomIn}\n disabled={scale >= 4}\n p={8}\n />\n </div>\n </div>\n )}\n <div ref={containerRef} className=\"flex-1 overflow-auto\">\n <Document\n options={options}\n file={url}\n onLoadSuccess={onDocumentLoadSuccess}\n onLoadError={onDocumentLoadError}\n loading=\"\"\n className=\"mx-auto w-fit\"\n >\n <Page\n pageNumber={pageNumber}\n renderTextLayer={true}\n renderAnnotationLayer={true}\n width={width * scale}\n className=\"h-auto w-full transition-[width] duration-[600ms] ease-in-out mx-auto\"\n />\n </Document>\n </div>\n </div>\n );\n};\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import {a,z,Pa,mb,ma}from'./chunk-JKG3AKM4.mjs';import {useState,useRef,useEffect,useMemo}from'react';import {pdfjs,Document,Page}from'react-pdf';import'react-pdf/dist/Page/AnnotationLayer.css';import'react-pdf/dist/Page/TextLayer.css';import {jsx,jsxs}from'react/jsx-runtime';var l="/pdfjs";typeof window<"u"&&typeof document<"u"&&(pdfjs.GlobalWorkerOptions.workerSrc=`${l}/pdf.worker.min.js`);var G=a(({url:b})=>{let[a$1,y]=useState(0),[d,m]=useState(1),[N,f]=useState(true),[p,P]=useState(null),[k,L]=useState(400),[c,v]=useState(1),u=useRef(null),D=a(()=>{v(t=>Math.min(t+.25,4));},"handleZoomIn"),j=a(()=>{v(t=>Math.max(t-.25,.25));},"handleZoomOut");useEffect(()=>{let t=a(()=>{u.current&&L(u.current.offsetWidth-70);},"updateSize");return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[]);let z$1=useMemo(()=>({cMapPacked:true,cMapUrl:`${l}/cmaps/`,standardFontDataUrl:`${l}/standard_fonts/`,wasmUrl:`${l}/wasm/`,iccUrl:`${l}/icc/`}),[]);function E({numPages:t}){y(t),f(false);}a(E,"onDocumentLoadSuccess");function C(t){P(`Failed to load PDF: ${t.message}`),f(false);}a(C,"onDocumentLoadError");function g(t){m(i=>i+t);}a(g,"changePage");function M(){g(-1);}a(M,"previousPage");function S(){g(1);}return a(S,"nextPage"),p?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-red-500 text-center",children:jsx("p",{children:p})})}):jsxs("div",{className:"h-full w-full flex flex-col overflow-hidden pb-5",children:[N&&jsx("div",{className:"flex items-center justify-center h-full",children:jsx("div",{className:"text-gray-500",children:"Loading PDF..."})}),a$1>0&&jsxs("div",{className:"flex items-center justify-center md:justify-between flex-wrap gap-3 p-4",children:[jsxs("div",{className:"flex items-center justify-center gap-3",children:[jsx(z,{variant:"outlined","aria-label":"previous page",color:"secondary",size:"small",type:"button",disabled:d<=1,onClick:M,p:5,icon:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"m15 18-6-6 6-6"})})}),jsxs("span",{className:"flex items-center gap-2",children:[jsx("input",{type:"number",min:1,max:a$1,value:d,onChange:t=>{let i=parseInt(t.target.value,10);i>=1&&i<=a$1&&m(i);},className:"w-15 px-1 py-1 border border-gray-400! rounded text-center"}),"/ ",a$1]}),jsx(z,{variant:"outlined","aria-label":"next page",color:"secondary",size:"small",type:"button",disabled:d>=a$1,onClick:S,p:7,icon:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"m9 18 6-6-6-6"})})})]}),jsxs("div",{className:"flex items-center justify-center gap-3",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"secondary",size:"small",icon:jsx(Pa,{style:{width:20,height:20}}),onClick:j,disabled:c<=.25,p:7}),jsxs(mb,{py:5,px:8,children:[c*100,"%"]}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"secondary",icon:jsx(ma,{style:{width:14,height:14}}),onClick:D,disabled:c>=4,p:8})]})]}),jsx("div",{ref:u,className:"flex-1 overflow-auto",children:jsx(Document,{options:z$1,file:b,onLoadSuccess:E,onLoadError:C,loading:"",className:"mx-auto w-fit",children:jsx(Page,{pageNumber:d,renderTextLayer:true,renderAnnotationLayer:true,width:k*c,className:"h-auto w-full transition-[width] duration-[600ms] ease-in-out mx-auto"})})})]})},"PdfDriver");
|
|
2
|
+
export{G as PdfDriver};//# sourceMappingURL=PdfDriver-YEDZENTX.mjs.map
|
|
3
|
+
//# sourceMappingURL=PdfDriver-YEDZENTX.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/FileViewer/drivers/PdfDriver/PdfDriver.tsx"],"names":["BASE_DIR","pdfjs","PdfDriver","__name","url","numPages","setNumPages","useState","pageNumber","setPageNumber","loading","setLoading","error","setError","width","setWidth","scale","setScale","containerRef","useRef","handleZoomIn","prev","handleZoomOut","useEffect","updateSize","options","useMemo","onDocumentLoadSuccess","onDocumentLoadError","changePage","offset","prevPageNumber","previousPage","nextPage","jsx","jsxs","Button","e","page","MinusIcon","Box","PlusIcon","Document","Page"],"mappings":"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","file":"PdfDriver-7VZZUN7X.mjs","sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/Page/AnnotationLayer.css';\nimport 'react-pdf/dist/Page/TextLayer.css';\nimport { Box, Button, MinusIcon, PlusIcon } from '../../../Core';\n\nconst BASE_DIR = '/pdfjs';\n\n// Set up the worker - self-hosted configuration (client-side only)\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n pdfjs.GlobalWorkerOptions.workerSrc = `${BASE_DIR}/pdf.worker.min.js`;\n}\n\ninterface PdfDriverProps {\n url: string;\n}\n\nexport const PdfDriver: React.FC<PdfDriverProps> = ({ url }) => {\n const [numPages, setNumPages] = useState<number>(0);\n const [pageNumber, setPageNumber] = useState<number>(1);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n const [width, setWidth] = useState<number>(400);\n const [scale, setScale] = useState(1);\n const containerRef = useRef<HTMLDivElement>(null);\n const handleZoomIn = () => {\n setScale((prev) => Math.min(prev + 0.25, 4));\n };\n\n const handleZoomOut = () => {\n setScale((prev) => Math.max(prev - 0.25, 0.25));\n };\n\n useEffect(() => {\n const updateSize = () => {\n if (containerRef.current) {\n setWidth(containerRef.current.offsetWidth - 70);\n }\n };\n updateSize();\n window.addEventListener('resize', updateSize);\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n\n const options = useMemo(\n () => ({\n cMapPacked: true,\n cMapUrl: `${BASE_DIR}/cmaps/`,\n standardFontDataUrl: `${BASE_DIR}/standard_fonts/`,\n wasmUrl: `${BASE_DIR}/wasm/`,\n iccUrl: `${BASE_DIR}/icc/`,\n }),\n []\n );\n\n //TODO: add fix 100px problem;\n\n function onDocumentLoadSuccess({ numPages }: { numPages: number }): void {\n setNumPages(numPages);\n setLoading(false);\n }\n\n function onDocumentLoadError(error: Error): void {\n setError(`Failed to load PDF: ${error.message}`);\n setLoading(false);\n }\n\n function changePage(offset: number): void {\n setPageNumber((prevPageNumber) => prevPageNumber + offset);\n }\n\n function previousPage(): void {\n changePage(-1);\n }\n\n function nextPage(): void {\n changePage(1);\n }\n\n if (error) {\n return (\n <div className=\"flex items-center justify-center h-full w-full\">\n <div className=\"text-red-500 text-center\">\n <p>{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full w-full flex flex-col overflow-hidden pb-5\">\n {loading && (\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"text-gray-500\">Loading PDF...</div>\n </div>\n )}\n {numPages > 0 && (\n <div className=\"flex items-center justify-between flex-wrap gap-3 p-4\">\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"previous page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber <= 1}\n onClick={previousPage}\n p={5}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n }\n />\n\n <span className=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min={1}\n max={numPages}\n value={pageNumber}\n onChange={(e) => {\n const page = parseInt(e.target.value, 10);\n if (page >= 1 && page <= numPages) {\n setPageNumber(page);\n }\n }}\n className=\"w-15 px-1 py-1 border border-gray-400! rounded text-center\"\n />\n / {numPages}\n </span>\n <Button\n variant=\"outlined\"\n aria-label=\"next page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber >= numPages}\n onClick={nextPage}\n p={7}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n }\n />\n </div>\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-out\"\n color=\"secondary\"\n size=\"small\"\n icon={<MinusIcon style={{ width: 20, height: 20 }} />}\n onClick={handleZoomOut}\n disabled={scale <= 0.25}\n p={7}\n />\n <Box py={5} px={8}>\n {scale * 100}%\n </Box>\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-in\"\n size=\"small\"\n color=\"secondary\"\n icon={<PlusIcon style={{ width: 14, height: 14 }} />}\n onClick={handleZoomIn}\n disabled={scale >= 4}\n p={8}\n />\n </div>\n </div>\n )}\n <div ref={containerRef} className=\"flex-1 overflow-auto\">\n <Document\n options={options}\n file={url}\n onLoadSuccess={onDocumentLoadSuccess}\n onLoadError={onDocumentLoadError}\n loading=\"\"\n className=\"mx-auto w-fit\"\n >\n <Page\n pageNumber={pageNumber}\n renderTextLayer={true}\n renderAnnotationLayer={true}\n width={width * scale}\n className=\"h-auto w-full transition-[width] duration-[600ms] ease-in-out mx-auto\"\n />\n </Document>\n </div>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/FileViewer/drivers/PdfDriver/PdfDriver.tsx"],"names":["BASE_DIR","pdfjs","PdfDriver","__name","url","numPages","setNumPages","useState","pageNumber","setPageNumber","loading","setLoading","error","setError","width","setWidth","scale","setScale","containerRef","useRef","handleZoomIn","prev","handleZoomOut","useEffect","updateSize","options","useMemo","onDocumentLoadSuccess","onDocumentLoadError","changePage","offset","prevPageNumber","previousPage","nextPage","jsx","jsxs","Button","e","page","MinusIcon","Box","PlusIcon","Document","Page"],"mappings":"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","file":"PdfDriver-YEDZENTX.mjs","sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/Page/AnnotationLayer.css';\nimport 'react-pdf/dist/Page/TextLayer.css';\nimport { Box, Button, MinusIcon, PlusIcon } from '../../../Core';\n\nconst BASE_DIR = '/pdfjs';\n\n// Set up the worker - self-hosted configuration (client-side only)\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n pdfjs.GlobalWorkerOptions.workerSrc = `${BASE_DIR}/pdf.worker.min.js`;\n}\n\ninterface PdfDriverProps {\n url: string;\n}\n\nexport const PdfDriver: React.FC<PdfDriverProps> = ({ url }) => {\n const [numPages, setNumPages] = useState<number>(0);\n const [pageNumber, setPageNumber] = useState<number>(1);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n const [width, setWidth] = useState<number>(400);\n const [scale, setScale] = useState(1);\n const containerRef = useRef<HTMLDivElement>(null);\n const handleZoomIn = () => {\n setScale((prev) => Math.min(prev + 0.25, 4));\n };\n\n const handleZoomOut = () => {\n setScale((prev) => Math.max(prev - 0.25, 0.25));\n };\n\n useEffect(() => {\n const updateSize = () => {\n if (containerRef.current) {\n setWidth(containerRef.current.offsetWidth - 70);\n }\n };\n updateSize();\n window.addEventListener('resize', updateSize);\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n\n const options = useMemo(\n () => ({\n cMapPacked: true,\n cMapUrl: `${BASE_DIR}/cmaps/`,\n standardFontDataUrl: `${BASE_DIR}/standard_fonts/`,\n wasmUrl: `${BASE_DIR}/wasm/`,\n iccUrl: `${BASE_DIR}/icc/`,\n }),\n []\n );\n\n //TODO: add fix 100px problem;\n\n function onDocumentLoadSuccess({ numPages }: { numPages: number }): void {\n setNumPages(numPages);\n setLoading(false);\n }\n\n function onDocumentLoadError(error: Error): void {\n setError(`Failed to load PDF: ${error.message}`);\n setLoading(false);\n }\n\n function changePage(offset: number): void {\n setPageNumber((prevPageNumber) => prevPageNumber + offset);\n }\n\n function previousPage(): void {\n changePage(-1);\n }\n\n function nextPage(): void {\n changePage(1);\n }\n\n if (error) {\n return (\n <div className=\"flex items-center justify-center h-full w-full\">\n <div className=\"text-red-500 text-center\">\n <p>{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full w-full flex flex-col overflow-hidden pb-5\">\n {loading && (\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"text-gray-500\">Loading PDF...</div>\n </div>\n )}\n {numPages > 0 && (\n <div className=\"flex items-center justify-center md:justify-between flex-wrap gap-3 p-4\">\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"previous page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber <= 1}\n onClick={previousPage}\n p={5}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n }\n />\n\n <span className=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min={1}\n max={numPages}\n value={pageNumber}\n onChange={(e) => {\n const page = parseInt(e.target.value, 10);\n if (page >= 1 && page <= numPages) {\n setPageNumber(page);\n }\n }}\n className=\"w-15 px-1 py-1 border border-gray-400! rounded text-center\"\n />\n / {numPages}\n </span>\n <Button\n variant=\"outlined\"\n aria-label=\"next page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber >= numPages}\n onClick={nextPage}\n p={7}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n }\n />\n </div>\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-out\"\n color=\"secondary\"\n size=\"small\"\n icon={<MinusIcon style={{ width: 20, height: 20 }} />}\n onClick={handleZoomOut}\n disabled={scale <= 0.25}\n p={7}\n />\n <Box py={5} px={8}>\n {scale * 100}%\n </Box>\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-in\"\n size=\"small\"\n color=\"secondary\"\n icon={<PlusIcon style={{ width: 14, height: 14 }} />}\n onClick={handleZoomIn}\n disabled={scale >= 4}\n p={8}\n />\n </div>\n </div>\n )}\n <div ref={containerRef} className=\"flex-1 overflow-auto\">\n <Document\n options={options}\n file={url}\n onLoadSuccess={onDocumentLoadSuccess}\n onLoadError={onDocumentLoadError}\n loading=\"\"\n className=\"mx-auto w-fit\"\n >\n <Page\n pageNumber={pageNumber}\n renderTextLayer={true}\n renderAnnotationLayer={true}\n width={width * scale}\n className=\"h-auto w-full transition-[width] duration-[600ms] ease-in-out mx-auto\"\n />\n </Document>\n </div>\n </div>\n );\n};\n"]}
|
|
@@ -544,6 +544,8 @@ import H4,{createContext,forwardRef,useState,useCallback,useRef,useMemo,useEffec
|
|
|
544
544
|
transition: all 0.2s ease;
|
|
545
545
|
outline: none;
|
|
546
546
|
flex-direction: row;
|
|
547
|
+
text-align: start;
|
|
548
|
+
word-break: break-word;
|
|
547
549
|
|
|
548
550
|
&:hover {
|
|
549
551
|
background-color: ${o.select.item.hover.background};
|
|
@@ -1322,5 +1324,5 @@ import H4,{createContext,forwardRef,useState,useCallback,useRef,useMemo,useEffec
|
|
|
1322
1324
|
}
|
|
1323
1325
|
}
|
|
1324
1326
|
animation: move 1.5s linear infinite;
|
|
1325
|
-
`;export{H6 as $,ga as $a,i2 as A,l3 as Aa,d4 as Ab,B4 as B,c3 as Ba,Ml as Bb,G4 as C,b3 as Ca,yl as Cb,z4 as D,h3 as Da,Fl as Db,R4 as E,x3 as Ea,Pl as Eb,D4 as F,w3 as Fa,P8 as Fb,a2 as G,S3 as Ga,Xl as Gb,C2 as H,v3 as Ha,Ql as Hb,_4 as I,L3 as Ia,X4 as J,H3 as Ja,q4 as K,y3 as Ka,K4 as L,P3 as La,Q4 as M,H2 as Ma,o6 as N,$3 as Na,t6 as O,E3 as Oa,n6 as P,I3 as Pa,a6 as Q,M2 as Qa,d6 as R,q as Ra,s6 as S,gi as Sa,p6 as T,wi as Ta,c6 as U,yi as Ua,b6 as V,Zi as Va,h6 as W,B5 as Wa,f6 as X,Xi as Xa,m6 as Y,Qi as Ya,S6 as Z,ra as Za,V6 as _,sa as _a,t as a,M6 as aa,xa as ab,h1 as b,F6 as ba,Ea as bb,c,k6 as ca,Ra as cb,_2 as d,$6 as da,W5 as db,B as e,Z6 as ea,tC as eb,e1 as f,B6 as fa,_5 as fb,T as g,G6 as ga,hC as gb,A as h,A6 as ha,ZC as hb,B8 as i,f2 as ia,J5 as ib,T8 as j,D6 as ja,id as jb,G8 as k,x2 as ka,V7 as kb,f1 as l,m2 as la,y7 as lb,U2 as m,N6 as ma,Pd as mb,X2 as n,W6 as na,Td as nb,Y2 as o,d1 as oa,Rd as ob,q2 as p,U6 as pa,Jd as pb,Q2 as q,s1 as qa,ns as qb,j2 as r,Y6 as ra,ps as rb,l9 as s,J6 as sa,hs as sb,w1 as t,Q6 as ta,vs as tb,u,j6 as ua,Ps as ub,P4 as v,e3 as va,Os as vb,f as w,r3 as wa,Ws as wb,x,i3 as xa,_s as xb,V9 as y,a3 as ya,tl as yb,V1 as z,d3 as za,dl as zb};//# sourceMappingURL=chunk-
|
|
1326
|
-
//# sourceMappingURL=chunk-
|
|
1327
|
+
`;export{H6 as $,ga as $a,i2 as A,l3 as Aa,d4 as Ab,B4 as B,c3 as Ba,Ml as Bb,G4 as C,b3 as Ca,yl as Cb,z4 as D,h3 as Da,Fl as Db,R4 as E,x3 as Ea,Pl as Eb,D4 as F,w3 as Fa,P8 as Fb,a2 as G,S3 as Ga,Xl as Gb,C2 as H,v3 as Ha,Ql as Hb,_4 as I,L3 as Ia,X4 as J,H3 as Ja,q4 as K,y3 as Ka,K4 as L,P3 as La,Q4 as M,H2 as Ma,o6 as N,$3 as Na,t6 as O,E3 as Oa,n6 as P,I3 as Pa,a6 as Q,M2 as Qa,d6 as R,q as Ra,s6 as S,gi as Sa,p6 as T,wi as Ta,c6 as U,yi as Ua,b6 as V,Zi as Va,h6 as W,B5 as Wa,f6 as X,Xi as Xa,m6 as Y,Qi as Ya,S6 as Z,ra as Za,V6 as _,sa as _a,t as a,M6 as aa,xa as ab,h1 as b,F6 as ba,Ea as bb,c,k6 as ca,Ra as cb,_2 as d,$6 as da,W5 as db,B as e,Z6 as ea,tC as eb,e1 as f,B6 as fa,_5 as fb,T as g,G6 as ga,hC as gb,A as h,A6 as ha,ZC as hb,B8 as i,f2 as ia,J5 as ib,T8 as j,D6 as ja,id as jb,G8 as k,x2 as ka,V7 as kb,f1 as l,m2 as la,y7 as lb,U2 as m,N6 as ma,Pd as mb,X2 as n,W6 as na,Td as nb,Y2 as o,d1 as oa,Rd as ob,q2 as p,U6 as pa,Jd as pb,Q2 as q,s1 as qa,ns as qb,j2 as r,Y6 as ra,ps as rb,l9 as s,J6 as sa,hs as sb,w1 as t,Q6 as ta,vs as tb,u,j6 as ua,Ps as ub,P4 as v,e3 as va,Os as vb,f as w,r3 as wa,Ws as wb,x,i3 as xa,_s as xb,V9 as y,a3 as ya,tl as yb,V1 as z,d3 as za,dl as zb};//# sourceMappingURL=chunk-JKG3AKM4.mjs.map
|
|
1328
|
+
//# sourceMappingURL=chunk-JKG3AKM4.mjs.map
|