epochs-pdf 0.1.2 → 0.1.3

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.
@@ -1,6 +1,6 @@
1
1
  "use strict";var ji=Object.defineProperty;var ki=(e,t,n)=>t in e?ji(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Lt=(e,t,n)=>ki(e,typeof t!="symbol"?t+"":t,n);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("react"),r=require("react/jsx-runtime"),Mn=require("pdfjs-dist");function Mi(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const rt=Mi(Mn),ut="#ffffff",Wt=[{id:"yellow",label:"Yellow",hex:"#facc15"},{id:"green",label:"Green",hex:"#4ade80"},{id:"pink",label:"Pink",hex:"#f472b6"},{id:"blue",label:"Blue",hex:"#60a5fa"},{id:"orange",label:"Orange",hex:"#fb923c"},{id:"purple",label:"Purple",hex:"#c084fc"}],Gt=[{id:"blue",label:"Blue",hex:"#2563eb"},{id:"red",label:"Red",hex:"#dc2626"},{id:"green",label:"Green",hex:"#16a34a"},{id:"orange",label:"Orange",hex:"#ea580c"},{id:"purple",label:"Purple",hex:"#7c3aed"},{id:"black",label:"Black",hex:"#111827"}],Pn=Wt[0].hex,Pi=Gt[0].hex;Xt(Pn,"highlight");function St(){return`m_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function Ye(e){const t=e.trim();if(/^#[0-9a-fA-F]{6}$/.test(t))return t.toLowerCase();if(/^#[0-9a-fA-F]{3}$/.test(t)){const n=t[1],i=t[2],s=t[3];return`#${n}${n}${i}${i}${s}${s}`.toLowerCase()}return t}function Xt(e,t,n=.45){const i=Ye(e);if(t==="underline"||t==="redact")return i;const s=/^#([0-9a-f]{6})$/i.exec(i);if(!s)return`rgba(250, 204, 21, ${n})`;const a=Number.parseInt(s[1],16),c=a>>16&255,l=a>>8&255,b=a&255;return`rgba(${c}, ${l}, ${b}, ${n})`}function Dt(e,t){const n=window.getSelection();if(!n||n.isCollapsed||n.rangeCount===0)return null;const i=n.getRangeAt(0);if(!e.contains(i.commonAncestorContainer))return null;const s=e.getBoundingClientRect(),a=Array.from(i.getClientRects()).filter(j=>j.width>0&&j.height>0);if(!a.length)return null;const c=t||1,l=e.clientWidth||s.width,b=e.clientHeight||s.height;return{rects:a.map(j=>({x:s.width>0?(j.left-s.left)/s.width*(l/c):0,y:s.height>0?(j.top-s.top)/s.height*(b/c):0,w:s.width>0?j.width/s.width*(l/c):0,h:s.height>0?j.height/s.height*(b/c):0})),text:n.toString()}}function bn(e){const n=[...e].sort((i,s)=>i.y-s.y||i.x-s.x)[0]??{x:0,y:0,h:14};return{x:n.x,y:n.y,fontSize:Math.max(8,Math.round(n.h*.9)||14)}}function Et(e,t=2){return e.map(n=>({x:Math.max(0,n.x-t),y:Math.max(0,n.y-t),w:n.w+t*2,h:n.h+t*2}))}function Nn(e,t,n){for(const i of t)for(const s of i.rects){const a=s.x*n,c=s.y*n,l=s.w*n,b=s.h*n;if(i.kind==="highlight")e.save(),e.globalCompositeOperation="multiply",e.fillStyle=i.color,e.fillRect(a,c,l,b),e.restore();else if(i.kind==="redact")e.fillStyle=i.color||ut,e.fillRect(a,c,l,b);else{const g=Math.max(2,n*1.5);e.fillStyle=i.color,e.fillRect(a,c+b-g,l,g)}}}function vt(){return`s_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}async function Cn(e,t,n){for(const i of t){const s=await Ci(i.imageDataUrl);e.drawImage(s,i.x*n,i.y*n,i.width*n,i.height*n)}}function Ni(e,t,n,i){e.save();for(const s of t){const a=n.has(s.id),c=s.x*i,l=s.y*i,b=s.width*i,g=s.height*i;e.fillStyle=a?"rgba(29, 78, 216, 0.08)":"rgba(29, 78, 216, 0.18)",e.strokeStyle=a?"rgba(29, 78, 216, 0.45)":"#1d4ed8",e.lineWidth=1.5,e.setLineDash(a?[]:[4,3]),e.fillRect(c,l,b,g),e.strokeRect(c,l,b,g)}e.restore()}function Ci(e){return new Promise((t,n)=>{const i=new Image;i.onload=()=>t(i),i.onerror=()=>n(new Error("Failed to load signature image")),i.src=e})}function Ti(e,t,n=180,i=64){if(e<=0||t<=0)return{width:n,height:i};const s=Math.min(n/e,i/t);return{width:Math.max(40,e*s),height:Math.max(20,t*s)}}function bt(e,t,n,i){const s=n.getBoundingClientRect(),a=n.clientWidth||s.width,c=n.clientHeight||s.height;return s.width<=0||s.height<=0||i<=0?{x:0,y:0}:{x:(e-s.left)/s.width*(a/i),y:(t-s.top)/s.height*(c/i)}}function pt(e,t){return{width:e.clientWidth/t,height:e.clientHeight/t}}function $i(e,t,n,i){const s=n.getBoundingClientRect(),a=n.clientWidth||s.width,c=n.clientHeight||s.height;return s.width<=0||s.height<=0||i<=0?{dx:0,dy:0}:{dx:e/s.width*(a/i),dy:t/s.height*(c/i)}}function Ri(e,t,n){const i=t.getBoundingClientRect(),{width:s,height:a}=pt(t,n);return i.width<=0||i.height<=0?{left:0,top:0,right:s,bottom:a}:{left:(e.left-i.left)/i.width*s,top:(e.top-i.top)/i.height*a,right:(e.right-i.left)/i.width*s,bottom:(e.bottom-i.top)/i.height*a}}const gt=14,ft="#111827",Ft=24,At=20;function Bt(){return`t_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function lt(e,t){if(typeof document>"u")return{width:Math.max(Ft,e.length*t*.55),height:Math.max(At,t*1.25)};const i=document.createElement("canvas").getContext("2d");if(!i)return{width:Math.max(Ft,e.length*t*.55),height:Math.max(At,t*1.25)};i.font=`${t}px sans-serif`;const s=e.split(`
2
2
  `),a=t*1.25;let c=Ft;for(const l of s)c=Math.max(c,i.measureText(l||" ").width+4);return{width:c,height:Math.max(At,s.length*a)}}function Ii(e,t,n,i,s){var F;const a=n.getBoundingClientRect(),c=n.clientWidth||a.width,l=n.clientHeight||a.height,b=T=>a.width>0?(T-a.left)/a.width*(c/s):0,g=T=>a.height>0?(T-a.top)/a.height*(l/s):0,j=(T,Z)=>{const J=Z==="x"?a.width:a.height,G=Z==="x"?c:l;return J>0?T/J*(G/s):0};let v=b(e),w=g(t),M=gt;const C=Li(e,t,i);if(C)return{x:b(C.x),y:g(C.y),fontSize:Math.max(8,Math.round(j(C.fontSize,"y")*10)/10)};const W=document,E=(F=W.caretRangeFromPoint)==null?void 0:F.call(W,e,t);if(E&&i.contains(E.startContainer)){const T=E.getClientRects(),Z=T.length>0?T[0]:E.getBoundingClientRect();if(Z.height>0){w=g(Z.top),M=Di(E.startContainer,s,n);const J=b(Z.left);return Math.abs(J-v)<j(8,"x")&&(v=J),{x:v,y:w,fontSize:M}}}const O=Si(e,t,i);return O&&(w=g(O.top),M=Math.max(8,Math.round(j(O.height,"y")*10)/10)),{x:v,y:w,fontSize:M}}function Li(e,t,n){var a;const i=Array.from(n.querySelectorAll("span"));if(i.length<2)return null;const s=[];for(const c of i){if(!((a=c.textContent)!=null&&a.trim()))continue;const l=c.getBoundingClientRect();l.width<=0||l.height<=0||t<l.top-4||t>l.bottom+4||s.push({left:l.left,right:l.right,top:l.top,bottom:l.bottom,height:l.height})}s.sort((c,l)=>c.left-l.left);for(let c=0;c<s.length-1;c+=1){const l=s[c],b=s[c+1],g=l.right,j=b.left;if(!(j-g<1)&&e>=g-2&&e<=j+2)return{x:e,y:Math.min(l.top,b.top),fontSize:Math.min(l.height,b.height)}}return null}function Si(e,t,n){var a;const i=Array.from(n.querySelectorAll("span"));let s=null;for(const c of i){if(!((a=c.textContent)!=null&&a.trim()))continue;const l=c.getBoundingClientRect();if(l.width<=0||l.height<=0||t<l.top-6||t>l.bottom+6)continue;const b=(l.left+l.right)/2,g=Math.abs(e-b);(!s||g<s.dist)&&(s={top:l.top,height:l.height,dist:g})}return s?{top:s.top,height:s.height}:null}function Di(e,t,n){const i=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return i?Ei(i,t,n):gt}function Ei(e,t,n){const i=e.getBoundingClientRect().height;if(i>0){if(n){const c=n.getBoundingClientRect(),l=n.clientHeight||c.height;if(c.height>0)return Math.max(8,Math.round(i/c.height*(l/t)*10)/10)}return Math.max(8,Math.round(i/t*10)/10)}const s=window.getComputedStyle(e).fontSize,a=Number.parseFloat(s);return Number.isFinite(a)&&a>0?Math.max(8,Math.round(a/t*10)/10):gt}function Fi(e,t,n,i){for(const s of n)if(s.pageNumber===i&&e>=s.x&&e<=s.x+s.width&&t>=s.y&&t<=s.y+s.height)return s;return null}function Ai(e,t,n){var M;if(!n)return null;const i=document,s=(M=i.caretRangeFromPoint)==null?void 0:M.call(i,e,t);if(!s||!n.contains(s.startContainer))return null;const a=s.startContainer;if(a.nodeType!==Node.TEXT_NODE||!a.textContent)return null;const c=a.textContent;let l=s.startOffset;l=Math.min(Math.max(0,l),c.length);const b=C=>/[\p{L}\p{N}_'-]/u.test(C);let g=l,j=l;for(;g>0&&b(c[g-1]);)g-=1;for(;j<c.length&&b(c[j]);)j+=1;if(g===j)return null;const v=document.createRange();v.setStart(a,g),v.setEnd(a,j);const w=window.getSelection();return w==null||w.removeAllRanges(),w==null||w.addRange(v),c.slice(g,j)}function Tn(e,t,n){e.save();for(const i of t){if(!i.value.trim())continue;const s=i.x*n,a=i.y*n,c=Math.max(8,i.fontSize*n);e.fillStyle=i.color,e.font=`${c}px sans-serif`,e.textBaseline="top";const l=c*1.25,b=i.value.split(`
3
- `);let g=a;for(const j of b)e.fillText(j,s,g),g+=l}e.restore()}function Bi(e,t,n,i){e.save();for(const s of t){const a=n.has(s.id),c=s.x*i,l=s.y*i,b=s.width*i,g=s.height*i;e.fillStyle=a?"rgba(5, 150, 105, 0.08)":"rgba(5, 150, 105, 0.16)",e.strokeStyle=a?"rgba(5, 150, 105, 0.45)":"#059669",e.lineWidth=1.5,e.setLineDash(a?[]:[4,3]),e.fillRect(c,l,b,g),e.strokeRect(c,l,b,g)}e.restore()}function ke({size:e=14,className:t,children:n}){return r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,"aria-hidden":"true",children:n})}function Oi(e){return r.jsx(ke,{...e,children:r.jsx("polyline",{points:"15 18 9 12 15 6"})})}function Hi(e){return r.jsx(ke,{...e,children:r.jsx("polyline",{points:"9 18 15 12 9 6"})})}function zi(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),r.jsx("polyline",{points:"7 10 12 15 17 10"}),r.jsx("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})}function Ui(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),r.jsx("polyline",{points:"15 3 21 3 21 9"}),r.jsx("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]})}function Wi(e){return r.jsxs(ke,{...e,children:[r.jsx("rect",{x:"3",y:"3",width:"7",height:"7"}),r.jsx("rect",{x:"14",y:"3",width:"7",height:"7"}),r.jsx("rect",{x:"14",y:"14",width:"7",height:"7"}),r.jsx("rect",{x:"3",y:"14",width:"7",height:"7"})]})}function Gi(e){return r.jsx(ke,{...e,children:r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})})}function Xi(e){return r.jsxs(ke,{...e,children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}function qi(e){return r.jsxs(ke,{...e,children:[r.jsx("polyline",{points:"6 9 6 2 18 2 18 9"}),r.jsx("path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"}),r.jsx("rect",{x:"6",y:"14",width:"12",height:"8"})]})}function Yi(e){return r.jsxs(ke,{...e,children:[r.jsx("polyline",{points:"23 4 23 10 17 10"}),r.jsx("polyline",{points:"1 20 1 14 7 14"}),r.jsx("path",{d:"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"})]})}function Zi(e){return r.jsxs(ke,{...e,children:[r.jsx("polyline",{points:"23 4 23 10 17 10"}),r.jsx("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})]})}function Ki(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M12 20h9"}),r.jsx("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})]})}function Vi(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M6 3v7a6 6 0 0 0 12 0V3"}),r.jsx("line",{x1:"4",y1:"21",x2:"20",y2:"21"})]})}function Qi(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"}),r.jsx("path",{d:"M22 21H7"}),r.jsx("path",{d:"m5 11 9 9"})]})}function Ji({size:e=16,className:t}){return r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 256 256",fill:"currentColor",stroke:"currentColor",strokeWidth:"12",strokeLinejoin:"round",className:t,"aria-hidden":"true",children:r.jsx("path",{d:"M232,172H57.32c4-7.83,8.18-16.11,12.21-24.56,15.14,3.55,34.13-8.06,56.54-34.59,3.67,12.5,12.53,34.83,29.08,35.15h.35c8.71,0,17.64-6.25,27.16-19.06C187.17,137.14,199.31,148,232,148a4,4,0,0,0,0-8c-42.88,0-44-19.24-44-20a4,4,0,0,0-7.35-2.18C168.74,136.1,160.42,140,155.48,140h-.18c-13-.25-21.29-26.52-23.38-36.61a4,4,0,0,0-7-1.69c-20.94,26.27-39.06,39.55-51.8,38.2C97.31,87.5,105.19,53.16,96.49,37.77,94,33.31,88.7,28,77.91,28,64.09,28,52.54,42.41,47,66.54A122.7,122.7,0,0,0,45.46,113c2.64,15.29,8.39,26.05,16.69,31.35-4.58,9.6-9.3,19-13.84,27.68H24a4,4,0,0,0,0,8H44.1c-12.87,24.17-23.37,41.68-23.53,41.94a4,4,0,0,0,1.37,5.49A3.93,3.93,0,0,0,24,228a4,4,0,0,0,3.43-1.94c.16-.27,11.85-19.75,25.72-46.06H232a4,4,0,0,0,0-8ZM53.34,111.61a114.81,114.81,0,0,1,1.49-43.29C58.4,52.7,66.34,36,77.91,36c7.52,0,10.23,3.26,11.61,5.7C99,58.4,79.92,106,65.6,137,59.76,132.69,55.46,123.83,53.34,111.61Z"})})}function er(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M12 20h9"}),r.jsx("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})]})}function tr(e){return r.jsxs(ke,{...e,children:[r.jsx("polyline",{points:"4 7 4 4 20 4 20 7"}),r.jsx("line",{x1:"9",y1:"20",x2:"15",y2:"20"}),r.jsx("line",{x1:"12",y1:"4",x2:"12",y2:"20"})]})}function nr({pdfDoc:e,pageNumber:t,scale:n,rotation:i,pageRef:s,onRendered:a,markupTool:c="none",markupColor:l,annotations:b=[],onAddAnnotation:g,onRemoveAnnotation:j,signatures:v=[],pendingSignature:w=null,onAddSignature:M,onUpdateSignature:C,onRemoveSignature:W,onEditSignature:E,onDuplicateSignature:O,selectedSignatureId:F=null,onSelectSignature:T,signatureFields:Z=[],selectedSignatureFieldId:J=null,onSelectSignatureField:G,hasFixedSignatureFields:ie=!1,onOpenSignaturePad:be,fieldValues:me={},onFieldValueChange:L,onFieldValueCommit:se,pendingFieldValue:$=null,onPlaceFieldValue:S,texts:K=[],onAddText:xe,onUpdateText:Me,onRemoveText:he,selectedTextId:we=null,onSelectText:V,textFields:Le=[],selectedTextFieldId:We=null,onSelectTextField:_e,hasFixedTextFields:Ae=!1,editingTextId:ye=null,onEditingTextIdChange:A}){const ue=d.useRef(null),Fe=d.useRef(null),te=d.useRef(null),fe=d.useRef(null),le=d.useRef(null),p=d.useRef(null),[m,H]=d.useState(null),X=d.useRef(null),re=d.useRef(!1);d.useEffect(()=>{if(!e||!Fe.current||!te.current||!fe.current)return;let o=!1;const y=Fe.current,_=te.current,k=fe.current,P=y.getContext("2d");return P?((async()=>{try{if(le.current){try{le.current.cancel()}catch{}le.current=null}if(p.current){try{p.current.cancel()}catch{}p.current=null}const R=await e.getPage(t);if(o)return;const z=R.getViewport({scale:n,rotation:i}),Y=Math.floor(z.width),U=Math.floor(z.height);y.width=Y,y.height=U,k.style.width=`${Y}px`,k.style.height=`${U}px`;const B=R.render({canvasContext:P,viewport:z});if(le.current=B,await B.promise,o)return;_.replaceChildren(),_.style.setProperty("--scale-factor",String(z.scale));const ae=await R.getTextContent();if(o)return;const ce=new Mn.TextLayer({textContentSource:ae,container:_,viewport:z});if(p.current=ce,await ce.render(),o)return;a==null||a(t)}catch{}})(),()=>{if(o=!0,le.current){try{le.current.cancel()}catch{}le.current=null}if(p.current){try{p.current.cancel()}catch{}p.current=null}}):void 0},[e,t,n,i,a]),d.useEffect(()=>{const o=fe.current;if(!o)return;const y=N=>{var U;if(!g)return!1;const R=N==="redact"?ut:l;if(!R)return!1;const z=Dt(o,n);if(!z)return!1;const Y=N==="redact"?Et(z.rects):z.rects;return g({id:St(),pageNumber:t,kind:N,color:R,rects:Y,text:z.text}),(U=window.getSelection())==null||U.removeAllRanges(),!0},_=N=>{var ae;if(!g||!xe)return!1;const R=Dt(o,n);if(!R)return!1;const z=Et(R.rects);g({id:St(),pageNumber:t,kind:"redact",color:ut,rects:z,text:R.text});const Y=bn(R.rects),U=lt(N||" ",Y.fontSize),B={id:Bt(),pageNumber:t,x:Y.x,y:Y.y,width:U.width,height:U.height,value:N,fontSize:Y.fontSize,color:ft};return xe(B),V==null||V(B.id),A==null||A(B.id),(ae=window.getSelection())==null||ae.removeAllRanges(),re.current=!0,window.setTimeout(()=>{re.current=!1},0),!0},k=()=>{if(c==="highlight"||c==="underline"){y(c);return}if(c==="erase"){y("redact");return}if(c==="text"){const N=window.getSelection();N&&!N.isCollapsed&&N.toString().trim()&&N.anchorNode&&o.contains(N.anchorNode)&&_(N.toString())}},P=N=>{const R=N.target;if(R!=null&&R.closest("[contenteditable='true']")||R!=null&&R.closest("[contenteditable='']")||R!=null&&R.isContentEditable)return;const z=window.getSelection(),Y=z!=null&&!z.isCollapsed&&z.toString().trim().length>0&&z.anchorNode!=null&&o.contains(z.anchorNode);if(c==="text"&&Y){if(N.key==="Enter"&&!N.shiftKey){N.preventDefault(),_(z.toString());return}if(N.key.length===1&&!N.ctrlKey&&!N.metaKey&&!N.altKey){N.preventDefault(),_(N.key);return}}c!=="text"&&c!=="erase"||N.key!=="Backspace"&&N.key!=="Delete"||Y&&(N.preventDefault(),y("redact"))};return o.addEventListener("mouseup",k),window.addEventListener("keydown",P),()=>{o.removeEventListener("mouseup",k),window.removeEventListener("keydown",P)}},[c,l,g,xe,A,V,t,n]),d.useEffect(()=>{if(!m)return;let o=0,y=0,_=0,k=0;const P=()=>{var B;return(B=ue.current)==null?void 0:B.closest(".epochs-pdf-viewer__body")},N=(B,ae)=>{if(m.kind!=="resize"||!C||ie)return;const ce=v.find(ze=>ze.id===m.id);if(!ce)return;const ee=fe.current,ve=ee?pt(ee,n):{width:1/0,height:1/0},{dx:de,dy:pe}=ee?$i(B-m.startX,ae-m.startY,ee,n):{dx:0,dy:0},je=ve.width-ce.x,He=ve.height-ce.y,Ie=Math.min(je,Math.max(40,m.startW+de)),st=Math.min(He,Math.max(20,m.startH+pe));C(m.id,{width:Ie,height:st})},R=(B,ae)=>{var wt;if(m.kind!=="signature"||!C||ie)return;const ce=v.find(Xe=>Xe.id===m.id);if(!ce)return;let ee=(wt=document.elementFromPoint(B,ae))==null?void 0:wt.closest("[data-page-number]");if(ee||(ee=Array.from(document.querySelectorAll(".epochs-pdf-viewer__page[data-page-number]")).find(Mt=>{const Ze=Mt.getBoundingClientRect();return ae>=Ze.top&&ae<=Ze.bottom})??null),ee||(ee=ue.current),!ee)return;const ve=ee.querySelector(".epochs-pdf-viewer__surface");if(!ve)return;const de=Number.parseInt(ee.getAttribute("data-page-number")||String(ce.pageNumber),10),pe=bt(B,ae,ve,n),je=pt(ve,n);let He=pe.x-m.offsetX,Ie=pe.y-m.offsetY;const st=Math.max(0,je.width-ce.width),ze=Math.max(0,je.height-ce.height);He=Math.min(Math.max(0,He),st),Ie=Math.min(Math.max(0,Ie),ze),C(m.id,{pageNumber:de,x:He,y:Ie})},z=()=>{if(o=0,!k)return;const B=P();if(!B)return;const ae=B.scrollHeight-B.clientHeight;if(ae<=0)return;const ce=56,ee=B.getBoundingClientRect(),ve=_-ee.top,de=ee.bottom-_;let pe=0;if(k<0&&ve<ce)pe=-Math.max(6,(ce-ve)/ce*28);else if(k>0&&de<ce)pe=Math.max(6,(ce-de)/ce*28);else{k=0;return}const je=B.scrollTop;B.scrollTop=Math.min(ae,Math.max(0,je+pe)),B.scrollTop!==je&&R(y,_),pe<0&&B.scrollTop>0||pe>0&&B.scrollTop<ae?o=window.requestAnimationFrame(z):k=0},Y=B=>{y=B.clientX,_=B.clientY;const ae=P();if(ae){const ee=ae.getBoundingClientRect(),ve=B.clientY-ee.top,de=ee.bottom-B.clientY;ve<56?(k=-1,o||(o=window.requestAnimationFrame(z))):de<56?(k=1,o||(o=window.requestAnimationFrame(z))):k=0}m.kind==="resize"?N(B.clientX,B.clientY):R(B.clientX,B.clientY)},U=()=>{k=0,o&&(window.cancelAnimationFrame(o),o=0),H(null)};return window.addEventListener("pointermove",Y),window.addEventListener("pointerup",U),window.addEventListener("pointercancel",U),()=>{k=0,o&&window.cancelAnimationFrame(o),window.removeEventListener("pointermove",Y),window.removeEventListener("pointerup",U),window.removeEventListener("pointercancel",U)}},[m,ie,C,n,v]),d.useEffect(()=>{if(!ye||!X.current)return;const o=X.current,y=K.find(P=>P.id===ye);o.textContent=(y==null?void 0:y.value)??"",o.focus();const _=document.createRange();_.selectNodeContents(o),_.collapse(!1);const k=window.getSelection();k==null||k.removeAllRanges(),k==null||k.addRange(_)},[ye]);const ne=o=>{ue.current=o,s==null||s(o)},Pe=b.filter(o=>o.pageNumber===t),oe=v.filter(o=>o.pageNumber===t),Se=Z.filter(o=>o.pageNumber===t),Re=K.filter(o=>o.pageNumber===t),Be=(o,y)=>{const _=y.trim();if(!_){he==null||he(o.id),A==null||A(null);return}const k=lt(_,o.fontSize);Me==null||Me(o.id,{value:_,width:k.width,height:k.height}),A==null||A(null)},Ge=(o,y)=>{if(!xe)return;const _=fe.current,k=te.current;if(!_||!k)return;let P=Ii(o,y,_,k,n),N,R=ft;if(Ae){const U=Fi(P.x,P.y,Le,t);if(!U)return;const B=K.find(ae=>ae.fieldId===U.id);if(B){V==null||V(B.id),_e==null||_e(U.id),A==null||A(B.id);return}N=U.id,P={x:U.x,y:U.y,fontSize:U.fontSize??gt},R=U.color??ft,_e==null||_e(U.id)}const z=lt("",P.fontSize),Y={id:Bt(),fieldId:N,pageNumber:t,x:P.x,y:P.y,width:z.width,height:z.height,value:"",fontSize:P.fontSize,color:R};xe(Y),V==null||V(Y.id),A==null||A(Y.id)},Ne=o=>{var _;if(c!=="text"||o.target.closest(".epochs-pdf-viewer__inline-text"))return;if(re.current){re.current=!1;return}const y=window.getSelection();if(!(y&&!y.isCollapsed&&y.toString().trim())){if(o.detail>=2&&Ai(o.clientX,o.clientY,te.current)){const P=fe.current;if(P&&g&&xe){const N=Dt(P,n);if(N){g({id:St(),pageNumber:t,kind:"redact",color:ut,rects:Et(N.rects),text:N.text});const R=bn(N.rects),z=lt(N.text||" ",R.fontSize),Y={id:Bt(),pageNumber:t,x:R.x,y:R.y,width:z.width,height:z.height,value:N.text,fontSize:R.fontSize,color:ft};xe(Y),V==null||V(Y.id),A==null||A(Y.id),(_=window.getSelection())==null||_.removeAllRanges(),re.current=!0}}return}o.stopPropagation(),Ge(o.clientX,o.clientY)}},Oe=o=>{const y=o.target;if(!(y.closest(".epochs-pdf-viewer__signature")||y.closest(".epochs-pdf-viewer__signature-field")||y.closest(".epochs-pdf-viewer__inline-text"))){if(c==="text"){Ge(o.clientX,o.clientY);return}if(!ie&&c==="sign"&&$&&S){const _=fe.current;if(!_)return;const k=bt(o.clientX,o.clientY,_,n);S(t,Math.max(0,k.x-75),Math.max(0,k.y-12));return}if(!ie&&c==="sign"&&w&&M){const _=fe.current;if(!_)return;const k=pt(_,n),P=bt(o.clientX,o.clientY,_,n);let N=P.x-w.width/2,R=P.y-w.height/2;const z=Math.max(0,k.width-w.width),Y=Math.max(0,k.height-w.height);N=Math.min(Math.max(0,N),z),R=Math.min(Math.max(0,R),Y),M({id:vt(),pageNumber:t,x:N,y:R,width:w.width,height:w.height,imageDataUrl:w.imageDataUrl});return}}},mt=o=>ye===o.id?r.jsx("span",{ref:X,contentEditable:!0,suppressContentEditableWarning:!0,role:"textbox","aria-label":"Edit text",className:"epochs-pdf-viewer__inline-text epochs-pdf-viewer__inline-text--editing",style:{left:o.x*n,top:o.y*n,fontSize:o.fontSize*n,color:o.color,minWidth:Math.max(12,o.fontSize*n*.5),width:Math.max(o.width*n,o.fontSize*n*.5)},onClick:_=>_.stopPropagation(),onPointerDown:_=>_.stopPropagation(),onInput:_=>{const k=_.currentTarget.textContent??"",P=lt(k||" ",o.fontSize);Me==null||Me(o.id,{value:k,width:P.width,height:P.height})},onBlur:_=>{Be(o,_.currentTarget.textContent??"")},onKeyDown:_=>{_.stopPropagation(),_.key==="Escape"&&(_.preventDefault(),_.currentTarget.blur()),_.key==="Enter"&&!_.shiftKey&&(_.preventDefault(),_.currentTarget.blur())}},o.id):o.value.trim()?r.jsx("span",{className:we===o.id?"epochs-pdf-viewer__inline-text epochs-pdf-viewer__inline-text--selected":"epochs-pdf-viewer__inline-text",style:{left:o.x*n,top:o.y*n,fontSize:o.fontSize*n,color:o.color},onClick:_=>{if(_.stopPropagation(),c==="erase"){he==null||he(o.id);return}c==="text"&&(V==null||V(o.id),A==null||A(o.id))},children:o.value},o.id):null;return r.jsx("div",{ref:ne,"data-page-number":t,className:"epochs-pdf-viewer__page",children:r.jsxs("div",{ref:fe,className:`epochs-pdf-viewer__surface epochs-pdf-viewer__surface--tool-${c}`,onClick:Oe,children:[r.jsx("canvas",{ref:Fe,className:"epochs-pdf-viewer__canvas"}),r.jsx("div",{className:"epochs-pdf-viewer__markup-layer","aria-hidden":"true",children:Pe.map(o=>o.kind==="redact"?null:o.rects.map((y,_)=>o.kind==="highlight"?r.jsx("div",{className:"epochs-pdf-viewer__markup epochs-pdf-viewer__markup--highlight",style:{left:y.x*n,top:y.y*n,width:y.w*n,height:y.h*n,background:o.color},onClick:k=>{c==="erase"&&(k.stopPropagation(),j==null||j(o.id))}},`${o.id}_${_}`):r.jsx("div",{className:"epochs-pdf-viewer__markup epochs-pdf-viewer__markup--underline",style:{left:y.x*n,top:(y.y+y.h)*n-Math.max(2,n*1.5),width:y.w*n,height:Math.max(2,n*1.5),background:o.color},onClick:k=>{c==="erase"&&(k.stopPropagation(),j==null||j(o.id))}},`${o.id}_${_}`)))}),r.jsxs("div",{className:"epochs-pdf-viewer__signature-layer",children:[Se.map(o=>{const y=oe.some(_=>_.fieldId===o.id);return r.jsx("button",{type:"button","data-signature-field-id":o.id,className:J===o.id?"epochs-pdf-viewer__signature-field epochs-pdf-viewer__signature-field--selected":y?"epochs-pdf-viewer__signature-field epochs-pdf-viewer__signature-field--filled":"epochs-pdf-viewer__signature-field",style:{left:o.x*n,top:o.y*n,width:o.width*n,height:o.height*n},onClick:_=>{_.stopPropagation();const k=o.type;if(k==="date"||k==="text")return;G==null||G(o.id);const P=oe.find(N=>N.fieldId===o.id);T==null||T((P==null?void 0:P.id)??null),P?E==null||E(P.id):be==null||be(o.type)},title:y?"Signed field":"Signature field",children:(()=>{const _=o.type;return _==="date"?r.jsx("input",{type:"date",className:"epochs-pdf-viewer__signature-field-input",value:me[o.id]??"",onClick:k=>k.stopPropagation(),onChange:k=>{k.stopPropagation(),L==null||L(o.id,k.target.value),se==null||se(o.id)},style:{width:"100%",height:"100%"}}):_==="text"?r.jsx("input",{type:"text",className:"epochs-pdf-viewer__signature-field-input",value:me[o.id]??"",placeholder:o.placeholder??"Enter text",onClick:k=>k.stopPropagation(),onChange:k=>{k.stopPropagation(),L==null||L(o.id,k.target.value)},onBlur:()=>se==null?void 0:se(o.id),style:{width:"100%",height:"100%"}}):y?null:r.jsx("span",{children:"Sign here"})})()},o.id)}),oe.map(o=>r.jsxs("div",{className:F===o.id?"epochs-pdf-viewer__signature epochs-pdf-viewer__signature--selected":"epochs-pdf-viewer__signature",style:{left:o.x*n,top:o.y*n,width:o.width*n,height:o.height*n},onPointerDown:y=>{if(y.stopPropagation(),y.preventDefault(),T==null||T(o.id),c==="erase"&&!ie){W==null||W(o.id);return}if(ie){G==null||G(o.fieldId??null),E==null||E(o.id);return}const _=fe.current;if(!_)return;const k=bt(y.clientX,y.clientY,_,n);H({kind:"signature",id:o.id,offsetX:k.x-o.x,offsetY:k.y-o.y})},children:[r.jsx("button",{type:"button",className:"epochs-pdf-viewer__signature-edit",title:"Edit signature","aria-label":"Edit signature",onPointerDown:y=>{y.stopPropagation()},onClick:y=>{y.stopPropagation(),T==null||T(o.id),E==null||E(o.id)},children:r.jsx(er,{size:12})}),ie?null:r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"epochs-pdf-viewer__signature-duplicate",title:"Duplicate signature","aria-label":"Duplicate signature",onPointerDown:y=>{y.stopPropagation()},onClick:y=>{y.stopPropagation(),T==null||T(o.id),O==null||O(o.id)},children:"⧉"}),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__signature-remove",title:"Remove signature","aria-label":"Remove signature",onPointerDown:y=>{y.stopPropagation()},onClick:y=>{y.stopPropagation(),W==null||W(o.id)},children:"×"})]}),r.jsx("img",{src:o.imageDataUrl,alt:"Signature",draggable:!1}),ie?null:r.jsx("div",{className:"epochs-pdf-viewer__signature-resize",title:"Resize",onPointerDown:y=>{y.stopPropagation(),y.preventDefault(),T==null||T(o.id),H({kind:"resize",id:o.id,startX:y.clientX,startY:y.clientY,startW:o.width,startH:o.height})},children:r.jsx("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r.jsx("path",{d:"M7 1L1 7M7 4L4 7",stroke:"white",strokeWidth:"1.2",strokeLinecap:"round"})})})]},o.id))]}),r.jsx("div",{className:"epochs-pdf-viewer__text-layer-overlay",children:Re.map(o=>mt(o))}),r.jsx("div",{ref:te,className:"textLayer epochs-pdf-viewer__text-layer",onClick:Ne}),r.jsx("div",{className:"epochs-pdf-viewer__redact-layer","aria-hidden":"true",children:Pe.map(o=>o.kind==="redact"?o.rects.map((y,_)=>r.jsx("div",{className:"epochs-pdf-viewer__markup epochs-pdf-viewer__markup--redact",style:{left:y.x*n,top:y.y*n,width:y.w*n,height:y.h*n,background:o.color||ut},onClick:k=>{c==="erase"&&(k.stopPropagation(),j==null||j(o.id))}},`${o.id}_${_}`)):null)})]})})}function ir({pdfDoc:e,pageNumber:t,isActive:n,rotation:i,onSelect:s,width:a=140,annotations:c=[],signatures:l=[],signatureFields:b=[],texts:g=[],textFields:j=[]}){const v=d.useRef(null);return d.useEffect(()=>{if(!e||!v.current)return;let w=!1;const M=v.current,C=M.getContext("2d");if(!C)return;let W=null;return(async()=>{try{const O=await e.getPage(t);if(w)return;const F=O.getViewport({scale:1,rotation:i}),T=a/F.width,Z=O.getViewport({scale:T,rotation:i});M.width=Math.floor(Z.width),M.height=Math.floor(Z.height),W=O.render({canvasContext:C,viewport:Z}),await W.promise;const J=c.filter(L=>L.pageNumber===t);J.length>0&&Nn(C,J,T);const G=l.filter(L=>L.pageNumber===t),ie=b.filter(L=>L.pageNumber===t);ie.length>0&&Ni(C,ie,new Set(G.map(L=>L.fieldId).filter(Boolean)),T),G.length>0&&await Cn(C,G,T);const be=g.filter(L=>L.pageNumber===t),me=j.filter(L=>L.pageNumber===t);me.length>0&&Bi(C,me,new Set(be.filter(L=>L.fieldId&&L.value.trim()).map(L=>L.fieldId)),T),be.length>0&&Tn(C,be,T)}catch{}})(),()=>{if(w=!0,W)try{W.cancel()}catch{}}},[c,e,t,i,b,l,j,g,a]),r.jsxs("button",{type:"button",onClick:()=>s(t),className:n?"epochs-pdf-viewer__thumb epochs-pdf-viewer__thumb--active":"epochs-pdf-viewer__thumb",title:`Page ${t}`,children:[r.jsx("div",{className:"epochs-pdf-viewer__thumb-frame",children:r.jsx("canvas",{ref:v})}),r.jsx("span",{className:"epochs-pdf-viewer__thumb-label",children:t})]})}const rr=/^(blob:|https?:|data:)/i;let $n=!1;function Ht(e){rt.GlobalWorkerOptions.workerSrc=e,$n=!0}function sr(e){if(e){Ht(e);return}$n||rt.GlobalWorkerOptions.workerSrc||Ht(`https://unpkg.com/pdfjs-dist@${rt.version}/build/pdf.worker.min.mjs`)}function or(e,t,n=""){const i=t||e;if(!i)return"";if(rr.test(i))return i;const s=i.startsWith("/")?i:`/${i}`;return n?`${n.replace(/\/$/,"")}${s}`:s}async function ar(e,t){const n=await fetch(e,t);if(!n.ok)throw new Error(`Failed to fetch PDF (${n.status})`);return n.arrayBuffer()}async function xn(e,t){if(typeof e=="string")return ar(e,t);if(e instanceof ArrayBuffer)return e.slice(0);if(e instanceof Uint8Array){const n=new Uint8Array(e.byteLength);return n.set(e),n.buffer}return e.arrayBuffer()}async function cr(e,t,n){const{scale:i,rotation:s,annotations:a,signatures:c=[],texts:l=[],mimeType:b="image/jpeg",quality:g=.92}=n,j=await e.getPage(t),v=j.getViewport({scale:i,rotation:s}),w=j.getViewport({scale:1,rotation:s}),M=document.createElement("canvas"),C=M.getContext("2d",{alpha:!1});if(!C)throw new Error("Could not create canvas context");const W=Math.floor(v.width),E=Math.floor(v.height);M.width=W,M.height=E,C.fillStyle="#ffffff",C.fillRect(0,0,W,E),await j.render({canvasContext:C,viewport:v}).promise;const O=a.filter(G=>G.pageNumber===t);O.length>0&&Nn(C,O,i);const F=c.filter(G=>G.pageNumber===t);F.length>0&&await Cn(C,F,i);const T=l.filter(G=>G.pageNumber===t);T.length>0&&Tn(C,T,i);const Z=M.toDataURL(b,g),J=lr(Z);return M.width=0,M.height=0,{pageNumber:t,width:W,height:E,pageWidth:w.width,pageHeight:w.height,dataUrl:Z,jpegBytes:J}}async function _n(e,t){const n=[];for(let i=1;i<=e.numPages;i+=1)n.push(await cr(e,i,t));return n}function lr(e){const t=e.split(",")[1]??"",n=atob(t),i=new Uint8Array(n.length);for(let s=0;s<n.length;s+=1)i[s]=n.charCodeAt(s);return i}function Ee(e){return new TextEncoder().encode(e)}function vn(...e){const t=e.reduce((s,a)=>s+a.byteLength,0),n=new Uint8Array(t);let i=0;for(const s of e)n.set(s,i),i+=s.byteLength;return n}function dr(e){const t=[],n=w=>(t.push(w),t.length),i=[];for(const w of e){const M=vn(Ee(`<< /Type /XObject /Subtype /Image /Width ${w.width} /Height ${w.height} /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length ${w.jpegBytes.byteLength} >>
3
+ `);let g=a;for(const j of b)e.fillText(j,s,g),g+=l}e.restore()}function Bi(e,t,n,i){e.save();for(const s of t){const a=n.has(s.id),c=s.x*i,l=s.y*i,b=s.width*i,g=s.height*i;e.fillStyle=a?"rgba(5, 150, 105, 0.08)":"rgba(5, 150, 105, 0.16)",e.strokeStyle=a?"rgba(5, 150, 105, 0.45)":"#059669",e.lineWidth=1.5,e.setLineDash(a?[]:[4,3]),e.fillRect(c,l,b,g),e.strokeRect(c,l,b,g)}e.restore()}function ke({size:e=14,className:t,children:n}){return r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,"aria-hidden":"true",children:n})}function Oi(e){return r.jsx(ke,{...e,children:r.jsx("polyline",{points:"15 18 9 12 15 6"})})}function Hi(e){return r.jsx(ke,{...e,children:r.jsx("polyline",{points:"9 18 15 12 9 6"})})}function zi(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),r.jsx("polyline",{points:"7 10 12 15 17 10"}),r.jsx("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})}function Ui(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),r.jsx("polyline",{points:"15 3 21 3 21 9"}),r.jsx("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]})}function Wi(e){return r.jsxs(ke,{...e,children:[r.jsx("rect",{x:"3",y:"3",width:"7",height:"7"}),r.jsx("rect",{x:"14",y:"3",width:"7",height:"7"}),r.jsx("rect",{x:"14",y:"14",width:"7",height:"7"}),r.jsx("rect",{x:"3",y:"14",width:"7",height:"7"})]})}function Gi(e){return r.jsx(ke,{...e,children:r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})})}function Xi(e){return r.jsxs(ke,{...e,children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}function qi(e){return r.jsxs(ke,{...e,children:[r.jsx("polyline",{points:"6 9 6 2 18 2 18 9"}),r.jsx("path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"}),r.jsx("rect",{x:"6",y:"14",width:"12",height:"8"})]})}function Yi(e){return r.jsxs(ke,{...e,children:[r.jsx("polyline",{points:"23 4 23 10 17 10"}),r.jsx("polyline",{points:"1 20 1 14 7 14"}),r.jsx("path",{d:"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"})]})}function Zi(e){return r.jsxs(ke,{...e,children:[r.jsx("polyline",{points:"23 4 23 10 17 10"}),r.jsx("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})]})}function Ki(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M12 20h9"}),r.jsx("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})]})}function Vi(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M6 3v7a6 6 0 0 0 12 0V3"}),r.jsx("line",{x1:"4",y1:"21",x2:"20",y2:"21"})]})}function Qi(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"}),r.jsx("path",{d:"M22 21H7"}),r.jsx("path",{d:"m5 11 9 9"})]})}function Ji({size:e=16,className:t}){return r.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 256 256",fill:"currentColor",stroke:"currentColor",strokeWidth:"12",strokeLinejoin:"round",className:t,"aria-hidden":"true",children:r.jsx("path",{d:"M232,172H57.32c4-7.83,8.18-16.11,12.21-24.56,15.14,3.55,34.13-8.06,56.54-34.59,3.67,12.5,12.53,34.83,29.08,35.15h.35c8.71,0,17.64-6.25,27.16-19.06C187.17,137.14,199.31,148,232,148a4,4,0,0,0,0-8c-42.88,0-44-19.24-44-20a4,4,0,0,0-7.35-2.18C168.74,136.1,160.42,140,155.48,140h-.18c-13-.25-21.29-26.52-23.38-36.61a4,4,0,0,0-7-1.69c-20.94,26.27-39.06,39.55-51.8,38.2C97.31,87.5,105.19,53.16,96.49,37.77,94,33.31,88.7,28,77.91,28,64.09,28,52.54,42.41,47,66.54A122.7,122.7,0,0,0,45.46,113c2.64,15.29,8.39,26.05,16.69,31.35-4.58,9.6-9.3,19-13.84,27.68H24a4,4,0,0,0,0,8H44.1c-12.87,24.17-23.37,41.68-23.53,41.94a4,4,0,0,0,1.37,5.49A3.93,3.93,0,0,0,24,228a4,4,0,0,0,3.43-1.94c.16-.27,11.85-19.75,25.72-46.06H232a4,4,0,0,0,0-8ZM53.34,111.61a114.81,114.81,0,0,1,1.49-43.29C58.4,52.7,66.34,36,77.91,36c7.52,0,10.23,3.26,11.61,5.7C99,58.4,79.92,106,65.6,137,59.76,132.69,55.46,123.83,53.34,111.61Z"})})}function er(e){return r.jsxs(ke,{...e,children:[r.jsx("path",{d:"M12 20h9"}),r.jsx("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})]})}function tr(e){return r.jsxs(ke,{...e,children:[r.jsx("polyline",{points:"4 7 4 4 20 4 20 7"}),r.jsx("line",{x1:"9",y1:"20",x2:"15",y2:"20"}),r.jsx("line",{x1:"12",y1:"4",x2:"12",y2:"20"})]})}function nr({pdfDoc:e,pageNumber:t,scale:n,rotation:i,pageRef:s,onRendered:a,markupTool:c="none",markupColor:l,annotations:b=[],onAddAnnotation:g,onRemoveAnnotation:j,signatures:v=[],pendingSignature:w=null,onAddSignature:M,onUpdateSignature:C,onRemoveSignature:W,onEditSignature:E,onDuplicateSignature:O,selectedSignatureId:F=null,onSelectSignature:T,signatureFields:Z=[],selectedSignatureFieldId:J=null,onSelectSignatureField:G,hasFixedSignatureFields:ie=!1,onOpenSignaturePad:be,fieldValues:me={},onFieldValueChange:L,onFieldValueCommit:se,pendingFieldValue:$=null,onPlaceFieldValue:S,texts:K=[],onAddText:xe,onUpdateText:Me,onRemoveText:he,selectedTextId:we=null,onSelectText:V,textFields:Se=[],selectedTextFieldId:We=null,onSelectTextField:_e,hasFixedTextFields:Ae=!1,editingTextId:ye=null,onEditingTextIdChange:A}){const ue=d.useRef(null),Fe=d.useRef(null),te=d.useRef(null),fe=d.useRef(null),le=d.useRef(null),p=d.useRef(null),[m,H]=d.useState(null),X=d.useRef(null),re=d.useRef(!1);d.useEffect(()=>{if(!e||!Fe.current||!te.current||!fe.current)return;let o=!1;const y=Fe.current,_=te.current,k=fe.current,P=y.getContext("2d");return P?((async()=>{try{if(le.current){try{le.current.cancel()}catch{}le.current=null}if(p.current){try{p.current.cancel()}catch{}p.current=null}const R=await e.getPage(t);if(o)return;const z=R.getViewport({scale:n,rotation:i}),Y=Math.floor(z.width),U=Math.floor(z.height);y.width=Y,y.height=U,k.style.width=`${Y}px`,k.style.height=`${U}px`;const B=R.render({canvasContext:P,viewport:z});if(le.current=B,await B.promise,o)return;_.replaceChildren(),_.style.setProperty("--scale-factor",String(z.scale));const ae=await R.getTextContent();if(o)return;const ce=new Mn.TextLayer({textContentSource:ae,container:_,viewport:z});if(p.current=ce,await ce.render(),o)return;a==null||a(t)}catch{}})(),()=>{if(o=!0,le.current){try{le.current.cancel()}catch{}le.current=null}if(p.current){try{p.current.cancel()}catch{}p.current=null}}):void 0},[e,t,n,i,a]),d.useEffect(()=>{const o=fe.current;if(!o)return;const y=N=>{var U;if(!g)return!1;const R=N==="redact"?ut:l;if(!R)return!1;const z=Dt(o,n);if(!z)return!1;const Y=N==="redact"?Et(z.rects):z.rects;return g({id:St(),pageNumber:t,kind:N,color:R,rects:Y,text:z.text}),(U=window.getSelection())==null||U.removeAllRanges(),!0},_=N=>{var ae;if(!g||!xe)return!1;const R=Dt(o,n);if(!R)return!1;const z=Et(R.rects);g({id:St(),pageNumber:t,kind:"redact",color:ut,rects:z,text:R.text});const Y=bn(R.rects),U=lt(N||" ",Y.fontSize),B={id:Bt(),pageNumber:t,x:Y.x,y:Y.y,width:U.width,height:U.height,value:N,fontSize:Y.fontSize,color:ft};return xe(B),V==null||V(B.id),A==null||A(B.id),(ae=window.getSelection())==null||ae.removeAllRanges(),re.current=!0,window.setTimeout(()=>{re.current=!1},0),!0},k=()=>{if(c==="highlight"||c==="underline"){y(c);return}if(c==="erase"){y("redact");return}if(c==="text"){const N=window.getSelection();N&&!N.isCollapsed&&N.toString().trim()&&N.anchorNode&&o.contains(N.anchorNode)&&_(N.toString())}},P=N=>{const R=N.target;if(R!=null&&R.closest("[contenteditable='true']")||R!=null&&R.closest("[contenteditable='']")||R!=null&&R.isContentEditable)return;const z=window.getSelection(),Y=z!=null&&!z.isCollapsed&&z.toString().trim().length>0&&z.anchorNode!=null&&o.contains(z.anchorNode);if(c==="text"&&Y){if(N.key==="Enter"&&!N.shiftKey){N.preventDefault(),_(z.toString());return}if(N.key.length===1&&!N.ctrlKey&&!N.metaKey&&!N.altKey){N.preventDefault(),_(N.key);return}}c!=="text"&&c!=="erase"||N.key!=="Backspace"&&N.key!=="Delete"||Y&&(N.preventDefault(),y("redact"))};return o.addEventListener("mouseup",k),window.addEventListener("keydown",P),()=>{o.removeEventListener("mouseup",k),window.removeEventListener("keydown",P)}},[c,l,g,xe,A,V,t,n]),d.useEffect(()=>{if(!m)return;let o=0,y=0,_=0,k=0;const P=()=>{var B;return(B=ue.current)==null?void 0:B.closest(".epochs-pdf-viewer__body")},N=(B,ae)=>{if(m.kind!=="resize"||!C||ie)return;const ce=v.find(ze=>ze.id===m.id);if(!ce)return;const ee=fe.current,ve=ee?pt(ee,n):{width:1/0,height:1/0},{dx:de,dy:pe}=ee?$i(B-m.startX,ae-m.startY,ee,n):{dx:0,dy:0},je=ve.width-ce.x,He=ve.height-ce.y,Le=Math.min(je,Math.max(40,m.startW+de)),st=Math.min(He,Math.max(20,m.startH+pe));C(m.id,{width:Le,height:st})},R=(B,ae)=>{var wt;if(m.kind!=="signature"||!C||ie)return;const ce=v.find(Xe=>Xe.id===m.id);if(!ce)return;let ee=(wt=document.elementFromPoint(B,ae))==null?void 0:wt.closest("[data-page-number]");if(ee||(ee=Array.from(document.querySelectorAll(".epochs-pdf-viewer__page[data-page-number]")).find(Mt=>{const Ze=Mt.getBoundingClientRect();return ae>=Ze.top&&ae<=Ze.bottom})??null),ee||(ee=ue.current),!ee)return;const ve=ee.querySelector(".epochs-pdf-viewer__surface");if(!ve)return;const de=Number.parseInt(ee.getAttribute("data-page-number")||String(ce.pageNumber),10),pe=bt(B,ae,ve,n),je=pt(ve,n);let He=pe.x-m.offsetX,Le=pe.y-m.offsetY;const st=Math.max(0,je.width-ce.width),ze=Math.max(0,je.height-ce.height);He=Math.min(Math.max(0,He),st),Le=Math.min(Math.max(0,Le),ze),C(m.id,{pageNumber:de,x:He,y:Le})},z=()=>{if(o=0,!k)return;const B=P();if(!B)return;const ae=B.scrollHeight-B.clientHeight;if(ae<=0)return;const ce=56,ee=B.getBoundingClientRect(),ve=_-ee.top,de=ee.bottom-_;let pe=0;if(k<0&&ve<ce)pe=-Math.max(6,(ce-ve)/ce*28);else if(k>0&&de<ce)pe=Math.max(6,(ce-de)/ce*28);else{k=0;return}const je=B.scrollTop;B.scrollTop=Math.min(ae,Math.max(0,je+pe)),B.scrollTop!==je&&R(y,_),pe<0&&B.scrollTop>0||pe>0&&B.scrollTop<ae?o=window.requestAnimationFrame(z):k=0},Y=B=>{y=B.clientX,_=B.clientY;const ae=P();if(ae){const ee=ae.getBoundingClientRect(),ve=B.clientY-ee.top,de=ee.bottom-B.clientY;ve<56?(k=-1,o||(o=window.requestAnimationFrame(z))):de<56?(k=1,o||(o=window.requestAnimationFrame(z))):k=0}m.kind==="resize"?N(B.clientX,B.clientY):R(B.clientX,B.clientY)},U=()=>{k=0,o&&(window.cancelAnimationFrame(o),o=0),H(null)};return window.addEventListener("pointermove",Y),window.addEventListener("pointerup",U),window.addEventListener("pointercancel",U),()=>{k=0,o&&window.cancelAnimationFrame(o),window.removeEventListener("pointermove",Y),window.removeEventListener("pointerup",U),window.removeEventListener("pointercancel",U)}},[m,ie,C,n,v]),d.useEffect(()=>{if(!ye||!X.current)return;const o=X.current,y=K.find(P=>P.id===ye);o.textContent=(y==null?void 0:y.value)??"",o.focus();const _=document.createRange();_.selectNodeContents(o),_.collapse(!1);const k=window.getSelection();k==null||k.removeAllRanges(),k==null||k.addRange(_)},[ye]);const ne=o=>{ue.current=o,s==null||s(o)},Pe=b.filter(o=>o.pageNumber===t),oe=v.filter(o=>o.pageNumber===t),De=Z.filter(o=>o.pageNumber===t),Re=K.filter(o=>o.pageNumber===t),Be=(o,y)=>{const _=y.trim();if(!_){he==null||he(o.id),A==null||A(null);return}const k=lt(_,o.fontSize);Me==null||Me(o.id,{value:_,width:k.width,height:k.height}),A==null||A(null)},Ge=(o,y)=>{if(!xe)return;const _=fe.current,k=te.current;if(!_||!k)return;let P=Ii(o,y,_,k,n),N,R=ft;if(Ae){const U=Fi(P.x,P.y,Se,t);if(!U)return;const B=K.find(ae=>ae.fieldId===U.id);if(B){V==null||V(B.id),_e==null||_e(U.id),A==null||A(B.id);return}N=U.id,P={x:U.x,y:U.y,fontSize:U.fontSize??gt},R=U.color??ft,_e==null||_e(U.id)}const z=lt("",P.fontSize),Y={id:Bt(),fieldId:N,pageNumber:t,x:P.x,y:P.y,width:z.width,height:z.height,value:"",fontSize:P.fontSize,color:R};xe(Y),V==null||V(Y.id),A==null||A(Y.id)},Ne=o=>{var _;if(c!=="text"||o.target.closest(".epochs-pdf-viewer__inline-text"))return;if(re.current){re.current=!1;return}const y=window.getSelection();if(!(y&&!y.isCollapsed&&y.toString().trim())){if(o.detail>=2&&Ai(o.clientX,o.clientY,te.current)){const P=fe.current;if(P&&g&&xe){const N=Dt(P,n);if(N){g({id:St(),pageNumber:t,kind:"redact",color:ut,rects:Et(N.rects),text:N.text});const R=bn(N.rects),z=lt(N.text||" ",R.fontSize),Y={id:Bt(),pageNumber:t,x:R.x,y:R.y,width:z.width,height:z.height,value:N.text,fontSize:R.fontSize,color:ft};xe(Y),V==null||V(Y.id),A==null||A(Y.id),(_=window.getSelection())==null||_.removeAllRanges(),re.current=!0}}return}o.stopPropagation(),Ge(o.clientX,o.clientY)}},Oe=o=>{const y=o.target;if(!(y.closest(".epochs-pdf-viewer__signature")||y.closest(".epochs-pdf-viewer__signature-field")||y.closest(".epochs-pdf-viewer__inline-text"))){if(c==="text"){Ge(o.clientX,o.clientY);return}if(!ie&&c==="sign"&&$&&S){const _=fe.current;if(!_)return;const k=bt(o.clientX,o.clientY,_,n);S(t,Math.max(0,k.x-75),Math.max(0,k.y-12));return}if(!ie&&c==="sign"&&w&&M){const _=fe.current;if(!_)return;const k=pt(_,n),P=bt(o.clientX,o.clientY,_,n);let N=P.x-w.width/2,R=P.y-w.height/2;const z=Math.max(0,k.width-w.width),Y=Math.max(0,k.height-w.height);N=Math.min(Math.max(0,N),z),R=Math.min(Math.max(0,R),Y),M({id:vt(),pageNumber:t,x:N,y:R,width:w.width,height:w.height,imageDataUrl:w.imageDataUrl});return}}},mt=o=>ye===o.id?r.jsx("span",{ref:X,contentEditable:!0,suppressContentEditableWarning:!0,role:"textbox","aria-label":"Edit text",className:"epochs-pdf-viewer__inline-text epochs-pdf-viewer__inline-text--editing",style:{left:o.x*n,top:o.y*n,fontSize:o.fontSize*n,color:o.color,minWidth:Math.max(12,o.fontSize*n*.5),width:Math.max(o.width*n,o.fontSize*n*.5)},onClick:_=>_.stopPropagation(),onPointerDown:_=>_.stopPropagation(),onInput:_=>{const k=_.currentTarget.textContent??"",P=lt(k||" ",o.fontSize);Me==null||Me(o.id,{value:k,width:P.width,height:P.height})},onBlur:_=>{Be(o,_.currentTarget.textContent??"")},onKeyDown:_=>{_.stopPropagation(),_.key==="Escape"&&(_.preventDefault(),_.currentTarget.blur()),_.key==="Enter"&&!_.shiftKey&&(_.preventDefault(),_.currentTarget.blur())}},o.id):o.value.trim()?r.jsx("span",{className:we===o.id?"epochs-pdf-viewer__inline-text epochs-pdf-viewer__inline-text--selected":"epochs-pdf-viewer__inline-text",style:{left:o.x*n,top:o.y*n,fontSize:o.fontSize*n,color:o.color},onClick:_=>{if(_.stopPropagation(),c==="erase"){he==null||he(o.id);return}c==="text"&&(V==null||V(o.id),A==null||A(o.id))},children:o.value},o.id):null;return r.jsx("div",{ref:ne,"data-page-number":t,className:"epochs-pdf-viewer__page",children:r.jsxs("div",{ref:fe,className:`epochs-pdf-viewer__surface epochs-pdf-viewer__surface--tool-${c}`,onClick:Oe,children:[r.jsx("canvas",{ref:Fe,className:"epochs-pdf-viewer__canvas"}),r.jsx("div",{className:"epochs-pdf-viewer__markup-layer","aria-hidden":"true",children:Pe.map(o=>o.kind==="redact"?null:o.rects.map((y,_)=>o.kind==="highlight"?r.jsx("div",{className:"epochs-pdf-viewer__markup epochs-pdf-viewer__markup--highlight",style:{left:y.x*n,top:y.y*n,width:y.w*n,height:y.h*n,background:o.color},onClick:k=>{c==="erase"&&(k.stopPropagation(),j==null||j(o.id))}},`${o.id}_${_}`):r.jsx("div",{className:"epochs-pdf-viewer__markup epochs-pdf-viewer__markup--underline",style:{left:y.x*n,top:(y.y+y.h)*n-Math.max(2,n*1.5),width:y.w*n,height:Math.max(2,n*1.5),background:o.color},onClick:k=>{c==="erase"&&(k.stopPropagation(),j==null||j(o.id))}},`${o.id}_${_}`)))}),r.jsxs("div",{className:"epochs-pdf-viewer__signature-layer",children:[De.map(o=>{const y=oe.some(_=>_.fieldId===o.id);return r.jsx("button",{type:"button","data-signature-field-id":o.id,className:J===o.id?"epochs-pdf-viewer__signature-field epochs-pdf-viewer__signature-field--selected":y?"epochs-pdf-viewer__signature-field epochs-pdf-viewer__signature-field--filled":"epochs-pdf-viewer__signature-field",style:{left:o.x*n,top:o.y*n,width:o.width*n,height:o.height*n},onClick:_=>{_.stopPropagation();const k=o.type;if(k==="date"||k==="text")return;G==null||G(o.id);const P=oe.find(N=>N.fieldId===o.id);T==null||T((P==null?void 0:P.id)??null),P?E==null||E(P.id):be==null||be(o.type)},title:y?"Signed field":"Signature field",children:(()=>{const _=o.type;return _==="date"?r.jsx("input",{type:"date",className:"epochs-pdf-viewer__signature-field-input",value:me[o.id]??"",onClick:k=>k.stopPropagation(),onChange:k=>{k.stopPropagation(),L==null||L(o.id,k.target.value),se==null||se(o.id)},style:{width:"100%",height:"100%"}}):_==="text"?r.jsx("input",{type:"text",className:"epochs-pdf-viewer__signature-field-input",value:me[o.id]??"",placeholder:o.placeholder??"Enter text",onClick:k=>k.stopPropagation(),onChange:k=>{k.stopPropagation(),L==null||L(o.id,k.target.value)},onBlur:()=>se==null?void 0:se(o.id),style:{width:"100%",height:"100%"}}):y?null:r.jsx("span",{children:"Sign here"})})()},o.id)}),oe.map(o=>r.jsxs("div",{className:F===o.id?"epochs-pdf-viewer__signature epochs-pdf-viewer__signature--selected":"epochs-pdf-viewer__signature",style:{left:o.x*n,top:o.y*n,width:o.width*n,height:o.height*n},onPointerDown:y=>{if(y.stopPropagation(),y.preventDefault(),T==null||T(o.id),c==="erase"&&!ie){W==null||W(o.id);return}if(ie){G==null||G(o.fieldId??null),E==null||E(o.id);return}const _=fe.current;if(!_)return;const k=bt(y.clientX,y.clientY,_,n);H({kind:"signature",id:o.id,offsetX:k.x-o.x,offsetY:k.y-o.y})},children:[r.jsx("button",{type:"button",className:"epochs-pdf-viewer__signature-edit",title:"Edit signature","aria-label":"Edit signature",onPointerDown:y=>{y.stopPropagation()},onClick:y=>{y.stopPropagation(),T==null||T(o.id),E==null||E(o.id)},children:r.jsx(er,{size:12})}),ie?null:r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"epochs-pdf-viewer__signature-duplicate",title:"Duplicate signature","aria-label":"Duplicate signature",onPointerDown:y=>{y.stopPropagation()},onClick:y=>{y.stopPropagation(),T==null||T(o.id),O==null||O(o.id)},children:"⧉"}),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__signature-remove",title:"Remove signature","aria-label":"Remove signature",onPointerDown:y=>{y.stopPropagation()},onClick:y=>{y.stopPropagation(),W==null||W(o.id)},children:"×"})]}),r.jsx("img",{src:o.imageDataUrl,alt:"Signature",draggable:!1}),ie?null:r.jsx("div",{className:"epochs-pdf-viewer__signature-resize",title:"Resize",onPointerDown:y=>{y.stopPropagation(),y.preventDefault(),T==null||T(o.id),H({kind:"resize",id:o.id,startX:y.clientX,startY:y.clientY,startW:o.width,startH:o.height})},children:r.jsx("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r.jsx("path",{d:"M7 1L1 7M7 4L4 7",stroke:"white",strokeWidth:"1.2",strokeLinecap:"round"})})})]},o.id))]}),r.jsx("div",{className:"epochs-pdf-viewer__text-layer-overlay",children:Re.map(o=>mt(o))}),r.jsx("div",{ref:te,className:"textLayer epochs-pdf-viewer__text-layer",onClick:Ne}),r.jsx("div",{className:"epochs-pdf-viewer__redact-layer","aria-hidden":"true",children:Pe.map(o=>o.kind==="redact"?o.rects.map((y,_)=>r.jsx("div",{className:"epochs-pdf-viewer__markup epochs-pdf-viewer__markup--redact",style:{left:y.x*n,top:y.y*n,width:y.w*n,height:y.h*n,background:o.color||ut},onClick:k=>{c==="erase"&&(k.stopPropagation(),j==null||j(o.id))}},`${o.id}_${_}`)):null)})]})})}function ir({pdfDoc:e,pageNumber:t,isActive:n,rotation:i,onSelect:s,width:a=140,annotations:c=[],signatures:l=[],signatureFields:b=[],texts:g=[],textFields:j=[]}){const v=d.useRef(null);return d.useEffect(()=>{if(!e||!v.current)return;let w=!1;const M=v.current,C=M.getContext("2d");if(!C)return;let W=null;return(async()=>{try{const O=await e.getPage(t);if(w)return;const F=O.getViewport({scale:1,rotation:i}),T=a/F.width,Z=O.getViewport({scale:T,rotation:i});M.width=Math.floor(Z.width),M.height=Math.floor(Z.height),W=O.render({canvasContext:C,viewport:Z}),await W.promise;const J=c.filter(L=>L.pageNumber===t);J.length>0&&Nn(C,J,T);const G=l.filter(L=>L.pageNumber===t),ie=b.filter(L=>L.pageNumber===t);ie.length>0&&Ni(C,ie,new Set(G.map(L=>L.fieldId).filter(Boolean)),T),G.length>0&&await Cn(C,G,T);const be=g.filter(L=>L.pageNumber===t),me=j.filter(L=>L.pageNumber===t);me.length>0&&Bi(C,me,new Set(be.filter(L=>L.fieldId&&L.value.trim()).map(L=>L.fieldId)),T),be.length>0&&Tn(C,be,T)}catch{}})(),()=>{if(w=!0,W)try{W.cancel()}catch{}}},[c,e,t,i,b,l,j,g,a]),r.jsxs("button",{type:"button",onClick:()=>s(t),className:n?"epochs-pdf-viewer__thumb epochs-pdf-viewer__thumb--active":"epochs-pdf-viewer__thumb",title:`Page ${t}`,children:[r.jsx("div",{className:"epochs-pdf-viewer__thumb-frame",children:r.jsx("canvas",{ref:v})}),r.jsx("span",{className:"epochs-pdf-viewer__thumb-label",children:t})]})}const rr=/^(blob:|https?:|data:)/i;let $n=!1;function Ht(e){rt.GlobalWorkerOptions.workerSrc=e,$n=!0}function sr(e){if(e){Ht(e);return}$n||rt.GlobalWorkerOptions.workerSrc||Ht(`https://unpkg.com/pdfjs-dist@${rt.version}/build/pdf.worker.min.mjs`)}function or(e,t,n=""){const i=t||e;if(!i)return"";if(rr.test(i))return i;const s=i.startsWith("/")?i:`/${i}`;return n?`${n.replace(/\/$/,"")}${s}`:s}async function ar(e,t){const n=await fetch(e,t);if(!n.ok)throw new Error(`Failed to fetch PDF (${n.status})`);return n.arrayBuffer()}async function xn(e,t){if(typeof e=="string")return ar(e,t);if(e instanceof ArrayBuffer)return e.slice(0);if(e instanceof Uint8Array){const n=new Uint8Array(e.byteLength);return n.set(e),n.buffer}return e.arrayBuffer()}async function cr(e,t,n){const{scale:i,rotation:s,annotations:a,signatures:c=[],texts:l=[],mimeType:b="image/jpeg",quality:g=.92}=n,j=await e.getPage(t),v=j.getViewport({scale:i,rotation:s}),w=j.getViewport({scale:1,rotation:s}),M=document.createElement("canvas"),C=M.getContext("2d",{alpha:!1});if(!C)throw new Error("Could not create canvas context");const W=Math.floor(v.width),E=Math.floor(v.height);M.width=W,M.height=E,C.fillStyle="#ffffff",C.fillRect(0,0,W,E),await j.render({canvasContext:C,viewport:v}).promise;const O=a.filter(G=>G.pageNumber===t);O.length>0&&Nn(C,O,i);const F=c.filter(G=>G.pageNumber===t);F.length>0&&await Cn(C,F,i);const T=l.filter(G=>G.pageNumber===t);T.length>0&&Tn(C,T,i);const Z=M.toDataURL(b,g),J=lr(Z);return M.width=0,M.height=0,{pageNumber:t,width:W,height:E,pageWidth:w.width,pageHeight:w.height,dataUrl:Z,jpegBytes:J}}async function _n(e,t){const n=[];for(let i=1;i<=e.numPages;i+=1)n.push(await cr(e,i,t));return n}function lr(e){const t=e.split(",")[1]??"",n=atob(t),i=new Uint8Array(n.length);for(let s=0;s<n.length;s+=1)i[s]=n.charCodeAt(s);return i}function Ee(e){return new TextEncoder().encode(e)}function vn(...e){const t=e.reduce((s,a)=>s+a.byteLength,0),n=new Uint8Array(t);let i=0;for(const s of e)n.set(s,i),i+=s.byteLength;return n}function dr(e){const t=[],n=w=>(t.push(w),t.length),i=[];for(const w of e){const M=vn(Ee(`<< /Type /XObject /Subtype /Image /Width ${w.width} /Height ${w.height} /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length ${w.jpegBytes.byteLength} >>
4
4
  stream
5
5
  `),w.jpegBytes,Ee(`
6
6
  endstream`)),C=n(M),W=`q
@@ -21,7 +21,7 @@ endobj
21
21
  << /Size ${t.length+1} /Root ${c} 0 R >>
22
22
  `,v+=`startxref
23
23
  ${j}
24
- %%EOF`,l.push(Ee(v)),vn(...l)}function Ot(e,t){const n=URL.createObjectURL(e),i=document.createElement("a");i.href=n,i.download=t,i.click(),URL.revokeObjectURL(n)}const jt=[{id:"dancing-script",label:"Dancing Script",family:"Dancing Script"},{id:"great-vibes",label:"Great Vibes",family:"Great Vibes"},{id:"pacifico",label:"Pacifico",family:"Pacifico"},{id:"satisfy",label:"Satisfy",family:"Satisfy"},{id:"allura",label:"Allura",family:"Allura"}],hr="https://fonts.googleapis.com/css2?family=Allura&family=Dancing+Script:wght@500;600&family=Great+Vibes&family=Pacifico&family=Satisfy&display=swap";let xt=null;function ur(){return typeof document>"u"?Promise.resolve():xt||(xt=new Promise(e=>{var i;if(!document.querySelector('link[data-epochs-signature-fonts="true"]')){const s=document.createElement("link");s.rel="stylesheet",s.href=hr,s.dataset.epochsSignatureFonts="true",document.head.appendChild(s)}const n=()=>Promise.all(jt.map(s=>document.fonts.load(`48px "${s.family}"`))).then(()=>{});(i=document.fonts)!=null&&i.ready?document.fonts.ready.then(n).then(e).catch(()=>e()):window.setTimeout(()=>{n().then(e).catch(()=>e())},300)}),xt)}function fr({open:e,onClose:t,onSave:n,fieldType:i,showFieldTypeTabs:s=!1,textPlaceholder:a}){const c=d.useRef(null),l=d.useRef(!1),b=d.useRef(null),g=d.useRef([]),j=d.useRef([]),v=i??"sign",[w,M]=d.useState(v),[C,W]=d.useState(""),[E,O]=d.useState(""),[F,T]=d.useState("draw"),[Z,J]=d.useState(""),[G,ie]=d.useState(""),[be,me]=d.useState(!1),[L,se]=d.useState("signature"),[$,S]=d.useState("#111827"),[K,xe]=d.useState("dancing-script"),[Me,he]=d.useState(!1),we=jt.find(p=>p.id===K)??jt[0],V=L==="initials"?G.trim():Z.trim(),Le=V||(L==="initials"?"AB":"Signature");if(d.useEffect(()=>{e&&(M(v),W(new Date().toISOString().slice(0,10)),O(""))},[e,v]),d.useEffect(()=>{if(!e||w!=="sign")return;const p=c.current;if(!p)return;const m=p.getContext("2d");m&&(p.width=560,p.height=200,m.fillStyle="#ffffff",m.fillRect(0,0,p.width,p.height),m.lineCap="round",m.lineJoin="round",m.strokeStyle=$,m.lineWidth=2.5,b.current=null,l.current=!1)},[e,w]),d.useEffect(()=>{if(!e)return;let p=!1;return he(!1),ur().then(()=>{p||he(!0)}),()=>{p=!0}},[e]),d.useEffect(()=>{const p=c.current,m=p==null?void 0:p.getContext("2d");m&&(m.strokeStyle=$,m.fillStyle=$)},[$]),d.useEffect(()=>{if(!e||F!=="type")return;const p=c.current,m=p==null?void 0:p.getContext("2d");if(!p||!m||(m.fillStyle="#ffffff",m.fillRect(0,0,p.width,p.height),!V))return;const H=L==="initials"?72:we.family==="Great Vibes"||we.family==="Allura"?56:we.family==="Pacifico"?44:48;m.fillStyle=$,m.textAlign="center",m.textBaseline="middle",m.font=`${H}px "${we.family}", cursive`,m.fillText(V,p.width/2,p.height/2)},[V,L,F,$,e,we,Me]),!e)return null;const We=p=>{const m=c.current,H=m.getBoundingClientRect();return{x:(p.clientX-H.left)/H.width*m.width,y:(p.clientY-H.top)/H.height*m.height}},_e=p=>{if(F!=="draw")return;p.currentTarget.setPointerCapture(p.pointerId),l.current=!0;const m=We(p);b.current=m,j.current=[m]},Ae=p=>{if(!l.current||F!=="draw")return;const m=c.current,H=m==null?void 0:m.getContext("2d"),X=b.current;if(!H||!X)return;const re=We(p);H.beginPath(),H.moveTo(X.x,X.y),H.lineTo(re.x,re.y),H.stroke(),b.current=re,j.current.push(re)},ye=()=>{j.current.length>1&&g.current.push([...j.current]),j.current=[],l.current=!1,b.current=null},A=()=>{const p=c.current,m=p==null?void 0:p.getContext("2d");!p||!m||(m.fillStyle="#ffffff",m.fillRect(0,0,p.width,p.height),g.current=[],j.current=[],J(""),ie(""),me(!1))},ue=p=>{J(p),be||ie(pr(p))},Fe=()=>{if(F==="draw"){const p=g.current;if(p.length===0)return;let m=1/0,H=1/0,X=-1/0,re=-1/0;for(const Ge of p)for(const Ne of Ge)Ne.x<m&&(m=Ne.x),Ne.y<H&&(H=Ne.y),Ne.x>X&&(X=Ne.x),Ne.y>re&&(re=Ne.y);const ne=8;m=Math.max(0,m-ne),H=Math.max(0,H-ne),X+=ne,re+=ne;const Pe=X-m,oe=re-H,Se=p.map(Ge=>"M"+Ge.map(Oe=>({x:Oe.x-m,y:Oe.y-H})).map(Oe=>`${Oe.x.toFixed(1)},${Oe.y.toFixed(1)}`).join("L")).join(" "),Re=`<svg xmlns="http://www.w3.org/2000/svg" width="${Pe.toFixed(0)}" height="${oe.toFixed(0)}" viewBox="0 0 ${Pe.toFixed(0)} ${oe.toFixed(0)}"><path d="${Se}" fill="none" stroke="${$}" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>`,Be=`data:image/svg+xml;base64,${btoa(Re)}`;n(Be,Pe,oe)}else{if(!V)return;const p=3,m=L==="initials"?72:we.family==="Great Vibes"||we.family==="Allura"?56:we.family==="Pacifico"?44:48,X=document.createElement("canvas").getContext("2d");X.font=`${m*p}px "${we.family}", cursive`;const re=X.measureText(V),ne=12*p,Pe=Math.ceil(re.width)+ne*2,oe=m*p+ne*2,Se=document.createElement("canvas");Se.width=Pe,Se.height=oe;const Re=Se.getContext("2d");Re.clearRect(0,0,Pe,oe),Re.font=`${m*p}px "${we.family}", cursive`,Re.fillStyle=$,Re.textBaseline="middle",Re.fillText(V,ne,oe/2);const Be=Se.toDataURL("image/png");n(Be,Pe/p,oe/p)}},te=()=>{const p=w==="date"?C:E.trim();if(!p)return;const m=document.createElement("canvas"),H=m.getContext("2d"),X=16;H.font=`${X}px sans-serif`;const re=H.measureText(p),ne=8;m.width=Math.ceil(re.width)+ne*2,m.height=X+ne*2,H.clearRect(0,0,m.width,m.height),H.font=`${X}px sans-serif`,H.fillStyle="#111827",H.textBaseline="middle",H.fillText(p,ne,m.height/2);const Pe=m.toDataURL("image/png");n(Pe,m.width,m.height)},fe=w==="sign",le=w==="date"?"Pick a date":w==="text"?"Enter text":"Create e-signature";return r.jsxs("div",{className:"epochs-pdf-viewer__modal",role:"dialog","aria-modal":"true",children:[r.jsx("div",{className:"epochs-pdf-viewer__modal-backdrop",onClick:t}),r.jsxs("div",{className:"epochs-pdf-viewer__modal-card",children:[r.jsxs("div",{className:"epochs-pdf-viewer__modal-header",children:[r.jsx("h3",{children:le}),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t,title:"Close",children:"×"})]}),s&&!i?r.jsx("div",{className:"epochs-pdf-viewer__field-type-tabs",role:"tablist",children:["sign","date","text"].map(p=>r.jsx("button",{type:"button",role:"tab","aria-selected":w===p,className:w===p?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>M(p),children:p==="sign"?"Sign":p==="date"?"Date":"Text"},p))}):null,fe?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"epochs-pdf-viewer__sign-modes",children:[r.jsx("button",{type:"button",className:F==="draw"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>{T("draw"),A()},children:"Draw"}),r.jsx("button",{type:"button",className:F==="type"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>T("type"),children:"Type"}),r.jsxs("label",{className:"epochs-pdf-viewer__sign-ink",children:["Ink",r.jsx("input",{type:"color",value:$,onChange:p=>S(p.target.value)})]})]}),F==="type"?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"epochs-pdf-viewer__sign-fonts",role:"group","aria-label":"Handwriting style",children:jt.map(p=>r.jsx("button",{type:"button",className:K===p.id?"epochs-pdf-viewer__sign-font epochs-pdf-viewer__sign-font--active":"epochs-pdf-viewer__sign-font",style:{fontFamily:`"${p.family}", cursive`},onClick:()=>xe(p.id),title:p.label,children:Le},p.id))}),r.jsxs("div",{className:"epochs-pdf-viewer__sign-type-fields",children:[r.jsxs("label",{className:"epochs-pdf-viewer__sign-type-field",children:[r.jsx("span",{children:"Full name"}),r.jsx("input",{className:"epochs-pdf-viewer__sign-type-input",type:"text",value:Z,onChange:p=>ue(p.target.value),onFocus:()=>se("signature"),placeholder:"Type your full name",style:{fontFamily:`"${we.family}", cursive`},autoFocus:!0})]}),r.jsxs("label",{className:"epochs-pdf-viewer__sign-type-field",children:[r.jsx("span",{children:"Initials"}),r.jsx("input",{className:"epochs-pdf-viewer__sign-type-input",type:"text",value:G,onChange:p=>{me(!0),ie(p.target.value.toUpperCase())},onFocus:()=>se("initials"),placeholder:"e.g. JD",maxLength:4,style:{fontFamily:`"${we.family}", cursive`}})]})]}),r.jsxs("div",{className:"epochs-pdf-viewer__sign-type-kind",role:"group","aria-label":"Preview type",children:[r.jsx("button",{type:"button",className:L==="signature"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>se("signature"),children:"Use full name"}),r.jsx("button",{type:"button",className:L==="initials"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>se("initials"),children:"Use initials"})]})]}):r.jsx("p",{className:"epochs-pdf-viewer__sign-hint",children:"Draw your signature below"}),r.jsx("canvas",{ref:c,className:F==="draw"?"epochs-pdf-viewer__sign-canvas":"epochs-pdf-viewer__sign-canvas epochs-pdf-viewer__sign-canvas--preview",onPointerDown:_e,onPointerMove:Ae,onPointerUp:ye,onPointerLeave:ye})]}):w==="date"?r.jsxs("label",{className:"epochs-pdf-viewer__sign-type-field",style:{padding:"1rem"},children:[r.jsx("span",{children:"Date"}),r.jsx("input",{className:"epochs-pdf-viewer__sign-type-input",type:"date",value:C,onChange:p=>W(p.target.value),autoFocus:!0})]}):r.jsxs("label",{className:"epochs-pdf-viewer__sign-type-field",style:{padding:"1rem"},children:[r.jsx("span",{children:"Text"}),r.jsx("input",{className:"epochs-pdf-viewer__sign-type-input",type:"text",value:E,onChange:p=>O(p.target.value),placeholder:a??"Enter text",autoFocus:!0})]}),r.jsxs("div",{className:"epochs-pdf-viewer__modal-actions",children:[fe?r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:A,children:"Clear"}):null,r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:t,children:"Cancel"}),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--primary",onClick:fe?Fe:te,disabled:w==="date"?!C:w==="text"?!E.trim():!1,children:fe?"Use signature":"Place on page"})]})]})]})}function pr(e){const t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?"":t.length===1?t[0].slice(0,2).toUpperCase():t.slice(0,3).map(n=>{var i;return((i=n[0])==null?void 0:i.toUpperCase())??""}).join("")}const kt="__epochsToolbarToolId";function $e(e,t){const n=(()=>null);return n.displayName=t,Object.defineProperty(n,kt,{value:e,enumerable:!0}),n}function jn(e){return e[kt]}function gr(e){return typeof e=="function"&&kt in e&&typeof e[kt]=="string"}const qt=$e("thumbnail","Thumbnail"),Yt=$e("navigation","Navigation"),Zt=$e("zoom","Zoom"),Kt=$e("rotate","Rotate"),Vt=$e("reload","Reload"),Qt=$e("print","Print"),Jt=$e("open","Open"),en=$e("download","Download"),tn=$e("highlight","Highlight"),nn=$e("underline","Underline"),rn=$e("signature","Signature"),sn=$e("text","AddText"),on=$e("erase","Erase"),an=$e("clear","Clear"),mr=[qt,Yt,Zt,Kt,tn,nn,rn,sn,on,an,Vt,Qt,Jt,en],zt=[[qt,Yt],[Zt,Kt,tn,nn,rn,sn,on,an,Vt,Qt,Jt,en]],wr=["highlight","underline","signature","text","erase","clear"];function kn(e){return wr.includes(e)}function yr(e,t,n){const i=[];switch(n!=null&&n.showMarkupSep&&i.push(r.jsx("span",{className:"epochs-pdf-viewer__toolbar-sep","aria-hidden":"true"},`${e}-sep`)),e){case"thumbnail":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:()=>t.setShowThumbnails(s=>!s),title:t.showThumbnails?"Hide thumbnails":"Show thumbnails",children:r.jsx(Wi,{})},"thumbnail"));break;case"navigation":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handlePrev,disabled:!t.canGoPrev||t.status!=="ready",title:"Previous page",children:r.jsx(Oi,{})},"nav-prev"),r.jsxs("div",{className:"epochs-pdf-viewer__page-input",children:[r.jsx("input",{type:"number",value:t.pageNumber,min:1,max:t.numPages||1,onChange:s=>{const a=Number.parseInt(s.target.value,10);Number.isFinite(a)&&t.scrollToPage(Math.max(1,Math.min(t.numPages||1,a)))},disabled:t.status!=="ready","aria-label":"Page number"}),r.jsxs("span",{children:["/ ",t.numPages||"-"]})]},"nav-page"),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handleNext,disabled:!t.canGoNext||t.status!=="ready",title:"Next page",children:r.jsx(Hi,{})},"nav-next"));break;case"zoom":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handleZoomOut,disabled:t.status!=="ready",title:"Zoom out",children:r.jsx(Gi,{})},"zoom-out"),r.jsxs("span",{className:"epochs-pdf-viewer__zoom-label",children:[Math.round(t.scale*100),"%"]},"zoom-label"),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handleZoomIn,disabled:t.status!=="ready",title:"Zoom in",children:r.jsx(Xi,{})},"zoom-in"),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>void t.handleFitWidth(),disabled:t.status!=="ready",title:"Fit to width",children:"Fit"},"zoom-fit"));break;case"rotate":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handleRotate,disabled:t.status!=="ready",title:"Rotate",children:r.jsx(Zi,{})},"rotate"));break;case"highlight":i.push(r.jsx("button",{type:"button",className:t.markupTool==="highlight"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>t.toggleMarkupTool("highlight"),disabled:t.status!=="ready",title:"Highlight text — select text to highlight",children:r.jsx(Ki,{})},"highlight"));break;case"underline":i.push(r.jsx("button",{type:"button",className:t.markupTool==="underline"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>t.toggleMarkupTool("underline"),disabled:t.status!=="ready",title:"Underline text — select text to underline",children:r.jsx(Vi,{})},"underline"));break;case"signature":i.push(r.jsx("button",{type:"button",className:t.markupTool==="sign"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>{if(!t.hasFixedSignatureFields&&t.pendingSignature&&t.markupTool!=="sign"){t.setMarkupTool("sign");return}t.setSignaturePadOpen(!0)},disabled:t.status!=="ready",title:t.hasFixedSignatureFields?"Create e-signature for a fixed field":t.pendingSignature?"Place signature — click on the page, then drag to move":"Create e-signature",children:r.jsx(Ji,{})},"signature"));break;case"text":i.push(r.jsx("button",{type:"button",className:t.markupTool==="text"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>t.toggleMarkupTool("text"),disabled:t.status!=="ready",title:t.hasFixedTextFields?"Edit text in predefined areas — click to type":"Edit PDF text — select words, then change them",children:r.jsx(tr,{})},"text"));break;case"erase":i.push(r.jsx("button",{type:"button",className:t.markupTool==="erase"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>t.toggleMarkupTool("erase"),disabled:t.status!=="ready",title:"Remove text — select PDF words to cover them, or click added markup",children:r.jsx(Qi,{})},"erase"));break;case"clear":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:t.handleClearAnnotations,disabled:t.status!=="ready"||t.annotationsLength===0&&t.signaturesLength===0&&t.textsLength===0,title:"Clear all markup",children:"Clear"},"clear"));break;case"reload":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:()=>void t.loadDocument(),title:"Reload",children:r.jsx(Yi,{})},"reload"));break;case"print":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:()=>void t.handlePrint(),disabled:t.status!=="ready"||!t.pdfDoc||t.isPrinting,title:t.isPrinting?"Preparing print…":"Print (includes highlights & underlines)",children:r.jsx(qi,{})},"print"));break;case"open":i.push(r.jsx("a",{className:"epochs-pdf-viewer__btn",href:t.displayUrl||t.resolvedUrl||void 0,target:"_blank",rel:"noopener noreferrer",title:"Open in new tab",children:r.jsx(Ui,{})},"open"));break;case"download":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:()=>void t.handleDownload(),disabled:t.status!=="ready"||!t.pdfDoc||t.isDownloading,title:t.isDownloading?"Preparing download…":t.annotationsLength>0||t.signaturesLength>0||t.textsLength>0?"Download PDF with markup":"Download PDF",children:r.jsx(zi,{})},"download"));break}return i.length>0?i:null}function br(e,t){const n=[];if(e.markupTool==="sign"&&e.pendingSignature&&!e.hasFixedSignatureFields&&t.has("signature")&&n.push(r.jsx("span",{className:"epochs-pdf-viewer__markup-hint",children:"Click page to place duplicate/new signature"},"sign-hint")),e.markupTool==="text"&&t.has("text")&&n.push(r.jsx("span",{className:"epochs-pdf-viewer__markup-hint",children:e.hasFixedTextFields?"Click in a predefined text area to type":"Select text to edit it — e.g. change this PDF to this is PDF"},"text-hint")),e.markupTool==="erase"&&t.has("erase")&&n.push(r.jsx("span",{className:"epochs-pdf-viewer__markup-hint",children:"Select PDF words to remove · click added text/markup to erase"},"erase-hint")),e.markupTool==="highlight"&&t.has("highlight")||e.markupTool==="underline"&&t.has("underline")){const i=e.markupTool==="highlight"?e.highlightHex:e.underlineHex,s=e.markupTool==="highlight"?e.setHighlightHex:e.setUnderlineHex,a=e.markupTool==="highlight"?Wt:Gt;n.push(r.jsxs("div",{className:"epochs-pdf-viewer__color-picker",role:"group","aria-label":`${e.markupTool} color`,children:[a.map(c=>r.jsx("button",{type:"button",className:Ye(i)===Ye(c.hex)?"epochs-pdf-viewer__swatch epochs-pdf-viewer__swatch--active":"epochs-pdf-viewer__swatch",style:{background:c.hex},title:c.label,"aria-label":c.label,"aria-pressed":Ye(i)===Ye(c.hex),onClick:()=>s(Ye(c.hex))},c.id)),r.jsxs("label",{className:"epochs-pdf-viewer__custom-color",title:"Custom color",children:[r.jsx("span",{className:"epochs-pdf-viewer__custom-color-chip",style:{background:i}}),r.jsx("input",{type:"color",value:Ye(i),onChange:c=>s(Ye(c.target.value)),"aria-label":"Custom color"})]})]},"color-picker"))}return n.length>0?n:null}function xr(e,t){if(!e)return null;if(Array.isArray(e)){const a=c=>(c??[]).filter(gr).map(jn);return{left:a(e[0]),right:a(e[1])}}const n=t.enableThumbnails,i=(a,c)=>a.map(jn).filter(l=>c[l]!==!1),s={thumbnail:n,navigation:t.enableNavigation,zoom:t.enableZoom,rotate:t.enableRotate,reload:t.enableReload,print:t.enablePrint,open:t.enableOpen,download:t.enableDownload,highlight:t.enableHighlight,underline:t.enableUnderline,signature:t.enableSignature,text:t.enableText,erase:t.enableErase,clear:t.enableClear};return{left:i(zt[0],s),right:i(zt[1],s)}}function Rn({file:e,fileUrl:t,baseUrl:n="",fetchOptions:i,height:s="80vh",title:a="PDF document",initialScale:c=1,withThumbnails:l=!1,thumbnailWidth:b=140,maxThumbnails:g=60,className:j,workerSrc:v,enableToolbar:w=!1,enableThumbnails:M,enableNavigation:C=!0,enableZoom:W=!0,enableRotate:E=!0,enableReload:O=!0,enablePrint:F=!0,enableOpen:T=!0,enableDownload:Z=!0,enableMarkup:J=!0,enableHighlight:G=!0,enableUnderline:ie=!0,enableSignature:be=!0,enableText:me=!0,enableErase:L=!0,enableClear:se=!0,signatureFields:$=[],textFields:S=[],onSignatureComplete:K,onFieldValueComplete:xe,openSignaturePad:Me=!1,onSignaturePadClose:he,onSubmit:we,submitLabel:V="Submit"}){const Le=d.useRef(null),We=d.useRef(null),_e=d.useRef(new Map),Ae=d.useRef(!1),ye=d.useMemo(()=>e&&typeof e!="string"?e:null,[e]),A=d.useMemo(()=>ye?"":or(typeof e=="string"?e:void 0,t,n),[ye,e,t,n]),[ue,Fe]=d.useState("idle"),[te,fe]=d.useState(null),[le,p]=d.useState(0),[m,H]=d.useState(1),[X,re]=d.useState(c),[ne,Pe]=d.useState(0),[oe,Se]=d.useState(null),[Re,Be]=d.useState(!1),[Ge,Ne]=d.useState(!1),[Oe,mt]=d.useState(!1),[o,y]=d.useState("none"),[_,k]=d.useState([]),[P,N]=d.useState([]),[R,z]=d.useState([]),[Y,U]=d.useState(!1),[B,ae]=d.useState(void 0),[ce,ee]=d.useState(null),[ve,de]=d.useState(null),[pe,je]=d.useState(null),[He,Ie]=d.useState(null),[st,ze]=d.useState(null),[wt,Xe]=d.useState(null),[Mt,Ze]=d.useState(null),[dn,qn]=d.useState(Pn),[hn,Yn]=d.useState(Pi),De=$.length>0,ot=S.length>0,[Je,Zn]=d.useState({});d.useEffect(()=>{Me&&U(!0)},[Me]);const Ke=d.useMemo(()=>xr(w,{enableThumbnails:M,enableNavigation:C,enableZoom:W,enableRotate:E,enableReload:O,enablePrint:F,enableOpen:T,enableDownload:Z,enableHighlight:G,enableUnderline:ie,enableSignature:be,enableText:me,enableErase:L,enableClear:se}),[w,M,C,W,E,O,F,T,Z,G,ie,be,me,L,se]),Ve=d.useMemo(()=>Ke?new Set([...Ke.left,...Ke.right]):new Set,[Ke]);d.useEffect(()=>{if(!Ve.has("thumbnail")){Be(!1);return}const f=window.matchMedia("(max-width: 720px)"),h=()=>{Be(f.matches?!1:l)};return h(),f.addEventListener("change",h),()=>f.removeEventListener("change",h)},[Ve,l]);const un=!De&&Ve.has("highlight"),fn=!De&&Ve.has("underline"),Pt=Ve.has("signature"),pn=Ve.has("text")||ot,gn=!De&&Ve.has("erase"),at=d.useCallback(()=>{We.current&&(URL.revokeObjectURL(We.current),We.current=null)},[]),Nt=d.useCallback(async()=>{if(!(!ye&&!A)){sr(v),Fe("loading"),fe(null),p(0),H(1),k([]),N([]),z([]),ee(null),de(null),je(null),Ie(null),ze(null),Xe(null),Ze(null),y("none");try{const u=ye?await xn(ye,i):await xn(A,i),f=new Blob([u],{type:"application/pdf"}),h=URL.createObjectURL(f);at(),We.current=h,Se(h);const D=await rt.getDocument({data:u,cMapUrl:`https://unpkg.com/pdfjs-dist@${rt.version}/cmaps/`,cMapPacked:!0,standardFontDataUrl:`https://unpkg.com/pdfjs-dist@${rt.version}/standard_fonts/`}).promise;fe(D),p(D.numPages),Fe("ready")}catch{Fe("error")}}},[ye,A,i,at,v]);d.useEffect(()=>{if(!ye&&!A){Fe("idle"),fe(null),p(0),Se(null),at();return}return Nt(),()=>{at()}},[ye,A,Nt,at]),d.useEffect(()=>{(o==="highlight"&&!un||o==="underline"&&!fn||o==="sign"&&!Pt||o==="text"&&!pn||o==="erase"&&!gn)&&y("none")},[un,fn,Pt,pn,gn,o]);const et=d.useCallback(u=>{const f=Math.max(1,Math.min(le||1,u)),h=_e.current.get(f);if(!h){H(f);return}Ae.current=!0,h.scrollIntoView({behavior:"smooth",block:"start"}),H(f),window.setTimeout(()=>{Ae.current=!1},500)},[le]),tt=d.useCallback(u=>{const f=_e.current.get(u.pageNumber);f&&(Ae.current=!0,H(u.pageNumber));const h=()=>{var D;const x=(D=Le.current)==null?void 0:D.querySelector(`[data-signature-field-id="${CSS.escape(u.id)}"]`);x?x.scrollIntoView({behavior:"smooth",block:"center"}):f&&f.scrollIntoView({behavior:"smooth",block:"start"}),window.setTimeout(()=>{Ae.current=!1},500)};window.requestAnimationFrame(()=>{window.setTimeout(h,40)})},[]);d.useEffect(()=>{if(ue!=="ready"||!Le.current||!le)return;const u=Le.current,f=new IntersectionObserver(h=>{if(Ae.current)return;let x=null;for(const D of h){if(!D.isIntersecting)continue;const I=Number.parseInt(D.target.dataset.pageNumber||"0",10);I&&(!x||D.intersectionRatio>x.ratio)&&(x={page:I,ratio:D.intersectionRatio})}x&&H(x.page)},{root:u,threshold:[.25,.5,.75]});for(let h=1;h<=le;h+=1){const x=_e.current.get(h);x&&f.observe(x)}return()=>f.disconnect()},[ue,le]);const Ct=m>1,Tt=le?m<le:!1,Kn=d.useCallback(()=>{Ct&&et(m-1)},[Ct,m,et]),Vn=d.useCallback(()=>{Tt&&et(m+1)},[Tt,m,et]),Qn=d.useCallback(()=>{Pe(u=>(u+90)%360)},[]),Jn=d.useCallback(()=>{re(u=>Math.max(.25,Math.round((u-.1)*100)/100))},[]),ei=d.useCallback(()=>{re(u=>Math.min(5,Math.round((u+.1)*100)/100))},[]),$t=d.useCallback(async()=>{if(!(!te||!Le.current))try{const f=(await te.getPage(m)).getViewport({scale:1,rotation:ne}),x=window.matchMedia("(max-width: 720px)").matches?16:24,I=Math.max(0,Le.current.clientWidth-x)/f.width;re(Math.max(.25,Math.min(5,Math.round(I*100)/100)))}catch{}},[te,m,ne]);d.useEffect(()=>{if(ue!=="ready"||!te||!window.matchMedia("(max-width: 720px)").matches)return;let u=!1;const f=()=>{u||$t()};f();const h=Le.current,x=typeof ResizeObserver<"u"&&h?new ResizeObserver(()=>f()):null;x==null||x.observe(h);const D=window.matchMedia("(max-width: 720px)"),I=()=>{D.matches&&f()};return D.addEventListener("change",I),()=>{u=!0,x==null||x.disconnect(),D.removeEventListener("change",I)}},[ue,te,Re,ne,$t]);const ti=d.useCallback(async()=>{var u;if(!(!te||ue!=="ready")){Ne(!0);try{const f=await _n(te,{scale:1.5,rotation:ne,annotations:_,signatures:P,texts:R,mimeType:"image/png"}),h=document.createElement("iframe");h.style.position="fixed",h.style.right="0",h.style.bottom="0",h.style.width="0",h.style.height="0",h.style.border="0",h.setAttribute("aria-hidden","true"),document.body.appendChild(h);const x=(u=h.contentWindow)==null?void 0:u.document;if(!x)throw new Error("print iframe not available");x.open(),x.write(`<!doctype html>
24
+ %%EOF`,l.push(Ee(v)),vn(...l)}function Ot(e,t){const n=URL.createObjectURL(e),i=document.createElement("a");i.href=n,i.download=t,i.click(),URL.revokeObjectURL(n)}const jt=[{id:"dancing-script",label:"Dancing Script",family:"Dancing Script"},{id:"great-vibes",label:"Great Vibes",family:"Great Vibes"},{id:"pacifico",label:"Pacifico",family:"Pacifico"},{id:"satisfy",label:"Satisfy",family:"Satisfy"},{id:"allura",label:"Allura",family:"Allura"}],hr="https://fonts.googleapis.com/css2?family=Allura&family=Dancing+Script:wght@500;600&family=Great+Vibes&family=Pacifico&family=Satisfy&display=swap";let xt=null;function ur(){return typeof document>"u"?Promise.resolve():xt||(xt=new Promise(e=>{var i;if(!document.querySelector('link[data-epochs-signature-fonts="true"]')){const s=document.createElement("link");s.rel="stylesheet",s.href=hr,s.dataset.epochsSignatureFonts="true",document.head.appendChild(s)}const n=()=>Promise.all(jt.map(s=>document.fonts.load(`48px "${s.family}"`))).then(()=>{});(i=document.fonts)!=null&&i.ready?document.fonts.ready.then(n).then(e).catch(()=>e()):window.setTimeout(()=>{n().then(e).catch(()=>e())},300)}),xt)}function fr({open:e,onClose:t,onSave:n,fieldType:i,showFieldTypeTabs:s=!1,textPlaceholder:a}){const c=d.useRef(null),l=d.useRef(!1),b=d.useRef(null),g=d.useRef([]),j=d.useRef([]),v=i??"sign",[w,M]=d.useState(v),[C,W]=d.useState(""),[E,O]=d.useState(""),[F,T]=d.useState("draw"),[Z,J]=d.useState(""),[G,ie]=d.useState(""),[be,me]=d.useState(!1),[L,se]=d.useState("signature"),[$,S]=d.useState("#111827"),[K,xe]=d.useState("dancing-script"),[Me,he]=d.useState(!1),we=jt.find(p=>p.id===K)??jt[0],V=L==="initials"?G.trim():Z.trim(),Se=V||(L==="initials"?"AB":"Signature");if(d.useEffect(()=>{e&&(M(v),W(new Date().toISOString().slice(0,10)),O(""))},[e,v]),d.useEffect(()=>{if(!e||w!=="sign")return;const p=c.current;if(!p)return;const m=p.getContext("2d");m&&(p.width=560,p.height=200,m.fillStyle="#ffffff",m.fillRect(0,0,p.width,p.height),m.lineCap="round",m.lineJoin="round",m.strokeStyle=$,m.lineWidth=2.5,b.current=null,l.current=!1)},[e,w]),d.useEffect(()=>{if(!e)return;let p=!1;return he(!1),ur().then(()=>{p||he(!0)}),()=>{p=!0}},[e]),d.useEffect(()=>{const p=c.current,m=p==null?void 0:p.getContext("2d");m&&(m.strokeStyle=$,m.fillStyle=$)},[$]),d.useEffect(()=>{if(!e||F!=="type")return;const p=c.current,m=p==null?void 0:p.getContext("2d");if(!p||!m||(m.fillStyle="#ffffff",m.fillRect(0,0,p.width,p.height),!V))return;const H=L==="initials"?72:we.family==="Great Vibes"||we.family==="Allura"?56:we.family==="Pacifico"?44:48;m.fillStyle=$,m.textAlign="center",m.textBaseline="middle",m.font=`${H}px "${we.family}", cursive`,m.fillText(V,p.width/2,p.height/2)},[V,L,F,$,e,we,Me]),!e)return null;const We=p=>{const m=c.current,H=m.getBoundingClientRect();return{x:(p.clientX-H.left)/H.width*m.width,y:(p.clientY-H.top)/H.height*m.height}},_e=p=>{if(F!=="draw")return;p.currentTarget.setPointerCapture(p.pointerId),l.current=!0;const m=We(p);b.current=m,j.current=[m]},Ae=p=>{if(!l.current||F!=="draw")return;const m=c.current,H=m==null?void 0:m.getContext("2d"),X=b.current;if(!H||!X)return;const re=We(p);H.beginPath(),H.moveTo(X.x,X.y),H.lineTo(re.x,re.y),H.stroke(),b.current=re,j.current.push(re)},ye=()=>{j.current.length>1&&g.current.push([...j.current]),j.current=[],l.current=!1,b.current=null},A=()=>{const p=c.current,m=p==null?void 0:p.getContext("2d");!p||!m||(m.fillStyle="#ffffff",m.fillRect(0,0,p.width,p.height),g.current=[],j.current=[],J(""),ie(""),me(!1))},ue=p=>{J(p),be||ie(pr(p))},Fe=()=>{if(F==="draw"){const p=g.current;if(p.length===0)return;let m=1/0,H=1/0,X=-1/0,re=-1/0;for(const Ge of p)for(const Ne of Ge)Ne.x<m&&(m=Ne.x),Ne.y<H&&(H=Ne.y),Ne.x>X&&(X=Ne.x),Ne.y>re&&(re=Ne.y);const ne=8;m=Math.max(0,m-ne),H=Math.max(0,H-ne),X+=ne,re+=ne;const Pe=X-m,oe=re-H,De=p.map(Ge=>"M"+Ge.map(Oe=>({x:Oe.x-m,y:Oe.y-H})).map(Oe=>`${Oe.x.toFixed(1)},${Oe.y.toFixed(1)}`).join("L")).join(" "),Re=`<svg xmlns="http://www.w3.org/2000/svg" width="${Pe.toFixed(0)}" height="${oe.toFixed(0)}" viewBox="0 0 ${Pe.toFixed(0)} ${oe.toFixed(0)}"><path d="${De}" fill="none" stroke="${$}" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>`,Be=`data:image/svg+xml;base64,${btoa(Re)}`;n(Be,Pe,oe)}else{if(!V)return;const p=3,m=L==="initials"?72:we.family==="Great Vibes"||we.family==="Allura"?56:we.family==="Pacifico"?44:48,X=document.createElement("canvas").getContext("2d");X.font=`${m*p}px "${we.family}", cursive`;const re=X.measureText(V),ne=12*p,Pe=Math.ceil(re.width)+ne*2,oe=m*p+ne*2,De=document.createElement("canvas");De.width=Pe,De.height=oe;const Re=De.getContext("2d");Re.clearRect(0,0,Pe,oe),Re.font=`${m*p}px "${we.family}", cursive`,Re.fillStyle=$,Re.textBaseline="middle",Re.fillText(V,ne,oe/2);const Be=De.toDataURL("image/png");n(Be,Pe/p,oe/p)}},te=()=>{const p=w==="date"?C:E.trim();if(!p)return;const m=document.createElement("canvas"),H=m.getContext("2d"),X=16;H.font=`${X}px sans-serif`;const re=H.measureText(p),ne=8;m.width=Math.ceil(re.width)+ne*2,m.height=X+ne*2,H.clearRect(0,0,m.width,m.height),H.font=`${X}px sans-serif`,H.fillStyle="#111827",H.textBaseline="middle",H.fillText(p,ne,m.height/2);const Pe=m.toDataURL("image/png");n(Pe,m.width,m.height)},fe=w==="sign",le=w==="date"?"Pick a date":w==="text"?"Enter text":"Create e-signature";return r.jsxs("div",{className:"epochs-pdf-viewer__modal",role:"dialog","aria-modal":"true",children:[r.jsx("div",{className:"epochs-pdf-viewer__modal-backdrop",onClick:t}),r.jsxs("div",{className:"epochs-pdf-viewer__modal-card",children:[r.jsxs("div",{className:"epochs-pdf-viewer__modal-header",children:[r.jsx("h3",{children:le}),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t,title:"Close",children:"×"})]}),s&&!i?r.jsx("div",{className:"epochs-pdf-viewer__field-type-tabs",role:"tablist",children:["sign","date","text"].map(p=>r.jsx("button",{type:"button",role:"tab","aria-selected":w===p,className:w===p?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>M(p),children:p==="sign"?"Sign":p==="date"?"Date":"Text"},p))}):null,fe?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"epochs-pdf-viewer__sign-modes",children:[r.jsx("button",{type:"button",className:F==="draw"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>{T("draw"),A()},children:"Draw"}),r.jsx("button",{type:"button",className:F==="type"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>T("type"),children:"Type"}),r.jsxs("label",{className:"epochs-pdf-viewer__sign-ink",children:["Ink",r.jsx("input",{type:"color",value:$,onChange:p=>S(p.target.value)})]})]}),F==="type"?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"epochs-pdf-viewer__sign-fonts",role:"group","aria-label":"Handwriting style",children:jt.map(p=>r.jsx("button",{type:"button",className:K===p.id?"epochs-pdf-viewer__sign-font epochs-pdf-viewer__sign-font--active":"epochs-pdf-viewer__sign-font",style:{fontFamily:`"${p.family}", cursive`},onClick:()=>xe(p.id),title:p.label,children:Se},p.id))}),r.jsxs("div",{className:"epochs-pdf-viewer__sign-type-fields",children:[r.jsxs("label",{className:"epochs-pdf-viewer__sign-type-field",children:[r.jsx("span",{children:"Full name"}),r.jsx("input",{className:"epochs-pdf-viewer__sign-type-input",type:"text",value:Z,onChange:p=>ue(p.target.value),onFocus:()=>se("signature"),placeholder:"Type your full name",style:{fontFamily:`"${we.family}", cursive`},autoFocus:!0})]}),r.jsxs("label",{className:"epochs-pdf-viewer__sign-type-field",children:[r.jsx("span",{children:"Initials"}),r.jsx("input",{className:"epochs-pdf-viewer__sign-type-input",type:"text",value:G,onChange:p=>{me(!0),ie(p.target.value.toUpperCase())},onFocus:()=>se("initials"),placeholder:"e.g. JD",maxLength:4,style:{fontFamily:`"${we.family}", cursive`}})]})]}),r.jsxs("div",{className:"epochs-pdf-viewer__sign-type-kind",role:"group","aria-label":"Preview type",children:[r.jsx("button",{type:"button",className:L==="signature"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>se("signature"),children:"Use full name"}),r.jsx("button",{type:"button",className:L==="initials"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>se("initials"),children:"Use initials"})]})]}):r.jsx("p",{className:"epochs-pdf-viewer__sign-hint",children:"Draw your signature below"}),r.jsx("canvas",{ref:c,className:F==="draw"?"epochs-pdf-viewer__sign-canvas":"epochs-pdf-viewer__sign-canvas epochs-pdf-viewer__sign-canvas--preview",onPointerDown:_e,onPointerMove:Ae,onPointerUp:ye,onPointerLeave:ye})]}):w==="date"?r.jsxs("label",{className:"epochs-pdf-viewer__sign-type-field",style:{padding:"1rem"},children:[r.jsx("span",{children:"Date"}),r.jsx("input",{className:"epochs-pdf-viewer__sign-type-input",type:"date",value:C,onChange:p=>W(p.target.value),autoFocus:!0})]}):r.jsxs("label",{className:"epochs-pdf-viewer__sign-type-field",style:{padding:"1rem"},children:[r.jsx("span",{children:"Text"}),r.jsx("input",{className:"epochs-pdf-viewer__sign-type-input",type:"text",value:E,onChange:p=>O(p.target.value),placeholder:a??"Enter text",autoFocus:!0})]}),r.jsxs("div",{className:"epochs-pdf-viewer__modal-actions",children:[fe?r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:A,children:"Clear"}):null,r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:t,children:"Cancel"}),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--primary",onClick:fe?Fe:te,disabled:w==="date"?!C:w==="text"?!E.trim():!1,children:fe?"Use signature":"Place on page"})]})]})]})}function pr(e){const t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?"":t.length===1?t[0].slice(0,2).toUpperCase():t.slice(0,3).map(n=>{var i;return((i=n[0])==null?void 0:i.toUpperCase())??""}).join("")}const kt="__epochsToolbarToolId";function $e(e,t){const n=(()=>null);return n.displayName=t,Object.defineProperty(n,kt,{value:e,enumerable:!0}),n}function jn(e){return e[kt]}function gr(e){return typeof e=="function"&&kt in e&&typeof e[kt]=="string"}const qt=$e("thumbnail","Thumbnail"),Yt=$e("navigation","Navigation"),Zt=$e("zoom","Zoom"),Kt=$e("rotate","Rotate"),Vt=$e("reload","Reload"),Qt=$e("print","Print"),Jt=$e("open","Open"),en=$e("download","Download"),tn=$e("highlight","Highlight"),nn=$e("underline","Underline"),rn=$e("signature","Signature"),sn=$e("text","AddText"),on=$e("erase","Erase"),an=$e("clear","Clear"),mr=[qt,Yt,Zt,Kt,tn,nn,rn,sn,on,an,Vt,Qt,Jt,en],zt=[[qt,Yt],[Zt,Kt,tn,nn,rn,sn,on,an,Vt,Qt,Jt,en]],wr=["highlight","underline","signature","text","erase","clear"];function kn(e){return wr.includes(e)}function yr(e,t,n){const i=[];switch(n!=null&&n.showMarkupSep&&i.push(r.jsx("span",{className:"epochs-pdf-viewer__toolbar-sep","aria-hidden":"true"},`${e}-sep`)),e){case"thumbnail":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:()=>t.setShowThumbnails(s=>!s),title:t.showThumbnails?"Hide thumbnails":"Show thumbnails",children:r.jsx(Wi,{})},"thumbnail"));break;case"navigation":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handlePrev,disabled:!t.canGoPrev||t.status!=="ready",title:"Previous page",children:r.jsx(Oi,{})},"nav-prev"),r.jsxs("div",{className:"epochs-pdf-viewer__page-input",children:[r.jsx("input",{type:"number",value:t.pageNumber,min:1,max:t.numPages||1,onChange:s=>{const a=Number.parseInt(s.target.value,10);Number.isFinite(a)&&t.scrollToPage(Math.max(1,Math.min(t.numPages||1,a)))},disabled:t.status!=="ready","aria-label":"Page number"}),r.jsxs("span",{children:["/ ",t.numPages||"-"]})]},"nav-page"),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handleNext,disabled:!t.canGoNext||t.status!=="ready",title:"Next page",children:r.jsx(Hi,{})},"nav-next"));break;case"zoom":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handleZoomOut,disabled:t.status!=="ready",title:"Zoom out",children:r.jsx(Gi,{})},"zoom-out"),r.jsxs("span",{className:"epochs-pdf-viewer__zoom-label",children:[Math.round(t.scale*100),"%"]},"zoom-label"),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handleZoomIn,disabled:t.status!=="ready",title:"Zoom in",children:r.jsx(Xi,{})},"zoom-in"),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:()=>void t.handleFitWidth(),disabled:t.status!=="ready",title:"Fit to width",children:"Fit"},"zoom-fit"));break;case"rotate":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:t.handleRotate,disabled:t.status!=="ready",title:"Rotate",children:r.jsx(Zi,{})},"rotate"));break;case"highlight":i.push(r.jsx("button",{type:"button",className:t.markupTool==="highlight"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>t.toggleMarkupTool("highlight"),disabled:t.status!=="ready",title:"Highlight text — select text to highlight",children:r.jsx(Ki,{})},"highlight"));break;case"underline":i.push(r.jsx("button",{type:"button",className:t.markupTool==="underline"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>t.toggleMarkupTool("underline"),disabled:t.status!=="ready",title:"Underline text — select text to underline",children:r.jsx(Vi,{})},"underline"));break;case"signature":i.push(r.jsx("button",{type:"button",className:t.markupTool==="sign"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>{if(!t.hasFixedSignatureFields&&t.pendingSignature&&t.markupTool!=="sign"){t.setMarkupTool("sign");return}t.setSignaturePadOpen(!0)},disabled:t.status!=="ready",title:t.hasFixedSignatureFields?"Create e-signature for a fixed field":t.pendingSignature?"Place signature — click on the page, then drag to move":"Create e-signature",children:r.jsx(Ji,{})},"signature"));break;case"text":i.push(r.jsx("button",{type:"button",className:t.markupTool==="text"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>t.toggleMarkupTool("text"),disabled:t.status!=="ready",title:t.hasFixedTextFields?"Edit text in predefined areas — click to type":"Edit PDF text — select words, then change them",children:r.jsx(tr,{})},"text"));break;case"erase":i.push(r.jsx("button",{type:"button",className:t.markupTool==="erase"?"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--active":"epochs-pdf-viewer__btn",onClick:()=>t.toggleMarkupTool("erase"),disabled:t.status!=="ready",title:"Remove text — select PDF words to cover them, or click added markup",children:r.jsx(Qi,{})},"erase"));break;case"clear":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",onClick:t.handleClearAnnotations,disabled:t.status!=="ready"||t.annotationsLength===0&&t.signaturesLength===0&&t.textsLength===0,title:"Clear all markup",children:"Clear"},"clear"));break;case"reload":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:()=>void t.loadDocument(),title:"Reload",children:r.jsx(Yi,{})},"reload"));break;case"print":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:()=>void t.handlePrint(),disabled:t.status!=="ready"||!t.pdfDoc||t.isPrinting,title:t.isPrinting?"Preparing print…":"Print (includes highlights & underlines)",children:r.jsx(qi,{})},"print"));break;case"open":i.push(r.jsx("a",{className:"epochs-pdf-viewer__btn",href:t.displayUrl||t.resolvedUrl||void 0,target:"_blank",rel:"noopener noreferrer",title:"Open in new tab",children:r.jsx(Ui,{})},"open"));break;case"download":i.push(r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn",onClick:()=>void t.handleDownload(),disabled:t.status!=="ready"||!t.pdfDoc||t.isDownloading,title:t.isDownloading?"Preparing download…":t.annotationsLength>0||t.signaturesLength>0||t.textsLength>0?"Download PDF with markup":"Download PDF",children:r.jsx(zi,{})},"download"));break}return i.length>0?i:null}function br(e,t){const n=[];if(e.markupTool==="sign"&&e.pendingSignature&&!e.hasFixedSignatureFields&&t.has("signature")&&n.push(r.jsx("span",{className:"epochs-pdf-viewer__markup-hint",children:"Click page to place duplicate/new signature"},"sign-hint")),e.markupTool==="text"&&t.has("text")&&n.push(r.jsx("span",{className:"epochs-pdf-viewer__markup-hint",children:e.hasFixedTextFields?"Click in a predefined text area to type":"Select text to edit it — e.g. change this PDF to this is PDF"},"text-hint")),e.markupTool==="erase"&&t.has("erase")&&n.push(r.jsx("span",{className:"epochs-pdf-viewer__markup-hint",children:"Select PDF words to remove · click added text/markup to erase"},"erase-hint")),e.markupTool==="highlight"&&t.has("highlight")||e.markupTool==="underline"&&t.has("underline")){const i=e.markupTool==="highlight"?e.highlightHex:e.underlineHex,s=e.markupTool==="highlight"?e.setHighlightHex:e.setUnderlineHex,a=e.markupTool==="highlight"?Wt:Gt;n.push(r.jsxs("div",{className:"epochs-pdf-viewer__color-picker",role:"group","aria-label":`${e.markupTool} color`,children:[a.map(c=>r.jsx("button",{type:"button",className:Ye(i)===Ye(c.hex)?"epochs-pdf-viewer__swatch epochs-pdf-viewer__swatch--active":"epochs-pdf-viewer__swatch",style:{background:c.hex},title:c.label,"aria-label":c.label,"aria-pressed":Ye(i)===Ye(c.hex),onClick:()=>s(Ye(c.hex))},c.id)),r.jsxs("label",{className:"epochs-pdf-viewer__custom-color",title:"Custom color",children:[r.jsx("span",{className:"epochs-pdf-viewer__custom-color-chip",style:{background:i}}),r.jsx("input",{type:"color",value:Ye(i),onChange:c=>s(Ye(c.target.value)),"aria-label":"Custom color"})]})]},"color-picker"))}return n.length>0?n:null}function xr(e,t){if(!e)return null;if(Array.isArray(e)){const a=c=>(c??[]).filter(gr).map(jn);return{left:a(e[0]),right:a(e[1])}}const n=t.enableThumbnails,i=(a,c)=>a.map(jn).filter(l=>c[l]!==!1),s={thumbnail:n,navigation:t.enableNavigation,zoom:t.enableZoom,rotate:t.enableRotate,reload:t.enableReload,print:t.enablePrint,open:t.enableOpen,download:t.enableDownload,highlight:t.enableHighlight,underline:t.enableUnderline,signature:t.enableSignature,text:t.enableText,erase:t.enableErase,clear:t.enableClear};return{left:i(zt[0],s),right:i(zt[1],s)}}function Rn({file:e,fileUrl:t,baseUrl:n="",fetchOptions:i,height:s="80vh",title:a="PDF document",initialScale:c=1,withThumbnails:l=!1,thumbnailWidth:b=140,maxThumbnails:g=60,className:j,workerSrc:v,enableToolbar:w=!1,enableThumbnails:M,enableNavigation:C=!0,enableZoom:W=!0,enableRotate:E=!0,enableReload:O=!0,enablePrint:F=!0,enableOpen:T=!0,enableDownload:Z=!0,enableMarkup:J=!0,enableHighlight:G=!0,enableUnderline:ie=!0,enableSignature:be=!0,enableText:me=!0,enableErase:L=!0,enableClear:se=!0,signatureFields:$=[],textFields:S=[],onSignatureComplete:K,onFieldValueComplete:xe,openSignaturePad:Me=!1,onSignaturePadClose:he,onSubmit:we,submitLabel:V="Submit"}){const Se=d.useRef(null),We=d.useRef(null),_e=d.useRef(new Map),Ae=d.useRef(!1),ye=d.useMemo(()=>e&&typeof e!="string"?e:null,[e]),A=d.useMemo(()=>ye?"":or(typeof e=="string"?e:void 0,t,n),[ye,e,t,n]),[ue,Fe]=d.useState("idle"),[te,fe]=d.useState(null),[le,p]=d.useState(0),[m,H]=d.useState(1),[X,re]=d.useState(c),[ne,Pe]=d.useState(0),[oe,De]=d.useState(null),[Re,Be]=d.useState(!1),[Ge,Ne]=d.useState(!1),[Oe,mt]=d.useState(!1),[o,y]=d.useState("none"),[_,k]=d.useState([]),[P,N]=d.useState([]),[R,z]=d.useState([]),[Y,U]=d.useState(!1),[B,ae]=d.useState(void 0),[ce,ee]=d.useState(null),[ve,de]=d.useState(null),[pe,je]=d.useState(null),[He,Le]=d.useState(null),[st,ze]=d.useState(null),[wt,Xe]=d.useState(null),[Mt,Ze]=d.useState(null),[dn,qn]=d.useState(Pn),[hn,Yn]=d.useState(Pi),Ie=$.length>0,ot=S.length>0,[Je,Zn]=d.useState({});d.useEffect(()=>{Me&&U(!0)},[Me]);const Ke=d.useMemo(()=>xr(w,{enableThumbnails:M,enableNavigation:C,enableZoom:W,enableRotate:E,enableReload:O,enablePrint:F,enableOpen:T,enableDownload:Z,enableHighlight:G,enableUnderline:ie,enableSignature:be,enableText:me,enableErase:L,enableClear:se}),[w,M,C,W,E,O,F,T,Z,G,ie,be,me,L,se]),Ve=d.useMemo(()=>Ke?new Set([...Ke.left,...Ke.right]):new Set,[Ke]);d.useEffect(()=>{if(!Ve.has("thumbnail")){Be(!1);return}const f=window.matchMedia("(max-width: 720px)"),h=()=>{Be(f.matches?!1:l)};return h(),f.addEventListener("change",h),()=>f.removeEventListener("change",h)},[Ve,l]);const un=!Ie&&Ve.has("highlight"),fn=!Ie&&Ve.has("underline"),Pt=Ve.has("signature")||Ie,pn=Ve.has("text")||ot,gn=!Ie&&Ve.has("erase"),at=d.useCallback(()=>{We.current&&(URL.revokeObjectURL(We.current),We.current=null)},[]),Nt=d.useCallback(async()=>{if(!(!ye&&!A)){sr(v),Fe("loading"),fe(null),p(0),H(1),k([]),N([]),z([]),ee(null),de(null),je(null),Le(null),ze(null),Xe(null),Ze(null),y("none");try{const u=ye?await xn(ye,i):await xn(A,i),f=new Blob([u],{type:"application/pdf"}),h=URL.createObjectURL(f);at(),We.current=h,De(h);const D=await rt.getDocument({data:u,cMapUrl:`https://unpkg.com/pdfjs-dist@${rt.version}/cmaps/`,cMapPacked:!0,standardFontDataUrl:`https://unpkg.com/pdfjs-dist@${rt.version}/standard_fonts/`}).promise;fe(D),p(D.numPages),Fe("ready")}catch{Fe("error")}}},[ye,A,i,at,v]);d.useEffect(()=>{if(!ye&&!A){Fe("idle"),fe(null),p(0),De(null),at();return}return Nt(),()=>{at()}},[ye,A,Nt,at]),d.useEffect(()=>{(o==="highlight"&&!un||o==="underline"&&!fn||o==="sign"&&!Pt||o==="text"&&!pn||o==="erase"&&!gn)&&y("none")},[un,fn,Pt,pn,gn,o]);const et=d.useCallback(u=>{const f=Math.max(1,Math.min(le||1,u)),h=_e.current.get(f);if(!h){H(f);return}Ae.current=!0,h.scrollIntoView({behavior:"smooth",block:"start"}),H(f),window.setTimeout(()=>{Ae.current=!1},500)},[le]),tt=d.useCallback(u=>{const f=_e.current.get(u.pageNumber);f&&(Ae.current=!0,H(u.pageNumber));const h=()=>{var D;const x=(D=Se.current)==null?void 0:D.querySelector(`[data-signature-field-id="${CSS.escape(u.id)}"]`);x?x.scrollIntoView({behavior:"smooth",block:"center"}):f&&f.scrollIntoView({behavior:"smooth",block:"start"}),window.setTimeout(()=>{Ae.current=!1},500)};window.requestAnimationFrame(()=>{window.setTimeout(h,40)})},[]);d.useEffect(()=>{if(ue!=="ready"||!Se.current||!le)return;const u=Se.current,f=new IntersectionObserver(h=>{if(Ae.current)return;let x=null;for(const D of h){if(!D.isIntersecting)continue;const I=Number.parseInt(D.target.dataset.pageNumber||"0",10);I&&(!x||D.intersectionRatio>x.ratio)&&(x={page:I,ratio:D.intersectionRatio})}x&&H(x.page)},{root:u,threshold:[.25,.5,.75]});for(let h=1;h<=le;h+=1){const x=_e.current.get(h);x&&f.observe(x)}return()=>f.disconnect()},[ue,le]);const Ct=m>1,Tt=le?m<le:!1,Kn=d.useCallback(()=>{Ct&&et(m-1)},[Ct,m,et]),Vn=d.useCallback(()=>{Tt&&et(m+1)},[Tt,m,et]),Qn=d.useCallback(()=>{Pe(u=>(u+90)%360)},[]),Jn=d.useCallback(()=>{re(u=>Math.max(.25,Math.round((u-.1)*100)/100))},[]),ei=d.useCallback(()=>{re(u=>Math.min(5,Math.round((u+.1)*100)/100))},[]),$t=d.useCallback(async()=>{if(!(!te||!Se.current))try{const f=(await te.getPage(m)).getViewport({scale:1,rotation:ne}),x=window.matchMedia("(max-width: 720px)").matches?16:24,I=Math.max(0,Se.current.clientWidth-x)/f.width;re(Math.max(.25,Math.min(5,Math.round(I*100)/100)))}catch{}},[te,m,ne]);d.useEffect(()=>{if(ue!=="ready"||!te||!window.matchMedia("(max-width: 720px)").matches)return;let u=!1;const f=()=>{u||$t()};f();const h=Se.current,x=typeof ResizeObserver<"u"&&h?new ResizeObserver(()=>f()):null;x==null||x.observe(h);const D=window.matchMedia("(max-width: 720px)"),I=()=>{D.matches&&f()};return D.addEventListener("change",I),()=>{u=!0,x==null||x.disconnect(),D.removeEventListener("change",I)}},[ue,te,Re,ne,$t]);const ti=d.useCallback(async()=>{var u;if(!(!te||ue!=="ready")){Ne(!0);try{const f=await _n(te,{scale:1.5,rotation:ne,annotations:_,signatures:P,texts:R,mimeType:"image/png"}),h=document.createElement("iframe");h.style.position="fixed",h.style.right="0",h.style.bottom="0",h.style.width="0",h.style.height="0",h.style.border="0",h.setAttribute("aria-hidden","true"),document.body.appendChild(h);const x=(u=h.contentWindow)==null?void 0:u.document;if(!x)throw new Error("print iframe not available");x.open(),x.write(`<!doctype html>
25
25
  <html>
26
26
  <head>
27
27
  <meta charset="utf-8" />
@@ -35,7 +35,7 @@ ${j}
35
35
  </style>
36
36
  </head>
37
37
  <body></body>
38
- </html>`),x.close();const D=x.body;for(const I of f){const q=x.createElement("img");q.src=I.dataUrl;const Ce=x.createElement("div");Ce.className="page",Ce.appendChild(q),D.appendChild(Ce)}await Promise.all(Array.from(D.querySelectorAll("img")).map(I=>{var q;return((q=I.decode)==null?void 0:q.call(I).catch(()=>{}))??Promise.resolve()})),setTimeout(()=>{var I,q;try{(I=h.contentWindow)==null||I.focus(),(q=h.contentWindow)==null||q.print()}finally{setTimeout(()=>{try{document.body.removeChild(h)}catch{}},1e3)}},50)}catch{try{oe?window.open(oe,"_blank","noopener,noreferrer"):A&&window.open(A,"_blank","noopener,noreferrer")}catch{}}finally{Ne(!1)}}},[te,ue,ne,a,oe,A,_,P,R]),ni=d.useCallback(async()=>{if(!te||ue!=="ready")return;const u=`${a.replace(/[^\w.-]+/g,"_")||"document"}.pdf`;if(!(_.length>0||P.length>0||R.length>0)&&oe){Ot(await fetch(oe).then(h=>h.blob()),u);return}mt(!0);try{const h=await _n(te,{scale:2,rotation:ne,annotations:_,signatures:P,texts:R,mimeType:"image/jpeg",quality:.92}),x=dr(h),D=new Uint8Array(x.byteLength);D.set(x),Ot(new Blob([D],{type:"application/pdf"}),u)}catch{oe&&Ot(await fetch(oe).then(h=>h.blob()),u)}finally{mt(!1)}},[te,ue,ne,a,oe,_,P,R]),ii=d.useCallback(u=>{y(f=>f===u?"none":u)},[]),ri=o==="highlight"||o==="underline"?Xt(o==="highlight"?dn:o==="underline"?hn:null,o):void 0,nt=ve!=null?P.find(u=>u.id===ve)??null:null,si=d.useCallback(u=>{k(f=>[...f,u])},[]),oi=d.useCallback(u=>{k(f=>f.filter(h=>h.id!==u))},[]),ai=d.useCallback(()=>{k([]),N([]),z([]),de(null),ze(null),Xe(null),Ze(null)},[]),ci=d.useCallback(u=>{ae(u),U(!0)},[]),li=d.useCallback((u,f)=>{Zn(h=>({...h,[u]:f}))},[]),di=d.useCallback(u=>{const f=Je[u];f&&(xe==null||xe(u,f));const h=$.findIndex(I=>I.id===u),x=new Set(Object.keys(Je).filter(I=>{var q;return(q=Je[I])==null?void 0:q.trim()}));x.add(u);const D=$.slice(h+1).find(I=>!x.has(I.id)&&!P.some(q=>q.fieldId===I.id))??$.slice(0,Math.max(0,h)).find(I=>!x.has(I.id)&&!P.some(q=>q.fieldId===I.id));if(D){je(D.id),tt(D);const I=D.type;(I==="sign"||!I)&&window.setTimeout(()=>U(!0),350)}},[$,Je,P,tt]),hi=d.useCallback((u,f,h)=>{const x=Ti(f,h);if(He){N(Q=>Q.map(Te=>Te.id===He?{...Te,imageDataUrl:u,width:Te.fieldId?Te.width:x.width,height:Te.fieldId?Te.height:x.height}:Te)),ee(null),y("none"),U(!1),Ie(null);return}if(De){const Q=$.find(ge=>ge.id===pe&&!P.some(Qe=>Qe.fieldId===ge.id))??$.find(ge=>!P.some(Qe=>Qe.fieldId===ge.id));if(!Q){U(!1);return}const Te={id:vt(),fieldId:Q.id,pageNumber:Q.pageNumber,x:Q.x,y:Q.y,width:Q.width,height:Q.height,imageDataUrl:u};N(ge=>[...ge.filter(Qe=>Qe.fieldId!==Q.id),Te]),K==null||K(Q.id,Te),ee(null),y("none"),U(!1),Ie(null);const qe=new Set(P.filter(ge=>ge.fieldId&&ge.fieldId!==Q.id).map(ge=>ge.fieldId));qe.add(Q.id);const yt=$.findIndex(ge=>ge.id===Q.id),ct=$.slice(yt+1).find(ge=>!qe.has(ge.id))??$.slice(0,Math.max(0,yt)).find(ge=>!qe.has(ge.id));ct?(je(ct.id),de(null),tt(ct),window.setTimeout(()=>{U(!0)},350)):(de(Te.id),je(Q.id));return}const D=_e.current.get(m),I=D==null?void 0:D.querySelector(".epochs-pdf-viewer__surface");let q=24,Ce=24;if(I){const Q=pt(I,X),Te=I.closest(".epochs-pdf-viewer__body");if(Te){const qe=Ri(Te.getBoundingClientRect(),I,X),yt=Math.max(0,qe.top),ct=Math.min(Q.height,qe.bottom),ge=Math.max(0,qe.left),Qe=Math.min(Q.width,qe.right);q=Math.max(0,(ge+Qe)/2-x.width/2),Ce=Math.max(0,(yt+ct)/2-x.height/2),q=Math.min(q,Math.max(0,Q.width-x.width)),Ce=Math.min(Ce,Math.max(0,Q.height-x.height))}else q=Math.max(0,(Q.width-x.width)/2),Ce=Math.max(0,(Q.height-x.height)/2)}const Ue={id:vt(),pageNumber:m,x:q,y:Ce,width:x.width,height:x.height,imageDataUrl:u};N(Q=>[...Q,Ue]),K==null||K(void 0,Ue),de(Ue.id),ee(null),y("none"),U(!1),Ie(null)},[He,De,m,X,tt,pe,$,P,K]),ui=d.useCallback(u=>{N(f=>[...f,u]),de(u.id),ee(null),y("none")},[]),fi=d.useCallback((u,f)=>{N(h=>h.map(x=>x.id===u?{...x,...f}:x))},[]),pi=d.useCallback(u=>{const f=P.find(h=>h.id===u);N(h=>h.filter(x=>x.id!==u)),de(h=>h===u?null:h),f!=null&&f.fieldId&&je(f.fieldId)},[P]),gi=d.useCallback(u=>{const f=u?P.find(Ue=>Ue.id===u)??null:nt;if(!f)return;const h=_e.current.get(f.pageNumber),x=h==null?void 0:h.querySelector(".epochs-pdf-viewer__surface"),D=18;let I=f.x+D,q=f.y+D;if(x){const Ue=x.clientWidth/X,Q=x.clientHeight/X;I=Math.min(Math.max(0,I),Math.max(0,Ue-f.width)),q=Math.min(Math.max(0,q),Math.max(0,Q-f.height))}const Ce={...f,id:vt(),x:I,y:q};N(Ue=>[...Ue,Ce]),de(Ce.id),ee(null),y("none")},[X,nt,P]),mi=d.useCallback(u=>{const f=u??(nt==null?void 0:nt.id);f&&(de(f),Ie(f),U(!0))},[nt]),wi=d.useCallback(u=>{z(f=>u.fieldId?[...f.filter(h=>h.fieldId!==u.fieldId),u]:[...f,u]),ze(u.id),u.fieldId&&Xe(u.fieldId)},[]),yi=d.useCallback((u,f)=>{z(h=>h.map(x=>x.id===u?{...x,...f}:x))},[]),bi=d.useCallback(u=>{const f=R.find(h=>h.id===u);z(h=>h.filter(x=>x.id!==u)),ze(h=>h===u?null:h),Ze(h=>h===u?null:h),f!=null&&f.fieldId&&Xe(f.fieldId)},[R]);d.useEffect(()=>{ot&&z(u=>u.map(f=>{if(!f.fieldId)return f;const h=S.find(x=>x.id===f.fieldId);return h?{...f,pageNumber:h.pageNumber,x:h.x,y:h.y,width:h.width,height:h.height,fontSize:h.fontSize??f.fontSize??gt,color:h.color??f.color??ft}:f}))},[ot,S]);const mn=d.useCallback(u=>{var D;if(!$.length)return;const f=pe!=null?$.findIndex(I=>I.id===pe):-1,h=Math.min($.length-1,Math.max(0,(f<0?0:f)+u)),x=$[h];x&&(je(x.id),de(((D=P.find(I=>I.fieldId===x.id))==null?void 0:D.id)??null),tt(x))},[tt,pe,$,P]);if(!ye&&!A)return r.jsx("div",{"data-testid":"pdf-viewer",className:`epochs-pdf-viewer epochs-pdf-viewer--empty ${j??""}`.trim(),children:"No PDF file provided."});const xi={height:s},wn={status:ue,showThumbnails:Re,setShowThumbnails:Be,canGoPrev:Ct,canGoNext:Tt,handlePrev:Kn,handleNext:Vn,pageNumber:m,numPages:le,scrollToPage:et,scale:X,handleZoomOut:Jn,handleZoomIn:ei,handleFitWidth:$t,handleRotate:Qn,markupTool:o,toggleMarkupTool:u=>ii(u),hasFixedSignatureFields:De,hasFixedTextFields:ot,pendingSignature:ce,setMarkupTool:y,setSignaturePadOpen:U,annotationsLength:_.length,signaturesLength:P.length,textsLength:R.length,handleClearAnnotations:ai,highlightHex:dn,underlineHex:hn,setHighlightHex:qn,setUnderlineHex:Yn,loadDocument:Nt,handlePrint:ti,isPrinting:Ge,pdfDoc:te,displayUrl:oe,resolvedUrl:A,handleDownload:ni,isDownloading:Oe},_i=u=>u.filter(f=>!(De&&(f==="highlight"||f==="underline"||f==="erase"))),Rt=pe?$.findIndex(u=>u.id===pe):0,vi=$.filter(u=>{var h;const f=u.type??"sign";return f==="date"||f==="text"?!!((h=Je[u.id])!=null&&h.trim()):P.some(x=>x.fieldId===u.id)}).length,It=$.length>0?Math.round(vi/$.length*100):0,yn=(u,f=!1)=>{const h=_i(u);if(h.length===0&&!f)return r.jsx("div",{className:"epochs-pdf-viewer__toolbar-group"});if(h.length===0)return r.jsx("div",{className:"epochs-pdf-viewer__toolbar-group epochs-pdf-viewer__toolbar-group--end"});const x=h.map((D,I)=>{const q=h[I-1],Ce=kn(D)&&(!q||!kn(q));return r.jsx(d.Fragment,{children:yr(D,wn,{showMarkupSep:Ce})},D)});return r.jsxs("div",{className:f?"epochs-pdf-viewer__toolbar-group epochs-pdf-viewer__toolbar-group--end":"epochs-pdf-viewer__toolbar-group",children:[x,br(wn,new Set(h))]})};return r.jsxs("div",{"data-testid":"pdf-viewer","data-file-url":A||void 0,className:`epochs-pdf-viewer ${j??""}`.trim(),style:xi,children:[Ke?r.jsxs("div",{className:"epochs-pdf-viewer__toolbar",children:[yn(Ke.left),yn(Ke.right,!0)]}):null,Pt||Me?r.jsx(fr,{open:Y,onClose:()=>{U(!1),Ie(null),he==null||he()},onSave:hi,fieldType:B,showFieldTypeTabs:!De}):null,r.jsxs("div",{className:"epochs-pdf-viewer__content",children:[Re?r.jsx("div",{className:"epochs-pdf-viewer__thumbnails",style:{width:b+24},children:ue==="ready"&&te?r.jsxs(r.Fragment,{children:[Array.from({length:Math.min(le||0,g)}).map((u,f)=>{const h=f+1;return r.jsx("div",{className:"epochs-pdf-viewer__thumb-wrap",children:r.jsx(ir,{pdfDoc:te,pageNumber:h,isActive:h===m,rotation:ne,onSelect:et,width:b,annotations:_,signatures:P,signatureFields:$,texts:R,textFields:S})},h)}),le>g?r.jsxs("div",{className:"epochs-pdf-viewer__thumb-more",children:["Showing first ",g," pages"]}):null]}):r.jsx("div",{className:"epochs-pdf-viewer__muted",children:"Thumbnails"})}):null,r.jsxs("div",{ref:Le,className:"epochs-pdf-viewer__body",children:[ue==="loading"?r.jsxs("div",{className:"epochs-pdf-viewer__overlay epochs-pdf-viewer__muted",children:["Loading PDF…",r.jsx("span",{className:"epochs-pdf-viewer__spinner"})]}):null,ue==="error"?r.jsxs("div",{className:"epochs-pdf-viewer__overlay epochs-pdf-viewer__error",children:["Unable to load PDF.",A?r.jsx("a",{className:"epochs-pdf-viewer__open-link",href:A,target:"_blank",rel:"noopener noreferrer",children:"Open file"}):null]}):null,ue==="ready"&&te?r.jsx("div",{children:Array.from({length:le}).map((u,f)=>{const h=f+1;return r.jsx(nr,{pdfDoc:te,pageNumber:h,scale:X,rotation:ne,markupTool:J?o:"none",markupColor:ri,annotations:_,onAddAnnotation:si,onRemoveAnnotation:oi,signatures:P,pendingSignature:ce,onAddSignature:ui,onUpdateSignature:fi,onRemoveSignature:pi,onEditSignature:mi,onDuplicateSignature:gi,selectedSignatureId:ve,onSelectSignature:de,signatureFields:$,selectedSignatureFieldId:pe,onSelectSignatureField:je,hasFixedSignatureFields:De,onOpenSignaturePad:ci,fieldValues:Je,onFieldValueChange:li,onFieldValueCommit:di,texts:R,onAddText:wi,onUpdateText:yi,onRemoveText:bi,selectedTextId:st,onSelectText:ze,textFields:S,selectedTextFieldId:wt,onSelectTextField:Xe,hasFixedTextFields:ot,editingTextId:Mt,onEditingTextIdChange:Ze,pageRef:x=>{x&&_e.current.set(h,x)}},h)})}):null]})]}),De||we?r.jsxs("div",{className:"epochs-pdf-viewer__footer",role:"navigation","aria-label":"Viewer actions",children:[De?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"epochs-pdf-viewer__footer-nav",children:[r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",disabled:$.length<=1||Rt<=0,onClick:()=>mn(-1),children:"Prev"}),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",disabled:$.length<=1||Rt>=$.length-1,onClick:()=>mn(1),children:"Next"})]}),r.jsxs("div",{className:"epochs-pdf-viewer__footer-center",children:[r.jsxs("span",{className:"epochs-pdf-viewer__footer-label",children:["Field ",Math.max(1,Rt+1)," of ",$.length]}),r.jsx("div",{className:"epochs-pdf-viewer__footer-progress",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":It,"aria-label":"Signature progress",children:r.jsx("div",{className:"epochs-pdf-viewer__footer-progress-bar",style:{width:`${It}%`}})}),r.jsxs("span",{className:"epochs-pdf-viewer__footer-percent",children:[It,"%"]})]})]}):r.jsx("div",{className:"epochs-pdf-viewer__footer-center"}),we?r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--primary",onClick:we,children:V}):null]}):null]})}function In(e){return null}In.displayName="Document";function Ln(e){return null}Ln.displayName="Page";function Sn(e){return null}Sn.displayName="View";function Dn(e){return null}Dn.displayName="Text";function En(e){return null}En.displayName="Image";function Fn(e){return null}Fn.displayName="Link";const _r={Document:"DOCUMENT",Page:"PAGE",View:"VIEW",Text:"TEXT",Image:"IMAGE",Link:"LINK"};function vr(e){if(typeof e=="string")return e;if(typeof e=="function"){const t=e;return t.displayName||t.name||null}return null}function An(e){const t=[],n=i=>{if(!(i==null||typeof i=="boolean")){if(Array.isArray(i)){i.forEach(n);return}t.push(i)}};return n(e),t}function Bn(e){return An(e).map(t=>typeof t=="string"||typeof t=="number"?String(t):t&&typeof t=="object"&&"props"in t?Bn(t.props.children):"").join("")}function On(e){const t=vr(e.type),n=t?_r[t]:void 0;if(!n)throw new Error(`[epochs-pdf] Unsupported element "${t??"unknown"}". Use Document, Page, View, Text, Image, or Link.`);const i={...e.props},s=i.children;if(delete i.children,n==="TEXT"||n==="LINK")return{type:n,props:i,children:[],text:Bn(s)};const a=An(s).filter(c=>!!c&&typeof c=="object"&&"type"in c).map(On);return{type:n,props:i,children:a}}const Hn={A4:[595.28,841.89],LETTER:[612,792],LEGAL:[612,1008]};function zn(e="A4",t="portrait"){const[n,i]=Array.isArray(e)?e:Hn[e];return t==="landscape"?[i,n]:[n,i]}function Un(e={}){const t=e.padding??0;return{top:e.paddingTop??t,right:e.paddingRight??t,bottom:e.paddingBottom??t,left:e.paddingLeft??t}}function dt(e={}){const t=e.margin??0;return{top:e.marginTop??t,right:e.marginRight??t,bottom:e.marginBottom??t,left:e.marginLeft??t}}function _t(e){if(!e)return null;const t=e.trim();if(t.startsWith("#")){const i=t.slice(1);if(i.length===3){const s=parseInt(i[0]+i[0],16)/255,a=parseInt(i[1]+i[1],16)/255,c=parseInt(i[2]+i[2],16)/255;return[s,a,c]}if(i.length===6){const s=parseInt(i.slice(0,2),16)/255,a=parseInt(i.slice(2,4),16)/255,c=parseInt(i.slice(4,6),16)/255;return[s,a,c]}}const n=e.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i);return n?[Math.min(1,Number(n[1])/255),Math.min(1,Number(n[2])/255),Math.min(1,Number(n[3])/255)]:null}function it(e,t,n=0){if(e==null)return n;if(typeof e=="number")return e;if(e.endsWith("%")){const s=Number.parseFloat(e);return Number.isFinite(s)?s/100*t:n}const i=Number.parseFloat(e);return Number.isFinite(i)?i:n}function Ut(e){return e==="bold"?!0:typeof e=="number"?e>=600:!1}const jr=12,kr=1.4,Mr=.5;function Wn(e,t,n){const i=t.fontSize??jr,s=(t.lineHeight??kr)*i,a=i*(Ut(t.fontWeight)?.55:Mr);if(!e)return{width:0,height:s,lines:[""]};const c=e.split(/\s+/),l=[];let b="";for(const j of c){const v=b?`${b} ${j}`:j;v.length*a<=n||!b?b=v:(l.push(b),b=j)}b&&l.push(b);const g=Math.max(...l.map(j=>j.length*a),0);return{width:Math.min(g,n),height:l.length*s,lines:l}}function Gn(e,t,n,i,s){const a=e.props.style??{},c=dt(a),l=Un(a),b=t+c.left,g=n+c.top,j=Math.max(0,it(a.width,i,i)-c.left-c.right),v=Math.max(0,j-l.left-l.right);if(e.type==="TEXT"||e.type==="LINK"){const S=Wn(e.text??"",a,v),K=it(a.height,s,S.height+l.top+l.bottom);return{x:b,y:g,width:j,height:K,node:e,children:[],style:a,text:e.text}}if(e.type==="IMAGE"){const S=it(a.width,i,Math.min(200,i)),K=it(a.height,s,120);return{x:b,y:g,width:S-c.left-c.right,height:K,node:e,children:[],style:a}}const w=a.flexDirection??"column",M=a.gap??0,C=[];let W=b+l.left,E=g+l.top,O=0,F=0;for(let S=0;S<e.children.length;S++){const K=e.children[S],xe=w==="row"?Math.max(0,v-O-(S>0?M:0)):v,Me=w==="column"?Math.max(0,s-(E-n)-c.bottom):s,he=Gn(K,W,E,xe,Me);C.push(he),w==="row"?(O+=he.width+dt(K.props.style??{}).left+dt(K.props.style??{}).right,S<e.children.length-1&&(O+=M),W=b+l.left+O,F=Math.max(F,he.height)):(O+=he.height+dt(K.props.style??{}).top+dt(K.props.style??{}).bottom,S<e.children.length-1&&(O+=M),E=g+l.top+O,F=Math.max(F,he.width))}const T=it(a.height,s,w==="column"?O+l.top+l.bottom:F+l.top+l.bottom),Z=w==="row"?it(a.width,i,O+l.left+l.right):j,J=a.justifyContent??"flex-start",G=a.alignItems??"stretch",ie=w==="column"?T-l.top-l.bottom:Z-l.left-l.right,me=Math.max(0,ie-O);let L=0,se=M;J==="center"&&(L=me/2),J==="flex-end"&&(L=me),J==="space-between"&&C.length>1&&(se=M+me/(C.length-1)),J==="space-around"&&C.length>0&&(se=M+me/C.length,L=se/2);let $=0;for(const S of C)w==="column"?(S.y=g+l.top+L+$,G==="center"?S.x=b+l.left+Math.max(0,(v-S.width)/2):G==="flex-end"?S.x=b+l.left+Math.max(0,v-S.width):G==="stretch"&&S.style.width==null&&(S.width=v),$+=S.height+se):(S.x=b+l.left+L+$,G==="center"?S.y=g+l.top+Math.max(0,(T-l.top-l.bottom-S.height)/2):G==="flex-end"?S.y=g+l.top+Math.max(0,T-l.top-l.bottom-S.height):G==="stretch"&&S.style.height==null&&(S.height=T-l.top-l.bottom),$+=S.width+se);return{x:b,y:g,width:Z,height:T,node:e,children:C,style:a}}function Pr(e){if(e.type!=="DOCUMENT")throw new Error("[epochs-pdf] Root element must be <Document>.");const t=[];for(const n of e.children){if(n.type!=="PAGE")throw new Error("[epochs-pdf] Direct children of <Document> must be <Page>.");const i=n.props.size,s=n.props.orientation??"portrait",[a,c]=zn(i,s),l=n.props.style??{},b=Un(l),g={type:"VIEW",props:{style:{...l,width:a,height:c,paddingTop:b.top,paddingRight:b.right,paddingBottom:b.bottom,paddingLeft:b.left}},children:n.children},j=Gn(g,0,0,a,c);t.push({width:a,height:c,boxes:j.children,style:l})}return{meta:{title:String(e.props.title??"Untitled"),author:String(e.props.author??""),subject:String(e.props.subject??""),creator:String(e.props.creator??"epochs-pdf")},pages:t}}function ht(e){return e.replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/\r/g,"\\r").replace(/\n/g,"\\n")}class Nr{constructor(){Lt(this,"objects",[null]);Lt(this,"offsets",[0])}addObject(t){return this.objects.push(t),this.objects.length-1}build(t){const n=this.addObject(`<< /Title (${ht(t.meta.title)}) /Author (${ht(t.meta.author)}) /Subject (${ht(t.meta.subject)}) /Creator (${ht(t.meta.creator)}) /Producer (epochs-pdf) >>`),i=this.addObject("<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica >>"),s=this.addObject("<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold >>"),a=[];for(const v of t.pages){const w=this.renderPageContent(v.boxes,v.width,v.height,v.style),M=this.addObject(`<< /Length ${w.length} >>
38
+ </html>`),x.close();const D=x.body;for(const I of f){const q=x.createElement("img");q.src=I.dataUrl;const Ce=x.createElement("div");Ce.className="page",Ce.appendChild(q),D.appendChild(Ce)}await Promise.all(Array.from(D.querySelectorAll("img")).map(I=>{var q;return((q=I.decode)==null?void 0:q.call(I).catch(()=>{}))??Promise.resolve()})),setTimeout(()=>{var I,q;try{(I=h.contentWindow)==null||I.focus(),(q=h.contentWindow)==null||q.print()}finally{setTimeout(()=>{try{document.body.removeChild(h)}catch{}},1e3)}},50)}catch{try{oe?window.open(oe,"_blank","noopener,noreferrer"):A&&window.open(A,"_blank","noopener,noreferrer")}catch{}}finally{Ne(!1)}}},[te,ue,ne,a,oe,A,_,P,R]),ni=d.useCallback(async()=>{if(!te||ue!=="ready")return;const u=`${a.replace(/[^\w.-]+/g,"_")||"document"}.pdf`;if(!(_.length>0||P.length>0||R.length>0)&&oe){Ot(await fetch(oe).then(h=>h.blob()),u);return}mt(!0);try{const h=await _n(te,{scale:2,rotation:ne,annotations:_,signatures:P,texts:R,mimeType:"image/jpeg",quality:.92}),x=dr(h),D=new Uint8Array(x.byteLength);D.set(x),Ot(new Blob([D],{type:"application/pdf"}),u)}catch{oe&&Ot(await fetch(oe).then(h=>h.blob()),u)}finally{mt(!1)}},[te,ue,ne,a,oe,_,P,R]),ii=d.useCallback(u=>{y(f=>f===u?"none":u)},[]),ri=o==="highlight"||o==="underline"?Xt(o==="highlight"?dn:o==="underline"?hn:null,o):void 0,nt=ve!=null?P.find(u=>u.id===ve)??null:null,si=d.useCallback(u=>{k(f=>[...f,u])},[]),oi=d.useCallback(u=>{k(f=>f.filter(h=>h.id!==u))},[]),ai=d.useCallback(()=>{k([]),N([]),z([]),de(null),ze(null),Xe(null),Ze(null)},[]),ci=d.useCallback(u=>{ae(u),U(!0)},[]),li=d.useCallback((u,f)=>{Zn(h=>({...h,[u]:f}))},[]),di=d.useCallback(u=>{const f=Je[u];f&&(xe==null||xe(u,f));const h=$.findIndex(I=>I.id===u),x=new Set(Object.keys(Je).filter(I=>{var q;return(q=Je[I])==null?void 0:q.trim()}));x.add(u);const D=$.slice(h+1).find(I=>!x.has(I.id)&&!P.some(q=>q.fieldId===I.id))??$.slice(0,Math.max(0,h)).find(I=>!x.has(I.id)&&!P.some(q=>q.fieldId===I.id));if(D){je(D.id),tt(D);const I=D.type;(I==="sign"||!I)&&window.setTimeout(()=>U(!0),350)}},[$,Je,P,tt]),hi=d.useCallback((u,f,h)=>{const x=Ti(f,h);if(He){N(Q=>Q.map(Te=>Te.id===He?{...Te,imageDataUrl:u,width:Te.fieldId?Te.width:x.width,height:Te.fieldId?Te.height:x.height}:Te)),ee(null),y("none"),U(!1),Le(null);return}if(Ie){const Q=$.find(ge=>ge.id===pe&&!P.some(Qe=>Qe.fieldId===ge.id))??$.find(ge=>!P.some(Qe=>Qe.fieldId===ge.id));if(!Q){U(!1);return}const Te={id:vt(),fieldId:Q.id,pageNumber:Q.pageNumber,x:Q.x,y:Q.y,width:Q.width,height:Q.height,imageDataUrl:u};N(ge=>[...ge.filter(Qe=>Qe.fieldId!==Q.id),Te]),K==null||K(Q.id,Te),ee(null),y("none"),U(!1),Le(null);const qe=new Set(P.filter(ge=>ge.fieldId&&ge.fieldId!==Q.id).map(ge=>ge.fieldId));qe.add(Q.id);const yt=$.findIndex(ge=>ge.id===Q.id),ct=$.slice(yt+1).find(ge=>!qe.has(ge.id))??$.slice(0,Math.max(0,yt)).find(ge=>!qe.has(ge.id));ct?(je(ct.id),de(null),tt(ct),window.setTimeout(()=>{U(!0)},350)):(de(Te.id),je(Q.id));return}const D=_e.current.get(m),I=D==null?void 0:D.querySelector(".epochs-pdf-viewer__surface");let q=24,Ce=24;if(I){const Q=pt(I,X),Te=I.closest(".epochs-pdf-viewer__body");if(Te){const qe=Ri(Te.getBoundingClientRect(),I,X),yt=Math.max(0,qe.top),ct=Math.min(Q.height,qe.bottom),ge=Math.max(0,qe.left),Qe=Math.min(Q.width,qe.right);q=Math.max(0,(ge+Qe)/2-x.width/2),Ce=Math.max(0,(yt+ct)/2-x.height/2),q=Math.min(q,Math.max(0,Q.width-x.width)),Ce=Math.min(Ce,Math.max(0,Q.height-x.height))}else q=Math.max(0,(Q.width-x.width)/2),Ce=Math.max(0,(Q.height-x.height)/2)}const Ue={id:vt(),pageNumber:m,x:q,y:Ce,width:x.width,height:x.height,imageDataUrl:u};N(Q=>[...Q,Ue]),K==null||K(void 0,Ue),de(Ue.id),ee(null),y("none"),U(!1),Le(null)},[He,Ie,m,X,tt,pe,$,P,K]),ui=d.useCallback(u=>{N(f=>[...f,u]),de(u.id),ee(null),y("none")},[]),fi=d.useCallback((u,f)=>{N(h=>h.map(x=>x.id===u?{...x,...f}:x))},[]),pi=d.useCallback(u=>{const f=P.find(h=>h.id===u);N(h=>h.filter(x=>x.id!==u)),de(h=>h===u?null:h),f!=null&&f.fieldId&&je(f.fieldId)},[P]),gi=d.useCallback(u=>{const f=u?P.find(Ue=>Ue.id===u)??null:nt;if(!f)return;const h=_e.current.get(f.pageNumber),x=h==null?void 0:h.querySelector(".epochs-pdf-viewer__surface"),D=18;let I=f.x+D,q=f.y+D;if(x){const Ue=x.clientWidth/X,Q=x.clientHeight/X;I=Math.min(Math.max(0,I),Math.max(0,Ue-f.width)),q=Math.min(Math.max(0,q),Math.max(0,Q-f.height))}const Ce={...f,id:vt(),x:I,y:q};N(Ue=>[...Ue,Ce]),de(Ce.id),ee(null),y("none")},[X,nt,P]),mi=d.useCallback(u=>{const f=u??(nt==null?void 0:nt.id);f&&(de(f),Le(f),U(!0))},[nt]),wi=d.useCallback(u=>{z(f=>u.fieldId?[...f.filter(h=>h.fieldId!==u.fieldId),u]:[...f,u]),ze(u.id),u.fieldId&&Xe(u.fieldId)},[]),yi=d.useCallback((u,f)=>{z(h=>h.map(x=>x.id===u?{...x,...f}:x))},[]),bi=d.useCallback(u=>{const f=R.find(h=>h.id===u);z(h=>h.filter(x=>x.id!==u)),ze(h=>h===u?null:h),Ze(h=>h===u?null:h),f!=null&&f.fieldId&&Xe(f.fieldId)},[R]);d.useEffect(()=>{ot&&z(u=>u.map(f=>{if(!f.fieldId)return f;const h=S.find(x=>x.id===f.fieldId);return h?{...f,pageNumber:h.pageNumber,x:h.x,y:h.y,width:h.width,height:h.height,fontSize:h.fontSize??f.fontSize??gt,color:h.color??f.color??ft}:f}))},[ot,S]);const mn=d.useCallback(u=>{var D;if(!$.length)return;const f=pe!=null?$.findIndex(I=>I.id===pe):-1,h=Math.min($.length-1,Math.max(0,(f<0?0:f)+u)),x=$[h];x&&(je(x.id),de(((D=P.find(I=>I.fieldId===x.id))==null?void 0:D.id)??null),tt(x))},[tt,pe,$,P]);if(!ye&&!A)return r.jsx("div",{"data-testid":"pdf-viewer",className:`epochs-pdf-viewer epochs-pdf-viewer--empty ${j??""}`.trim(),children:"No PDF file provided."});const xi={height:s},wn={status:ue,showThumbnails:Re,setShowThumbnails:Be,canGoPrev:Ct,canGoNext:Tt,handlePrev:Kn,handleNext:Vn,pageNumber:m,numPages:le,scrollToPage:et,scale:X,handleZoomOut:Jn,handleZoomIn:ei,handleFitWidth:$t,handleRotate:Qn,markupTool:o,toggleMarkupTool:u=>ii(u),hasFixedSignatureFields:Ie,hasFixedTextFields:ot,pendingSignature:ce,setMarkupTool:y,setSignaturePadOpen:U,annotationsLength:_.length,signaturesLength:P.length,textsLength:R.length,handleClearAnnotations:ai,highlightHex:dn,underlineHex:hn,setHighlightHex:qn,setUnderlineHex:Yn,loadDocument:Nt,handlePrint:ti,isPrinting:Ge,pdfDoc:te,displayUrl:oe,resolvedUrl:A,handleDownload:ni,isDownloading:Oe},_i=u=>u.filter(f=>!(Ie&&(f==="highlight"||f==="underline"||f==="erase"))),Rt=pe?$.findIndex(u=>u.id===pe):0,vi=$.filter(u=>{var h;const f=u.type??"sign";return f==="date"||f==="text"?!!((h=Je[u.id])!=null&&h.trim()):P.some(x=>x.fieldId===u.id)}).length,It=$.length>0?Math.round(vi/$.length*100):0,yn=(u,f=!1)=>{const h=_i(u);if(h.length===0&&!f)return r.jsx("div",{className:"epochs-pdf-viewer__toolbar-group"});if(h.length===0)return r.jsx("div",{className:"epochs-pdf-viewer__toolbar-group epochs-pdf-viewer__toolbar-group--end"});const x=h.map((D,I)=>{const q=h[I-1],Ce=kn(D)&&(!q||!kn(q));return r.jsx(d.Fragment,{children:yr(D,wn,{showMarkupSep:Ce})},D)});return r.jsxs("div",{className:f?"epochs-pdf-viewer__toolbar-group epochs-pdf-viewer__toolbar-group--end":"epochs-pdf-viewer__toolbar-group",children:[x,br(wn,new Set(h))]})};return r.jsxs("div",{"data-testid":"pdf-viewer","data-file-url":A||void 0,className:`epochs-pdf-viewer ${j??""}`.trim(),style:xi,children:[Ke?r.jsxs("div",{className:"epochs-pdf-viewer__toolbar",children:[yn(Ke.left),yn(Ke.right,!0)]}):null,Pt||Me||Ie?r.jsx(fr,{open:Y,onClose:()=>{U(!1),Le(null),he==null||he()},onSave:hi,fieldType:B,showFieldTypeTabs:!Ie}):null,r.jsxs("div",{className:"epochs-pdf-viewer__content",children:[Re?r.jsx("div",{className:"epochs-pdf-viewer__thumbnails",style:{width:b+24},children:ue==="ready"&&te?r.jsxs(r.Fragment,{children:[Array.from({length:Math.min(le||0,g)}).map((u,f)=>{const h=f+1;return r.jsx("div",{className:"epochs-pdf-viewer__thumb-wrap",children:r.jsx(ir,{pdfDoc:te,pageNumber:h,isActive:h===m,rotation:ne,onSelect:et,width:b,annotations:_,signatures:P,signatureFields:$,texts:R,textFields:S})},h)}),le>g?r.jsxs("div",{className:"epochs-pdf-viewer__thumb-more",children:["Showing first ",g," pages"]}):null]}):r.jsx("div",{className:"epochs-pdf-viewer__muted",children:"Thumbnails"})}):null,r.jsxs("div",{ref:Se,className:"epochs-pdf-viewer__body",children:[ue==="loading"?r.jsxs("div",{className:"epochs-pdf-viewer__overlay epochs-pdf-viewer__muted",children:["Loading PDF…",r.jsx("span",{className:"epochs-pdf-viewer__spinner"})]}):null,ue==="error"?r.jsxs("div",{className:"epochs-pdf-viewer__overlay epochs-pdf-viewer__error",children:["Unable to load PDF.",A?r.jsx("a",{className:"epochs-pdf-viewer__open-link",href:A,target:"_blank",rel:"noopener noreferrer",children:"Open file"}):null]}):null,ue==="ready"&&te?r.jsx("div",{children:Array.from({length:le}).map((u,f)=>{const h=f+1;return r.jsx(nr,{pdfDoc:te,pageNumber:h,scale:X,rotation:ne,markupTool:J?o:"none",markupColor:ri,annotations:_,onAddAnnotation:si,onRemoveAnnotation:oi,signatures:P,pendingSignature:ce,onAddSignature:ui,onUpdateSignature:fi,onRemoveSignature:pi,onEditSignature:mi,onDuplicateSignature:gi,selectedSignatureId:ve,onSelectSignature:de,signatureFields:$,selectedSignatureFieldId:pe,onSelectSignatureField:je,hasFixedSignatureFields:Ie,onOpenSignaturePad:ci,fieldValues:Je,onFieldValueChange:li,onFieldValueCommit:di,texts:R,onAddText:wi,onUpdateText:yi,onRemoveText:bi,selectedTextId:st,onSelectText:ze,textFields:S,selectedTextFieldId:wt,onSelectTextField:Xe,hasFixedTextFields:ot,editingTextId:Mt,onEditingTextIdChange:Ze,pageRef:x=>{x&&_e.current.set(h,x)}},h)})}):null]})]}),Ie||we?r.jsxs("div",{className:"epochs-pdf-viewer__footer",role:"navigation","aria-label":"Viewer actions",children:[Ie?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"epochs-pdf-viewer__footer-nav",children:[r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",disabled:$.length<=1||Rt<=0,onClick:()=>mn(-1),children:"Prev"}),r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text",disabled:$.length<=1||Rt>=$.length-1,onClick:()=>mn(1),children:"Next"})]}),r.jsxs("div",{className:"epochs-pdf-viewer__footer-center",children:[r.jsxs("span",{className:"epochs-pdf-viewer__footer-label",children:["Field ",Math.max(1,Rt+1)," of ",$.length]}),r.jsx("div",{className:"epochs-pdf-viewer__footer-progress",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":It,"aria-label":"Signature progress",children:r.jsx("div",{className:"epochs-pdf-viewer__footer-progress-bar",style:{width:`${It}%`}})}),r.jsxs("span",{className:"epochs-pdf-viewer__footer-percent",children:[It,"%"]})]})]}):r.jsx("div",{className:"epochs-pdf-viewer__footer-center"}),we?r.jsx("button",{type:"button",className:"epochs-pdf-viewer__btn epochs-pdf-viewer__btn--text epochs-pdf-viewer__btn--primary",onClick:we,children:V}):null]}):null]})}function In(e){return null}In.displayName="Document";function Ln(e){return null}Ln.displayName="Page";function Sn(e){return null}Sn.displayName="View";function Dn(e){return null}Dn.displayName="Text";function En(e){return null}En.displayName="Image";function Fn(e){return null}Fn.displayName="Link";const _r={Document:"DOCUMENT",Page:"PAGE",View:"VIEW",Text:"TEXT",Image:"IMAGE",Link:"LINK"};function vr(e){if(typeof e=="string")return e;if(typeof e=="function"){const t=e;return t.displayName||t.name||null}return null}function An(e){const t=[],n=i=>{if(!(i==null||typeof i=="boolean")){if(Array.isArray(i)){i.forEach(n);return}t.push(i)}};return n(e),t}function Bn(e){return An(e).map(t=>typeof t=="string"||typeof t=="number"?String(t):t&&typeof t=="object"&&"props"in t?Bn(t.props.children):"").join("")}function On(e){const t=vr(e.type),n=t?_r[t]:void 0;if(!n)throw new Error(`[epochs-pdf] Unsupported element "${t??"unknown"}". Use Document, Page, View, Text, Image, or Link.`);const i={...e.props},s=i.children;if(delete i.children,n==="TEXT"||n==="LINK")return{type:n,props:i,children:[],text:Bn(s)};const a=An(s).filter(c=>!!c&&typeof c=="object"&&"type"in c).map(On);return{type:n,props:i,children:a}}const Hn={A4:[595.28,841.89],LETTER:[612,792],LEGAL:[612,1008]};function zn(e="A4",t="portrait"){const[n,i]=Array.isArray(e)?e:Hn[e];return t==="landscape"?[i,n]:[n,i]}function Un(e={}){const t=e.padding??0;return{top:e.paddingTop??t,right:e.paddingRight??t,bottom:e.paddingBottom??t,left:e.paddingLeft??t}}function dt(e={}){const t=e.margin??0;return{top:e.marginTop??t,right:e.marginRight??t,bottom:e.marginBottom??t,left:e.marginLeft??t}}function _t(e){if(!e)return null;const t=e.trim();if(t.startsWith("#")){const i=t.slice(1);if(i.length===3){const s=parseInt(i[0]+i[0],16)/255,a=parseInt(i[1]+i[1],16)/255,c=parseInt(i[2]+i[2],16)/255;return[s,a,c]}if(i.length===6){const s=parseInt(i.slice(0,2),16)/255,a=parseInt(i.slice(2,4),16)/255,c=parseInt(i.slice(4,6),16)/255;return[s,a,c]}}const n=e.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i);return n?[Math.min(1,Number(n[1])/255),Math.min(1,Number(n[2])/255),Math.min(1,Number(n[3])/255)]:null}function it(e,t,n=0){if(e==null)return n;if(typeof e=="number")return e;if(e.endsWith("%")){const s=Number.parseFloat(e);return Number.isFinite(s)?s/100*t:n}const i=Number.parseFloat(e);return Number.isFinite(i)?i:n}function Ut(e){return e==="bold"?!0:typeof e=="number"?e>=600:!1}const jr=12,kr=1.4,Mr=.5;function Wn(e,t,n){const i=t.fontSize??jr,s=(t.lineHeight??kr)*i,a=i*(Ut(t.fontWeight)?.55:Mr);if(!e)return{width:0,height:s,lines:[""]};const c=e.split(/\s+/),l=[];let b="";for(const j of c){const v=b?`${b} ${j}`:j;v.length*a<=n||!b?b=v:(l.push(b),b=j)}b&&l.push(b);const g=Math.max(...l.map(j=>j.length*a),0);return{width:Math.min(g,n),height:l.length*s,lines:l}}function Gn(e,t,n,i,s){const a=e.props.style??{},c=dt(a),l=Un(a),b=t+c.left,g=n+c.top,j=Math.max(0,it(a.width,i,i)-c.left-c.right),v=Math.max(0,j-l.left-l.right);if(e.type==="TEXT"||e.type==="LINK"){const S=Wn(e.text??"",a,v),K=it(a.height,s,S.height+l.top+l.bottom);return{x:b,y:g,width:j,height:K,node:e,children:[],style:a,text:e.text}}if(e.type==="IMAGE"){const S=it(a.width,i,Math.min(200,i)),K=it(a.height,s,120);return{x:b,y:g,width:S-c.left-c.right,height:K,node:e,children:[],style:a}}const w=a.flexDirection??"column",M=a.gap??0,C=[];let W=b+l.left,E=g+l.top,O=0,F=0;for(let S=0;S<e.children.length;S++){const K=e.children[S],xe=w==="row"?Math.max(0,v-O-(S>0?M:0)):v,Me=w==="column"?Math.max(0,s-(E-n)-c.bottom):s,he=Gn(K,W,E,xe,Me);C.push(he),w==="row"?(O+=he.width+dt(K.props.style??{}).left+dt(K.props.style??{}).right,S<e.children.length-1&&(O+=M),W=b+l.left+O,F=Math.max(F,he.height)):(O+=he.height+dt(K.props.style??{}).top+dt(K.props.style??{}).bottom,S<e.children.length-1&&(O+=M),E=g+l.top+O,F=Math.max(F,he.width))}const T=it(a.height,s,w==="column"?O+l.top+l.bottom:F+l.top+l.bottom),Z=w==="row"?it(a.width,i,O+l.left+l.right):j,J=a.justifyContent??"flex-start",G=a.alignItems??"stretch",ie=w==="column"?T-l.top-l.bottom:Z-l.left-l.right,me=Math.max(0,ie-O);let L=0,se=M;J==="center"&&(L=me/2),J==="flex-end"&&(L=me),J==="space-between"&&C.length>1&&(se=M+me/(C.length-1)),J==="space-around"&&C.length>0&&(se=M+me/C.length,L=se/2);let $=0;for(const S of C)w==="column"?(S.y=g+l.top+L+$,G==="center"?S.x=b+l.left+Math.max(0,(v-S.width)/2):G==="flex-end"?S.x=b+l.left+Math.max(0,v-S.width):G==="stretch"&&S.style.width==null&&(S.width=v),$+=S.height+se):(S.x=b+l.left+L+$,G==="center"?S.y=g+l.top+Math.max(0,(T-l.top-l.bottom-S.height)/2):G==="flex-end"?S.y=g+l.top+Math.max(0,T-l.top-l.bottom-S.height):G==="stretch"&&S.style.height==null&&(S.height=T-l.top-l.bottom),$+=S.width+se);return{x:b,y:g,width:Z,height:T,node:e,children:C,style:a}}function Pr(e){if(e.type!=="DOCUMENT")throw new Error("[epochs-pdf] Root element must be <Document>.");const t=[];for(const n of e.children){if(n.type!=="PAGE")throw new Error("[epochs-pdf] Direct children of <Document> must be <Page>.");const i=n.props.size,s=n.props.orientation??"portrait",[a,c]=zn(i,s),l=n.props.style??{},b=Un(l),g={type:"VIEW",props:{style:{...l,width:a,height:c,paddingTop:b.top,paddingRight:b.right,paddingBottom:b.bottom,paddingLeft:b.left}},children:n.children},j=Gn(g,0,0,a,c);t.push({width:a,height:c,boxes:j.children,style:l})}return{meta:{title:String(e.props.title??"Untitled"),author:String(e.props.author??""),subject:String(e.props.subject??""),creator:String(e.props.creator??"epochs-pdf")},pages:t}}function ht(e){return e.replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/\r/g,"\\r").replace(/\n/g,"\\n")}class Nr{constructor(){Lt(this,"objects",[null]);Lt(this,"offsets",[0])}addObject(t){return this.objects.push(t),this.objects.length-1}build(t){const n=this.addObject(`<< /Title (${ht(t.meta.title)}) /Author (${ht(t.meta.author)}) /Subject (${ht(t.meta.subject)}) /Creator (${ht(t.meta.creator)}) /Producer (epochs-pdf) >>`),i=this.addObject("<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica >>"),s=this.addObject("<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold >>"),a=[];for(const v of t.pages){const w=this.renderPageContent(v.boxes,v.width,v.height,v.style),M=this.addObject(`<< /Length ${w.length} >>
39
39
  stream
40
40
  ${w}
41
41
  endstream`),C=this.addObject("");a.push(C),this.objects[C]=`<< /Type /Page /Parent 0 0 R /MediaBox [0 0 ${v.width.toFixed(2)} ${v.height.toFixed(2)}] /Contents ${M} 0 R /Resources << /Font << /F1 ${i} 0 R /F2 ${s} 0 R >> >> >>`}const c=a.map(v=>`${v} 0 R`).join(" "),l=this.addObject(`<< /Type /Pages /Kids [${c}] /Count ${a.length} >>`);for(const v of a)this.objects[v]=this.objects[v].replace("/Parent 0 0 R",`/Parent ${l} 0 R`);const b=this.addObject(`<< /Type /Catalog /Pages ${l} 0 R >>`);let g=`%PDF-1.4