pdf-tsx 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +78 -78
- package/README.md +678 -678
- package/dist/cjs/components/PDFViewer.module.cjs +1 -1
- package/dist/cjs/components/features/PDFOutline.cjs +1 -1
- package/dist/cjs/components/features/PDFViewModeToggle.module.cjs +1 -1
- package/dist/cjs/favicon.svg +9 -9
- package/dist/cjs/hooks/useAnnotationLayer.cjs +1 -1
- package/dist/cjs/hooks/useOverlayRects.cjs +1 -1
- package/dist/cjs/hooks/usePDFRenderer.cjs +1 -1
- package/dist/cjs/hooks/useTextLayer.cjs +1 -1
- package/dist/cjs/hooks/useThumbnails.cjs +1 -1
- package/dist/cjs/pdf-tsx.css +1 -1
- package/dist/cjs/utils/pdfFit.cjs +1 -1
- package/dist/cjs/utils/rotation.cjs +1 -0
- package/dist/components/features/PDFSignButton.d.ts +10 -0
- package/dist/components/features/SignaturePad.d.ts +10 -0
- package/dist/es/components/PDFViewer.module.js +26 -26
- package/dist/es/components/features/PDFOutline.js +47 -46
- package/dist/es/components/features/PDFViewModeToggle.module.js +8 -8
- package/dist/es/favicon.svg +9 -9
- package/dist/es/hooks/useAnnotationLayer.js +39 -38
- package/dist/es/hooks/useOverlayRects.js +44 -43
- package/dist/es/hooks/usePDFRenderer.js +65 -64
- package/dist/es/hooks/useTextLayer.js +34 -33
- package/dist/es/hooks/useThumbnails.js +33 -32
- package/dist/es/pdf-tsx.css +1 -1
- package/dist/es/utils/pdfFit.js +13 -12
- package/dist/es/utils/rotation.js +6 -0
- package/dist/pdf-tsx.cjs.js +5 -0
- package/dist/pdf-tsx.css +2 -0
- package/dist/pdf-tsx.es.js +2637 -0
- package/dist/src/components/PDFSidebar.d.ts +11 -0
- package/dist/src/components/PDFViewer.d.ts +23 -0
- package/dist/src/components/features/PDFAnnotations.d.ts +5 -0
- package/dist/src/components/features/PDFAttachments.d.ts +5 -0
- package/dist/src/components/features/PDFChangeFile.d.ts +9 -0
- package/dist/src/components/features/PDFDownloadButton.d.ts +9 -0
- package/dist/src/components/features/PDFNavigation.d.ts +10 -0
- package/dist/src/components/features/PDFOutline.d.ts +1 -0
- package/dist/src/components/features/PDFPageFit.d.ts +10 -0
- package/dist/src/components/features/PDFPrintButton.d.ts +9 -0
- package/dist/src/components/features/PDFRotationControl.d.ts +9 -0
- package/dist/src/components/features/PDFSearch.d.ts +13 -0
- package/dist/src/components/features/PDFSidebarToggle.d.ts +10 -0
- package/dist/src/components/features/PDFSignatures.d.ts +5 -0
- package/dist/src/components/features/PDFThemeToggle.d.ts +10 -0
- package/dist/src/components/features/PDFThumbnails.d.ts +1 -0
- package/dist/src/components/features/PDFViewModeToggle.d.ts +11 -0
- package/dist/src/components/features/PDFZoomControls.d.ts +10 -0
- package/dist/src/components/ui/PDFToolbar.d.ts +8 -0
- package/dist/src/components/ui/PDFToolbarDropdownContext.d.ts +1 -0
- package/dist/src/components/ui/PDFToolbarItem.d.ts +7 -0
- package/dist/src/components/ui/PDFToolbarSeparator.d.ts +4 -0
- package/dist/src/components/ui/ToolbarButton.d.ts +6 -0
- package/dist/src/components/ui/icons.d.ts +7 -0
- package/dist/src/context/LabelsContext.d.ts +7 -0
- package/dist/src/context/PDFViewerContext.d.ts +32 -0
- package/dist/src/context/ThemeContext.d.ts +12 -0
- package/dist/src/context/labelsContextValue.d.ts +2 -0
- package/dist/src/context/themeContextValue.d.ts +7 -0
- package/dist/src/hooks/useAnnotationLayer.d.ts +34 -0
- package/dist/src/hooks/useAnnotations.d.ts +15 -0
- package/dist/src/hooks/useAttachments.d.ts +11 -0
- package/dist/src/hooks/useKeyboardShortcuts.d.ts +9 -0
- package/dist/src/hooks/useLabels.d.ts +2 -0
- package/dist/src/hooks/useOutline.d.ts +14 -0
- package/dist/src/hooks/useOverlayRects.d.ts +21 -0
- package/dist/src/hooks/usePDFLoader.d.ts +5 -0
- package/dist/src/hooks/usePDFRenderer.d.ts +16 -0
- package/dist/src/hooks/usePinchZoom.d.ts +1 -0
- package/dist/src/hooks/useScrollTracking.d.ts +10 -0
- package/dist/src/hooks/useSignatures.d.ts +17 -0
- package/dist/src/hooks/useTextLayer.d.ts +10 -0
- package/dist/src/hooks/useTextSearch.d.ts +12 -0
- package/dist/src/hooks/useTheme.d.ts +2 -0
- package/dist/src/hooks/useThumbnails.d.ts +10 -0
- package/dist/src/index.d.ts +25 -0
- package/dist/src/labels.d.ts +57 -0
- package/dist/src/theme.d.ts +27 -0
- package/dist/src/utils/pdfFit.d.ts +2 -0
- package/dist/src/utils/pdfjsPolyfill.d.ts +2 -0
- package/dist/src/utils/url.d.ts +1 -0
- package/dist/src/utils/zoom.d.ts +4 -0
- package/dist/utils/addSignatureToPdf.d.ts +9 -0
- package/dist/utils/rotation.d.ts +7 -0
- package/dist/vite.svg +1 -0
- package/dist/wasm/LICENSE_JBIG2 +196 -0
- package/dist/wasm/LICENSE_OPENJPEG +39 -0
- package/dist/wasm/LICENSE_PDFJS_JBIG2 +13 -0
- package/dist/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
- package/dist/wasm/LICENSE_PDFJS_QCMS +22 -0
- package/dist/wasm/LICENSE_QCMS +21 -0
- package/dist/wasm/jbig2.wasm +0 -0
- package/dist/wasm/jbig2_nowasm_fallback.js +15 -0
- package/dist/wasm/openjpeg.wasm +0 -0
- package/dist/wasm/openjpeg_nowasm_fallback.js +17 -0
- package/dist/wasm/qcms_bg.wasm +0 -0
- package/dist/wasm/quickjs-eval.js +16 -0
- package/dist/wasm/quickjs-eval.wasm +0 -0
- package/package.json +66 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={appLayout:`
|
|
1
|
+
var e={appLayout:`_appLayout_1fhoj_1`,body:`_body_1fhoj_9`,toolbar:`_toolbar_1fhoj_17`,scrollContainer:`_scrollContainer_1fhoj_29`,pageWrapper:`_pageWrapper_1fhoj_41`,single:`_single_1fhoj_47`,currentPage:`_currentPage_1fhoj_51`,spread:`_spread_1fhoj_56`,requireReadBanner:`_requireReadBanner_1fhoj_68`,pageCanvas:`_pageCanvas_1fhoj_72`,textLayer:`_textLayer_1fhoj_81`,markedContent:`_markedContent_1fhoj_107`,endOfContent:`_endOfContent_1fhoj_122`,selecting:`_selecting_1fhoj_131`,documentLoading:`_documentLoading_1fhoj_151`,spin:`_spin_1fhoj_1`,pageSkeleton:`_pageSkeleton_1fhoj_171`,highlightOverlay:`_highlightOverlay_1fhoj_200`,linkOverlay:`_linkOverlay_1fhoj_209`,searchMatchOverlay:`_searchMatchOverlay_1fhoj_216`,noteOverlay:`_noteOverlay_1fhoj_224`,noteIconOverlay:`_noteIconOverlay_1fhoj_231`,requireReadDone:`_requireReadDone_1fhoj_272`,notePopover:`_notePopover_1fhoj_276`,notePopoverTitle:`_notePopoverTitle_1fhoj_289`,notePopoverContent:`_notePopoverContent_1fhoj_296`};exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../../context/PDFViewerContext.cjs"),t=require("../../hooks/useLabels.cjs"),
|
|
1
|
+
const e=require("../../context/PDFViewerContext.cjs"),t=require("../../utils/rotation.cjs"),n=require("../../hooks/useLabels.cjs"),r=require("../../hooks/useOutline.cjs"),i=require("../ui/icons.cjs"),a=require("./PDFOutline.module.cjs");let o=require("react"),s=require("react/jsx-runtime");async function c(e,t){if(!e||!t)return null;try{let n=typeof t==`string`?await e.getDestination(t):t;if(!n||n.length===0)return null;let r=n[0],i=await e.getPageIndex(r)+1,a=n[1],o=null;return a?.name===`XYZ`?o=n[3]??null:(a?.name===`FitH`||a?.name===`FitBH`)&&(o=n[2]??null),{page:i,pdfTop:o}}catch{return null}}var l=(0,o.memo)(function e({node:t,depth:n,onNavigate:r}){let[c,l]=(0,o.useState)(n===0),u=t.items.length>0,d=(0,o.useCallback)(e=>{e.stopPropagation(),l(e=>!e)},[]),f=(0,o.useCallback)(()=>r(t.dest),[r,t.dest]),p=(0,o.useMemo)(()=>({paddingLeft:12+n*14,fontWeight:t.bold?600:400,fontStyle:t.italic?`italic`:`normal`}),[n,t.bold,t.italic]);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(`div`,{className:a.default.row,style:p,onClick:f,children:[u?(0,s.jsx)(`button`,{className:a.default.chevronBtn,onClick:d,children:c?(0,s.jsx)(i.IconChevronDown,{size:12}):(0,s.jsx)(i.IconChevronRight,{size:12})}):(0,s.jsx)(`span`,{style:{width:16,flexShrink:0}}),(0,s.jsx)(`span`,{className:a.default.title,title:t.title,children:t.title})]}),c&&t.items.map((t,i)=>(0,s.jsx)(e,{node:t,depth:n+1,onNavigate:r},i))]})});function u(){let{pdf:i,zoom:u,rotation:d,goToPage:f}=e.usePDFViewer(),p=n.useLabels(),{outline:m,loading:h}=r.useOutline({pdf:i}),g=(0,o.useCallback)(async e=>{let n=await c(i,e);if(n){if(n.pdfTop!==null)try{let e=await i.getPage(n.page),[,r]=e.getViewport({scale:u,rotation:t.getEffectiveRotation(e,d)}).convertToViewportPoint(0,n.pdfTop);f(n.page,r);return}catch{}f(n.page)}},[i,u,d,f]);return(0,s.jsxs)(`div`,{className:a.default.tree,children:[h&&(0,s.jsx)(`div`,{className:a.default.emptyState,children:p.outlineLoading}),!h&&m.length===0&&(0,s.jsx)(`div`,{className:a.default.emptyState,children:p.outlineEmpty}),!h&&m.map((e,t)=>(0,s.jsx)(l,{node:e,depth:0,onNavigate:g},t))]})}exports.PDFOutline=u;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={wrapper:`
|
|
1
|
+
var e={wrapper:`_wrapper_a1x4x_1`,triggerActive:`_triggerActive_a1x4x_7`,caret:`_caret_a1x4x_12`,dropdown:`_dropdown_a1x4x_19`,option:`_option_a1x4x_35`,optionActive:`_optionActive_a1x4x_61`,optionIcon:`_optionIcon_a1x4x_65`,optionLabel:`_optionLabel_a1x4x_71`};exports.default=e;
|
package/dist/cjs/favicon.svg
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
2
|
-
<rect width="64" height="64" rx="14" fill="#0a0a0f"/>
|
|
3
|
-
<text x="50%" y="29" dominant-baseline="middle" text-anchor="middle"
|
|
4
|
-
font-family="system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
5
|
-
font-weight="800" font-size="22" letter-spacing="-1" fill="#e11d48">pdf</text>
|
|
6
|
-
<text x="50%" y="49" dominant-baseline="middle" text-anchor="middle"
|
|
7
|
-
font-family="system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
8
|
-
font-weight="800" font-size="22" letter-spacing="-1" fill="#f4f4f6">tsx</text>
|
|
9
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
2
|
+
<rect width="64" height="64" rx="14" fill="#0a0a0f"/>
|
|
3
|
+
<text x="50%" y="29" dominant-baseline="middle" text-anchor="middle"
|
|
4
|
+
font-family="system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
5
|
+
font-weight="800" font-size="22" letter-spacing="-1" fill="#e11d48">pdf</text>
|
|
6
|
+
<text x="50%" y="49" dominant-baseline="middle" text-anchor="middle"
|
|
7
|
+
font-family="system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
8
|
+
font-weight="800" font-size="22" letter-spacing="-1" fill="#f4f4f6">tsx</text>
|
|
9
|
+
</svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../utils/url.cjs");let
|
|
1
|
+
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../utils/rotation.cjs"),n=require("../utils/url.cjs");let r=require("react"),i=require("pdfjs-dist");i=e.__toESM(i,1);function a({pdf:e,zoom:i,rotation:a,mountedPages:o,goToPage:s}){let[c,l]=(0,r.useState)([]),[u,d]=(0,r.useState)([]);(0,r.useEffect)(()=>{if(!e)return;let n=!1;return(async()=>{let r=[],s=[];for(let c of o){if(n)break;let o=await e.getPage(c),l=o.getViewport({scale:i,rotation:t.getEffectiveRotation(o,a)}),u=await o.getAnnotations();for(let e of u){if(!e.rect)continue;let t=e.rect,[n,i,a,o]=l.convertToViewportRectangle(t),u=Math.min(n,a),d=Math.min(i,o),f=Math.abs(a-n),p=Math.abs(o-i);if(e.subtype===`Link`)r.push({page:c,x:u,y:d,width:f,height:p,url:e.url,dest:e.dest,newWindow:e.newWindow});else{let n=e.contentsObj,r=e.titleObj,i=n?.str??e.contents??``,a=r?.str??e.title;i&&s.push({page:c,x:u,y:d,width:f,height:p,contents:i,title:a||void 0,subtype:e.subtype,pdfRect:t})}}}n||(l(r),d(s))})(),()=>{n=!0}},[e,i,a,o]);let f=async t=>{if(t.url){if(!n.isSafeUrl(t.url))return;window.open(t.url,`_blank`,`noopener,noreferrer`);return}if(t.dest&&e){let n=null;if(typeof t.dest==`string`?n=await e.getDestination(t.dest):Array.isArray(t.dest)&&(n=t.dest),!n)return;s(await e.getPageIndex(n[0])+1)}};return{linkOverlays:c.map(e=>({...e,_handleClick:f.bind(null,e)})),noteOverlays:u}}exports.useAnnotationLayer=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs");let
|
|
1
|
+
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../utils/rotation.cjs");let n=require("react"),r=require("pdfjs-dist");r=e.__toESM(r,1);function i({pdf:e,highlight:r,searchMatches:i,zoom:a,rotation:o}){let[s,c]=(0,n.useState)(null),[l,u]=(0,n.useState)([]);return(0,n.useEffect)(()=>{if(!e||i.length===0)return;let n=!1;return(async()=>{let r=[];for(let s of i){if(n)break;let i=await e.getPage(s.page),[c,l,u,d]=i.getViewport({scale:a,rotation:t.getEffectiveRotation(i,o)}).convertToViewportRectangle(s.pdfRect);r.push({page:s.page,x:Math.min(c,u),y:Math.min(l,d),width:Math.abs(u-c),height:Math.abs(d-l)})}n||u(r)})(),()=>{n=!0}},[i,a,o,e]),(0,n.useEffect)(()=>{if(!r||!e)return;let n=!1;return(async()=>{let i=await e.getPage(r.page),[s,l,u,d]=i.getViewport({scale:a,rotation:t.getEffectiveRotation(i,o)}).convertToViewportRectangle(r.pdfRect);n||c({page:r.page,x:Math.min(s,u),y:Math.min(l,d),width:Math.abs(u-s),height:Math.abs(d-l)})})(),()=>{n=!0}},[r,a,o,e]),{overlayRect:!r||!e?null:s,searchOverlays:!e||i.length===0?[]:l}}exports.useOverlayRects=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs");let
|
|
1
|
+
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../utils/rotation.cjs");let n=require("react"),r=require("pdfjs-dist");r=e.__toESM(r,1);function i(e,n,r,i){let a=e.getContext(`2d`);if(!a)return null;let o=t.getEffectiveRotation(n,i),s=n.getViewport({scale:r,rotation:o}),c=window.devicePixelRatio||1,l=Math.min(1,4096/Math.max(s.width,s.height)),u=Math.sqrt(Math.min(1,16777216/(s.width*s.height))),d=Math.max(.1,Math.min(c,l,u));d<c&&console.warn(`[pdf-tsx] canvas clamped to avoid blank render: page=${n.pageNumber} zoom=${r} dpr=${c} requested=${Math.round(s.width*c)}x${Math.round(s.height*c)}px clamped=${Math.round(s.width*d)}x${Math.round(s.height*d)}px`);let f=n.getViewport({scale:r*d,rotation:o});return e.width=f.width,e.height=f.height,e.style.width=`${s.width}px`,e.style.height=`${s.height}px`,n.render({canvasContext:a,viewport:f,canvas:e})}function a({pdf:e,zoom:r,rotation:a,visiblePages:o,canvasRefs:s}){let[c,l]=(0,n.useState)([]),[u,d]=(0,n.useState)(new Set),f=(0,n.useRef)([]),p=(0,n.useRef)(new Set),m=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{if(!e)return;m.current=!1,p.current=new Set,d(new Set);let n=!1;return(async()=>{let i=f.current.map(e=>e?(e.cancel(),e.promise.catch(()=>{})):Promise.resolve());if(await Promise.all(i),f.current=Array(e.numPages).fill(null),n)return;let o=await e.getPage(1);if(n)return;let s=o.getViewport({scale:r,rotation:t.getEffectiveRotation(o,a)}),c={width:s.width,height:s.height};l(Array(e.numPages).fill(c));let u=await Promise.all(Array.from({length:e.numPages},async(n,i)=>{let s=i===0?o:await e.getPage(i+1),c=s.getViewport({scale:r,rotation:t.getEffectiveRotation(s,a)});return{width:c.width,height:c.height}}));n||(m.current=!0,l(u))})(),()=>{n=!0,f.current.forEach(e=>e?.cancel())}},[e,r,a]),(0,n.useEffect)(()=>{if(!e||c.length!==e.numPages||!m.current)return;let t=!1;return(async()=>{for(let n of o){if(t||p.current.has(n))continue;let o=await e.getPage(n);if(t)return;let c=s.current[n-1];if(!c)continue;let l=f.current[n-1];if(l&&(l.cancel(),await l.promise.catch(()=>{}),t))return;let u=i(c,o,r,a);if(u){f.current[n-1]=u;try{await u.promise,t||(p.current=new Set(p.current).add(n),d(e=>{if(e.has(n))return e;let t=new Set(e);return t.add(n),t}))}catch(e){e&&typeof e==`object`&&`name`in e&&e.name!==`RenderingCancelledException`&&console.error(`Render error:`,e)}finally{f.current[n-1]===u&&(f.current[n-1]=null)}}}})(),()=>{t=!0}},[e,c,a,o,r,s]),{pageSizes:c,renderedPages:u}}exports.usePDFRenderer=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs");let
|
|
1
|
+
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../utils/rotation.cjs");let n=require("react"),r=require("pdfjs-dist");r=e.__toESM(r,1);function i({pdf:e,zoom:i,rotation:a,mountedPages:o,canvasRefs:s}){let c=(0,n.useRef)([]),l=(0,n.useRef)(new Set);return(0,n.useEffect)(()=>{l.current=new Set;for(let e of c.current)e?.replaceChildren()},[e,i,a]),(0,n.useEffect)(()=>{if(!e)return;let n=!1;return(async()=>{for(let u of o){if(n)break;if(l.current.has(u))continue;let o=c.current[u-1],d=s.current[u-1];if(!o||!d)continue;o.replaceChildren();let f=await e.getPage(u),p=f.getViewport({scale:i,rotation:t.getEffectiveRotation(f,a)}),m=await f.getTextContent();if(n)break;o.style.width=`${p.width}px`,o.style.height=`${p.height}px`,await new r.TextLayer({textContentSource:m,container:o,viewport:p}).render(),n||l.current.add(u)}})(),()=>{n=!0}},[e,i,a,o,s]),c}exports.useTextLayer=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs");let
|
|
1
|
+
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../utils/rotation.cjs");let n=require("react"),r=require("pdfjs-dist");r=e.__toESM(r,1);function i({pdf:e,rotation:r,visiblePages:i}){let[a,o]=(0,n.useState)([]),[s,c]=(0,n.useState)(0),l=(0,n.useRef)(new Set),u=(0,n.useRef)({pdf:null,rotation:0});return(0,n.useEffect)(()=>{if(!e){o([]),c(0),l.current.clear(),u.current={pdf:null,rotation:0};return}if(u.current.pdf!==e||u.current.rotation!==r){u.current={pdf:e,rotation:r},l.current.clear(),o(Array(e.numPages).fill(null)),c(e=>e+1);return}let n=i.filter(e=>!l.current.has(e));if(n.length===0)return;let a=!1;return(async()=>{for(let i of n){if(a)break;let n=await e.getPage(i),s=n.getViewport({scale:.2,rotation:t.getEffectiveRotation(n,r)}),c=document.createElement(`canvas`),u=c.getContext(`2d`);if(u){if(c.height=s.height,c.width=s.width,await n.render({canvasContext:u,viewport:s,canvas:c}).promise,a)break;l.current.add(i),o(e=>{let t=[...e];return t[i-1]=c.toDataURL(),t})}}})(),()=>{a=!0}},[e,r,i,s]),{thumbnails:a}}exports.useThumbnails=i;
|
package/dist/cjs/pdf-tsx.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._wrapper_1kvg0_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1kvg0_7{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1kvg0_16{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1kvg0_26{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1kvg0_35{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_1kvg0_35:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1kvg0_57{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1kvg0_57:hover{color:var(--pdf-accent-light)}._contentPanel_1kvg0_66{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1kvg0_74{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_1kvg0_86{flex:1;overflow-y:auto}._appLayout_9otbp_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_9otbp_17{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_9otbp_33{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_9otbp_57{scrollbar-gutter:stable;background-color:var(--pdf-scroll-area);touch-action:pan-x pan-y;flex-direction:column;flex:1;padding:10px 20px;display:flex;position:relative;overflow:auto}._pageWrapper_9otbp_81{margin:0 auto 25px;position:relative}._scrollContainer_9otbp_57._single_9otbp_93 ._pageWrapper_9otbp_81{display:none}._scrollContainer_9otbp_57._single_9otbp_93 ._pageWrapper_9otbp_81._currentPage_9otbp_101{display:block}._scrollContainer_9otbp_57._spread_9otbp_111{flex-flow:wrap;place-content:flex-start center;gap:25px;display:flex}._scrollContainer_9otbp_57._spread_9otbp_111 ._pageWrapper_9otbp_81{margin:0}._scrollContainer_9otbp_57._spread_9otbp_111 ._requireReadBanner_9otbp_135{grid-column:1/-1}._pageCanvas_9otbp_143{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_9otbp_161{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_9otbp_161 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_9otbp_161>:not(._markedContent_9otbp_213),._textLayer_9otbp_161 ._markedContent_9otbp_213 span:not(._markedContent_9otbp_213){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_9otbp_161 ._markedContent_9otbp_213{display:contents}._textLayer_9otbp_161 ._endOfContent_9otbp_243{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_9otbp_161._selecting_9otbp_261 ._endOfContent_9otbp_243{top:0}._textLayer_9otbp_161 ::selection{background:#0000ff40}._textLayer_9otbp_161 br::selection{background:0 0}._documentLoading_9otbp_301{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_9otbp_301:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_9otbp_1}._pageSkeleton_9otbp_341{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_9otbp_341:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_9otbp_1}@keyframes _spin_9otbp_1{to{transform:rotate(360deg)}}._highlightOverlay_9otbp_399{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_9otbp_417{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_9otbp_431{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_9otbp_447{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_9otbp_461{z-index:3;pointer-events:all;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:absolute}._noteIconOverlay_9otbp_461:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_9otbp_135{font-size:13px;font-weight:500;font-family:var(--pdf-font-family);color:#fff;background-color:color-mix(in srgb, var(--pdf-accent) 82%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:5px;align-self:flex-end;align-items:center;gap:8px;margin-top:auto;margin-right:25px;padding:9px 16px;transition:background-color .4s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 12px #0000002e}._requireReadDone_9otbp_543{background-color:#16a34abf}._notePopover_9otbp_551{z-index:9999;background-color:var(--pdf-surface);border:1px solid var(--pdf-border);min-width:160px;max-width:280px;font-family:var(--pdf-font-family);border-radius:6px;padding:10px 12px;position:fixed;box-shadow:0 4px 16px #00000026}._notePopoverTitle_9otbp_577{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_9otbp_591{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._wrapper_182cw_1{align-items:center;display:flex;position:relative}._triggerActive_182cw_13{background:var(--pdf-surface);color:var(--pdf-text-primary)}._caret_182cw_23{opacity:.7;align-items:center;margin-left:-2px;display:flex}._dropdown_182cw_37{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;min-width:180px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 16px #0000002e}._option_182cw_69{cursor:pointer;width:100%;color:var(--pdf-text-secondary);text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:7px 10px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._option_182cw_69:hover{background:var(--pdf-surface);color:var(--pdf-text-primary)}._optionActive_182cw_121{color:var(--pdf-accent)}._optionIcon_182cw_129{flex-shrink:0;align-items:center;display:flex}._optionLabel_182cw_141{flex:1}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_1b8zt_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_1b8zt_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_1b8zt_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_1b8zt_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_1b8zt_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_1b8zt_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_1b8zt_41>*{flex-shrink:0}._labeledItem_1b8zt_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_1b8zt_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_1b8zt_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 4px}
|
|
1
|
+
._wrapper_1kvg0_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1kvg0_7{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1kvg0_16{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1kvg0_26{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1kvg0_35{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_1kvg0_35:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1kvg0_57{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1kvg0_57:hover{color:var(--pdf-accent-light)}._contentPanel_1kvg0_66{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1kvg0_74{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_1kvg0_86{flex:1;overflow-y:auto}._appLayout_1fhoj_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1fhoj_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1fhoj_17{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_1fhoj_29{scrollbar-gutter:stable;background-color:var(--pdf-scroll-area);touch-action:pan-x pan-y;flex-direction:column;flex:1;padding:10px 20px;display:flex;position:relative;overflow:auto}._pageWrapper_1fhoj_41{margin:0 auto 25px;position:relative}._scrollContainer_1fhoj_29._single_1fhoj_47 ._pageWrapper_1fhoj_41{display:none}._scrollContainer_1fhoj_29._single_1fhoj_47 ._pageWrapper_1fhoj_41._currentPage_1fhoj_51{display:block}._scrollContainer_1fhoj_29._spread_1fhoj_56{flex-flow:wrap;place-content:flex-start center;gap:25px;display:flex}._scrollContainer_1fhoj_29._spread_1fhoj_56 ._pageWrapper_1fhoj_41{margin:0}._scrollContainer_1fhoj_29._spread_1fhoj_56 ._requireReadBanner_1fhoj_68{grid-column:1/-1}._pageCanvas_1fhoj_72{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1fhoj_81{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_1fhoj_81 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1fhoj_81>:not(._markedContent_1fhoj_107),._textLayer_1fhoj_81 ._markedContent_1fhoj_107 span:not(._markedContent_1fhoj_107){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_1fhoj_81 ._markedContent_1fhoj_107{display:contents}._textLayer_1fhoj_81 ._endOfContent_1fhoj_122{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1fhoj_81._selecting_1fhoj_131 ._endOfContent_1fhoj_122{top:0}._textLayer_1fhoj_81 ::selection{background:#0000ff40}._textLayer_1fhoj_81 br::selection{background:0 0}._documentLoading_1fhoj_151{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_1fhoj_151:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_1fhoj_1}._pageSkeleton_1fhoj_171{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_1fhoj_171:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1fhoj_1}@keyframes _spin_1fhoj_1{to{transform:rotate(360deg)}}._highlightOverlay_1fhoj_200{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1fhoj_209{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1fhoj_216{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_1fhoj_224{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_1fhoj_231{z-index:3;pointer-events:all;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:absolute}._noteIconOverlay_1fhoj_231:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_1fhoj_68{font-size:13px;font-weight:500;font-family:var(--pdf-font-family);color:#fff;background-color:color-mix(in srgb, var(--pdf-accent) 82%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:5px;align-self:flex-end;align-items:center;gap:8px;margin-top:auto;margin-right:25px;padding:9px 16px;transition:background-color .4s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 12px #0000002e}._requireReadDone_1fhoj_272{background-color:#16a34abf}._notePopover_1fhoj_276{z-index:9999;background-color:var(--pdf-surface);border:1px solid var(--pdf-border);min-width:160px;max-width:280px;font-family:var(--pdf-font-family);border-radius:6px;padding:10px 12px;position:fixed;box-shadow:0 4px 16px #00000026}._notePopoverTitle_1fhoj_289{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_1fhoj_296{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._wrapper_a1x4x_1{align-items:center;display:flex;position:relative}._triggerActive_a1x4x_7{background:var(--pdf-surface);color:var(--pdf-text-primary)}._caret_a1x4x_12{opacity:.7;align-items:center;margin-left:-2px;display:flex}._dropdown_a1x4x_19{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;min-width:180px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 16px #0000002e}._option_a1x4x_35{cursor:pointer;width:100%;color:var(--pdf-text-secondary);text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:7px 10px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._option_a1x4x_35:hover{background:var(--pdf-surface);color:var(--pdf-text-primary)}._optionActive_a1x4x_61{color:var(--pdf-accent)}._optionIcon_a1x4x_65{flex-shrink:0;align-items:center;display:flex}._optionLabel_a1x4x_71{flex:1}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_1b8zt_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_1b8zt_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_1b8zt_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_1b8zt_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_1b8zt_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_1b8zt_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_1b8zt_41>*{flex-shrink:0}._labeledItem_1b8zt_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_1b8zt_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_1b8zt_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 4px}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./zoom.cjs");var
|
|
1
|
+
const e=require("./rotation.cjs"),t=require("./zoom.cjs");var n=60,r=10;async function i(i,a,o,s){if(o.clientWidth<=n)return 1;let c=await a.getPage(1),l=c.getViewport({scale:1,rotation:e.getEffectiveRotation(c,s)}),u=o.clientWidth-n,d;if(i===`width`)d=u/l.width;else{let e=o.clientHeight-r*2;d=Math.min(u/l.width,e/l.height)}return Math.max(t.MIN_ZOOM,Math.min(5,d))}exports.computeFit=i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,t){return(e.rotate+t+360)%360}exports.getEffectiveRotation=e;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface PDFSignButtonProps {
|
|
3
|
+
icon: ReactNode;
|
|
4
|
+
onSign: (file: File) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function PDFSignButton({ icon, onSign }: PDFSignButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare namespace PDFSignButton {
|
|
8
|
+
var toolbarLabelKey: "signButtonToolbarLabel";
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface SignaturePadProps {
|
|
2
|
+
onChange: (dataUrl: string | null) => void;
|
|
3
|
+
width?: number;
|
|
4
|
+
height?: number;
|
|
5
|
+
strokeColor?: string;
|
|
6
|
+
strokeWidth?: number;
|
|
7
|
+
showInstructions?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function SignaturePad({ onChange, width, height, strokeColor, strokeWidth, showInstructions, }: SignaturePadProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
var e = {
|
|
2
|
-
appLayout: "
|
|
3
|
-
body: "
|
|
4
|
-
toolbar: "
|
|
5
|
-
scrollContainer: "
|
|
6
|
-
pageWrapper: "
|
|
7
|
-
single: "
|
|
8
|
-
currentPage: "
|
|
9
|
-
spread: "
|
|
10
|
-
requireReadBanner: "
|
|
11
|
-
pageCanvas: "
|
|
12
|
-
textLayer: "
|
|
13
|
-
markedContent: "
|
|
14
|
-
endOfContent: "
|
|
15
|
-
selecting: "
|
|
16
|
-
documentLoading: "
|
|
17
|
-
spin: "
|
|
18
|
-
pageSkeleton: "
|
|
19
|
-
highlightOverlay: "
|
|
20
|
-
linkOverlay: "
|
|
21
|
-
searchMatchOverlay: "
|
|
22
|
-
noteOverlay: "
|
|
23
|
-
noteIconOverlay: "
|
|
24
|
-
requireReadDone: "
|
|
25
|
-
notePopover: "
|
|
26
|
-
notePopoverTitle: "
|
|
27
|
-
notePopoverContent: "
|
|
2
|
+
appLayout: "_appLayout_1fhoj_1",
|
|
3
|
+
body: "_body_1fhoj_9",
|
|
4
|
+
toolbar: "_toolbar_1fhoj_17",
|
|
5
|
+
scrollContainer: "_scrollContainer_1fhoj_29",
|
|
6
|
+
pageWrapper: "_pageWrapper_1fhoj_41",
|
|
7
|
+
single: "_single_1fhoj_47",
|
|
8
|
+
currentPage: "_currentPage_1fhoj_51",
|
|
9
|
+
spread: "_spread_1fhoj_56",
|
|
10
|
+
requireReadBanner: "_requireReadBanner_1fhoj_68",
|
|
11
|
+
pageCanvas: "_pageCanvas_1fhoj_72",
|
|
12
|
+
textLayer: "_textLayer_1fhoj_81",
|
|
13
|
+
markedContent: "_markedContent_1fhoj_107",
|
|
14
|
+
endOfContent: "_endOfContent_1fhoj_122",
|
|
15
|
+
selecting: "_selecting_1fhoj_131",
|
|
16
|
+
documentLoading: "_documentLoading_1fhoj_151",
|
|
17
|
+
spin: "_spin_1fhoj_1",
|
|
18
|
+
pageSkeleton: "_pageSkeleton_1fhoj_171",
|
|
19
|
+
highlightOverlay: "_highlightOverlay_1fhoj_200",
|
|
20
|
+
linkOverlay: "_linkOverlay_1fhoj_209",
|
|
21
|
+
searchMatchOverlay: "_searchMatchOverlay_1fhoj_216",
|
|
22
|
+
noteOverlay: "_noteOverlay_1fhoj_224",
|
|
23
|
+
noteIconOverlay: "_noteIconOverlay_1fhoj_231",
|
|
24
|
+
requireReadDone: "_requireReadDone_1fhoj_272",
|
|
25
|
+
notePopover: "_notePopover_1fhoj_276",
|
|
26
|
+
notePopoverTitle: "_notePopoverTitle_1fhoj_289",
|
|
27
|
+
notePopoverContent: "_notePopoverContent_1fhoj_296"
|
|
28
28
|
};
|
|
29
29
|
//#endregion
|
|
30
30
|
export { e as default };
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { usePDFViewer as e } from "../../context/PDFViewerContext.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import a from "
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
2
|
+
import { getEffectiveRotation as t } from "../../utils/rotation.js";
|
|
3
|
+
import { useLabels as n } from "../../hooks/useLabels.js";
|
|
4
|
+
import { useOutline as r } from "../../hooks/useOutline.js";
|
|
5
|
+
import { IconChevronDown as i, IconChevronRight as a } from "../ui/icons.js";
|
|
6
|
+
import o from "./PDFOutline.module.js";
|
|
7
|
+
import { memo as s, useCallback as c, useMemo as l, useState as u } from "react";
|
|
8
|
+
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
8
9
|
//#region src/components/features/PDFOutline.tsx
|
|
9
|
-
async function
|
|
10
|
+
async function m(e, t) {
|
|
10
11
|
if (!e || !t) return null;
|
|
11
12
|
try {
|
|
12
13
|
let n = typeof t == "string" ? await e.getDestination(t) : t;
|
|
@@ -20,10 +21,10 @@ async function p(e, t) {
|
|
|
20
21
|
return null;
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
|
-
var
|
|
24
|
-
let [
|
|
24
|
+
var h = s(function e({ node: t, depth: n, onNavigate: r }) {
|
|
25
|
+
let [s, m] = u(n === 0), h = t.items.length > 0, g = c((e) => {
|
|
25
26
|
e.stopPropagation(), m((e) => !e);
|
|
26
|
-
}, []), _ =
|
|
27
|
+
}, []), _ = c(() => r(t.dest), [r, t.dest]), v = l(() => ({
|
|
27
28
|
paddingLeft: 12 + n * 14,
|
|
28
29
|
fontWeight: t.bold ? 600 : 400,
|
|
29
30
|
fontStyle: t.italic ? "italic" : "normal"
|
|
@@ -32,66 +33,66 @@ var m = o(function e({ node: t, depth: n, onNavigate: o }) {
|
|
|
32
33
|
t.bold,
|
|
33
34
|
t.italic
|
|
34
35
|
]);
|
|
35
|
-
return /* @__PURE__ */
|
|
36
|
-
className:
|
|
36
|
+
return /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ p("div", {
|
|
37
|
+
className: o.row,
|
|
37
38
|
style: v,
|
|
38
39
|
onClick: _,
|
|
39
|
-
children: [h ? /* @__PURE__ */
|
|
40
|
-
className:
|
|
40
|
+
children: [h ? /* @__PURE__ */ f("button", {
|
|
41
|
+
className: o.chevronBtn,
|
|
41
42
|
onClick: g,
|
|
42
|
-
children:
|
|
43
|
-
}) : /* @__PURE__ */
|
|
43
|
+
children: f(s ? i : a, { size: 12 })
|
|
44
|
+
}) : /* @__PURE__ */ f("span", { style: {
|
|
44
45
|
width: 16,
|
|
45
46
|
flexShrink: 0
|
|
46
|
-
} }), /* @__PURE__ */
|
|
47
|
-
className:
|
|
47
|
+
} }), /* @__PURE__ */ f("span", {
|
|
48
|
+
className: o.title,
|
|
48
49
|
title: t.title,
|
|
49
50
|
children: t.title
|
|
50
51
|
})]
|
|
51
|
-
}),
|
|
52
|
+
}), s && t.items.map((t, i) => /* @__PURE__ */ f(e, {
|
|
52
53
|
node: t,
|
|
53
54
|
depth: n + 1,
|
|
54
|
-
onNavigate:
|
|
55
|
-
},
|
|
55
|
+
onNavigate: r
|
|
56
|
+
}, i))] });
|
|
56
57
|
});
|
|
57
|
-
function
|
|
58
|
-
let { pdf:
|
|
59
|
-
let
|
|
60
|
-
if (
|
|
61
|
-
if (
|
|
62
|
-
let
|
|
63
|
-
scale:
|
|
64
|
-
rotation:
|
|
65
|
-
}).convertToViewportPoint(0,
|
|
66
|
-
|
|
58
|
+
function g() {
|
|
59
|
+
let { pdf: i, zoom: a, rotation: s, goToPage: l } = e(), u = n(), { outline: d, loading: g } = r({ pdf: i }), _ = c(async (e) => {
|
|
60
|
+
let n = await m(i, e);
|
|
61
|
+
if (n) {
|
|
62
|
+
if (n.pdfTop !== null) try {
|
|
63
|
+
let e = await i.getPage(n.page), [, r] = e.getViewport({
|
|
64
|
+
scale: a,
|
|
65
|
+
rotation: t(e, s)
|
|
66
|
+
}).convertToViewportPoint(0, n.pdfTop);
|
|
67
|
+
l(n.page, r);
|
|
67
68
|
return;
|
|
68
69
|
} catch {}
|
|
69
|
-
|
|
70
|
+
l(n.page);
|
|
70
71
|
}
|
|
71
72
|
}, [
|
|
72
|
-
r,
|
|
73
73
|
i,
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
a,
|
|
75
|
+
s,
|
|
76
|
+
l
|
|
76
77
|
]);
|
|
77
|
-
return /* @__PURE__ */
|
|
78
|
-
className:
|
|
78
|
+
return /* @__PURE__ */ p("div", {
|
|
79
|
+
className: o.tree,
|
|
79
80
|
children: [
|
|
80
|
-
|
|
81
|
-
className:
|
|
82
|
-
children:
|
|
81
|
+
g && /* @__PURE__ */ f("div", {
|
|
82
|
+
className: o.emptyState,
|
|
83
|
+
children: u.outlineLoading
|
|
83
84
|
}),
|
|
84
|
-
!
|
|
85
|
-
className:
|
|
86
|
-
children:
|
|
85
|
+
!g && d.length === 0 && /* @__PURE__ */ f("div", {
|
|
86
|
+
className: o.emptyState,
|
|
87
|
+
children: u.outlineEmpty
|
|
87
88
|
}),
|
|
88
|
-
!
|
|
89
|
+
!g && d.map((e, t) => /* @__PURE__ */ f(h, {
|
|
89
90
|
node: e,
|
|
90
91
|
depth: 0,
|
|
91
|
-
onNavigate:
|
|
92
|
+
onNavigate: _
|
|
92
93
|
}, t))
|
|
93
94
|
]
|
|
94
95
|
});
|
|
95
96
|
}
|
|
96
97
|
//#endregion
|
|
97
|
-
export {
|
|
98
|
+
export { g as PDFOutline };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var e = {
|
|
2
|
-
wrapper: "
|
|
3
|
-
triggerActive: "
|
|
4
|
-
caret: "
|
|
5
|
-
dropdown: "
|
|
6
|
-
option: "
|
|
7
|
-
optionActive: "
|
|
8
|
-
optionIcon: "
|
|
9
|
-
optionLabel: "
|
|
2
|
+
wrapper: "_wrapper_a1x4x_1",
|
|
3
|
+
triggerActive: "_triggerActive_a1x4x_7",
|
|
4
|
+
caret: "_caret_a1x4x_12",
|
|
5
|
+
dropdown: "_dropdown_a1x4x_19",
|
|
6
|
+
option: "_option_a1x4x_35",
|
|
7
|
+
optionActive: "_optionActive_a1x4x_61",
|
|
8
|
+
optionIcon: "_optionIcon_a1x4x_65",
|
|
9
|
+
optionLabel: "_optionLabel_a1x4x_71"
|
|
10
10
|
};
|
|
11
11
|
//#endregion
|
|
12
12
|
export { e as default };
|
package/dist/es/favicon.svg
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
2
|
-
<rect width="64" height="64" rx="14" fill="#0a0a0f"/>
|
|
3
|
-
<text x="50%" y="29" dominant-baseline="middle" text-anchor="middle"
|
|
4
|
-
font-family="system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
5
|
-
font-weight="800" font-size="22" letter-spacing="-1" fill="#e11d48">pdf</text>
|
|
6
|
-
<text x="50%" y="49" dominant-baseline="middle" text-anchor="middle"
|
|
7
|
-
font-family="system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
8
|
-
font-weight="800" font-size="22" letter-spacing="-1" fill="#f4f4f6">tsx</text>
|
|
9
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
2
|
+
<rect width="64" height="64" rx="14" fill="#0a0a0f"/>
|
|
3
|
+
<text x="50%" y="29" dominant-baseline="middle" text-anchor="middle"
|
|
4
|
+
font-family="system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
5
|
+
font-weight="800" font-size="22" letter-spacing="-1" fill="#e11d48">pdf</text>
|
|
6
|
+
<text x="50%" y="49" dominant-baseline="middle" text-anchor="middle"
|
|
7
|
+
font-family="system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
8
|
+
font-weight="800" font-size="22" letter-spacing="-1" fill="#f4f4f6">tsx</text>
|
|
9
|
+
</svg>
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getEffectiveRotation as e } from "../utils/rotation.js";
|
|
2
|
+
import { isSafeUrl as t } from "../utils/url.js";
|
|
3
|
+
import { useEffect as n, useState as r } from "react";
|
|
3
4
|
import "pdfjs-dist";
|
|
4
5
|
//#region src/hooks/useAnnotationLayer.ts
|
|
5
|
-
function
|
|
6
|
-
let [
|
|
7
|
-
|
|
8
|
-
if (!
|
|
9
|
-
let
|
|
6
|
+
function i({ pdf: i, zoom: a, rotation: o, mountedPages: s, goToPage: c }) {
|
|
7
|
+
let [l, u] = r([]), [d, f] = r([]);
|
|
8
|
+
n(() => {
|
|
9
|
+
if (!i) return;
|
|
10
|
+
let t = !1;
|
|
10
11
|
return (async () => {
|
|
11
|
-
let
|
|
12
|
-
for (let
|
|
13
|
-
if (
|
|
14
|
-
let
|
|
15
|
-
scale:
|
|
16
|
-
rotation:
|
|
17
|
-
}),
|
|
18
|
-
for (let e of
|
|
12
|
+
let n = [], r = [];
|
|
13
|
+
for (let c of s) {
|
|
14
|
+
if (t) break;
|
|
15
|
+
let s = await i.getPage(c), l = s.getViewport({
|
|
16
|
+
scale: a,
|
|
17
|
+
rotation: e(s, o)
|
|
18
|
+
}), u = await s.getAnnotations();
|
|
19
|
+
for (let e of u) {
|
|
19
20
|
if (!e.rect) continue;
|
|
20
|
-
let
|
|
21
|
-
if (e.subtype === "Link")
|
|
22
|
-
page:
|
|
21
|
+
let t = e.rect, [i, a, o, s] = l.convertToViewportRectangle(t), u = Math.min(i, o), d = Math.min(a, s), f = Math.abs(o - i), p = Math.abs(s - a);
|
|
22
|
+
if (e.subtype === "Link") n.push({
|
|
23
|
+
page: c,
|
|
23
24
|
x: u,
|
|
24
25
|
y: d,
|
|
25
26
|
width: f,
|
|
@@ -29,9 +30,9 @@ function r({ pdf: r, zoom: i, rotation: a, mountedPages: o, goToPage: s }) {
|
|
|
29
30
|
newWindow: e.newWindow
|
|
30
31
|
});
|
|
31
32
|
else {
|
|
32
|
-
let
|
|
33
|
-
a &&
|
|
34
|
-
page:
|
|
33
|
+
let n = e.contentsObj, i = e.titleObj, a = n?.str ?? e.contents ?? "", o = i?.str ?? e.title;
|
|
34
|
+
a && r.push({
|
|
35
|
+
page: c,
|
|
35
36
|
x: u,
|
|
36
37
|
y: d,
|
|
37
38
|
width: f,
|
|
@@ -39,40 +40,40 @@ function r({ pdf: r, zoom: i, rotation: a, mountedPages: o, goToPage: s }) {
|
|
|
39
40
|
contents: a,
|
|
40
41
|
title: o || void 0,
|
|
41
42
|
subtype: e.subtype,
|
|
42
|
-
pdfRect:
|
|
43
|
+
pdfRect: t
|
|
43
44
|
});
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
+
t || (u(n), f(r));
|
|
48
49
|
})(), () => {
|
|
49
|
-
|
|
50
|
+
t = !0;
|
|
50
51
|
};
|
|
51
52
|
}, [
|
|
52
|
-
r,
|
|
53
53
|
i,
|
|
54
54
|
a,
|
|
55
|
-
o
|
|
55
|
+
o,
|
|
56
|
+
s
|
|
56
57
|
]);
|
|
57
|
-
let
|
|
58
|
-
if (
|
|
59
|
-
if (!e
|
|
60
|
-
window.open(
|
|
58
|
+
let p = async (e) => {
|
|
59
|
+
if (e.url) {
|
|
60
|
+
if (!t(e.url)) return;
|
|
61
|
+
window.open(e.url, "_blank", "noopener,noreferrer");
|
|
61
62
|
return;
|
|
62
63
|
}
|
|
63
|
-
if (
|
|
64
|
-
let
|
|
65
|
-
if (typeof
|
|
66
|
-
|
|
64
|
+
if (e.dest && i) {
|
|
65
|
+
let t = null;
|
|
66
|
+
if (typeof e.dest == "string" ? t = await i.getDestination(e.dest) : Array.isArray(e.dest) && (t = e.dest), !t) return;
|
|
67
|
+
c(await i.getPageIndex(t[0]) + 1);
|
|
67
68
|
}
|
|
68
69
|
};
|
|
69
70
|
return {
|
|
70
|
-
linkOverlays:
|
|
71
|
+
linkOverlays: l.map((e) => ({
|
|
71
72
|
...e,
|
|
72
|
-
_handleClick:
|
|
73
|
+
_handleClick: p.bind(null, e)
|
|
73
74
|
})),
|
|
74
|
-
noteOverlays:
|
|
75
|
+
noteOverlays: d
|
|
75
76
|
};
|
|
76
77
|
}
|
|
77
78
|
//#endregion
|
|
78
|
-
export {
|
|
79
|
+
export { i as useAnnotationLayer };
|