pdf-tsx 0.1.0 → 0.1.2
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 +19 -7
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -1
- package/dist/cjs/components/PDFSidebar.cjs +1 -1
- package/dist/cjs/components/features/PDFAnnotations.cjs +1 -1
- package/dist/cjs/components/features/PDFChangeFile.cjs +1 -1
- package/dist/cjs/components/features/PDFDownloadButton.cjs +1 -1
- package/dist/cjs/components/features/PDFNavigation.cjs +1 -1
- package/dist/cjs/components/features/PDFOutline.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/PDFRotationControl.cjs +1 -1
- package/dist/cjs/components/features/PDFSearch.cjs +1 -1
- package/dist/cjs/components/features/PDFSignatures.cjs +1 -1
- package/dist/cjs/components/features/PDFThemeToggle.cjs +1 -1
- package/dist/cjs/components/features/PDFThumbnails.cjs +1 -1
- package/dist/cjs/components/features/PDFZoomControls.cjs +1 -1
- package/dist/cjs/components/ui/ToolbarButton.cjs +1 -1
- package/dist/cjs/components/ui/icons.cjs +1 -1
- package/dist/cjs/context/ThemeContext.cjs +1 -1
- package/dist/cjs/hooks/useAnnotationLayer.cjs +1 -1
- package/dist/cjs/hooks/useKeyboardShortcuts.cjs +1 -1
- package/dist/cjs/hooks/useOutline.cjs +1 -1
- package/dist/cjs/hooks/useScrollTracking.cjs +1 -1
- package/dist/cjs/hooks/useTextLayer.cjs +1 -1
- package/dist/cjs/hooks/useTextSearch.cjs +1 -1
- package/dist/cjs/hooks/useThumbnails.cjs +1 -1
- package/dist/es/components/PDFSidebar.js +17 -18
- package/dist/es/components/features/PDFAnnotations.js +32 -32
- package/dist/es/components/features/PDFChangeFile.js +7 -8
- package/dist/es/components/features/PDFDownloadButton.js +6 -7
- package/dist/es/components/features/PDFNavigation.js +12 -13
- package/dist/es/components/features/PDFOutline.js +42 -43
- package/dist/es/components/features/PDFPageFit.js +10 -10
- package/dist/es/components/features/PDFPrintButton.js +6 -7
- package/dist/es/components/features/PDFRotationControl.js +9 -10
- package/dist/es/components/features/PDFSearch.js +15 -16
- package/dist/es/components/features/PDFSignatures.js +55 -56
- package/dist/es/components/features/PDFThemeToggle.js +7 -8
- package/dist/es/components/features/PDFThumbnails.js +20 -21
- package/dist/es/components/features/PDFZoomControls.js +20 -21
- package/dist/es/components/ui/ToolbarButton.js +7 -8
- package/dist/es/components/ui/icons.js +9 -9
- package/dist/es/context/ThemeContext.js +19 -19
- package/dist/es/hooks/useAnnotationLayer.js +16 -17
- package/dist/es/hooks/useKeyboardShortcuts.js +15 -16
- package/dist/es/hooks/useOutline.js +7 -8
- package/dist/es/hooks/useScrollTracking.js +11 -11
- package/dist/es/hooks/useTextLayer.js +13 -14
- package/dist/es/hooks/useTextSearch.js +7 -8
- package/dist/es/hooks/useThumbnails.js +7 -8
- package/package.json +1 -1
- package/dist/cjs/node_modules/react/cjs/react-compiler-runtime.development.cjs +0 -5
- package/dist/cjs/node_modules/react/cjs/react-compiler-runtime.production.cjs +0 -1
- package/dist/cjs/node_modules/react/compiler-runtime.cjs +0 -1
- package/dist/es/_virtual/_rolldown/runtime.js +0 -7
- package/dist/es/node_modules/react/cjs/react-compiler-runtime.development.js +0 -14
- package/dist/es/node_modules/react/cjs/react-compiler-runtime.production.js +0 -11
- package/dist/es/node_modules/react/compiler-runtime.js +0 -10
package/README.md
CHANGED
|
@@ -18,18 +18,26 @@ npm install react react-dom pdfjs-dist
|
|
|
18
18
|
|
|
19
19
|
## Quick start
|
|
20
20
|
|
|
21
|
+
`PDFViewer` requires a `workerSrc` prop — the URL of the pdfjs worker script. The easiest way is to serve it from the `pdfjs-dist` package directly:
|
|
22
|
+
|
|
21
23
|
```tsx
|
|
22
24
|
import { PDFViewer } from 'pdf-tsx'
|
|
25
|
+
import workerUrl from 'pdfjs-dist/build/pdf.worker.min.mjs?url'
|
|
23
26
|
|
|
24
27
|
function App() {
|
|
25
28
|
const [file, setFile] = useState<File | null>(null)
|
|
26
29
|
|
|
27
30
|
if (!file) return <input type="file" accept=".pdf" onChange={e => setFile(e.target.files![0])} />
|
|
28
31
|
|
|
29
|
-
return <PDFViewer file={file} />
|
|
32
|
+
return <PDFViewer file={file} workerSrc={workerUrl} />
|
|
30
33
|
}
|
|
31
34
|
```
|
|
32
35
|
|
|
36
|
+
> The `?url` suffix is a Vite feature that returns the asset URL as a string. If you use a different bundler, import the worker URL accordingly or pass a CDN URL:
|
|
37
|
+
> ```ts
|
|
38
|
+
> workerSrc="https://unpkg.com/pdfjs-dist@5/build/pdf.worker.min.mjs"
|
|
39
|
+
> ```
|
|
40
|
+
|
|
33
41
|
---
|
|
34
42
|
|
|
35
43
|
## Icons
|
|
@@ -51,18 +59,20 @@ The main component. Must wrap all feature components.
|
|
|
51
59
|
```tsx
|
|
52
60
|
<PDFViewer
|
|
53
61
|
file={file}
|
|
62
|
+
workerSrc={workerUrl}
|
|
54
63
|
sidebar={<PDFSidebar panels={[...]} />}
|
|
55
64
|
toolbar={<>...</>}
|
|
56
65
|
onChangeFile={(newFile) => setFile(newFile)}
|
|
57
66
|
/>
|
|
58
67
|
```
|
|
59
68
|
|
|
60
|
-
| Prop | Type | Required | Description
|
|
61
|
-
|
|
62
|
-
| `file` | `File` | yes | The PDF file object to display
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
69
|
+
| Prop | Type | Required | Description |
|
|
70
|
+
|----------------|------------------------|----------|------------------------------------------------------|
|
|
71
|
+
| `file` | `File` | yes | The PDF file object to display |
|
|
72
|
+
| `workerSrc` | `string` | yes | URL of the pdfjs worker script (see Quick start) |
|
|
73
|
+
| `sidebar` | `ReactNode` | no | Content rendered on the left side |
|
|
74
|
+
| `toolbar` | `ReactNode` | no | Content rendered in the top toolbar |
|
|
75
|
+
| `onChangeFile` | `(file: File) => void` | no | Called when the user opens a different file |
|
|
66
76
|
|
|
67
77
|
---
|
|
68
78
|
|
|
@@ -132,6 +142,7 @@ import {
|
|
|
132
142
|
FiChevronLeft, FiChevronRight, FiDownload, FiFolderPlus,
|
|
133
143
|
FiPrinter, FiSun, FiMoon,
|
|
134
144
|
} from 'react-icons/fi'
|
|
145
|
+
import workerUrl from 'pdfjs-dist/build/pdf.worker.min.mjs?url'
|
|
135
146
|
|
|
136
147
|
const PDFViewer = lazy(() => import('pdf-tsx').then(m => ({ default: m.PDFViewer })))
|
|
137
148
|
|
|
@@ -152,6 +163,7 @@ function App() {
|
|
|
152
163
|
<Suspense fallback={<div>Loading...</div>}>
|
|
153
164
|
<PDFViewer
|
|
154
165
|
file={file}
|
|
166
|
+
workerSrc={workerUrl}
|
|
155
167
|
onChangeFile={setFile}
|
|
156
168
|
sidebar={
|
|
157
169
|
<PDFSidebar panels={[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));exports.__toESM=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./PDFSidebar.module.cjs`);let t=require(`react`),n=require(`react/compiler-runtime`),r=require(`react/jsx-runtime`);function i(i){let a=(0,n.c)(14),{panels:o}=i,[s,c]=(0,t.useState)(null),l;a[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>c(t=>t===e?null:e),a[0]=l):l=a[0];let u=l,d;if(a[1]!==s||a[2]!==o){let t;a[4]===s?t=a[5]:(t=(t,n)=>(0,r.jsx)(`button`,{className:`${e.default.panelButton} ${s===n?e.default.panelButtonActive:``}`,onClick:()=>u(n),title:t.label,children:t.icon},n),a[4]=s,a[5]=t),d=o.map(t),a[1]=s,a[2]=o,a[3]=d}else d=a[3];let f;a[6]===d?f=a[7]:(f=(0,r.jsx)(`div`,{className:e.default.buttonBar,children:d}),a[6]=d,a[7]=f);let p;a[8]!==s||a[9]!==o?(p=s!==null&&(0,r.jsxs)(`div`,{className:e.default.contentPanel,children:[(0,r.jsx)(`div`,{className:e.default.panelHeader,children:o[s].label}),(0,r.jsx)(`div`,{className:e.default.panelBody,children:o[s].content})]}),a[8]=s,a[9]=o,a[10]=p):p=a[10];let m;return a[11]!==f||a[12]!==p?(m=(0,r.jsxs)(`div`,{className:e.default.wrapper,children:[f,p]}),a[11]=f,a[12]=p,a[13]=m):m=a[13],m}exports.PDFSidebar=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../
|
|
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 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(
|
|
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 o=(0,i.c)(11),{icon:s}=e,{onChangeFile:c}=t.usePDFViewer(),l=(0,r.useRef)(null),u;o[0]===c?u=o[1]:(u=e=>{let t=e.target.files?.[0];t&&c?.(t),e.target.value=``},o[0]=c,o[1]=u);let d=u,f;o[2]===Symbol.for(`react.memo_cache_sentinel`)?(f={display:`none`},o[2]=f):f=o[2];let p;o[3]===d?p=o[4]:(p=(0,a.jsx)(`input`,{ref:l,type:`file`,accept:`.pdf`,style:f,onChange:d}),o[3]=d,o[4]=p);let m;o[5]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>l.current?.click(),o[5]=m):m=o[5];let h;o[6]===s?h=o[7]:(h=(0,a.jsx)(n.ToolbarButton,{onClick:m,title:`Apri altro file`,children:s}),o[6]=s,o[7]=h);let g;return o[8]!==p||o[9]!==h?(g=(0,a.jsxs)(a.Fragment,{children:[p,h]}),o[8]=p,o[9]=h,o[10]=g):g=o[10],g}exports.PDFChangeFile=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(
|
|
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(`a`);t.href=e,t.download=s.name||`documento.pdf`,t.click(),URL.revokeObjectURL(e)},r[0]=s,r[1]=c);let l=c,u;return r[2]!==l||r[3]!==o?(u=(0,a.jsxs)(n.ToolbarButton,{$primary:!0,onClick:l,title:`Scarica PDF`,children:[o,`Scarica`]}),r[2]=l,r[3]=o,r[4]=u):u=r[4],u}exports.PDFDownloadButton=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../ui/ToolbarButton.cjs`),r=require(`./PDFNavigation.module.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 s=(0,a.c)(34),{prevIcon:c,nextIcon:l}=e,{currentPage:u,numPages:d,goToPage:f}=t.usePDFViewer(),[p,m]=(0,i.useState)(!1),[h,g]=(0,i.useState)(``),_;s[0]!==f||s[1]!==h?(_=()=>{let e=parseInt(h,10);isNaN(e)||f(e),m(!1)},s[0]=f,s[1]=h,s[2]=_):_=s[2];let v=_,y;s[3]!==u||s[4]!==f?(y=()=>f(u-1),s[3]=u,s[4]=f,s[5]=y):y=s[5];let b=u===1,x;s[6]!==c||s[7]!==y||s[8]!==b?(x=(0,o.jsx)(n.ToolbarButton,{onClick:y,disabled:b,title:`Pagina precedente (←)`,children:c}),s[6]=c,s[7]=y,s[8]=b,s[9]=x):x=s[9];let S=p?h:u,C;s[10]===u?C=s[11]:(C=()=>{m(!0),g(String(u))},s[10]=u,s[11]=C);let w;s[12]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>g(e.target.value),s[12]=w):w=s[12];let T;s[13]===v?T=s[14]:(T=e=>{e.key===`Enter`&&v(),e.key===`Escape`&&m(!1)},s[13]=v,s[14]=T);let E;s[15]!==v||s[16]!==S||s[17]!==C||s[18]!==T?(E=(0,o.jsx)(`input`,{className:r.default.pageInput,type:`number`,value:S,onFocus:C,onBlur:v,onChange:w,onKeyDown:T,title:`Vai alla pagina`}),s[15]=v,s[16]=S,s[17]=C,s[18]=T,s[19]=E):E=s[19];let D;s[20]===d?D=s[21]:(D=(0,o.jsxs)(`span`,{className:r.default.pageTotal,children:[`/ `,d]}),s[20]=d,s[21]=D);let O;s[22]!==u||s[23]!==f?(O=()=>f(u+1),s[22]=u,s[23]=f,s[24]=O):O=s[24];let k=u===d,A;s[25]!==l||s[26]!==O||s[27]!==k?(A=(0,o.jsx)(n.ToolbarButton,{onClick:O,disabled:k,title:`Pagina successiva (→)`,children:l}),s[25]=l,s[26]=O,s[27]=k,s[28]=A):A=s[28];let j;return s[29]!==D||s[30]!==A||s[31]!==x||s[32]!==E?(j=(0,o.jsxs)(`div`,{className:r.default.navWrapper,children:[x,E,D,A]}),s[29]=D,s[30]=A,s[31]=x,s[32]=E,s[33]=j):j=s[33],j}exports.PDFNavigation=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../hooks/useOutline.cjs`),n=require(`../ui/icons.cjs`),r=require(`./PDFOutline.module.cjs`);let i=require(`react`),a=require(`react/compiler-runtime`),o=require(`react/jsx-runtime`);async function s(e,t){if(!e||!t)return null;try{let n=typeof t==`string`?await e.getDestination(t):t;if(!n||n.length===0)return null;let r=n[0];return await e.getPageIndex(r)+1}catch{return null}}function c(e){let t=(0,a.c)(25),{node:s,depth:u,onNavigate:d}=e,[f,p]=(0,i.useState)(u===0),m=s.items.length>0,h=12+u*14,g=s.bold?600:400,_=s.italic?`italic`:`normal`,v;t[0]!==h||t[1]!==g||t[2]!==_?(v={paddingLeft:h,fontWeight:g,fontStyle:_},t[0]=h,t[1]=g,t[2]=_,t[3]=v):v=t[3];let y;t[4]!==s.dest||t[5]!==d?(y=()=>d(s.dest),t[4]=s.dest,t[5]=d,t[6]=y):y=t[6];let b;t[7]!==m||t[8]!==f?(b=m?(0,o.jsx)(`button`,{className:r.default.chevronBtn,onClick:e=>{e.stopPropagation(),p(l)},children:f?(0,o.jsx)(n.IconChevronDown,{size:12}):(0,o.jsx)(n.IconChevronRight,{size:12})}):(0,o.jsx)(`span`,{style:{width:16,flexShrink:0}}),t[7]=m,t[8]=f,t[9]=b):b=t[9];let x;t[10]===s.title?x=t[11]:(x=(0,o.jsx)(`span`,{className:r.default.title,title:s.title,children:s.title}),t[10]=s.title,t[11]=x);let S;t[12]!==v||t[13]!==y||t[14]!==b||t[15]!==x?(S=(0,o.jsxs)(`div`,{className:r.default.row,style:v,onClick:y,children:[b,x]}),t[12]=v,t[13]=y,t[14]=b,t[15]=x,t[16]=S):S=t[16];let C;t[17]!==u||t[18]!==s.items||t[19]!==d||t[20]!==f?(C=f&&s.items.map((e,t)=>(0,o.jsx)(c,{node:e,depth:u+1,onNavigate:d},t)),t[17]=u,t[18]=s.items,t[19]=d,t[20]=f,t[21]=C):C=t[21];let w;return t[22]!==S||t[23]!==C?(w=(0,o.jsxs)(o.Fragment,{children:[S,C]}),t[22]=S,t[23]=C,t[24]=w):w=t[24],w}function l(e){return!e}function u(){let n=(0,a.c)(18),{pdf:i,goToPage:l}=e.usePDFViewer(),u;n[0]===i?u=n[1]:(u={pdf:i},n[0]=i,n[1]=u);let{outline:d,loading:f}=t.useOutline(u),p;n[2]!==l||n[3]!==i?(p=async e=>{let t=await s(i,e);t!==null&&l(t)},n[2]=l,n[3]=i,n[4]=p):p=n[4];let m=p,h;n[5]===f?h=n[6]:(h=f&&(0,o.jsx)(`div`,{className:r.default.emptyState,children:`Caricamento...`}),n[5]=f,n[6]=h);let g;n[7]!==f||n[8]!==d?(g=!f&&d.length===0&&(0,o.jsx)(`div`,{className:r.default.emptyState,children:`Nessun segnalibro disponibile.`}),n[7]=f,n[8]=d,n[9]=g):g=n[9];let _;n[10]!==m||n[11]!==f||n[12]!==d?(_=!f&&d.map((e,t)=>(0,o.jsx)(c,{node:e,depth:0,onNavigate:m},t)),n[10]=m,n[11]=f,n[12]=d,n[13]=_):_=n[13];let v;return n[14]!==h||n[15]!==g||n[16]!==_?(v=(0,o.jsxs)(`div`,{className:r.default.tree,children:[h,g,_]}),n[14]=h,n[15]=g,n[16]=_,n[17]=v):v=n[17],v}exports.PDFOutline=u;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(
|
|
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`);var o=60,s=10;function c(e){let r=(0,i.c)(19),{fitWidthIcon:c,fitPageIcon:l}=e,{pdf:u,rotation:d,setZoom:f,containerRef:p}=t.usePDFViewer(),m;r[0]!==p||r[1]!==u||r[2]!==d||r[3]!==f?(m=async()=>{if(!u||!p.current)return;let e=(await u.getPage(1)).getViewport({scale:1,rotation:d});f((p.current.clientWidth-o)/e.width)},r[0]=p,r[1]=u,r[2]=d,r[3]=f,r[4]=m):m=r[4];let h=m,g;r[5]!==p||r[6]!==u||r[7]!==d||r[8]!==f?(g=async()=>{if(!u||!p.current)return;let e=(await u.getPage(1)).getViewport({scale:1,rotation:d}),t=p.current.clientWidth-o,n=p.current.clientHeight-s*2;f(Math.min(t/e.width,n/e.height))},r[5]=p,r[6]=u,r[7]=d,r[8]=f,r[9]=g):g=r[9];let _=g,v;r[10]!==c||r[11]!==h?(v=(0,a.jsx)(n.ToolbarButton,{onClick:h,title:`Adatta alla larghezza`,children:c}),r[10]=c,r[11]=h,r[12]=v):v=r[12];let y;r[13]!==l||r[14]!==_?(y=(0,a.jsx)(n.ToolbarButton,{onClick:_,title:`Adatta pagina intera`,children:l}),r[13]=l,r[14]=_,r[15]=y):y=r[15];let b;return r[16]!==v||r[17]!==y?(b=(0,a.jsxs)(a.Fragment,{children:[v,y]}),r[16]=v,r[17]=y,r[18]=b):b=r[18],b}exports.PDFPageFit=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(
|
|
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?.print(),setTimeout(()=>{document.body.removeChild(t),URL.revokeObjectURL(e)},1e3)}},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
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(
|
|
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,{setRotation:c}=t.usePDFViewer(),l;r[0]===c?l=r[1]:(l=()=>c(s),r[0]=c,r[1]=l);let u;return r[2]!==o||r[3]!==l?(u=(0,a.jsx)(n.ToolbarButton,{onClick:l,title:`Ruota documento`,children:o}),r[2]=o,r[3]=l,r[4]=u):u=r[4],u}function s(e){return(e+90)%360}exports.PDFRotationControl=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../../
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../../hooks/useTextSearch.cjs`),r=require(`./PDFSearch.module.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 s=(0,a.c)(33),{searchIcon:c,prevIcon:l,nextIcon:u,clearIcon:d}=e,{pdf:f,goToPage:p,setHighlight:m,setSearchMatches:h}=t.usePDFViewer(),[g,_]=(0,i.useState)(``),[v,y]=(0,i.useState)(0),b;s[0]!==f||s[1]!==g?(b={pdf:f,query:g},s[0]=f,s[1]=g,s[2]=b):b=s[2];let{matches:x,searching:S}=n.useTextSearch(b),C=x.length,w,T;s[3]!==x||s[4]!==h?(w=()=>(h(x),()=>h([])),T=[x,h],s[3]=x,s[4]=h,s[5]=w,s[6]=T):(w=s[5],T=s[6]),(0,i.useEffect)(w,T);let E;s[7]!==p||s[8]!==x||s[9]!==m||s[10]!==C?(E=e=>{let t=(e+C)%C;y(t);let n=x[t];p(n.page),m({page:n.page,pdfRect:n.pdfRect})},s[7]=p,s[8]=x,s[9]=m,s[10]=C,s[11]=E):E=s[11];let D=E,O;s[12]===m?O=s[13]:(O=e=>{_(e.target.value),y(0),m(null)},s[12]=m,s[13]=O);let k=O,A;s[14]===m?A=s[15]:(A=()=>{_(``),y(0),m(null)},s[14]=m,s[15]=A);let j=A,M;s[16]!==k||s[17]!==g?(M=(0,o.jsx)(`input`,{className:r.default.searchInput,value:g,onChange:k,placeholder:`Cerca nel documento...`}),s[16]=k,s[17]=g,s[18]=M):M=s[18];let N;s[19]!==d||s[20]!==j||s[21]!==v||s[22]!==D||s[23]!==u||s[24]!==l||s[25]!==g||s[26]!==S||s[27]!==C?(N=g&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`span`,{className:r.default.counter,children:S?`…`:C===0?`0`:`${v+1}/${C}`}),(0,o.jsx)(`button`,{className:r.default.navButton,onClick:()=>D(v-1),disabled:C===0,children:l}),(0,o.jsx)(`button`,{className:r.default.navButton,onClick:()=>D(v+1),disabled:C===0,children:u}),(0,o.jsx)(`button`,{className:r.default.navButton,onClick:j,children:d})]}),s[19]=d,s[20]=j,s[21]=v,s[22]=D,s[23]=u,s[24]=l,s[25]=g,s[26]=S,s[27]=C,s[28]=N):N=s[28];let P;return s[29]!==c||s[30]!==M||s[31]!==N?(P=(0,o.jsxs)(`div`,{className:r.default.wrapper,children:[c,M,N]}),s[29]=c,s[30]=M,s[31]=N,s[32]=P):P=s[32],P}exports.PDFSearch=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../
|
|
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)(22),{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;a[14]!==f||a[15]!==d?(v=!f&&d.length>0&&(0,i.jsx)(`div`,{className:n.default.disclaimer,children:`La presenza del campo firma non garantisce la validità crittografica.`}),a[14]=f,a[15]=d,a[16]=v):v=a[16];let y;return a[17]!==h||a[18]!==g||a[19]!==_||a[20]!==v?(y=(0,i.jsxs)(`div`,{className:n.default.list,children:[h,g,_,v]}),a[17]=h,a[18]=g,a[19]=_,a[20]=v,a[21]=y):y=a[21],y}exports.PDFSignatures=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/ThemeContext.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)(4),{lightIcon:o,darkIcon:s}=e,{isDark:c,toggleTheme:l}=t.useTheme(),u=c?`Switch to light mode`:`Switch to dark mode`,d=c?o:s,f;return r[0]!==u||r[1]!==d||r[2]!==l?(f=(0,a.jsx)(n.ToolbarButton,{onClick:l,title:u,children:d}),r[0]=u,r[1]=d,r[2]=l,r[3]=f):f=r[3],f}exports.PDFThemeToggle=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../../hooks/useThumbnails.cjs`),n=require(`./PDFThumbnails.module.cjs`);let r=require(`react/compiler-runtime`),i=require(`react/jsx-runtime`);function a(){let a=(0,r.c)(12),{pdf:o,rotation:s,currentPage:c,goToPage:l}=e.usePDFViewer(),u;a[0]!==o||a[1]!==s?(u={pdf:o,rotation:s},a[0]=o,a[1]=s,a[2]=u):u=a[2];let{thumbnails:d}=t.useThumbnails(u),f;if(a[3]!==c||a[4]!==l||a[5]!==d){let e;a[7]!==c||a[8]!==l?(e=(e,t)=>{let r=c===t+1;return(0,i.jsxs)(`div`,{className:`${n.default.thumbnailItem} ${r?n.default.thumbnailItemActive:``}`,onClick:()=>l(t+1),children:[(0,i.jsx)(`img`,{src:e,className:`${n.default.thumbnailImg} ${r?n.default.thumbnailImgActive:``}`,alt:`Anteprima pagina ${t+1}`}),(0,i.jsx)(`div`,{className:`${n.default.thumbnailLabel} ${r?n.default.thumbnailLabelActive:``}`,children:t+1})]},t)},a[7]=c,a[8]=l,a[9]=e):e=a[9],f=d.map(e),a[3]=c,a[4]=l,a[5]=d,a[6]=f}else f=a[6];let p;return a[10]===f?p=a[11]:(p=(0,i.jsx)(`div`,{className:n.default.thumbnailList,children:f}),a[10]=f,a[11]=p),p}exports.PDFThumbnails=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../ui/ToolbarButton.cjs`),r=require(`./PDFZoomControls.module.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),{zoomOutIcon:s,zoomInIcon:u}=e,{zoom:d,setZoom:f}=t.usePDFViewer(),p;i[0]===f?p=i[1]:(p=()=>f(l),i[0]=f,i[1]=p);let m;i[2]!==p||i[3]!==s?(m=(0,o.jsx)(n.ToolbarButton,{onClick:p,title:`Riduci zoom`,children:s}),i[2]=p,i[3]=s,i[4]=m):m=i[4];let h;i[5]===d?h=i[6]:(h=Math.round(d*100),i[5]=d,i[6]=h);let g;i[7]===h?g=i[8]:(g=(0,o.jsxs)(`span`,{className:r.default.zoomLabel,children:[h,`%`]}),i[7]=h,i[8]=g);let _;i[9]===f?_=i[10]:(_=()=>f(c),i[9]=f,i[10]=_);let v;i[11]!==_||i[12]!==u?(v=(0,o.jsx)(n.ToolbarButton,{onClick:_,title:`Aumenta zoom`,children:u}),i[11]=_,i[12]=u,i[13]=v):v=i[13];let y;return i[14]!==m||i[15]!==g||i[16]!==v?(y=(0,o.jsxs)(o.Fragment,{children:[m,g,v]}),i[14]=m,i[15]=g,i[16]=v,i[17]=y):y=i[17],y}function c(e){return Math.min(e+.2,3)}function l(e){return Math.max(e-.2,.2)}exports.PDFZoomControls=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`./ToolbarButton.module.cjs`);let t=require(`react/compiler-runtime`),n=require(`react/jsx-runtime`);function r(r){let i=(0,t.c)(7),a,o,s;i[0]===r?(a=i[1],o=i[2],s=i[3]):({$primary:a,className:o,...s}=r,i[0]=r,i[1]=a,i[2]=o,i[3]=s);let c=a?`${e.default.btn} ${e.default.primary}`:e.default.btn,l=o?`${c} ${o}`:c,u;return i[4]!==s||i[5]!==l?(u=(0,n.jsx)(`button`,{className:l,...s}),i[4]=s,i[5]=l,i[6]=u):u=i[6],u}exports.ToolbarButton=r;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`)
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`);let t=require(`react`);t=e.__toESM(t,1);let n=require(`react/compiler-runtime`),r=require(`react/jsx-runtime`);var i=(e,t=16)=>(0,r.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,children:e}),a=e=>{let t=(0,n.c)(3),{size:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,r.jsx)(`polyline`,{points:`9 18 15 12 9 6`}),t[0]=o):o=t[0];let s;return t[1]===a?s=t[2]:(s=i(o,a),t[1]=a,t[2]=s),s},o=e=>{let t=(0,n.c)(3),{size:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,r.jsx)(`polyline`,{points:`6 9 12 15 18 9`}),t[0]=o):o=t[0];let s;return t[1]===a?s=t[2]:(s=i(o,a),t[1]=a,t[2]=s),s};exports.IconChevronDown=o,exports.IconChevronRight=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../
|
|
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)(14),{children:c}=a,[l,u]=(0,t.useState)(!0),d=l?e.darkTheme:e.lightTheme,f;s[0]===d?f=s[1]:(f=e.themeToCssVars(d),s[0]=d,s[1]=f);let p=f,m;s[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>u(o),s[2]=m):m=s[2];let h;s[3]!==l||s[4]!==d?(h={isDark:l,toggleTheme:m,theme:d},s[3]=l,s[4]=d,s[5]=h):h=s[5];let g=p,_;s[6]===g?_=s[7]:(_={...g,display:`contents`},s[6]=g,s[7]=_);let v;s[8]!==c||s[9]!==_?(v=(0,r.jsx)(`div`,{style:_,children:c}),s[8]=c,s[9]=_,s[10]=v):v=s[10];let y;return s[11]!==h||s[12]!==v?(y=(0,r.jsx)(i.Provider,{value:h,children:v}),s[11]=h,s[12]=v,s[13]=y):y=s[13],y}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;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../utils/url.cjs`);let n=require(`react`),r=require(`pdfjs-dist`);r=e.__toESM(r,1);let i=require(`react/compiler-runtime`);function a(e){let r=(0,i.c)(15),{pdf:a,zoom:o,rotation:s,numPages:c,goToPage:l}=e,u;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],r[0]=u):u=r[0];let[d,f]=(0,n.useState)(u),p,m;r[1]!==c||r[2]!==a||r[3]!==s||r[4]!==o?(p=()=>{if(!a)return;let e=!1;return(async()=>{f([]);let t=[];for(let n=1;n<=c&&!e;n++){let e=await a.getPage(n),r=e.getViewport({scale:o,rotation:s}),i=await e.getAnnotations();for(let e of i){if(e.subtype!==`Link`||!e.rect)continue;let i=e.rect,[a,o,s,c]=r.convertToViewportRectangle(i);t.push({page:n,x:Math.min(a,s),y:Math.min(o,c),width:Math.abs(s-a),height:Math.abs(c-o),url:e.url,dest:e.dest,newWindow:e.newWindow})}}e||f(t)})(),()=>{e=!0}},m=[a,o,s,c],r[1]=c,r[2]=a,r[3]=s,r[4]=o,r[5]=p,r[6]=m):(p=r[5],m=r[6]),(0,n.useEffect)(p,m);let h;r[7]!==l||r[8]!==a?(h=async e=>{if(e.url){if(!t.isSafeUrl(e.url))return;window.open(e.url,`_blank`,`noopener,noreferrer`);return}if(e.dest&&a){let t=null;if(typeof e.dest==`string`?t=await a.getDestination(e.dest):Array.isArray(e.dest)&&(t=e.dest),!t)return;l(await a.getPageIndex(t[0])+1)}},r[7]=l,r[8]=a,r[9]=h):h=r[9];let g=h,_;if(r[10]!==g||r[11]!==d){let e;r[13]===g?e=r[14]:(e=e=>({...e,_handleClick:g.bind(null,e)}),r[13]=g,r[14]=e),_=d.map(e),r[10]=g,r[11]=d,r[12]=_}else _=r[12];return _}exports.useAnnotationLayer=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`)
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);let r=require(`react/compiler-runtime`);function i(e){let n=(0,r.c)(13),{pdf:i,currentPage:c,numPages:l,goToPage:u,setZoom:d,setRotation:f}=e,p;n[0]!==c||n[1]!==u||n[2]!==i||n[3]!==f||n[4]!==d?(p=()=>{if(!i)return;let e=e=>{let t=e.target.tagName;if(!(t===`INPUT`||t===`TEXTAREA`))bb13:switch(e.key){case`ArrowLeft`:case`ArrowUp`:e.preventDefault(),u(c-1);break bb13;case`ArrowRight`:case`ArrowDown`:e.preventDefault(),u(c+1);break bb13;case`+`:case`=`:e.preventDefault(),d(s);break bb13;case`-`:e.preventDefault(),d(o);break bb13;case`r`:case`R`:e.preventDefault(),f(a)}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},n[0]=c,n[1]=u,n[2]=i,n[3]=f,n[4]=d,n[5]=p):p=n[5];let m;n[6]!==c||n[7]!==u||n[8]!==l||n[9]!==i||n[10]!==f||n[11]!==d?(m=[i,c,l,u,d,f],n[6]=c,n[7]=u,n[8]=l,n[9]=i,n[10]=f,n[11]=d,n[12]=m):m=n[12],(0,t.useEffect)(p,m)}function a(e){return(e+90)%360}function o(e){return Math.max(e-.2,.2)}function s(e){return Math.min(e+.2,3)}exports.useKeyboardShortcuts=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`)
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);let r=require(`react/compiler-runtime`);function i(e){let n=(0,r.c)(7),{pdf:i}=e,a;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=[],n[0]=a):a=n[0];let[o,s]=(0,t.useState)(a),[c,l]=(0,t.useState)(!1),u,d;n[1]===i?(u=n[2],d=n[3]):(u=()=>{i&&(l(!0),i.getOutline().then(e=>s(e??[])).catch(()=>s([])).finally(()=>l(!1)))},d=[i],n[1]=i,n[2]=u,n[3]=d),(0,t.useEffect)(u,d);let f;return n[4]!==c||n[5]!==o?(f={outline:o,loading:c},n[4]=c,n[5]=o,n[6]=f):f=n[6],f}exports.useOutline=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`)
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);let r=require(`react/compiler-runtime`);var i=10;function a(e){let n=(0,r.c)(16),{pdf:a,numPages:o,zoom:s,rotation:c,containerRef:l,canvasRefs:u}=e,[d,f]=(0,t.useState)(1),p;n[0]!==u||n[1]!==l?(p=()=>{let e=l.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect().top,n=u.current;for(let e=0;e<n.length;e++){let r=n[e];r&&(r.parentElement??r).getBoundingClientRect().top-t<=150&&f(e+1)}};return e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)},n[0]=u,n[1]=l,n[2]=p):p=n[2];let m;n[3]!==u||n[4]!==l||n[5]!==a||n[6]!==c||n[7]!==s?(m=[a,s,c,l,u],n[3]=u,n[4]=l,n[5]=a,n[6]=c,n[7]=s,n[8]=m):m=n[8],(0,t.useEffect)(p,m);let h;n[9]!==u||n[10]!==l||n[11]!==o?(h=e=>{let t=Math.min(Math.max(e,1),o),n=u.current[t-1],r=l.current;if(n&&r){let e=(n.parentElement??n).getBoundingClientRect().top,a=r.getBoundingClientRect().top,o=r.scrollTop+(e-a)-i;r.scrollTo({top:o,behavior:`smooth`}),f(t)}},n[9]=u,n[10]=l,n[11]=o,n[12]=h):h=n[12];let g=h,_;return n[13]!==d||n[14]!==g?(_={currentPage:d,goToPage:g},n[13]=d,n[14]=g,n[15]=_):_=n[15],_}exports.useScrollTracking=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`)
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`);;/* empty css */let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);let r=require(`react/compiler-runtime`);function i(e){let i=(0,r.c)(8),{pdf:a,zoom:o,rotation:s,numPages:c,canvasRefs:l}=e,u;i[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],i[0]=u):u=i[0];let d=(0,t.useRef)(u),f,p;return i[1]!==l||i[2]!==c||i[3]!==a||i[4]!==s||i[5]!==o?(f=()=>{if(!a)return;let e=!1;return(async()=>{for(let t=1;t<=c&&!e;t++){let r=d.current[t-1],i=l.current[t-1];if(!r||!i)continue;r.replaceChildren();let c=await a.getPage(t),u=c.getViewport({scale:o,rotation:s}),f=await c.getTextContent();if(e)break;r.style.width=`${u.width}px`,r.style.height=`${u.height}px`,await new n.TextLayer({textContentSource:f,container:r,viewport:u}).render()}})(),()=>{e=!0}},p=[a,o,s,c,l],i[1]=l,i[2]=c,i[3]=a,i[4]=s,i[5]=o,i[6]=f,i[7]=p):(f=i[6],p=i[7]),(0,t.useEffect)(f,p),d}exports.useTextLayer=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`)
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);let r=require(`react/compiler-runtime`);function i(e){let n=(0,r.c)(8),{pdf:i,query:a}=e,o;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],n[0]=o):o=n[0];let[s,c]=(0,t.useState)(o),[l,u]=(0,t.useState)(!1),d,f;n[1]!==i||n[2]!==a?(d=()=>{let e=a.trim().toLowerCase();if(!i||!e){c([]);return}let t=!1;return(async()=>{u(!0);let n=[];for(let r=1;r<=i.numPages&&!t;r++){let t=await(await i.getPage(r)).getTextContent();for(let i of t.items){if(!(`str`in i))continue;let t=i.str.toLowerCase(),a=t.indexOf(e);if(a===-1)continue;let o=i.transform,s=o[0],c=o[4],l=o[5],u=i.width,d=i.height,f=u/(t.length||1);for(;a!==-1;){let i=c+a*f*+(s>0),o=e.length*f;n.push({page:r,pdfRect:[i,l,i+o,l+d]}),a=t.indexOf(e,a+1)}}}t||(c(n),u(!1))})(),()=>{t=!0}},f=[i,a],n[1]=i,n[2]=a,n[3]=d,n[4]=f):(d=n[3],f=n[4]),(0,t.useEffect)(d,f);let p;return n[5]!==s||n[6]!==l?(p={matches:s,searching:l},n[5]=s,n[6]=l,n[7]=p):p=n[7],p}exports.useTextSearch=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`)
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);let r=require(`react/compiler-runtime`);function i(e){let n=(0,r.c)(7),{pdf:i,rotation:a}=e,o;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],n[0]=o):o=n[0];let[s,c]=(0,t.useState)(o),l,u;n[1]!==i||n[2]!==a?(l=()=>{i&&(async()=>{let e=[];for(let t=1;t<=i.numPages;t++){let n=await i.getPage(t),r=n.getViewport({scale:.2,rotation:a}),o=document.createElement(`canvas`),s=o.getContext(`2d`);s&&(o.height=r.height,o.width=r.width,await n.render({canvasContext:s,viewport:r,canvas:o}).promise,e.push(o.toDataURL()))}c(e)})()},u=[i,a],n[1]=i,n[2]=a,n[3]=l,n[4]=u):(l=n[3],u=n[4]),(0,t.useEffect)(l,u);let d;return n[5]===s?d=n[6]:(d={thumbnails:s},n[5]=s,n[6]=d),d}exports.useThumbnails=i;
|
|
@@ -1,43 +1,42 @@
|
|
|
1
|
-
import
|
|
2
|
-
import t from "
|
|
3
|
-
import {
|
|
1
|
+
import e from "./PDFSidebar.module.js";
|
|
2
|
+
import { useState as t } from "react";
|
|
3
|
+
import { c as n } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/PDFSidebar.tsx
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
let o = (0, a.c)(14), { panels: s } = e, [c, l] = n(null), u;
|
|
6
|
+
function a(a) {
|
|
7
|
+
let o = n(14), { panels: s } = a, [c, l] = t(null), u;
|
|
9
8
|
o[0] === Symbol.for("react.memo_cache_sentinel") ? (u = (e) => l((t) => t === e ? null : e), o[0] = u) : u = o[0];
|
|
10
9
|
let d = u, f;
|
|
11
10
|
if (o[1] !== c || o[2] !== s) {
|
|
12
|
-
let
|
|
13
|
-
o[4] === c ?
|
|
14
|
-
className: `${
|
|
11
|
+
let t;
|
|
12
|
+
o[4] === c ? t = o[5] : (t = (t, n) => /* @__PURE__ */ r("button", {
|
|
13
|
+
className: `${e.panelButton} ${c === n ? e.panelButtonActive : ""}`,
|
|
15
14
|
onClick: () => d(n),
|
|
16
|
-
title:
|
|
17
|
-
children:
|
|
18
|
-
}, n), o[4] = c, o[5] =
|
|
15
|
+
title: t.label,
|
|
16
|
+
children: t.icon
|
|
17
|
+
}, n), o[4] = c, o[5] = t), f = s.map(t), o[1] = c, o[2] = s, o[3] = f;
|
|
19
18
|
} else f = o[3];
|
|
20
19
|
let p;
|
|
21
20
|
o[6] === f ? p = o[7] : (p = /* @__PURE__ */ r("div", {
|
|
22
|
-
className:
|
|
21
|
+
className: e.buttonBar,
|
|
23
22
|
children: f
|
|
24
23
|
}), o[6] = f, o[7] = p);
|
|
25
24
|
let m;
|
|
26
25
|
o[8] !== c || o[9] !== s ? (m = c !== null && /* @__PURE__ */ i("div", {
|
|
27
|
-
className:
|
|
26
|
+
className: e.contentPanel,
|
|
28
27
|
children: [/* @__PURE__ */ r("div", {
|
|
29
|
-
className:
|
|
28
|
+
className: e.panelHeader,
|
|
30
29
|
children: s[c].label
|
|
31
30
|
}), /* @__PURE__ */ r("div", {
|
|
32
|
-
className:
|
|
31
|
+
className: e.panelBody,
|
|
33
32
|
children: s[c].content
|
|
34
33
|
})]
|
|
35
34
|
}), o[8] = c, o[9] = s, o[10] = m) : m = o[10];
|
|
36
35
|
let h;
|
|
37
36
|
return o[11] !== p || o[12] !== m ? (h = /* @__PURE__ */ i("div", {
|
|
38
|
-
className:
|
|
37
|
+
className: e.wrapper,
|
|
39
38
|
children: [p, m]
|
|
40
39
|
}), o[11] = p, o[12] = m, o[13] = h) : h = o[13], h;
|
|
41
40
|
}
|
|
42
41
|
//#endregion
|
|
43
|
-
export {
|
|
42
|
+
export { a as PDFSidebar };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { usePDFViewer as e } from "../../context/PDFViewerContext.js";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import r from "
|
|
2
|
+
import { useAnnotations as t } from "../../hooks/useAnnotations.js";
|
|
3
|
+
import n from "./PDFAnnotations.module.js";
|
|
4
|
+
import { c as r } from "react/compiler-runtime";
|
|
5
5
|
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/features/PDFAnnotations.tsx
|
|
7
|
-
var o =
|
|
7
|
+
var o = {
|
|
8
8
|
Text: "Nota",
|
|
9
9
|
Highlight: "Evidenziazione",
|
|
10
10
|
Underline: "Sottolineatura",
|
|
@@ -17,39 +17,39 @@ var o = t(), s = {
|
|
|
17
17
|
Stamp: "Timbro",
|
|
18
18
|
FileAttachment: "Allegato"
|
|
19
19
|
};
|
|
20
|
-
function
|
|
20
|
+
function s(e) {
|
|
21
21
|
return e ? `rgb(${e.r}, ${e.g}, ${e.b})` : "#d4d4d8";
|
|
22
22
|
}
|
|
23
|
-
function
|
|
24
|
-
let t = (
|
|
25
|
-
t[0] ===
|
|
23
|
+
function c(e) {
|
|
24
|
+
let t = r(22), { ann: c, onClick: l } = e, u = o[c.subtype] ?? c.subtype, d = `${n.card} ${c.rect ? n.cardClickable : ""}`, f;
|
|
25
|
+
t[0] === c.color ? f = t[1] : (f = s(c.color), t[0] = c.color, t[1] = f);
|
|
26
26
|
let p = `3px solid ${f}`, m;
|
|
27
27
|
t[2] === p ? m = t[3] : (m = { borderLeft: p }, t[2] = p, t[3] = m);
|
|
28
28
|
let h;
|
|
29
29
|
t[4] === u ? h = t[5] : (h = /* @__PURE__ */ i("span", {
|
|
30
|
-
className:
|
|
30
|
+
className: n.cardLabel,
|
|
31
31
|
children: u
|
|
32
32
|
}), t[4] = u, t[5] = h);
|
|
33
33
|
let g;
|
|
34
|
-
t[6] ===
|
|
35
|
-
className:
|
|
36
|
-
children: ["p.",
|
|
37
|
-
}), t[6] =
|
|
34
|
+
t[6] === c.page ? g = t[7] : (g = /* @__PURE__ */ a("span", {
|
|
35
|
+
className: n.cardPage,
|
|
36
|
+
children: ["p.", c.page]
|
|
37
|
+
}), t[6] = c.page, t[7] = g);
|
|
38
38
|
let _;
|
|
39
39
|
t[8] !== h || t[9] !== g ? (_ = /* @__PURE__ */ a("div", {
|
|
40
|
-
className:
|
|
40
|
+
className: n.cardHeader,
|
|
41
41
|
children: [h, g]
|
|
42
42
|
}), t[8] = h, t[9] = g, t[10] = _) : _ = t[10];
|
|
43
43
|
let v;
|
|
44
|
-
t[11] ===
|
|
45
|
-
className:
|
|
46
|
-
children:
|
|
47
|
-
}), t[11] =
|
|
44
|
+
t[11] === c.title ? v = t[12] : (v = c.title && /* @__PURE__ */ i("div", {
|
|
45
|
+
className: n.cardAuthor,
|
|
46
|
+
children: c.title
|
|
47
|
+
}), t[11] = c.title, t[12] = v);
|
|
48
48
|
let y;
|
|
49
|
-
t[13] ===
|
|
50
|
-
className:
|
|
51
|
-
children:
|
|
52
|
-
}), t[13] =
|
|
49
|
+
t[13] === c.contents ? y = t[14] : (y = c.contents && /* @__PURE__ */ i("div", {
|
|
50
|
+
className: n.cardContent,
|
|
51
|
+
children: c.contents
|
|
52
|
+
}), t[13] = c.contents, t[14] = y);
|
|
53
53
|
let b;
|
|
54
54
|
return t[15] !== l || t[16] !== d || t[17] !== m || t[18] !== _ || t[19] !== v || t[20] !== y ? (b = /* @__PURE__ */ a("div", {
|
|
55
55
|
className: d,
|
|
@@ -62,28 +62,28 @@ function l(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
|
|
66
|
-
let { pdf:
|
|
65
|
+
function l() {
|
|
66
|
+
let { pdf: r, goToPage: o, setHighlight: s } = e(), { annotations: l, loading: u } = t({ pdf: r }), d = (e) => {
|
|
67
67
|
o(e.page), e.rect && s({
|
|
68
68
|
page: e.page,
|
|
69
69
|
pdfRect: e.rect
|
|
70
70
|
});
|
|
71
|
-
}, f =
|
|
71
|
+
}, f = l.reduce((e, t) => ((e[t.page] ??= []).push(t), e), {});
|
|
72
72
|
return /* @__PURE__ */ a("div", {
|
|
73
|
-
className:
|
|
73
|
+
className: n.list,
|
|
74
74
|
children: [
|
|
75
75
|
u && /* @__PURE__ */ i("div", {
|
|
76
|
-
className:
|
|
76
|
+
className: n.emptyState,
|
|
77
77
|
children: "Caricamento..."
|
|
78
78
|
}),
|
|
79
|
-
!u &&
|
|
80
|
-
className:
|
|
79
|
+
!u && l.length === 0 && /* @__PURE__ */ i("div", {
|
|
80
|
+
className: n.emptyState,
|
|
81
81
|
children: "Nessuna annotazione rilevata."
|
|
82
82
|
}),
|
|
83
83
|
!u && Object.entries(f).map(([e, t]) => /* @__PURE__ */ a("div", { children: [/* @__PURE__ */ a("div", {
|
|
84
|
-
className:
|
|
84
|
+
className: n.pageHeader,
|
|
85
85
|
children: ["Pagina ", e]
|
|
86
|
-
}), t.map((e) => /* @__PURE__ */ i(
|
|
86
|
+
}), t.map((e) => /* @__PURE__ */ i(c, {
|
|
87
87
|
ann: e,
|
|
88
88
|
onClick: () => d(e)
|
|
89
89
|
}, e.id))] }, e))
|
|
@@ -91,4 +91,4 @@ function u() {
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
//#endregion
|
|
94
|
-
export {
|
|
94
|
+
export { l as PDFAnnotations };
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { usePDFViewer as e } from "../../context/PDFViewerContext.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { ToolbarButton as t } from "../ui/ToolbarButton.js";
|
|
3
|
+
import { useRef as n } from "react";
|
|
4
|
+
import { c as r } from "react/compiler-runtime";
|
|
5
5
|
import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/features/PDFChangeFile.tsx
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
let c = (0, s.c)(11), { icon: l } = t, { onChangeFile: u } = e(), d = r(null), f;
|
|
7
|
+
function s(s) {
|
|
8
|
+
let c = r(11), { icon: l } = s, { onChangeFile: u } = e(), d = n(null), f;
|
|
10
9
|
c[0] === u ? f = c[1] : (f = (e) => {
|
|
11
10
|
let t = e.target.files?.[0];
|
|
12
11
|
t && u?.(t), e.target.value = "";
|
|
@@ -24,7 +23,7 @@ function c(t) {
|
|
|
24
23
|
let g;
|
|
25
24
|
c[5] === Symbol.for("react.memo_cache_sentinel") ? (g = () => d.current?.click(), c[5] = g) : g = c[5];
|
|
26
25
|
let _;
|
|
27
|
-
c[6] === l ? _ = c[7] : (_ = /* @__PURE__ */ a(
|
|
26
|
+
c[6] === l ? _ = c[7] : (_ = /* @__PURE__ */ a(t, {
|
|
28
27
|
onClick: g,
|
|
29
28
|
title: "Apri altro file",
|
|
30
29
|
children: l
|
|
@@ -33,4 +32,4 @@ function c(t) {
|
|
|
33
32
|
return c[8] !== h || c[9] !== _ ? (v = /* @__PURE__ */ o(i, { children: [h, _] }), c[8] = h, c[9] = _, c[10] = v) : v = c[10], v;
|
|
34
33
|
}
|
|
35
34
|
//#endregion
|
|
36
|
-
export {
|
|
35
|
+
export { s as PDFChangeFile };
|