pdf-tsx 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -17
- package/dist/cjs/components/PDFViewer.cjs +1 -1
- package/dist/cjs/components/features/PDFAnnotations.cjs +1 -1
- package/dist/cjs/components/features/PDFAnnotations.module.cjs +1 -1
- package/dist/cjs/components/features/PDFPageFit.cjs +1 -1
- package/dist/cjs/components/features/PDFPrintButton.cjs +1 -1
- package/dist/cjs/components/features/PDFSignatures.cjs +1 -1
- package/dist/cjs/components/features/PDFSignatures.module.cjs +1 -1
- package/dist/cjs/context/ThemeContext.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/pdf-tsx.css +1 -1
- package/dist/cjs/utils/pdfFit.cjs +1 -0
- package/dist/components/PDFViewer.d.ts +2 -0
- package/dist/components/features/PDFAnnotations.d.ts +4 -0
- package/dist/components/features/PDFSignatures.d.ts +4 -0
- package/dist/context/ThemeContext.d.ts +2 -1
- package/dist/es/components/PDFViewer.js +147 -137
- package/dist/es/components/features/PDFAnnotations.js +16 -2
- package/dist/es/components/features/PDFAnnotations.module.js +12 -10
- package/dist/es/components/features/PDFPageFit.js +24 -34
- package/dist/es/components/features/PDFPrintButton.js +2 -2
- package/dist/es/components/features/PDFSignatures.js +20 -12
- package/dist/es/components/features/PDFSignatures.module.js +16 -14
- package/dist/es/context/ThemeContext.js +24 -24
- package/dist/es/index.js +14 -14
- package/dist/es/pdf-tsx.css +1 -1
- package/dist/es/utils/pdfFit.js +13 -0
- package/dist/index.d.ts +2 -2
- package/dist/utils/pdfFit.d.ts +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -83,13 +83,15 @@ The main component. Must wrap all feature components.
|
|
|
83
83
|
| `sidebar` | `ReactNode` | no | Content rendered on the left side |
|
|
84
84
|
| `toolbar` | `ReactNode` | no | Content rendered in the top toolbar |
|
|
85
85
|
| `onChangeFile` | `(file: File) => void` | no | Called when the user opens a different file |
|
|
86
|
+
| `defaultTheme` | `"light" \| "dark"` | no | Initial theme mode (default: `"light"`) |
|
|
86
87
|
| `themeOverrides` | `{ light?: Partial<Theme>; dark?: Partial<Theme> }` | no | Override individual theme tokens (see Theming) |
|
|
88
|
+
| `defaultFit` | `"width" \| "page"` | no | Initial zoom mode when a PDF is loaded |
|
|
87
89
|
|
|
88
90
|
---
|
|
89
91
|
|
|
90
92
|
## Theming
|
|
91
93
|
|
|
92
|
-
`PDFViewer` ships with built-in
|
|
94
|
+
`PDFViewer` ships with built-in light and dark themes. The default is `"light"`. Use `defaultTheme` to set the initial mode and `themeOverrides` to override individual tokens without replacing the whole theme.
|
|
93
95
|
|
|
94
96
|
```tsx
|
|
95
97
|
import { PDFViewer, darkTheme } from 'pdf-tsx'
|
|
@@ -169,21 +171,47 @@ import { FiImage, FiList } from 'react-icons/fi'
|
|
|
169
171
|
|
|
170
172
|
All feature components must be rendered inside `<PDFViewer>`. They read and write state via `usePDFViewer()` internally.
|
|
171
173
|
|
|
172
|
-
| Component
|
|
173
|
-
|
|
174
|
-
| `PDFThumbnails`
|
|
175
|
-
| `PDFOutline`
|
|
176
|
-
| `PDFAnnotations`
|
|
177
|
-
| `
|
|
178
|
-
| `
|
|
179
|
-
| `
|
|
180
|
-
| `
|
|
181
|
-
| `
|
|
182
|
-
| `
|
|
183
|
-
| `
|
|
184
|
-
| `
|
|
185
|
-
| `
|
|
186
|
-
| `
|
|
174
|
+
| Component | Icon props | Description |
|
|
175
|
+
|------------------------|-----------------------------------------------------|------------------------------------------------------|
|
|
176
|
+
| `PDFThumbnails` | — | Page thumbnail strip for quick navigation |
|
|
177
|
+
| `PDFOutline` | — | Document outline / bookmarks tree |
|
|
178
|
+
| `PDFAnnotations` | — | Display PDF annotations |
|
|
179
|
+
| `PDFAnnotationsIcon` | `icon` | Sidebar icon with annotation count badge |
|
|
180
|
+
| `PDFSignatures` | — | Display PDF digital signatures |
|
|
181
|
+
| `PDFSignaturesIcon` | `icon` | Sidebar icon with signature count badge |
|
|
182
|
+
| `PDFSearch` | `searchIcon` `prevIcon` `nextIcon` `clearIcon` | Full-text search with match highlighting |
|
|
183
|
+
| `PDFZoomControls` | `zoomInIcon` `zoomOutIcon` | Zoom in / zoom out buttons with percentage display |
|
|
184
|
+
| `PDFPageFit` | `fitWidthIcon` `fitPageIcon` | Fit-to-width and fit-to-page buttons |
|
|
185
|
+
| `PDFRotationControl` | `icon` | Rotate page clockwise |
|
|
186
|
+
| `PDFNavigation` | `prevIcon` `nextIcon` | Previous / next page buttons with current page input |
|
|
187
|
+
| `PDFDownloadButton` | `icon` | Download the current PDF file |
|
|
188
|
+
| `PDFChangeFile` | `icon` | Button to open a new PDF file |
|
|
189
|
+
| `PDFThemeToggle` | `lightIcon` `darkIcon` | Toggle between dark and light mode |
|
|
190
|
+
| `PDFPrintButton` | `icon` | Print the PDF using the browser's native print dialog|
|
|
191
|
+
|
|
192
|
+
### Count badges
|
|
193
|
+
|
|
194
|
+
`PDFSignaturesIcon` and `PDFAnnotationsIcon` are icon wrapper components intended for use as the `icon` prop in `PDFSidebar` panels. They render the provided icon with a small count badge in the top-right corner, automatically populated from the loaded PDF.
|
|
195
|
+
|
|
196
|
+
```tsx
|
|
197
|
+
import { PDFSidebar, PDFSignatures, PDFSignaturesIcon, PDFAnnotations, PDFAnnotationsIcon } from 'pdf-tsx'
|
|
198
|
+
import { FiPenTool, FiMessageSquare } from 'react-icons/fi'
|
|
199
|
+
|
|
200
|
+
<PDFSidebar panels={[
|
|
201
|
+
{
|
|
202
|
+
icon: <PDFSignaturesIcon icon={<FiPenTool size={17} />} />,
|
|
203
|
+
label: 'Signatures',
|
|
204
|
+
content: <PDFSignatures />,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
icon: <PDFAnnotationsIcon icon={<FiMessageSquare size={17} />} />,
|
|
208
|
+
label: 'Annotations',
|
|
209
|
+
content: <PDFAnnotations />,
|
|
210
|
+
},
|
|
211
|
+
]} />
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
The badge uses `var(--pdf-accent)` and respects `themeOverrides`.
|
|
187
215
|
|
|
188
216
|
---
|
|
189
217
|
|
|
@@ -196,9 +224,12 @@ import {
|
|
|
196
224
|
PDFZoomControls, PDFPageFit, PDFRotationControl,
|
|
197
225
|
PDFNavigation, PDFDownloadButton, PDFChangeFile,
|
|
198
226
|
PDFThemeToggle, PDFPrintButton,
|
|
227
|
+
PDFSignatures, PDFSignaturesIcon,
|
|
228
|
+
PDFAnnotations, PDFAnnotationsIcon,
|
|
199
229
|
} from 'pdf-tsx'
|
|
200
230
|
import {
|
|
201
|
-
FiImage, FiList,
|
|
231
|
+
FiImage, FiList, FiPenTool, FiMessageSquare,
|
|
232
|
+
FiSearch, FiChevronUp, FiChevronDown, FiX,
|
|
202
233
|
FiZoomIn, FiZoomOut, FiAlignJustify, FiMaximize2, FiRotateCw,
|
|
203
234
|
FiChevronLeft, FiChevronRight, FiDownload, FiFolderPlus,
|
|
204
235
|
FiPrinter, FiSun, FiMoon,
|
|
@@ -230,6 +261,8 @@ function App() {
|
|
|
230
261
|
<PDFSidebar panels={[
|
|
231
262
|
{ icon: <FiImage size={18} />, label: 'Thumbnails', content: <PDFThumbnails /> },
|
|
232
263
|
{ icon: <FiList size={18} />, label: 'Outline', content: <PDFOutline /> },
|
|
264
|
+
{ icon: <PDFSignaturesIcon icon={<FiPenTool size={17} />} />, label: 'Signatures', content: <PDFSignatures /> },
|
|
265
|
+
{ icon: <PDFAnnotationsIcon icon={<FiMessageSquare size={17} />} />, label: 'Annotations', content: <PDFAnnotations /> },
|
|
233
266
|
]} />
|
|
234
267
|
}
|
|
235
268
|
toolbar={
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../context/PDFViewerContext.cjs`),n=require(`../hooks/useScrollTracking.cjs`),r=require(`../hooks/useKeyboardShortcuts.cjs`),i=require(`../hooks/useTextLayer.cjs`),a=require(`../utils/url.cjs`),o=require(`../hooks/useAnnotationLayer.cjs`),s=require(`../context/ThemeContext.cjs`),
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../context/PDFViewerContext.cjs`),n=require(`../hooks/useScrollTracking.cjs`),r=require(`../hooks/useKeyboardShortcuts.cjs`),i=require(`../hooks/useTextLayer.cjs`),a=require(`../utils/url.cjs`),o=require(`../hooks/useAnnotationLayer.cjs`),s=require(`../utils/pdfFit.cjs`),c=require(`../context/ThemeContext.cjs`),l=require(`./PDFViewer.module.cjs`);let u=require(`react`);u=e.__toESM(u,1);let d=require(`pdfjs-dist`);d=e.__toESM(d,1);let f=require(`react/jsx-runtime`);var p=({file:e,workerSrc:p,sidebar:m,toolbar:h,onChangeFile:g,themeOverrides:_,defaultTheme:v,defaultFit:y})=>{(0,u.useEffect)(()=>{d.GlobalWorkerOptions.workerSrc=p},[p]);let[b,x]=(0,u.useState)(null),[S,C]=(0,u.useState)(0),[w,T]=(0,u.useState)(1),[E,D]=(0,u.useState)(0),[O,k]=(0,u.useState)(null),[A,j]=(0,u.useState)(null),[M,N]=(0,u.useState)([]),[P,F]=(0,u.useState)(new Set),[I,L]=(0,u.useState)([]),R=(0,u.useRef)(null),z=(0,u.useRef)([]),B=(0,u.useRef)([]),V=(0,u.useRef)(E);(0,u.useEffect)(()=>{V.current=E},[E]),(0,u.useEffect)(()=>{if(!b||!y||!R.current)return;let e=R.current;s.computeFit(y,b,e,V.current).then(T)},[b,y]);let{currentPage:H,goToPage:U}=n.useScrollTracking({pdf:b,numPages:S,zoom:w,rotation:E,containerRef:R,canvasRefs:z});r.useKeyboardShortcuts({pdf:b,currentPage:H,numPages:S,goToPage:U,setZoom:T,setRotation:D});let W=i.useTextLayer({pdf:b,zoom:w,rotation:E,numPages:S,canvasRefs:z}),G=o.useAnnotationLayer({pdf:b,zoom:w,rotation:E,numPages:S,goToPage:U});(0,u.useEffect)(()=>{(async()=>{let t=new FileReader;t.onload=async e=>{let t=new Uint8Array(e.target?.result);try{let e=await d.getDocument(t).promise;x(e),C(e.numPages),k(null),j(null),F(new Set),L([]),z.current=Array(e.numPages).fill(null),B.current=Array(e.numPages).fill(null)}catch(e){console.error(`Errore caricamento:`,e)}},t.readAsArrayBuffer(e)})()},[e]),(0,u.useEffect)(()=>{if(!b)return;F(new Set);let e=!1;return(async()=>{let t=B.current.map(e=>e?(e.cancel(),e.promise.catch(()=>{})):Promise.resolve());if(await Promise.all(t),B.current=Array(b.numPages).fill(null),e)return;let n=[];for(let e=1;e<=b.numPages;e++){let t=(await b.getPage(e)).getViewport({scale:w,rotation:E});n.push({width:t.width,height:t.height})}if(!e){L(n);for(let t=1;t<=b.numPages;t++){if(e)return;let n=await b.getPage(t),r=n.getViewport({scale:w,rotation:E}),i=z.current[t-1];if(i){let a=i.getContext(`2d`);if(a){i.height=r.height,i.width=r.width;let o=n.render({canvasContext:a,viewport:r,canvas:i});B.current[t-1]=o;try{await o.promise,e||F(e=>new Set(e).add(t))}catch(e){e&&typeof e==`object`&&`name`in e&&e.name!==`RenderingCancelledException`&&console.error(`Render error:`,e)}}}}}})(),()=>{e=!0,B.current.forEach(e=>e?.cancel())}},[b,w,E]);let[K,q]=(0,u.useState)([]);return(0,u.useEffect)(()=>{if(!b||M.length===0){q([]);return}let e=!1;return(async()=>{let t=[];for(let n of M){if(e)break;let[r,i,a,o]=(await b.getPage(n.page)).getViewport({scale:w,rotation:E}).convertToViewportRectangle(n.pdfRect);t.push({page:n.page,x:Math.min(r,a),y:Math.min(i,o),width:Math.abs(a-r),height:Math.abs(o-i)})}e||q(t)})(),()=>{e=!0}},[M,w,E,b]),(0,u.useEffect)(()=>{if(!O||!b)return;let e=!1;return(async()=>{let[t,n,r,i]=(await b.getPage(O.page)).getViewport({scale:w,rotation:E}).convertToViewportRectangle(O.pdfRect);e||j({page:O.page,x:Math.min(t,r),y:Math.min(n,i),width:Math.abs(r-t),height:Math.abs(i-n)})})(),()=>{e=!0}},[O,w,E,b]),(0,f.jsx)(c.ThemeProvider,{themeOverrides:_,defaultTheme:v,children:(0,f.jsx)(t.PDFViewerContext.Provider,{value:{pdf:b,numPages:S,zoom:w,setZoom:T,rotation:E,setRotation:D,currentPage:H,goToPage:U,containerRef:R,canvasRefs:z,file:e,highlight:O,setHighlight:k,searchMatches:M,setSearchMatches:N,onChangeFile:g},children:(0,f.jsxs)(`div`,{className:l.default.appLayout,children:[m,(0,f.jsxs)(`div`,{className:l.default.mainContent,children:[h&&(0,f.jsx)(`div`,{className:l.default.toolbar,children:h}),(0,f.jsx)(`div`,{className:l.default.scrollContainer,ref:R,children:Array.from({length:S},(e,t)=>{let n=P.has(t+1),r=I[t];return(0,f.jsxs)(`div`,{className:l.default.pageWrapper,children:[!n&&r&&(0,f.jsx)(`div`,{className:l.default.pageSkeleton,style:{width:r.width,height:r.height}}),(0,f.jsx)(`canvas`,{className:l.default.pageCanvas,ref:e=>{z.current[t]=e},style:{display:n?`block`:`none`}}),(0,f.jsx)(`div`,{className:`textLayer ${l.default.textLayer}`,ref:e=>{W.current[t]=e}}),G.filter(e=>e.page===t+1).map((e,t)=>(0,f.jsx)(`a`,{className:l.default.linkOverlay,href:e.url&&a.isSafeUrl(e.url)?e.url:`#`,target:`_blank`,rel:`noopener noreferrer`,style:{left:e.x,top:e.y,width:e.width,height:e.height},onClick:t=>{(!e.url||!a.isSafeUrl(e.url))&&(t.preventDefault(),e.url||e._handleClick())}},t)),K.filter(e=>e.page===t+1).map((e,t)=>(0,f.jsx)(`div`,{className:l.default.searchMatchOverlay,style:{left:e.x,top:e.y,width:e.width,height:e.height}},t)),O&&A?.page===t+1&&(0,f.jsx)(`div`,{className:l.default.highlightOverlay,style:{left:A.x,top:A.y,width:A.width,height:A.height}})]},`${t}-${E}`)})})]})]})})})};exports.default=p;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../hooks/useAnnotations.cjs`),n=require(`./PDFAnnotations.module.cjs`);let r=require(`react/compiler-runtime`),i=require(`react/jsx-runtime`);var a={Text:`Nota`,Highlight:`Evidenziazione`,Underline:`Sottolineatura`,StrikeOut:`Barrato`,FreeText:`Testo libero`,Ink:`Disegno`,Square:`Rettangolo`,Circle:`Cerchio`,Line:`Linea`,Stamp:`Timbro`,FileAttachment:`Allegato`};function o(e){return e?`rgb(${e.r}, ${e.g}, ${e.b})`:`#d4d4d8`}function s(e){let t=(0,r.c)(22),{ann:s,onClick:c}=e,l=a[s.subtype]??s.subtype,u=`${n.default.card} ${s.rect?n.default.cardClickable:``}`,d;t[0]===s.color?d=t[1]:(d=o(s.color),t[0]=s.color,t[1]=d);let f=`3px solid ${d}`,p;t[2]===f?p=t[3]:(p={borderLeft:f},t[2]=f,t[3]=p);let m;t[4]===l?m=t[5]:(m=(0,i.jsx)(`span`,{className:n.default.cardLabel,children:l}),t[4]=l,t[5]=m);let h;t[6]===s.page?h=t[7]:(h=(0,i.jsxs)(`span`,{className:n.default.cardPage,children:[`p.`,s.page]}),t[6]=s.page,t[7]=h);let g;t[8]!==m||t[9]!==h?(g=(0,i.jsxs)(`div`,{className:n.default.cardHeader,children:[m,h]}),t[8]=m,t[9]=h,t[10]=g):g=t[10];let _;t[11]===s.title?_=t[12]:(_=s.title&&(0,i.jsx)(`div`,{className:n.default.cardAuthor,children:s.title}),t[11]=s.title,t[12]=_);let v;t[13]===s.contents?v=t[14]:(v=s.contents&&(0,i.jsx)(`div`,{className:n.default.cardContent,children:s.contents}),t[13]=s.contents,t[14]=v);let y;return t[15]!==c||t[16]!==u||t[17]!==p||t[18]!==g||t[19]!==_||t[20]!==v?(y=(0,i.jsxs)(`div`,{className:u,style:p,onClick:c,children:[g,_,v]}),t[15]=c,t[16]=u,t[17]=p,t[18]=g,t[19]=_,t[20]=v,t[21]=y):y=t[21],y}function c(){let{pdf:r,goToPage:a,setHighlight:o}=e.usePDFViewer(),{annotations:c,loading:l}=t.useAnnotations({pdf:r}),u=e=>{a(e.page),e.rect&&o({page:e.page,pdfRect:e.rect})},d=c.reduce((e,t)=>((e[t.page]??=[]).push(t),e),{});return(0,i.jsxs)(`div`,{className:n.default.list,children:[l&&(0,i.jsx)(`div`,{className:n.default.emptyState,children:`Caricamento...`}),!l&&c.length===0&&(0,i.jsx)(`div`,{className:n.default.emptyState,children:`Nessuna annotazione rilevata.`}),!l&&Object.entries(d).map(([e,t])=>(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`div`,{className:n.default.pageHeader,children:[`Pagina `,e]}),t.map(e=>(0,i.jsx)(s,{ann:e,onClick:()=>u(e)},e.id))]},e))]})}exports.PDFAnnotations=c;
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../hooks/useAnnotations.cjs`),n=require(`./PDFAnnotations.module.cjs`);let r=require(`react/compiler-runtime`),i=require(`react/jsx-runtime`);var a={Text:`Nota`,Highlight:`Evidenziazione`,Underline:`Sottolineatura`,StrikeOut:`Barrato`,FreeText:`Testo libero`,Ink:`Disegno`,Square:`Rettangolo`,Circle:`Cerchio`,Line:`Linea`,Stamp:`Timbro`,FileAttachment:`Allegato`};function o(e){return e?`rgb(${e.r}, ${e.g}, ${e.b})`:`#d4d4d8`}function s(e){let t=(0,r.c)(22),{ann:s,onClick:c}=e,l=a[s.subtype]??s.subtype,u=`${n.default.card} ${s.rect?n.default.cardClickable:``}`,d;t[0]===s.color?d=t[1]:(d=o(s.color),t[0]=s.color,t[1]=d);let f=`3px solid ${d}`,p;t[2]===f?p=t[3]:(p={borderLeft:f},t[2]=f,t[3]=p);let m;t[4]===l?m=t[5]:(m=(0,i.jsx)(`span`,{className:n.default.cardLabel,children:l}),t[4]=l,t[5]=m);let h;t[6]===s.page?h=t[7]:(h=(0,i.jsxs)(`span`,{className:n.default.cardPage,children:[`p.`,s.page]}),t[6]=s.page,t[7]=h);let g;t[8]!==m||t[9]!==h?(g=(0,i.jsxs)(`div`,{className:n.default.cardHeader,children:[m,h]}),t[8]=m,t[9]=h,t[10]=g):g=t[10];let _;t[11]===s.title?_=t[12]:(_=s.title&&(0,i.jsx)(`div`,{className:n.default.cardAuthor,children:s.title}),t[11]=s.title,t[12]=_);let v;t[13]===s.contents?v=t[14]:(v=s.contents&&(0,i.jsx)(`div`,{className:n.default.cardContent,children:s.contents}),t[13]=s.contents,t[14]=v);let y;return t[15]!==c||t[16]!==u||t[17]!==p||t[18]!==g||t[19]!==_||t[20]!==v?(y=(0,i.jsxs)(`div`,{className:u,style:p,onClick:c,children:[g,_,v]}),t[15]=c,t[16]=u,t[17]=p,t[18]=g,t[19]=_,t[20]=v,t[21]=y):y=t[21],y}function c(a){let o=(0,r.c)(8),{icon:s}=a,{pdf:c}=e.usePDFViewer(),l;o[0]===c?l=o[1]:(l={pdf:c},o[0]=c,o[1]=l);let{annotations:u,loading:d}=t.useAnnotations(l),f=u.length,p;o[2]!==f||o[3]!==d?(p=!d&&f>0&&(0,i.jsx)(`span`,{className:n.default.badge,children:f>99?`99+`:f}),o[2]=f,o[3]=d,o[4]=p):p=o[4];let m;return o[5]!==s||o[6]!==p?(m=(0,i.jsxs)(`span`,{className:n.default.iconWrapper,children:[s,p]}),o[5]=s,o[6]=p,o[7]=m):m=o[7],m}function l(){let{pdf:r,goToPage:a,setHighlight:o}=e.usePDFViewer(),{annotations:c,loading:l}=t.useAnnotations({pdf:r}),u=e=>{a(e.page),e.rect&&o({page:e.page,pdfRect:e.rect})},d=c.reduce((e,t)=>((e[t.page]??=[]).push(t),e),{});return(0,i.jsxs)(`div`,{className:n.default.list,children:[l&&(0,i.jsx)(`div`,{className:n.default.emptyState,children:`Caricamento...`}),!l&&c.length===0&&(0,i.jsx)(`div`,{className:n.default.emptyState,children:`Nessuna annotazione rilevata.`}),!l&&Object.entries(d).map(([e,t])=>(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`div`,{className:n.default.pageHeader,children:[`Pagina `,e]}),t.map(e=>(0,i.jsx)(s,{ann:e,onClick:()=>u(e)},e.id))]},e))]})}exports.PDFAnnotations=l,exports.PDFAnnotationsIcon=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={list:`
|
|
1
|
+
var e={list:`_list_10scn_1`,emptyState:`_emptyState_10scn_11`,pageHeader:`_pageHeader_10scn_23`,card:`_card_10scn_45`,cardClickable:`_cardClickable_10scn_65`,cardHeader:`_cardHeader_10scn_81`,cardLabel:`_cardLabel_10scn_95`,cardPage:`_cardPage_10scn_107`,cardAuthor:`_cardAuthor_10scn_117`,cardContent:`_cardContent_10scn_129`,iconWrapper:`_iconWrapper_10scn_141`,badge:`_badge_10scn_155`};exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../ui/ToolbarButton.cjs`);let
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../../utils/pdfFit.cjs`),r=require(`../ui/ToolbarButton.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/compiler-runtime`),o=require(`react/jsx-runtime`);function s(e){let i=(0,a.c)(18),{fitWidthIcon:s,fitPageIcon:c}=e,{pdf:l,rotation:u,setZoom:d,containerRef:f}=t.usePDFViewer(),p;i[0]!==f||i[1]!==l||i[2]!==u||i[3]!==d?(p=async e=>{!l||!f.current||d(await n.computeFit(e,l,f.current,u))},i[0]=f,i[1]=l,i[2]=u,i[3]=d,i[4]=p):p=i[4];let m=p,h;i[5]===m?h=i[6]:(h=()=>m(`width`),i[5]=m,i[6]=h);let g;i[7]!==s||i[8]!==h?(g=(0,o.jsx)(r.ToolbarButton,{onClick:h,title:`Adatta alla larghezza`,children:s}),i[7]=s,i[8]=h,i[9]=g):g=i[9];let _;i[10]===m?_=i[11]:(_=()=>m(`page`),i[10]=m,i[11]=_);let v;i[12]!==c||i[13]!==_?(v=(0,o.jsx)(r.ToolbarButton,{onClick:_,title:`Adatta pagina intera`,children:c}),i[12]=c,i[13]=_,i[14]=v):v=i[14];let y;return i[15]!==g||i[16]!==v?(y=(0,o.jsxs)(o.Fragment,{children:[g,v]}),i[15]=g,i[16]=v,i[17]=y):y=i[17],y}exports.PDFPageFit=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../ui/ToolbarButton.cjs`);let r=require(`react`);r=e.__toESM(r,1);let i=require(`react/compiler-runtime`),a=require(`react/jsx-runtime`);function o(e){let r=(0,i.c)(5),{icon:o}=e,{file:s}=t.usePDFViewer(),c;r[0]===s?c=r[1]:(c=()=>{let e=URL.createObjectURL(s),t=document.createElement(`iframe`);t.style.display=`none`,t.src=e,document.body.appendChild(t),t.onload=()=>{t.contentWindow?.
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../ui/ToolbarButton.cjs`);let r=require(`react`);r=e.__toESM(r,1);let i=require(`react/compiler-runtime`),a=require(`react/jsx-runtime`);function o(e){let r=(0,i.c)(5),{icon:o}=e,{file:s}=t.usePDFViewer(),c;r[0]===s?c=r[1]:(c=()=>{let e=URL.createObjectURL(s),t=document.createElement(`iframe`);t.style.display=`none`,t.src=e,document.body.appendChild(t),t.onload=()=>{t.contentWindow?.addEventListener(`afterprint`,()=>{document.body.removeChild(t),URL.revokeObjectURL(e)},{once:!0}),t.contentWindow?.print()}},r[0]=s,r[1]=c);let l=c,u;return r[2]!==l||r[3]!==o?(u=(0,a.jsx)(n.ToolbarButton,{onClick:l,title:`Stampa PDF`,children:o}),r[2]=l,r[3]=o,r[4]=u):u=r[4],u}exports.PDFPrintButton=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../hooks/useSignatures.cjs`),n=require(`./PDFSignatures.module.cjs`);let r=require(`react/compiler-runtime`),i=require(`react/jsx-runtime`);function a(e){if(!e)return;let t=e.match(/D:(\d{4})(\d{2})(\d{2})(\d{2})?(\d{2})?(\d{2})?/);if(!t)return e;let[,n,r,i,a=`00`,o=`00`]=t;return`${i}/${r}/${n} ${a}:${o}`}function o(e){let t=(0,r.c)(31),{sig:o,onClick:s}=e,c=`${n.default.card} ${o.signed?n.default.cardSigned:``} ${o.rect?n.default.cardClickable:``}`,l=`${n.default.statusDot} ${o.signed?n.default.statusDotSigned:``}`,u=o.signed?`✓`:`○`,d;t[0]!==l||t[1]!==u?(d=(0,i.jsx)(`div`,{className:l,children:u}),t[0]=l,t[1]=u,t[2]=d):d=t[2];let f=`${n.default.statusLabel} ${o.signed?n.default.statusLabelSigned:``}`,p=o.signed?`Firmato`:`Non firmato`,m;t[3]!==f||t[4]!==p?(m=(0,i.jsx)(`span`,{className:f,children:p}),t[3]=f,t[4]=p,t[5]=m):m=t[5];let h;t[6]!==d||t[7]!==m?(h=(0,i.jsxs)(`div`,{className:n.default.cardHeader,children:[d,m]}),t[6]=d,t[7]=m,t[8]=h):h=t[8];let g;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Campo: `}),t[9]=g):g=t[9];let _;t[10]===o.fieldName?_=t[11]:(_=(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[g,o.fieldName]}),t[10]=o.fieldName,t[11]=_);let v;t[12]===o.signerName?v=t[13]:(v=o.signerName&&(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Firmatario: `}),o.signerName]}),t[12]=o.signerName,t[13]=v);let y;t[14]===o.signDate?y=t[15]:(y=o.signDate&&(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Data: `}),a(o.signDate)]}),t[14]=o.signDate,t[15]=y);let b;t[16]===o.reason?b=t[17]:(b=o.reason&&(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Motivo: `}),o.reason]}),t[16]=o.reason,t[17]=b);let x;t[18]===o.location?x=t[19]:(x=o.location&&(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Luogo: `}),o.location]}),t[18]=o.location,t[19]=x);let S;t[20]!==_||t[21]!==v||t[22]!==y||t[23]!==b||t[24]!==x?(S=(0,i.jsxs)(`div`,{className:n.default.fieldList,children:[_,v,y,b,x]}),t[20]=_,t[21]=v,t[22]=y,t[23]=b,t[24]=x,t[25]=S):S=t[25];let C;return t[26]!==s||t[27]!==c||t[28]!==S||t[29]!==h?(C=(0,i.jsxs)(`div`,{className:c,onClick:s,children:[h,S]}),t[26]=s,t[27]=c,t[28]=S,t[29]=h,t[30]=C):C=t[30],C}function s(){let a=(0,r.c)(
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../hooks/useSignatures.cjs`),n=require(`./PDFSignatures.module.cjs`);let r=require(`react/compiler-runtime`),i=require(`react/jsx-runtime`);function a(e){if(!e)return;let t=e.match(/D:(\d{4})(\d{2})(\d{2})(\d{2})?(\d{2})?(\d{2})?/);if(!t)return e;let[,n,r,i,a=`00`,o=`00`]=t;return`${i}/${r}/${n} ${a}:${o}`}function o(e){let t=(0,r.c)(31),{sig:o,onClick:s}=e,c=`${n.default.card} ${o.signed?n.default.cardSigned:``} ${o.rect?n.default.cardClickable:``}`,l=`${n.default.statusDot} ${o.signed?n.default.statusDotSigned:``}`,u=o.signed?`✓`:`○`,d;t[0]!==l||t[1]!==u?(d=(0,i.jsx)(`div`,{className:l,children:u}),t[0]=l,t[1]=u,t[2]=d):d=t[2];let f=`${n.default.statusLabel} ${o.signed?n.default.statusLabelSigned:``}`,p=o.signed?`Firmato`:`Non firmato`,m;t[3]!==f||t[4]!==p?(m=(0,i.jsx)(`span`,{className:f,children:p}),t[3]=f,t[4]=p,t[5]=m):m=t[5];let h;t[6]!==d||t[7]!==m?(h=(0,i.jsxs)(`div`,{className:n.default.cardHeader,children:[d,m]}),t[6]=d,t[7]=m,t[8]=h):h=t[8];let g;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Campo: `}),t[9]=g):g=t[9];let _;t[10]===o.fieldName?_=t[11]:(_=(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[g,o.fieldName]}),t[10]=o.fieldName,t[11]=_);let v;t[12]===o.signerName?v=t[13]:(v=o.signerName&&(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Firmatario: `}),o.signerName]}),t[12]=o.signerName,t[13]=v);let y;t[14]===o.signDate?y=t[15]:(y=o.signDate&&(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Data: `}),a(o.signDate)]}),t[14]=o.signDate,t[15]=y);let b;t[16]===o.reason?b=t[17]:(b=o.reason&&(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Motivo: `}),o.reason]}),t[16]=o.reason,t[17]=b);let x;t[18]===o.location?x=t[19]:(x=o.location&&(0,i.jsxs)(`div`,{className:n.default.fieldRow,children:[(0,i.jsx)(`span`,{className:n.default.fieldLabel,children:`Luogo: `}),o.location]}),t[18]=o.location,t[19]=x);let S;t[20]!==_||t[21]!==v||t[22]!==y||t[23]!==b||t[24]!==x?(S=(0,i.jsxs)(`div`,{className:n.default.fieldList,children:[_,v,y,b,x]}),t[20]=_,t[21]=v,t[22]=y,t[23]=b,t[24]=x,t[25]=S):S=t[25];let C;return t[26]!==s||t[27]!==c||t[28]!==S||t[29]!==h?(C=(0,i.jsxs)(`div`,{className:c,onClick:s,children:[h,S]}),t[26]=s,t[27]=c,t[28]=S,t[29]=h,t[30]=C):C=t[30],C}function s(a){let o=(0,r.c)(8),{icon:s}=a,{pdf:c}=e.usePDFViewer(),l;o[0]===c?l=o[1]:(l={pdf:c},o[0]=c,o[1]=l);let{signatures:u,loading:d}=t.useSignatures(l),f=u.length,p;o[2]!==f||o[3]!==d?(p=!d&&f>0&&(0,i.jsx)(`span`,{className:n.default.badge,children:f>99?`99+`:f}),o[2]=f,o[3]=d,o[4]=p):p=o[4];let m;return o[5]!==s||o[6]!==p?(m=(0,i.jsxs)(`span`,{className:n.default.iconWrapper,children:[s,p]}),o[5]=s,o[6]=p,o[7]=m):m=o[7],m}function c(){let a=(0,r.c)(18),{pdf:s,goToPage:c,setHighlight:l}=e.usePDFViewer(),u;a[0]===s?u=a[1]:(u={pdf:s},a[0]=s,a[1]=u);let{signatures:d,loading:f}=t.useSignatures(u),p;a[2]!==c||a[3]!==l?(p=e=>{c(e.page),e.rect&&l({page:e.page,pdfRect:e.rect})},a[2]=c,a[3]=l,a[4]=p):p=a[4];let m=p,h;a[5]===f?h=a[6]:(h=f&&(0,i.jsx)(`div`,{className:n.default.emptyState,children:`Caricamento...`}),a[5]=f,a[6]=h);let g;a[7]!==f||a[8]!==d?(g=!f&&d.length===0&&(0,i.jsx)(`div`,{className:n.default.emptyState,children:`Nessuna firma rilevata.`}),a[7]=f,a[8]=d,a[9]=g):g=a[9];let _;a[10]!==m||a[11]!==f||a[12]!==d?(_=!f&&d.map((e,t)=>(0,i.jsx)(o,{sig:e,onClick:()=>m(e)},t)),a[10]=m,a[11]=f,a[12]=d,a[13]=_):_=a[13];let v;return a[14]!==h||a[15]!==g||a[16]!==_?(v=(0,i.jsxs)(`div`,{className:n.default.list,children:[h,g,_]}),a[14]=h,a[15]=g,a[16]=_,a[17]=v):v=a[17],v}exports.PDFSignatures=c,exports.PDFSignaturesIcon=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={list:`
|
|
1
|
+
var e={list:`_list_11831_1`,emptyState:`_emptyState_11831_11`,card:`_card_11831_23`,cardClickable:`_cardClickable_11831_45`,cardSigned:`_cardSigned_11831_61`,cardHeader:`_cardHeader_11831_71`,statusDot:`_statusDot_11831_85`,statusDotSigned:`_statusDotSigned_11831_113`,statusLabel:`_statusLabel_11831_121`,statusLabelSigned:`_statusLabelSigned_11831_137`,fieldList:`_fieldList_11831_145`,fieldRow:`_fieldRow_11831_157`,fieldLabel:`_fieldLabel_11831_167`,disclaimer:`_disclaimer_11831_175`,iconWrapper:`_iconWrapper_11831_197`,badge:`_badge_11831_211`};exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../theme.cjs`);let t=require(`react`),n=require(`react/compiler-runtime`),r=require(`react/jsx-runtime`);var i=(0,t.createContext)(null);function a(a){let s=(0,n.c)(17),{children:c,themeOverrides:l}=a,[
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../theme.cjs`);let t=require(`react`),n=require(`react/compiler-runtime`),r=require(`react/jsx-runtime`);var i=(0,t.createContext)(null);function a(a){let s=(0,n.c)(17),{children:c,themeOverrides:l,defaultTheme:u}=a,[d,f]=(0,t.useState)((u===void 0?`light`:u)===`dark`),p,m;s[0]!==d||s[1]!==l?.dark||s[2]!==l?.light?(m=d?{...e.darkTheme,...l?.dark}:{...e.lightTheme,...l?.light},p=e.themeToCssVars(m),s[0]=d,s[1]=l?.dark,s[2]=l?.light,s[3]=p,s[4]=m):(p=s[3],m=s[4]);let h=p,g;s[5]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>f(o),s[5]=g):g=s[5];let _;s[6]!==d||s[7]!==m?(_={isDark:d,toggleTheme:g,theme:m},s[6]=d,s[7]=m,s[8]=_):_=s[8];let v=h,y;s[9]===v?y=s[10]:(y={...v,height:`100%`,width:`100%`},s[9]=v,s[10]=y);let b;s[11]!==c||s[12]!==y?(b=(0,r.jsx)(`div`,{style:y,children:c}),s[11]=c,s[12]=y,s[13]=b):b=s[13];let x;return s[14]!==_||s[15]!==b?(x=(0,r.jsx)(i.Provider,{value:_,children:b}),s[14]=_,s[15]=b,s[16]=x):x=s[16],x}function o(e){return!e}function s(){let e=(0,t.useContext)(i);if(!e)throw Error(`useTheme must be used inside <ThemeProvider>`);return e}exports.ThemeProvider=a,exports.useTheme=s;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme.cjs`),t=require(`./components/PDFViewer.cjs`),n=require(`./components/PDFSidebar.cjs`),r=require(`./components/features/PDFAnnotations.cjs`),i=require(`./components/features/PDFChangeFile.cjs`),a=require(`./components/features/PDFDownloadButton.cjs`),o=require(`./components/features/PDFNavigation.cjs`),s=require(`./components/features/PDFOutline.cjs`),c=require(`./components/features/PDFPageFit.cjs`),l=require(`./components/features/PDFRotationControl.cjs`),u=require(`./components/features/PDFSearch.cjs`),d=require(`./components/features/PDFSignatures.cjs`),f=require(`./components/features/PDFThumbnails.cjs`),p=require(`./components/features/PDFZoomControls.cjs`),m=require(`./components/features/PDFThemeToggle.cjs`),h=require(`./components/features/PDFPrintButton.cjs`);exports.PDFAnnotations=r.PDFAnnotations,exports.PDFChangeFile=i.PDFChangeFile,exports.PDFDownloadButton=a.PDFDownloadButton,exports.PDFNavigation=o.PDFNavigation,exports.PDFOutline=s.PDFOutline,exports.PDFPageFit=c.PDFPageFit,exports.PDFPrintButton=h.PDFPrintButton,exports.PDFRotationControl=l.PDFRotationControl,exports.PDFSearch=u.PDFSearch,exports.PDFSidebar=n.PDFSidebar,exports.PDFSignatures=d.PDFSignatures,exports.PDFThemeToggle=m.PDFThemeToggle,exports.PDFThumbnails=f.PDFThumbnails,exports.PDFViewer=t,exports.PDFZoomControls=p.PDFZoomControls,exports.darkTheme=e.darkTheme,exports.lightTheme=e.lightTheme;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme.cjs`),t=require(`./components/PDFViewer.cjs`),n=require(`./components/PDFSidebar.cjs`),r=require(`./components/features/PDFAnnotations.cjs`),i=require(`./components/features/PDFChangeFile.cjs`),a=require(`./components/features/PDFDownloadButton.cjs`),o=require(`./components/features/PDFNavigation.cjs`),s=require(`./components/features/PDFOutline.cjs`),c=require(`./components/features/PDFPageFit.cjs`),l=require(`./components/features/PDFRotationControl.cjs`),u=require(`./components/features/PDFSearch.cjs`),d=require(`./components/features/PDFSignatures.cjs`),f=require(`./components/features/PDFThumbnails.cjs`),p=require(`./components/features/PDFZoomControls.cjs`),m=require(`./components/features/PDFThemeToggle.cjs`),h=require(`./components/features/PDFPrintButton.cjs`);exports.PDFAnnotations=r.PDFAnnotations,exports.PDFAnnotationsIcon=r.PDFAnnotationsIcon,exports.PDFChangeFile=i.PDFChangeFile,exports.PDFDownloadButton=a.PDFDownloadButton,exports.PDFNavigation=o.PDFNavigation,exports.PDFOutline=s.PDFOutline,exports.PDFPageFit=c.PDFPageFit,exports.PDFPrintButton=h.PDFPrintButton,exports.PDFRotationControl=l.PDFRotationControl,exports.PDFSearch=u.PDFSearch,exports.PDFSidebar=n.PDFSidebar,exports.PDFSignatures=d.PDFSignatures,exports.PDFSignaturesIcon=d.PDFSignaturesIcon,exports.PDFThemeToggle=m.PDFThemeToggle,exports.PDFThumbnails=f.PDFThumbnails,exports.PDFViewer=t,exports.PDFZoomControls=p.PDFZoomControls,exports.darkTheme=e.darkTheme,exports.lightTheme=e.lightTheme;
|
package/dist/cjs/pdf-tsx.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._wrapper_184n8_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._buttonBar_184n8_13{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._panelButton_184n8_33{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_184n8_33:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_184n8_73{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_184n8_73:hover{color:var(--pdf-accent-light)}._contentPanel_184n8_91{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_184n8_107{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_184n8_131{flex:1;overflow-y:auto}._appLayout_nel8e_1{width:100%;height:100%;display:flex;overflow:hidden}._mainContent_nel8e_15{flex-direction:column;flex:1;min-width:0;display:flex}._toolbar_nel8e_29{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_nel8e_53{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_nel8e_73{margin-bottom:25px;position:relative}._pageCanvas_nel8e_83{box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block}._textLayer_nel8e_97{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:0;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_nel8e_97 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_nel8e_97>:not(._markedContent_nel8e_149),._textLayer_nel8e_97 ._markedContent_nel8e_149 span:not(._markedContent_nel8e_149){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_nel8e_97 ._markedContent_nel8e_149{display:contents}._textLayer_nel8e_97 ._endOfContent_nel8e_177{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_nel8e_97._selecting_nel8e_195 ._endOfContent_nel8e_177{top:0}._textLayer_nel8e_97 ::selection{background:#0000ff40}._textLayer_nel8e_97 br::selection{background:0 0}._pageSkeleton_nel8e_235{background:linear-gradient(90deg,#3f3f46 25%,#52525b 50%,#3f3f46 75%) 0 0/200% 100%;border-radius:1px;animation:1.4s infinite _shimmer_nel8e_1}@keyframes _shimmer_nel8e_1{0%{background-position:200% 0}to{background-position:-200% 0}}._highlightOverlay_nel8e_267{pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_nel8e_283{pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_nel8e_295{pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_173qc_1{flex-direction:column;display:flex}._emptyState_173qc_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_173qc_23{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_173qc_45{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_173qc_65{cursor:pointer}._cardClickable_173qc_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_173qc_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_173qc_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_173qc_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_173qc_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_173qc_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._btn_12ml0_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_12ml0_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_12ml0_1:disabled{color:var(--pdf-border);cursor:default}._primary_12ml0_57{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_12ml0_57:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_6ysgx_1{align-items:center;gap:2px;margin-left:auto;display:flex}._pageInput_6ysgx_15{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_6ysgx_15:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_6ysgx_15::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15{-moz-appearance:textfield}._pageTotal_6ysgx_71{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_1w4ic_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_1w4ic_13{flex-direction:column;padding:4px 0;display:flex}._row_1w4ic_25{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_1w4ic_25:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_1w4ic_61{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_1w4ic_61:hover{color:var(--pdf-text-muted)}._title_1w4ic_91{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_yinyt_1{align-items:center;gap:4px;display:flex}._searchInput_yinyt_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_yinyt_13:focus{border-color:var(--pdf-accent)}._searchInput_yinyt_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_yinyt_53{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_yinyt_53:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_yinyt_53:disabled{color:var(--pdf-border);cursor:default}._counter_yinyt_95{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_1xon0_1{flex-direction:column;display:flex}._emptyState_1xon0_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._card_1xon0_23{border:1px solid var(--pdf-border);background-color:var(--pdf-panel-bg);cursor:default;border-radius:6px;margin:8px;padding:12px;font-size:12px;transition:box-shadow .12s}._cardClickable_1xon0_45{cursor:pointer}._cardClickable_1xon0_45:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardSigned_1xon0_61{background-color:#f0fdf4;border-color:#bbf7d0}._cardHeader_1xon0_71{align-items:center;gap:7px;margin-bottom:8px;display:flex}._statusDot_1xon0_85{background-color:var(--pdf-border-light);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:flex}._statusDotSigned_1xon0_113{background-color:#22c55e}._statusLabel_1xon0_121{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}._statusLabelSigned_1xon0_137{color:#16a34a}._fieldList_1xon0_145{flex-direction:column;gap:3px;display:flex}._fieldRow_1xon0_157{color:var(--pdf-text-secondary);font-size:12px}._fieldLabel_1xon0_167{color:var(--pdf-text-secondary)}._disclaimer_1xon0_175{color:#a16207;background-color:#fefce8;border:1px solid #fef08a;border-radius:4px;margin:0 8px 12px;padding:8px 10px;font-size:10px;line-height:1.5}._thumbnailList_116om_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_116om_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_116om_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_116om_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_116om_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_116om_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_116om_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailLabel_116om_75{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_116om_89{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_1r6if_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}
|
|
1
|
+
._wrapper_184n8_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._buttonBar_184n8_13{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._panelButton_184n8_33{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_184n8_33:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_184n8_73{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_184n8_73:hover{color:var(--pdf-accent-light)}._contentPanel_184n8_91{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_184n8_107{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_184n8_131{flex:1;overflow-y:auto}._appLayout_nel8e_1{width:100%;height:100%;display:flex;overflow:hidden}._mainContent_nel8e_15{flex-direction:column;flex:1;min-width:0;display:flex}._toolbar_nel8e_29{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_nel8e_53{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_nel8e_73{margin-bottom:25px;position:relative}._pageCanvas_nel8e_83{box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block}._textLayer_nel8e_97{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:0;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_nel8e_97 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_nel8e_97>:not(._markedContent_nel8e_149),._textLayer_nel8e_97 ._markedContent_nel8e_149 span:not(._markedContent_nel8e_149){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_nel8e_97 ._markedContent_nel8e_149{display:contents}._textLayer_nel8e_97 ._endOfContent_nel8e_177{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_nel8e_97._selecting_nel8e_195 ._endOfContent_nel8e_177{top:0}._textLayer_nel8e_97 ::selection{background:#0000ff40}._textLayer_nel8e_97 br::selection{background:0 0}._pageSkeleton_nel8e_235{background:linear-gradient(90deg,#3f3f46 25%,#52525b 50%,#3f3f46 75%) 0 0/200% 100%;border-radius:1px;animation:1.4s infinite _shimmer_nel8e_1}@keyframes _shimmer_nel8e_1{0%{background-position:200% 0}to{background-position:-200% 0}}._highlightOverlay_nel8e_267{pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_nel8e_283{pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_nel8e_295{pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_10scn_1{flex-direction:column;display:flex}._emptyState_10scn_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_10scn_23{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_10scn_45{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_10scn_65{cursor:pointer}._cardClickable_10scn_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_10scn_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_10scn_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_10scn_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_10scn_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_10scn_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_10scn_141{justify-content:center;align-items:center;display:flex;position:relative}._badge_10scn_155{background-color:var(--pdf-accent);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_12ml0_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_12ml0_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_12ml0_1:disabled{color:var(--pdf-border);cursor:default}._primary_12ml0_57{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_12ml0_57:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_6ysgx_1{align-items:center;gap:2px;margin-left:auto;display:flex}._pageInput_6ysgx_15{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_6ysgx_15:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_6ysgx_15::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15{-moz-appearance:textfield}._pageTotal_6ysgx_71{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_1w4ic_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_1w4ic_13{flex-direction:column;padding:4px 0;display:flex}._row_1w4ic_25{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_1w4ic_25:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_1w4ic_61{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_1w4ic_61:hover{color:var(--pdf-text-muted)}._title_1w4ic_91{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_yinyt_1{align-items:center;gap:4px;display:flex}._searchInput_yinyt_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_yinyt_13:focus{border-color:var(--pdf-accent)}._searchInput_yinyt_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_yinyt_53{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_yinyt_53:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_yinyt_53:disabled{color:var(--pdf-border);cursor:default}._counter_yinyt_95{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_11831_1{flex-direction:column;display:flex}._emptyState_11831_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._card_11831_23{border:1px solid var(--pdf-border);background-color:var(--pdf-panel-bg);cursor:default;border-radius:6px;margin:8px;padding:12px;font-size:12px;transition:box-shadow .12s}._cardClickable_11831_45{cursor:pointer}._cardClickable_11831_45:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardSigned_11831_61{background-color:#f0fdf4;border-color:#bbf7d0}._cardHeader_11831_71{align-items:center;gap:7px;margin-bottom:8px;display:flex}._statusDot_11831_85{background-color:var(--pdf-border-light);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:flex}._statusDotSigned_11831_113{background-color:#22c55e}._statusLabel_11831_121{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}._statusLabelSigned_11831_137{color:#16a34a}._fieldList_11831_145{flex-direction:column;gap:3px;display:flex}._fieldRow_11831_157{color:var(--pdf-text-secondary);font-size:12px}._fieldLabel_11831_167{color:var(--pdf-text-secondary)}._disclaimer_11831_175{color:#a16207;background-color:#fefce8;border:1px solid #fef08a;border-radius:4px;margin:0 8px 12px;padding:8px 10px;font-size:10px;line-height:1.5}._iconWrapper_11831_197{justify-content:center;align-items:center;display:flex;position:relative}._badge_11831_211{background-color:var(--pdf-accent);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_116om_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_116om_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_116om_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_116om_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_116om_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_116om_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_116om_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailLabel_116om_75{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_116om_89{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_1r6if_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=60,t=10;async function n(n,r,i,a){let o=(await r.getPage(1)).getViewport({scale:1,rotation:a}),s=i.clientWidth-e;if(n===`width`)return s/o.width;let c=i.clientHeight-t*2;return Math.min(s/o.width,c/o.height)}exports.computeFit=n;
|
|
@@ -11,7 +11,8 @@ interface ThemeProviderProps {
|
|
|
11
11
|
light?: Partial<Theme>;
|
|
12
12
|
dark?: Partial<Theme>;
|
|
13
13
|
};
|
|
14
|
+
defaultTheme?: "light" | "dark";
|
|
14
15
|
}
|
|
15
|
-
export declare function ThemeProvider({ children, themeOverrides }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function ThemeProvider({ children, themeOverrides, defaultTheme }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
16
17
|
export declare function useTheme(): ThemeContextValue;
|
|
17
18
|
export {};
|
|
@@ -4,70 +4,79 @@ import { useKeyboardShortcuts as n } from "../hooks/useKeyboardShortcuts.js";
|
|
|
4
4
|
import { useTextLayer as r } from "../hooks/useTextLayer.js";
|
|
5
5
|
import { isSafeUrl as i } from "../utils/url.js";
|
|
6
6
|
import { useAnnotationLayer as a } from "../hooks/useAnnotationLayer.js";
|
|
7
|
-
import {
|
|
8
|
-
import s from "
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
7
|
+
import { computeFit as o } from "../utils/pdfFit.js";
|
|
8
|
+
import { ThemeProvider as s } from "../context/ThemeContext.js";
|
|
9
|
+
import c from "./PDFViewer.module.js";
|
|
10
|
+
import { useEffect as l, useRef as u, useState as d } from "react";
|
|
11
|
+
import * as f from "pdfjs-dist";
|
|
12
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
12
13
|
//#region src/components/PDFViewer.tsx
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}, [
|
|
17
|
-
let [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, themeOverrides: b, defaultTheme: x, defaultFit: S }) => {
|
|
15
|
+
l(() => {
|
|
16
|
+
f.GlobalWorkerOptions.workerSrc = g;
|
|
17
|
+
}, [g]);
|
|
18
|
+
let [C, w] = d(null), [T, E] = d(0), [D, O] = d(1), [k, A] = d(0), [j, M] = d(null), [N, P] = d(null), [F, I] = d([]), [L, R] = d(/* @__PURE__ */ new Set()), [z, B] = d([]), V = u(null), H = u([]), U = u([]), W = u(k);
|
|
19
|
+
l(() => {
|
|
20
|
+
W.current = k;
|
|
21
|
+
}, [k]), l(() => {
|
|
22
|
+
if (!C || !S || !V.current) return;
|
|
23
|
+
let e = V.current;
|
|
24
|
+
o(S, C, e, W.current).then(O);
|
|
25
|
+
}, [C, S]);
|
|
26
|
+
let { currentPage: G, goToPage: K } = t({
|
|
27
|
+
pdf: C,
|
|
28
|
+
numPages: T,
|
|
29
|
+
zoom: D,
|
|
30
|
+
rotation: k,
|
|
31
|
+
containerRef: V,
|
|
32
|
+
canvasRefs: H
|
|
24
33
|
});
|
|
25
34
|
n({
|
|
26
|
-
pdf:
|
|
27
|
-
currentPage:
|
|
28
|
-
numPages:
|
|
29
|
-
goToPage:
|
|
30
|
-
setZoom:
|
|
31
|
-
setRotation:
|
|
35
|
+
pdf: C,
|
|
36
|
+
currentPage: G,
|
|
37
|
+
numPages: T,
|
|
38
|
+
goToPage: K,
|
|
39
|
+
setZoom: O,
|
|
40
|
+
setRotation: A
|
|
32
41
|
});
|
|
33
|
-
let
|
|
34
|
-
pdf:
|
|
35
|
-
zoom:
|
|
36
|
-
rotation:
|
|
37
|
-
numPages:
|
|
38
|
-
canvasRefs:
|
|
39
|
-
}),
|
|
40
|
-
pdf:
|
|
41
|
-
zoom:
|
|
42
|
-
rotation:
|
|
43
|
-
numPages:
|
|
44
|
-
goToPage:
|
|
42
|
+
let q = r({
|
|
43
|
+
pdf: C,
|
|
44
|
+
zoom: D,
|
|
45
|
+
rotation: k,
|
|
46
|
+
numPages: T,
|
|
47
|
+
canvasRefs: H
|
|
48
|
+
}), J = a({
|
|
49
|
+
pdf: C,
|
|
50
|
+
zoom: D,
|
|
51
|
+
rotation: k,
|
|
52
|
+
numPages: T,
|
|
53
|
+
goToPage: K
|
|
45
54
|
});
|
|
46
|
-
|
|
55
|
+
l(() => {
|
|
47
56
|
(async () => {
|
|
48
57
|
let e = new FileReader();
|
|
49
58
|
e.onload = async (e) => {
|
|
50
59
|
let t = new Uint8Array(e.target?.result);
|
|
51
60
|
try {
|
|
52
|
-
let e = await
|
|
53
|
-
|
|
61
|
+
let e = await f.getDocument(t).promise;
|
|
62
|
+
w(e), E(e.numPages), M(null), P(null), R(/* @__PURE__ */ new Set()), B([]), H.current = Array(e.numPages).fill(null), U.current = Array(e.numPages).fill(null);
|
|
54
63
|
} catch (e) {
|
|
55
64
|
console.error("Errore caricamento:", e);
|
|
56
65
|
}
|
|
57
|
-
}, e.readAsArrayBuffer(
|
|
66
|
+
}, e.readAsArrayBuffer(h);
|
|
58
67
|
})();
|
|
59
|
-
}, [
|
|
60
|
-
if (!
|
|
61
|
-
|
|
68
|
+
}, [h]), l(() => {
|
|
69
|
+
if (!C) return;
|
|
70
|
+
R(/* @__PURE__ */ new Set());
|
|
62
71
|
let e = !1;
|
|
63
72
|
return (async () => {
|
|
64
|
-
let t =
|
|
65
|
-
if (await Promise.all(t),
|
|
73
|
+
let t = U.current.map((e) => e ? (e.cancel(), e.promise.catch(() => {})) : Promise.resolve());
|
|
74
|
+
if (await Promise.all(t), U.current = Array(C.numPages).fill(null), e) return;
|
|
66
75
|
let n = [];
|
|
67
|
-
for (let e = 1; e <=
|
|
68
|
-
let t = (await
|
|
69
|
-
scale:
|
|
70
|
-
rotation:
|
|
76
|
+
for (let e = 1; e <= C.numPages; e++) {
|
|
77
|
+
let t = (await C.getPage(e)).getViewport({
|
|
78
|
+
scale: D,
|
|
79
|
+
rotation: k
|
|
71
80
|
});
|
|
72
81
|
n.push({
|
|
73
82
|
width: t.width,
|
|
@@ -75,13 +84,13 @@ var m = ({ file: m, workerSrc: h, sidebar: g, toolbar: _, onChangeFile: v, theme
|
|
|
75
84
|
});
|
|
76
85
|
}
|
|
77
86
|
if (!e) {
|
|
78
|
-
|
|
79
|
-
for (let t = 1; t <=
|
|
87
|
+
B(n);
|
|
88
|
+
for (let t = 1; t <= C.numPages; t++) {
|
|
80
89
|
if (e) return;
|
|
81
|
-
let n = await
|
|
82
|
-
scale:
|
|
83
|
-
rotation:
|
|
84
|
-
}), i =
|
|
90
|
+
let n = await C.getPage(t), r = n.getViewport({
|
|
91
|
+
scale: D,
|
|
92
|
+
rotation: k
|
|
93
|
+
}), i = H.current[t - 1];
|
|
85
94
|
if (i) {
|
|
86
95
|
let a = i.getContext("2d");
|
|
87
96
|
if (a) {
|
|
@@ -91,9 +100,9 @@ var m = ({ file: m, workerSrc: h, sidebar: g, toolbar: _, onChangeFile: v, theme
|
|
|
91
100
|
viewport: r,
|
|
92
101
|
canvas: i
|
|
93
102
|
});
|
|
94
|
-
|
|
103
|
+
U.current[t - 1] = o;
|
|
95
104
|
try {
|
|
96
|
-
await o.promise, e ||
|
|
105
|
+
await o.promise, e || R((e) => new Set(e).add(t));
|
|
97
106
|
} catch (e) {
|
|
98
107
|
e && typeof e == "object" && "name" in e && e.name !== "RenderingCancelledException" && console.error("Render error:", e);
|
|
99
108
|
}
|
|
@@ -102,27 +111,27 @@ var m = ({ file: m, workerSrc: h, sidebar: g, toolbar: _, onChangeFile: v, theme
|
|
|
102
111
|
}
|
|
103
112
|
}
|
|
104
113
|
})(), () => {
|
|
105
|
-
e = !0,
|
|
114
|
+
e = !0, U.current.forEach((e) => e?.cancel());
|
|
106
115
|
};
|
|
107
116
|
}, [
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
117
|
+
C,
|
|
118
|
+
D,
|
|
119
|
+
k
|
|
111
120
|
]);
|
|
112
|
-
let [
|
|
113
|
-
return
|
|
114
|
-
if (!
|
|
115
|
-
|
|
121
|
+
let [Y, X] = d([]);
|
|
122
|
+
return l(() => {
|
|
123
|
+
if (!C || F.length === 0) {
|
|
124
|
+
X([]);
|
|
116
125
|
return;
|
|
117
126
|
}
|
|
118
127
|
let e = !1;
|
|
119
128
|
return (async () => {
|
|
120
129
|
let t = [];
|
|
121
|
-
for (let n of
|
|
130
|
+
for (let n of F) {
|
|
122
131
|
if (e) break;
|
|
123
|
-
let [r, i, a, o] = (await
|
|
124
|
-
scale:
|
|
125
|
-
rotation:
|
|
132
|
+
let [r, i, a, o] = (await C.getPage(n.page)).getViewport({
|
|
133
|
+
scale: D,
|
|
134
|
+
rotation: k
|
|
126
135
|
}).convertToViewportRectangle(n.pdfRect);
|
|
127
136
|
t.push({
|
|
128
137
|
page: n.page,
|
|
@@ -132,25 +141,25 @@ var m = ({ file: m, workerSrc: h, sidebar: g, toolbar: _, onChangeFile: v, theme
|
|
|
132
141
|
height: Math.abs(o - i)
|
|
133
142
|
});
|
|
134
143
|
}
|
|
135
|
-
e ||
|
|
144
|
+
e || X(t);
|
|
136
145
|
})(), () => {
|
|
137
146
|
e = !0;
|
|
138
147
|
};
|
|
139
148
|
}, [
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
]),
|
|
145
|
-
if (!
|
|
149
|
+
F,
|
|
150
|
+
D,
|
|
151
|
+
k,
|
|
152
|
+
C
|
|
153
|
+
]), l(() => {
|
|
154
|
+
if (!j || !C) return;
|
|
146
155
|
let e = !1;
|
|
147
156
|
return (async () => {
|
|
148
|
-
let [t, n, r, i] = (await
|
|
149
|
-
scale:
|
|
150
|
-
rotation:
|
|
151
|
-
}).convertToViewportRectangle(
|
|
152
|
-
e ||
|
|
153
|
-
page:
|
|
157
|
+
let [t, n, r, i] = (await C.getPage(j.page)).getViewport({
|
|
158
|
+
scale: D,
|
|
159
|
+
rotation: k
|
|
160
|
+
}).convertToViewportRectangle(j.pdfRect);
|
|
161
|
+
e || P({
|
|
162
|
+
page: j.page,
|
|
154
163
|
x: Math.min(t, r),
|
|
155
164
|
y: Math.min(n, i),
|
|
156
165
|
width: Math.abs(r - t),
|
|
@@ -160,68 +169,69 @@ var m = ({ file: m, workerSrc: h, sidebar: g, toolbar: _, onChangeFile: v, theme
|
|
|
160
169
|
e = !0;
|
|
161
170
|
};
|
|
162
171
|
}, [
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
]), /* @__PURE__ */
|
|
168
|
-
themeOverrides:
|
|
169
|
-
|
|
172
|
+
j,
|
|
173
|
+
D,
|
|
174
|
+
k,
|
|
175
|
+
C
|
|
176
|
+
]), /* @__PURE__ */ p(s, {
|
|
177
|
+
themeOverrides: b,
|
|
178
|
+
defaultTheme: x,
|
|
179
|
+
children: /* @__PURE__ */ p(e.Provider, {
|
|
170
180
|
value: {
|
|
171
|
-
pdf:
|
|
172
|
-
numPages:
|
|
173
|
-
zoom:
|
|
174
|
-
setZoom:
|
|
175
|
-
rotation:
|
|
176
|
-
setRotation:
|
|
177
|
-
currentPage:
|
|
178
|
-
goToPage:
|
|
179
|
-
containerRef:
|
|
180
|
-
canvasRefs:
|
|
181
|
-
file:
|
|
182
|
-
highlight:
|
|
183
|
-
setHighlight:
|
|
184
|
-
searchMatches:
|
|
185
|
-
setSearchMatches:
|
|
186
|
-
onChangeFile:
|
|
181
|
+
pdf: C,
|
|
182
|
+
numPages: T,
|
|
183
|
+
zoom: D,
|
|
184
|
+
setZoom: O,
|
|
185
|
+
rotation: k,
|
|
186
|
+
setRotation: A,
|
|
187
|
+
currentPage: G,
|
|
188
|
+
goToPage: K,
|
|
189
|
+
containerRef: V,
|
|
190
|
+
canvasRefs: H,
|
|
191
|
+
file: h,
|
|
192
|
+
highlight: j,
|
|
193
|
+
setHighlight: M,
|
|
194
|
+
searchMatches: F,
|
|
195
|
+
setSearchMatches: I,
|
|
196
|
+
onChangeFile: y
|
|
187
197
|
},
|
|
188
|
-
children: /* @__PURE__ */
|
|
189
|
-
className:
|
|
190
|
-
children: [
|
|
191
|
-
className:
|
|
192
|
-
children: [
|
|
193
|
-
className:
|
|
194
|
-
children:
|
|
195
|
-
}), /* @__PURE__ */
|
|
196
|
-
className:
|
|
197
|
-
ref:
|
|
198
|
-
children: Array.from({ length:
|
|
199
|
-
let n =
|
|
200
|
-
return /* @__PURE__ */
|
|
201
|
-
className:
|
|
198
|
+
children: /* @__PURE__ */ m("div", {
|
|
199
|
+
className: c.appLayout,
|
|
200
|
+
children: [_, /* @__PURE__ */ m("div", {
|
|
201
|
+
className: c.mainContent,
|
|
202
|
+
children: [v && /* @__PURE__ */ p("div", {
|
|
203
|
+
className: c.toolbar,
|
|
204
|
+
children: v
|
|
205
|
+
}), /* @__PURE__ */ p("div", {
|
|
206
|
+
className: c.scrollContainer,
|
|
207
|
+
ref: V,
|
|
208
|
+
children: Array.from({ length: T }, (e, t) => {
|
|
209
|
+
let n = L.has(t + 1), r = z[t];
|
|
210
|
+
return /* @__PURE__ */ m("div", {
|
|
211
|
+
className: c.pageWrapper,
|
|
202
212
|
children: [
|
|
203
|
-
!n && r && /* @__PURE__ */
|
|
204
|
-
className:
|
|
213
|
+
!n && r && /* @__PURE__ */ p("div", {
|
|
214
|
+
className: c.pageSkeleton,
|
|
205
215
|
style: {
|
|
206
216
|
width: r.width,
|
|
207
217
|
height: r.height
|
|
208
218
|
}
|
|
209
219
|
}),
|
|
210
|
-
/* @__PURE__ */
|
|
211
|
-
className:
|
|
220
|
+
/* @__PURE__ */ p("canvas", {
|
|
221
|
+
className: c.pageCanvas,
|
|
212
222
|
ref: (e) => {
|
|
213
|
-
|
|
223
|
+
H.current[t] = e;
|
|
214
224
|
},
|
|
215
225
|
style: { display: n ? "block" : "none" }
|
|
216
226
|
}),
|
|
217
|
-
/* @__PURE__ */
|
|
218
|
-
className: `textLayer ${
|
|
227
|
+
/* @__PURE__ */ p("div", {
|
|
228
|
+
className: `textLayer ${c.textLayer}`,
|
|
219
229
|
ref: (e) => {
|
|
220
|
-
|
|
230
|
+
q.current[t] = e;
|
|
221
231
|
}
|
|
222
232
|
}),
|
|
223
|
-
|
|
224
|
-
className:
|
|
233
|
+
J.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ p("a", {
|
|
234
|
+
className: c.linkOverlay,
|
|
225
235
|
href: e.url && i(e.url) ? e.url : "#",
|
|
226
236
|
target: "_blank",
|
|
227
237
|
rel: "noopener noreferrer",
|
|
@@ -235,8 +245,8 @@ var m = ({ file: m, workerSrc: h, sidebar: g, toolbar: _, onChangeFile: v, theme
|
|
|
235
245
|
(!e.url || !i(e.url)) && (t.preventDefault(), e.url || e._handleClick());
|
|
236
246
|
}
|
|
237
247
|
}, t)),
|
|
238
|
-
|
|
239
|
-
className:
|
|
248
|
+
Y.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ p("div", {
|
|
249
|
+
className: c.searchMatchOverlay,
|
|
240
250
|
style: {
|
|
241
251
|
left: e.x,
|
|
242
252
|
top: e.y,
|
|
@@ -244,17 +254,17 @@ var m = ({ file: m, workerSrc: h, sidebar: g, toolbar: _, onChangeFile: v, theme
|
|
|
244
254
|
height: e.height
|
|
245
255
|
}
|
|
246
256
|
}, t)),
|
|
247
|
-
|
|
248
|
-
className:
|
|
257
|
+
j && N?.page === t + 1 && /* @__PURE__ */ p("div", {
|
|
258
|
+
className: c.highlightOverlay,
|
|
249
259
|
style: {
|
|
250
|
-
left:
|
|
251
|
-
top:
|
|
252
|
-
width:
|
|
253
|
-
height:
|
|
260
|
+
left: N.x,
|
|
261
|
+
top: N.y,
|
|
262
|
+
width: N.width,
|
|
263
|
+
height: N.height
|
|
254
264
|
}
|
|
255
265
|
})
|
|
256
266
|
]
|
|
257
|
-
}, `${t}-${
|
|
267
|
+
}, `${t}-${k}`);
|
|
258
268
|
})
|
|
259
269
|
})]
|
|
260
270
|
})]
|
|
@@ -263,4 +273,4 @@ var m = ({ file: m, workerSrc: h, sidebar: g, toolbar: _, onChangeFile: v, theme
|
|
|
263
273
|
});
|
|
264
274
|
};
|
|
265
275
|
//#endregion
|
|
266
|
-
export {
|
|
276
|
+
export { h as default };
|
|
@@ -62,7 +62,21 @@ function c(e) {
|
|
|
62
62
|
]
|
|
63
63
|
}), t[15] = l, t[16] = d, t[17] = m, t[18] = _, t[19] = v, t[20] = y, t[21] = b) : b = t[21], b;
|
|
64
64
|
}
|
|
65
|
-
function l() {
|
|
65
|
+
function l(o) {
|
|
66
|
+
let s = r(8), { icon: c } = o, { pdf: l } = e(), u;
|
|
67
|
+
s[0] === l ? u = s[1] : (u = { pdf: l }, s[0] = l, s[1] = u);
|
|
68
|
+
let { annotations: d, loading: f } = t(u), p = d.length, m;
|
|
69
|
+
s[2] !== p || s[3] !== f ? (m = !f && p > 0 && /* @__PURE__ */ i("span", {
|
|
70
|
+
className: n.badge,
|
|
71
|
+
children: p > 99 ? "99+" : p
|
|
72
|
+
}), s[2] = p, s[3] = f, s[4] = m) : m = s[4];
|
|
73
|
+
let h;
|
|
74
|
+
return s[5] !== c || s[6] !== m ? (h = /* @__PURE__ */ a("span", {
|
|
75
|
+
className: n.iconWrapper,
|
|
76
|
+
children: [c, m]
|
|
77
|
+
}), s[5] = c, s[6] = m, s[7] = h) : h = s[7], h;
|
|
78
|
+
}
|
|
79
|
+
function u() {
|
|
66
80
|
let { pdf: r, goToPage: o, setHighlight: s } = e(), { annotations: l, loading: u } = t({ pdf: r }), d = (e) => {
|
|
67
81
|
o(e.page), e.rect && s({
|
|
68
82
|
page: e.page,
|
|
@@ -91,4 +105,4 @@ function l() {
|
|
|
91
105
|
});
|
|
92
106
|
}
|
|
93
107
|
//#endregion
|
|
94
|
-
export {
|
|
108
|
+
export { u as PDFAnnotations, l as PDFAnnotationsIcon };
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
var e = {
|
|
2
|
-
list: "
|
|
3
|
-
emptyState: "
|
|
4
|
-
pageHeader: "
|
|
5
|
-
card: "
|
|
6
|
-
cardClickable: "
|
|
7
|
-
cardHeader: "
|
|
8
|
-
cardLabel: "
|
|
9
|
-
cardPage: "
|
|
10
|
-
cardAuthor: "
|
|
11
|
-
cardContent: "
|
|
2
|
+
list: "_list_10scn_1",
|
|
3
|
+
emptyState: "_emptyState_10scn_11",
|
|
4
|
+
pageHeader: "_pageHeader_10scn_23",
|
|
5
|
+
card: "_card_10scn_45",
|
|
6
|
+
cardClickable: "_cardClickable_10scn_65",
|
|
7
|
+
cardHeader: "_cardHeader_10scn_81",
|
|
8
|
+
cardLabel: "_cardLabel_10scn_95",
|
|
9
|
+
cardPage: "_cardPage_10scn_107",
|
|
10
|
+
cardAuthor: "_cardAuthor_10scn_117",
|
|
11
|
+
cardContent: "_cardContent_10scn_129",
|
|
12
|
+
iconWrapper: "_iconWrapper_10scn_141",
|
|
13
|
+
badge: "_badge_10scn_155"
|
|
12
14
|
};
|
|
13
15
|
//#endregion
|
|
14
16
|
export { e as default };
|
|
@@ -1,43 +1,33 @@
|
|
|
1
1
|
import { usePDFViewer as e } from "../../context/PDFViewerContext.js";
|
|
2
|
-
import {
|
|
2
|
+
import { computeFit as t } from "../../utils/pdfFit.js";
|
|
3
|
+
import { ToolbarButton as n } from "../ui/ToolbarButton.js";
|
|
3
4
|
import "react";
|
|
4
|
-
import { c as
|
|
5
|
-
import { Fragment as
|
|
5
|
+
import { c as r } from "react/compiler-runtime";
|
|
6
|
+
import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
7
|
//#region src/components/features/PDFPageFit.tsx
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
m((h.current.clientWidth - o) / e.width);
|
|
17
|
-
}, l[0] = h, l[1] = f, l[2] = p, l[3] = m, l[4] = g) : g = l[4];
|
|
18
|
-
let _ = g, v;
|
|
19
|
-
l[5] !== h || l[6] !== f || l[7] !== p || l[8] !== m ? (v = async () => {
|
|
20
|
-
if (!f || !h.current) return;
|
|
21
|
-
let e = (await f.getPage(1)).getViewport({
|
|
22
|
-
scale: 1,
|
|
23
|
-
rotation: p
|
|
24
|
-
}), t = h.current.clientWidth - o, n = h.current.clientHeight - s * 2;
|
|
25
|
-
m(Math.min(t / e.width, n / e.height));
|
|
26
|
-
}, l[5] = h, l[6] = f, l[7] = p, l[8] = m, l[9] = v) : v = l[9];
|
|
27
|
-
let y = v, b;
|
|
28
|
-
l[10] !== u || l[11] !== _ ? (b = /* @__PURE__ */ i(t, {
|
|
8
|
+
function s(s) {
|
|
9
|
+
let c = r(18), { fitWidthIcon: l, fitPageIcon: u } = s, { pdf: d, rotation: f, setZoom: p, containerRef: m } = e(), h;
|
|
10
|
+
c[0] !== m || c[1] !== d || c[2] !== f || c[3] !== p ? (h = async (e) => {
|
|
11
|
+
!d || !m.current || p(await t(e, d, m.current, f));
|
|
12
|
+
}, c[0] = m, c[1] = d, c[2] = f, c[3] = p, c[4] = h) : h = c[4];
|
|
13
|
+
let g = h, _;
|
|
14
|
+
c[5] === g ? _ = c[6] : (_ = () => g("width"), c[5] = g, c[6] = _);
|
|
15
|
+
let v;
|
|
16
|
+
c[7] !== l || c[8] !== _ ? (v = /* @__PURE__ */ a(n, {
|
|
29
17
|
onClick: _,
|
|
30
18
|
title: "Adatta alla larghezza",
|
|
31
|
-
children:
|
|
32
|
-
}),
|
|
33
|
-
let
|
|
34
|
-
|
|
19
|
+
children: l
|
|
20
|
+
}), c[7] = l, c[8] = _, c[9] = v) : v = c[9];
|
|
21
|
+
let y;
|
|
22
|
+
c[10] === g ? y = c[11] : (y = () => g("page"), c[10] = g, c[11] = y);
|
|
23
|
+
let b;
|
|
24
|
+
c[12] !== u || c[13] !== y ? (b = /* @__PURE__ */ a(n, {
|
|
35
25
|
onClick: y,
|
|
36
26
|
title: "Adatta pagina intera",
|
|
37
|
-
children:
|
|
38
|
-
}),
|
|
39
|
-
let
|
|
40
|
-
return
|
|
27
|
+
children: u
|
|
28
|
+
}), c[12] = u, c[13] = y, c[14] = b) : b = c[14];
|
|
29
|
+
let x;
|
|
30
|
+
return c[15] !== v || c[16] !== b ? (x = /* @__PURE__ */ o(i, { children: [v, b] }), c[15] = v, c[16] = b, c[17] = x) : x = c[17], x;
|
|
41
31
|
}
|
|
42
32
|
//#endregion
|
|
43
|
-
export {
|
|
33
|
+
export { s as PDFPageFit };
|
|
@@ -9,9 +9,9 @@ function i(i) {
|
|
|
9
9
|
a[0] === s ? c = a[1] : (c = () => {
|
|
10
10
|
let e = URL.createObjectURL(s), t = document.createElement("iframe");
|
|
11
11
|
t.style.display = "none", t.src = e, document.body.appendChild(t), t.onload = () => {
|
|
12
|
-
t.contentWindow?.
|
|
12
|
+
t.contentWindow?.addEventListener("afterprint", () => {
|
|
13
13
|
document.body.removeChild(t), URL.revokeObjectURL(e);
|
|
14
|
-
},
|
|
14
|
+
}, { once: !0 }), t.contentWindow?.print();
|
|
15
15
|
};
|
|
16
16
|
}, a[0] = s, a[1] = c);
|
|
17
17
|
let l = c, u;
|
|
@@ -87,8 +87,22 @@ function s(e) {
|
|
|
87
87
|
children: [g, C]
|
|
88
88
|
}), t[26] = c, t[27] = l, t[28] = C, t[29] = g, t[30] = w) : w = t[30], w;
|
|
89
89
|
}
|
|
90
|
-
function c() {
|
|
91
|
-
let
|
|
90
|
+
function c(o) {
|
|
91
|
+
let s = r(8), { icon: c } = o, { pdf: l } = e(), u;
|
|
92
|
+
s[0] === l ? u = s[1] : (u = { pdf: l }, s[0] = l, s[1] = u);
|
|
93
|
+
let { signatures: d, loading: f } = t(u), p = d.length, m;
|
|
94
|
+
s[2] !== p || s[3] !== f ? (m = !f && p > 0 && /* @__PURE__ */ i("span", {
|
|
95
|
+
className: n.badge,
|
|
96
|
+
children: p > 99 ? "99+" : p
|
|
97
|
+
}), s[2] = p, s[3] = f, s[4] = m) : m = s[4];
|
|
98
|
+
let h;
|
|
99
|
+
return s[5] !== c || s[6] !== m ? (h = /* @__PURE__ */ a("span", {
|
|
100
|
+
className: n.iconWrapper,
|
|
101
|
+
children: [c, m]
|
|
102
|
+
}), s[5] = c, s[6] = m, s[7] = h) : h = s[7], h;
|
|
103
|
+
}
|
|
104
|
+
function l() {
|
|
105
|
+
let o = r(18), { pdf: c, goToPage: l, setHighlight: u } = e(), d;
|
|
92
106
|
o[0] === c ? d = o[1] : (d = { pdf: c }, o[0] = c, o[1] = d);
|
|
93
107
|
let { signatures: f, loading: p } = t(d), m;
|
|
94
108
|
o[2] !== l || o[3] !== u ? (m = (e) => {
|
|
@@ -113,20 +127,14 @@ function c() {
|
|
|
113
127
|
onClick: () => h(e)
|
|
114
128
|
}, t)), o[10] = h, o[11] = p, o[12] = f, o[13] = v) : v = o[13];
|
|
115
129
|
let y;
|
|
116
|
-
o[14] !==
|
|
117
|
-
className: n.disclaimer,
|
|
118
|
-
children: "La presenza del campo firma non garantisce la validità crittografica."
|
|
119
|
-
}), o[14] = p, o[15] = f, o[16] = y) : y = o[16];
|
|
120
|
-
let b;
|
|
121
|
-
return o[17] !== g || o[18] !== _ || o[19] !== v || o[20] !== y ? (b = /* @__PURE__ */ a("div", {
|
|
130
|
+
return o[14] !== g || o[15] !== _ || o[16] !== v ? (y = /* @__PURE__ */ a("div", {
|
|
122
131
|
className: n.list,
|
|
123
132
|
children: [
|
|
124
133
|
g,
|
|
125
134
|
_,
|
|
126
|
-
v
|
|
127
|
-
y
|
|
135
|
+
v
|
|
128
136
|
]
|
|
129
|
-
}), o[
|
|
137
|
+
}), o[14] = g, o[15] = _, o[16] = v, o[17] = y) : y = o[17], y;
|
|
130
138
|
}
|
|
131
139
|
//#endregion
|
|
132
|
-
export {
|
|
140
|
+
export { l as PDFSignatures, c as PDFSignaturesIcon };
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
var e = {
|
|
2
|
-
list: "
|
|
3
|
-
emptyState: "
|
|
4
|
-
card: "
|
|
5
|
-
cardClickable: "
|
|
6
|
-
cardSigned: "
|
|
7
|
-
cardHeader: "
|
|
8
|
-
statusDot: "
|
|
9
|
-
statusDotSigned: "
|
|
10
|
-
statusLabel: "
|
|
11
|
-
statusLabelSigned: "
|
|
12
|
-
fieldList: "
|
|
13
|
-
fieldRow: "
|
|
14
|
-
fieldLabel: "
|
|
15
|
-
disclaimer: "
|
|
2
|
+
list: "_list_11831_1",
|
|
3
|
+
emptyState: "_emptyState_11831_11",
|
|
4
|
+
card: "_card_11831_23",
|
|
5
|
+
cardClickable: "_cardClickable_11831_45",
|
|
6
|
+
cardSigned: "_cardSigned_11831_61",
|
|
7
|
+
cardHeader: "_cardHeader_11831_71",
|
|
8
|
+
statusDot: "_statusDot_11831_85",
|
|
9
|
+
statusDotSigned: "_statusDotSigned_11831_113",
|
|
10
|
+
statusLabel: "_statusLabel_11831_121",
|
|
11
|
+
statusLabelSigned: "_statusLabelSigned_11831_137",
|
|
12
|
+
fieldList: "_fieldList_11831_145",
|
|
13
|
+
fieldRow: "_fieldRow_11831_157",
|
|
14
|
+
fieldLabel: "_fieldLabel_11831_167",
|
|
15
|
+
disclaimer: "_disclaimer_11831_175",
|
|
16
|
+
iconWrapper: "_iconWrapper_11831_197",
|
|
17
|
+
badge: "_badge_11831_211"
|
|
16
18
|
};
|
|
17
19
|
//#endregion
|
|
18
20
|
export { e as default };
|
|
@@ -5,38 +5,38 @@ import { jsx as s } from "react/jsx-runtime";
|
|
|
5
5
|
//#region src/context/ThemeContext.tsx
|
|
6
6
|
var c = r(null);
|
|
7
7
|
function l(r) {
|
|
8
|
-
let i = o(17), { children: l, themeOverrides: d } = r, [
|
|
9
|
-
i[0] !==
|
|
8
|
+
let i = o(17), { children: l, themeOverrides: d, defaultTheme: f } = r, [p, m] = a((f === void 0 ? "light" : f) === "dark"), h, g;
|
|
9
|
+
i[0] !== p || i[1] !== d?.dark || i[2] !== d?.light ? (g = p ? {
|
|
10
10
|
...e,
|
|
11
11
|
...d?.dark
|
|
12
12
|
} : {
|
|
13
13
|
...t,
|
|
14
14
|
...d?.light
|
|
15
|
-
},
|
|
16
|
-
let
|
|
17
|
-
i[5] === Symbol.for("react.memo_cache_sentinel") ? (
|
|
18
|
-
let
|
|
19
|
-
i[6] !==
|
|
20
|
-
isDark:
|
|
21
|
-
toggleTheme:
|
|
22
|
-
theme:
|
|
23
|
-
}, i[6] =
|
|
24
|
-
let
|
|
25
|
-
i[9] ===
|
|
26
|
-
...
|
|
15
|
+
}, h = n(g), i[0] = p, i[1] = d?.dark, i[2] = d?.light, i[3] = h, i[4] = g) : (h = i[3], g = i[4]);
|
|
16
|
+
let _ = h, v;
|
|
17
|
+
i[5] === Symbol.for("react.memo_cache_sentinel") ? (v = () => m(u), i[5] = v) : v = i[5];
|
|
18
|
+
let y;
|
|
19
|
+
i[6] !== p || i[7] !== g ? (y = {
|
|
20
|
+
isDark: p,
|
|
21
|
+
toggleTheme: v,
|
|
22
|
+
theme: g
|
|
23
|
+
}, i[6] = p, i[7] = g, i[8] = y) : y = i[8];
|
|
24
|
+
let b = _, x;
|
|
25
|
+
i[9] === b ? x = i[10] : (x = {
|
|
26
|
+
...b,
|
|
27
27
|
height: "100%",
|
|
28
28
|
width: "100%"
|
|
29
|
-
}, i[9] =
|
|
30
|
-
let x;
|
|
31
|
-
i[11] !== l || i[12] !== b ? (x = /* @__PURE__ */ s("div", {
|
|
32
|
-
style: b,
|
|
33
|
-
children: l
|
|
34
|
-
}), i[11] = l, i[12] = b, i[13] = x) : x = i[13];
|
|
29
|
+
}, i[9] = b, i[10] = x);
|
|
35
30
|
let S;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
children:
|
|
39
|
-
}), i[
|
|
31
|
+
i[11] !== l || i[12] !== x ? (S = /* @__PURE__ */ s("div", {
|
|
32
|
+
style: x,
|
|
33
|
+
children: l
|
|
34
|
+
}), i[11] = l, i[12] = x, i[13] = S) : S = i[13];
|
|
35
|
+
let C;
|
|
36
|
+
return i[14] !== y || i[15] !== S ? (C = /* @__PURE__ */ s(c.Provider, {
|
|
37
|
+
value: y,
|
|
38
|
+
children: S
|
|
39
|
+
}), i[14] = y, i[15] = S, i[16] = C) : C = i[16], C;
|
|
40
40
|
}
|
|
41
41
|
function u(e) {
|
|
42
42
|
return !e;
|
package/dist/es/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { darkTheme as e, lightTheme as t } from "./theme.js";
|
|
2
2
|
import n from "./components/PDFViewer.js";
|
|
3
3
|
import { PDFSidebar as r } from "./components/PDFSidebar.js";
|
|
4
|
-
import { PDFAnnotations as i } from "./components/features/PDFAnnotations.js";
|
|
5
|
-
import { PDFChangeFile as
|
|
6
|
-
import { PDFDownloadButton as
|
|
7
|
-
import { PDFNavigation as
|
|
8
|
-
import { PDFOutline as
|
|
9
|
-
import { PDFPageFit as
|
|
10
|
-
import { PDFRotationControl as
|
|
11
|
-
import { PDFSearch as
|
|
12
|
-
import { PDFSignatures as
|
|
13
|
-
import { PDFThumbnails as
|
|
14
|
-
import { PDFZoomControls as
|
|
15
|
-
import { PDFThemeToggle as
|
|
16
|
-
import { PDFPrintButton as
|
|
17
|
-
export { i as PDFAnnotations, a as
|
|
4
|
+
import { PDFAnnotations as i, PDFAnnotationsIcon as a } from "./components/features/PDFAnnotations.js";
|
|
5
|
+
import { PDFChangeFile as o } from "./components/features/PDFChangeFile.js";
|
|
6
|
+
import { PDFDownloadButton as s } from "./components/features/PDFDownloadButton.js";
|
|
7
|
+
import { PDFNavigation as c } from "./components/features/PDFNavigation.js";
|
|
8
|
+
import { PDFOutline as l } from "./components/features/PDFOutline.js";
|
|
9
|
+
import { PDFPageFit as u } from "./components/features/PDFPageFit.js";
|
|
10
|
+
import { PDFRotationControl as d } from "./components/features/PDFRotationControl.js";
|
|
11
|
+
import { PDFSearch as f } from "./components/features/PDFSearch.js";
|
|
12
|
+
import { PDFSignatures as p, PDFSignaturesIcon as m } from "./components/features/PDFSignatures.js";
|
|
13
|
+
import { PDFThumbnails as h } from "./components/features/PDFThumbnails.js";
|
|
14
|
+
import { PDFZoomControls as g } from "./components/features/PDFZoomControls.js";
|
|
15
|
+
import { PDFThemeToggle as _ } from "./components/features/PDFThemeToggle.js";
|
|
16
|
+
import { PDFPrintButton as v } from "./components/features/PDFPrintButton.js";
|
|
17
|
+
export { i as PDFAnnotations, a as PDFAnnotationsIcon, o as PDFChangeFile, s as PDFDownloadButton, c as PDFNavigation, l as PDFOutline, u as PDFPageFit, v as PDFPrintButton, d as PDFRotationControl, f as PDFSearch, r as PDFSidebar, p as PDFSignatures, m as PDFSignaturesIcon, _ as PDFThemeToggle, h as PDFThumbnails, n as PDFViewer, g as PDFZoomControls, e as darkTheme, t as lightTheme };
|
package/dist/es/pdf-tsx.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._wrapper_184n8_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._buttonBar_184n8_13{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._panelButton_184n8_33{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_184n8_33:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_184n8_73{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_184n8_73:hover{color:var(--pdf-accent-light)}._contentPanel_184n8_91{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_184n8_107{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_184n8_131{flex:1;overflow-y:auto}._appLayout_nel8e_1{width:100%;height:100%;display:flex;overflow:hidden}._mainContent_nel8e_15{flex-direction:column;flex:1;min-width:0;display:flex}._toolbar_nel8e_29{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_nel8e_53{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_nel8e_73{margin-bottom:25px;position:relative}._pageCanvas_nel8e_83{box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block}._textLayer_nel8e_97{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:0;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_nel8e_97 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_nel8e_97>:not(._markedContent_nel8e_149),._textLayer_nel8e_97 ._markedContent_nel8e_149 span:not(._markedContent_nel8e_149){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_nel8e_97 ._markedContent_nel8e_149{display:contents}._textLayer_nel8e_97 ._endOfContent_nel8e_177{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_nel8e_97._selecting_nel8e_195 ._endOfContent_nel8e_177{top:0}._textLayer_nel8e_97 ::selection{background:#0000ff40}._textLayer_nel8e_97 br::selection{background:0 0}._pageSkeleton_nel8e_235{background:linear-gradient(90deg,#3f3f46 25%,#52525b 50%,#3f3f46 75%) 0 0/200% 100%;border-radius:1px;animation:1.4s infinite _shimmer_nel8e_1}@keyframes _shimmer_nel8e_1{0%{background-position:200% 0}to{background-position:-200% 0}}._highlightOverlay_nel8e_267{pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_nel8e_283{pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_nel8e_295{pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_173qc_1{flex-direction:column;display:flex}._emptyState_173qc_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_173qc_23{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_173qc_45{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_173qc_65{cursor:pointer}._cardClickable_173qc_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_173qc_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_173qc_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_173qc_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_173qc_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_173qc_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._btn_12ml0_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_12ml0_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_12ml0_1:disabled{color:var(--pdf-border);cursor:default}._primary_12ml0_57{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_12ml0_57:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_6ysgx_1{align-items:center;gap:2px;margin-left:auto;display:flex}._pageInput_6ysgx_15{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_6ysgx_15:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_6ysgx_15::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15{-moz-appearance:textfield}._pageTotal_6ysgx_71{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_1w4ic_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_1w4ic_13{flex-direction:column;padding:4px 0;display:flex}._row_1w4ic_25{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_1w4ic_25:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_1w4ic_61{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_1w4ic_61:hover{color:var(--pdf-text-muted)}._title_1w4ic_91{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_yinyt_1{align-items:center;gap:4px;display:flex}._searchInput_yinyt_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_yinyt_13:focus{border-color:var(--pdf-accent)}._searchInput_yinyt_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_yinyt_53{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_yinyt_53:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_yinyt_53:disabled{color:var(--pdf-border);cursor:default}._counter_yinyt_95{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_1xon0_1{flex-direction:column;display:flex}._emptyState_1xon0_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._card_1xon0_23{border:1px solid var(--pdf-border);background-color:var(--pdf-panel-bg);cursor:default;border-radius:6px;margin:8px;padding:12px;font-size:12px;transition:box-shadow .12s}._cardClickable_1xon0_45{cursor:pointer}._cardClickable_1xon0_45:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardSigned_1xon0_61{background-color:#f0fdf4;border-color:#bbf7d0}._cardHeader_1xon0_71{align-items:center;gap:7px;margin-bottom:8px;display:flex}._statusDot_1xon0_85{background-color:var(--pdf-border-light);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:flex}._statusDotSigned_1xon0_113{background-color:#22c55e}._statusLabel_1xon0_121{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}._statusLabelSigned_1xon0_137{color:#16a34a}._fieldList_1xon0_145{flex-direction:column;gap:3px;display:flex}._fieldRow_1xon0_157{color:var(--pdf-text-secondary);font-size:12px}._fieldLabel_1xon0_167{color:var(--pdf-text-secondary)}._disclaimer_1xon0_175{color:#a16207;background-color:#fefce8;border:1px solid #fef08a;border-radius:4px;margin:0 8px 12px;padding:8px 10px;font-size:10px;line-height:1.5}._thumbnailList_116om_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_116om_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_116om_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_116om_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_116om_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_116om_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_116om_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailLabel_116om_75{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_116om_89{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_1r6if_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}
|
|
1
|
+
._wrapper_184n8_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._buttonBar_184n8_13{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._panelButton_184n8_33{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_184n8_33:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_184n8_73{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_184n8_73:hover{color:var(--pdf-accent-light)}._contentPanel_184n8_91{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_184n8_107{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_184n8_131{flex:1;overflow-y:auto}._appLayout_nel8e_1{width:100%;height:100%;display:flex;overflow:hidden}._mainContent_nel8e_15{flex-direction:column;flex:1;min-width:0;display:flex}._toolbar_nel8e_29{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_nel8e_53{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_nel8e_73{margin-bottom:25px;position:relative}._pageCanvas_nel8e_83{box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block}._textLayer_nel8e_97{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:0;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_nel8e_97 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_nel8e_97>:not(._markedContent_nel8e_149),._textLayer_nel8e_97 ._markedContent_nel8e_149 span:not(._markedContent_nel8e_149){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_nel8e_97 ._markedContent_nel8e_149{display:contents}._textLayer_nel8e_97 ._endOfContent_nel8e_177{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_nel8e_97._selecting_nel8e_195 ._endOfContent_nel8e_177{top:0}._textLayer_nel8e_97 ::selection{background:#0000ff40}._textLayer_nel8e_97 br::selection{background:0 0}._pageSkeleton_nel8e_235{background:linear-gradient(90deg,#3f3f46 25%,#52525b 50%,#3f3f46 75%) 0 0/200% 100%;border-radius:1px;animation:1.4s infinite _shimmer_nel8e_1}@keyframes _shimmer_nel8e_1{0%{background-position:200% 0}to{background-position:-200% 0}}._highlightOverlay_nel8e_267{pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_nel8e_283{pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_nel8e_295{pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_10scn_1{flex-direction:column;display:flex}._emptyState_10scn_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_10scn_23{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_10scn_45{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_10scn_65{cursor:pointer}._cardClickable_10scn_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_10scn_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_10scn_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_10scn_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_10scn_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_10scn_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_10scn_141{justify-content:center;align-items:center;display:flex;position:relative}._badge_10scn_155{background-color:var(--pdf-accent);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_12ml0_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_12ml0_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_12ml0_1:disabled{color:var(--pdf-border);cursor:default}._primary_12ml0_57{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_12ml0_57:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_6ysgx_1{align-items:center;gap:2px;margin-left:auto;display:flex}._pageInput_6ysgx_15{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_6ysgx_15:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_6ysgx_15::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15{-moz-appearance:textfield}._pageTotal_6ysgx_71{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_1w4ic_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_1w4ic_13{flex-direction:column;padding:4px 0;display:flex}._row_1w4ic_25{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_1w4ic_25:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_1w4ic_61{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_1w4ic_61:hover{color:var(--pdf-text-muted)}._title_1w4ic_91{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_yinyt_1{align-items:center;gap:4px;display:flex}._searchInput_yinyt_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_yinyt_13:focus{border-color:var(--pdf-accent)}._searchInput_yinyt_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_yinyt_53{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_yinyt_53:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_yinyt_53:disabled{color:var(--pdf-border);cursor:default}._counter_yinyt_95{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_11831_1{flex-direction:column;display:flex}._emptyState_11831_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._card_11831_23{border:1px solid var(--pdf-border);background-color:var(--pdf-panel-bg);cursor:default;border-radius:6px;margin:8px;padding:12px;font-size:12px;transition:box-shadow .12s}._cardClickable_11831_45{cursor:pointer}._cardClickable_11831_45:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardSigned_11831_61{background-color:#f0fdf4;border-color:#bbf7d0}._cardHeader_11831_71{align-items:center;gap:7px;margin-bottom:8px;display:flex}._statusDot_11831_85{background-color:var(--pdf-border-light);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:flex}._statusDotSigned_11831_113{background-color:#22c55e}._statusLabel_11831_121{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}._statusLabelSigned_11831_137{color:#16a34a}._fieldList_11831_145{flex-direction:column;gap:3px;display:flex}._fieldRow_11831_157{color:var(--pdf-text-secondary);font-size:12px}._fieldLabel_11831_167{color:var(--pdf-text-secondary)}._disclaimer_11831_175{color:#a16207;background-color:#fefce8;border:1px solid #fef08a;border-radius:4px;margin:0 8px 12px;padding:8px 10px;font-size:10px;line-height:1.5}._iconWrapper_11831_197{justify-content:center;align-items:center;display:flex;position:relative}._badge_11831_211{background-color:var(--pdf-accent);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_116om_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_116om_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_116om_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_116om_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_116om_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_116om_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_116om_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailLabel_116om_75{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_116om_89{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_1r6if_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/utils/pdfFit.ts
|
|
2
|
+
var e = 60, t = 10;
|
|
3
|
+
async function n(n, r, i, a) {
|
|
4
|
+
let o = (await r.getPage(1)).getViewport({
|
|
5
|
+
scale: 1,
|
|
6
|
+
rotation: a
|
|
7
|
+
}), s = i.clientWidth - e;
|
|
8
|
+
if (n === "width") return s / o.width;
|
|
9
|
+
let c = i.clientHeight - t * 2;
|
|
10
|
+
return Math.min(s / o.width, c / o.height);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { n as computeFit };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { default as PDFViewer } from './components/PDFViewer';
|
|
|
2
2
|
export type { Theme } from './theme';
|
|
3
3
|
export { darkTheme, lightTheme } from './theme';
|
|
4
4
|
export { PDFSidebar } from './components/PDFSidebar';
|
|
5
|
-
export { PDFAnnotations } from './components/features/PDFAnnotations';
|
|
5
|
+
export { PDFAnnotations, PDFAnnotationsIcon } from './components/features/PDFAnnotations';
|
|
6
6
|
export { PDFChangeFile } from './components/features/PDFChangeFile';
|
|
7
7
|
export { PDFDownloadButton } from './components/features/PDFDownloadButton';
|
|
8
8
|
export { PDFNavigation } from './components/features/PDFNavigation';
|
|
@@ -10,7 +10,7 @@ export { PDFOutline } from './components/features/PDFOutline';
|
|
|
10
10
|
export { PDFPageFit } from './components/features/PDFPageFit';
|
|
11
11
|
export { PDFRotationControl } from './components/features/PDFRotationControl';
|
|
12
12
|
export { PDFSearch } from './components/features/PDFSearch';
|
|
13
|
-
export { PDFSignatures } from './components/features/PDFSignatures';
|
|
13
|
+
export { PDFSignatures, PDFSignaturesIcon } from './components/features/PDFSignatures';
|
|
14
14
|
export { PDFThumbnails } from './components/features/PDFThumbnails';
|
|
15
15
|
export { PDFZoomControls } from './components/features/PDFZoomControls';
|
|
16
16
|
export { PDFThemeToggle } from './components/features/PDFThemeToggle';
|