import{n as e,s as t,t as n}from"./jsx-runtime-Bzw2jH9X.js";import{t as r}from"./spin-DUmNjrhn.js";import{t as i}from"./createLucideIcon-BkIMvJln.js";import{n as a,t as o}from"./minimize-2-B3GalKo_.js";import{t as s}from"./rotate-ccw-zNFKfco9.js";import{t as c}from"./share-2-D5hzKC5B.js";import{n as l}from"./modalStore-B5-16H5z.js";import{n as u}from"./AuthContext-PSb2BBjo.js";import{c as d,dn as f,l as p,o as m,s as h,u as g,x as _}from"./index-DkcBoy_T.js";var v={name:`chevrons-up`,size:24,node:[[`path`,{d:`m17 11-5-5-5 5`,key:`e8nh98`}],[`path`,{d:`m17 18-5-5-5 5`,key:`2avn1x`}]]};v.node;var y=i(v),b={name:`corner-down-left`,size:24,node:[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]};b.node;var x=i(b),S={name:`zoom-in`,size:24,node:[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]};S.node;var C=i(S),w={name:`zoom-out`,size:24,node:[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]};w.node;var T=i(w),E=t(e(),1),D=n(),O=.5,k=2.5;function A({numPages:e,currentPage:t,zoom:n,ready:r,isFullscreen:i,onZoomIn:l,onZoomOut:u,onResetZoom:d,onGoToPage:f,onToggleFullscreen:p,onShare:m,onScrollToTop:h}){let[g,_]=(0,E.useState)(``),v=e>0?String(e):`—`,b=!r||n>=2.5,S=!r||n<=.5,w=!r||n===1,O=!r,k=!r||t<=1,A=()=>{if(O)return;let e=Number(g.trim());e&&(f(e),_(``))};return(0,D.jsxs)(`aside`,{className:`absolute top-1/2 right-1 z-20 flex w-13 -translate-y-1/2 flex-col items-center gap-1 rounded-2xl border border-slate-200/60 bg-white/65 py-2.5 shadow-[0_8px_28px_rgba(15,23,42,0.08)] backdrop-blur-[2px] transition-colors hover:bg-white/85`,"aria-label":`PDF 工具æ `,children:[(0,D.jsx)(j,{label:`放大`,disabled:b,onClick:l,children:(0,D.jsx)(C,{className:`h-4 w-4`})}),(0,D.jsx)(j,{label:`缩å°`,disabled:S,onClick:u,children:(0,D.jsx)(T,{className:`h-4 w-4`})}),(0,D.jsx)(j,{label:`é‡ç½®ç¼©æ”¾`,disabled:w,onClick:d,children:(0,D.jsx)(s,{className:`h-4 w-4`})}),(0,D.jsx)(`div`,{className:`my-1 h-px w-7 bg-slate-200/80`}),(0,D.jsx)(j,{label:i?`退出全å±`:`å…¨å±`,onClick:p,children:i?(0,D.jsx)(o,{className:`h-4 w-4`}):(0,D.jsx)(a,{className:`h-4 w-4`})}),(0,D.jsx)(j,{label:`分享`,onClick:m,children:(0,D.jsx)(c,{className:`h-4 w-4`})}),(0,D.jsx)(`div`,{className:`my-1 h-px w-7 bg-slate-200/80`}),(0,D.jsxs)(`div`,{className:`px-1 text-center text-[10px] leading-tight font-semibold text-slate-500 select-none`,title:`当å‰é¡µ / 总页`,children:[(0,D.jsx)(`span`,{className:`block text-slate-800`,children:e>0?t:`—`}),(0,D.jsx)(`span`,{className:`block text-slate-300`,children:`/`}),(0,D.jsx)(`span`,{className:`block`,children:v})]}),(0,D.jsx)(`div`,{className:`my-1 h-px w-7 bg-slate-200/80`}),(0,D.jsxs)(`div`,{className:`flex w-full flex-col items-center gap-1 px-1.5`,children:[(0,D.jsx)(`label`,{className:`sr-only`,htmlFor:`pdf-goto-page`,children:`跳转到页ç `}),(0,D.jsx)(`input`,{id:`pdf-goto-page`,type:`text`,inputMode:`numeric`,placeholder:`页`,value:g,disabled:O,onChange:e=>_(e.target.value.replace(/\D/g,``)),onKeyDown:e=>{e.key===`Enter`&&A()},className:`h-7 w-full rounded-md border border-slate-200/80 bg-white/70 text-center text-xs text-slate-700 outline-none placeholder:text-slate-400 focus:border-blue-400 focus:bg-white disabled:cursor-not-allowed disabled:opacity-50`}),(0,D.jsx)(`button`,{type:`button`,title:`跳转`,disabled:O||!g,onClick:A,className:`flex h-7 w-full cursor-pointer items-center justify-center rounded-md bg-blue-600/90 text-white transition-colors hover:bg-blue-500 disabled:cursor-not-allowed disabled:opacity-40`,children:(0,D.jsx)(x,{className:`h-3.5 w-3.5`})})]}),(0,D.jsx)(`div`,{className:`my-1 h-px w-7 bg-slate-200/80`}),(0,D.jsx)(j,{label:`回到顶部`,disabled:k,onClick:h,children:(0,D.jsx)(y,{className:`h-4 w-4`})})]})}function j({label:e,children:t,className:n=``,disabled:r,onClick:i}){return(0,D.jsx)(`button`,{type:`button`,title:e,"aria-label":e,disabled:r,onClick:i,className:`flex h-9 w-9 items-center justify-center rounded-xl text-slate-600 transition-colors hover:bg-slate-100/80 hover:text-blue-600 disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:bg-transparent disabled:hover:text-slate-600 ${i&&!r?`cursor-pointer`:``} ${n}`,children:t})}f(),h.workerSrc=m;var M=`https://cdn.jsdelivr.net/npm/pdfjs-dist@6.1.200`,N=2,P=32,F=900;function I(e){return Math.min(k,Math.max(O,Math.round(e*10)/10))}function L(e,t,n){let r=e.getViewport({scale:1}),i=Math.min(t-P,F)/r.width;return e.getViewport({scale:i*n})}async function R(e,t,n){let r=t.querySelector(`.textLayer`);r instanceof HTMLDivElement&&(t.style.setProperty(`--total-scale-factor`,String(n.scale)),r.replaceChildren(),await new d({textContentSource:await e.getTextContent(),container:r,viewport:n}).render())}function z({fileUrl:e,className:t=``,showToolbar:n=!0,enableTextSelection:i=!0,initialPage:a}){let{isAuthenticated:o}=u(),{hasActiveVipMembership:s}=_(),c=l(e=>e.open),d=(0,E.useRef)(null),m=(0,E.useRef)(null),h=(0,E.useRef)(null),v=(0,E.useRef)([]),y=(0,E.useRef)(a),b=(0,E.useRef)(new Map),x=(0,E.useRef)(new Map),[S,C]=(0,E.useState)(!1),[w,T]=(0,E.useState)(!1),[O,k]=(0,E.useState)(0),[j,P]=(0,E.useState)(1),[F,z]=(0,E.useState)(!1),[B,V]=(0,E.useState)(1),H=async(e,t,n,r)=>{let a=m.current,o=n.parentElement;if(!a||!(o instanceof HTMLElement))return;let s=(x.current.get(t)??0)+1;x.current.set(t,s);let c=b.current.get(t);if(c){c.cancel();try{await c.promise}catch{}}if(x.current.get(t)!==s)return;let l=await e.getPage(t);if(x.current.get(t)!==s)return;let u=L(l,a.clientWidth,r),d=window.devicePixelRatio||1;n.width=Math.floor(u.width*d),n.height=Math.floor(u.height*d),n.style.width=`${Math.floor(u.width)}px`,n.style.height=`${Math.floor(u.height)}px`;let f=n.getContext(`2d`);if(!f)return;let p=d===1?void 0:[d,0,0,d,0,0],h=l.render({canvasContext:f,viewport:u,canvas:n,transform:p});b.current.set(t,h);try{await h.promise}catch(e){if(/cancel/i.test(String(e))||/same canvas/i.test(String(e)))return;throw e}finally{b.current.get(t)===h&&b.current.delete(t)}x.current.get(t)===s&&i&&await R(l,o,u)},U=(e,t)=>{let n=m.current;if(!n||t===0)return;let r=Math.min(t,Math.max(1,e)),i=n.querySelector(`[data-page="${r}"]`);i instanceof HTMLElement&&(i.offsetHeight<200||(i.scrollIntoView({behavior:`smooth`,block:`start`}),V(r)))};if((0,E.useEffect)(()=>{if(!e)return;let t=m.current;if(!t)return;let n=!1,r=null;return P(1),V(1),(async()=>{C(!0),T(!1),k(0),h.current=null,v.current=[],t.replaceChildren();try{if(f(),r=await g({url:e,cMapUrl:`${M}/cmaps/`,cMapPacked:!0,standardFontDataUrl:`${M}/standard_fonts/`,disableRange:!0,disableStream:!0,verbosity:p.ERRORS}).promise,n)return;h.current=r;let a=r.numPages;k(a);let o=[];for(let e=1;e<=a;e++){let n=document.createElement(`div`);n.dataset.page=String(e),n.className=`relative mx-auto mb-3 w-fit overflow-hidden bg-white shadow-sm ring-1 ring-slate-200/80`;let r=document.createElement(`canvas`);if(n.appendChild(r),i){let e=document.createElement(`div`);e.className=`textLayer`,e.style.zIndex=`1`,n.appendChild(e)}t.appendChild(n),o.push(r)}v.current=o;for(let e=0;e<a;e++){if(n)return;let t=e+1;await H(r,t,o[e],1),!n&&y.current===t&&U(t,a),t===Math.min(N,a)&&!n&&C(!1)}n||C(!1)}catch(e){console.error(e),n||(T(!0),C(!1))}})(),()=>{n=!0,r?.cleanup(),h.current=null,v.current=[]}},[e,i]),(0,E.useEffect)(()=>{let e=h.current,t=v.current;if(!e||t.length===0)return;let n=b.current,r=x.current,i=!1;return(async()=>{let n=t.length,r=Math.min(n,Math.max(1,B)),a=m.current;if(!a)return;let o=a.querySelector(`[data-page="${r}"]`),s=o instanceof HTMLElement?o.offsetTop-a.scrollTop:0;for(let r=0;r<n;r++){if(i)return;let n=await e.getPage(r+1);if(i)return;let o=L(n,a.clientWidth,j);t[r].style.width=`${Math.floor(o.width)}px`,t[r].style.height=`${Math.floor(o.height)}px`}o instanceof HTMLElement&&(a.scrollTop=o.offsetTop-s);let c=[r,...Array.from({length:n},(e,t)=>t+1).filter(e=>e!==r)];for(let n of c){if(i)return;try{await H(e,n,t[n-1],j)}catch(e){console.error(e)}}})(),()=>{i=!0;for(let[e,t]of n)t.cancel(),r.set(e,(r.get(e)??0)+1)}},[j,F]),(0,E.useEffect)(()=>{let e=()=>{z(document.fullscreenElement===d.current)};return document.addEventListener(`fullscreenchange`,e),()=>{document.removeEventListener(`fullscreenchange`,e)}},[]),(0,E.useEffect)(()=>{let e=m.current;if(!e||O===0)return;let t=0,n=()=>{t=0;let n=e.scrollTop+e.clientHeight/2,r=1,i=1/0,a=e.children;for(let e=0;e<a.length;e++){let t=a[e],o=Number(t.dataset.page);if(!o)continue;let s=t.offsetTop+t.offsetHeight/2,c=Math.abs(s-n);c<i&&(i=c,r=o)}V(e=>e===r?e:r)},r=()=>{t||=requestAnimationFrame(n)};return e.addEventListener(`scroll`,r,{passive:!0}),n(),()=>{e.removeEventListener(`scroll`,r),cancelAnimationFrame(t)}},[O,j,F]),(0,E.useEffect)(()=>{y.current=a,a!=null&&O!==0&&U(a,O)},[a,O]),!e)return(0,D.jsx)(`div`,{className:`flex h-full items-center justify-center bg-[#FDFDFC] ${t}`,children:(0,D.jsx)(`p`,{className:`text-sm text-slate-500`,children:`æš‚æ— é¢„è§ˆæ–‡ä»¶`})});let W=()=>o?!0:(c(`login`),!1),G=()=>{let e=d.current;if(e){if(document.fullscreenElement===e){document.exitFullscreen();return}if(W()){if(!s){c(`payVip`);return}e.requestFullscreen()}}},K=()=>{let e=m.current;e&&(e.scrollTo({top:0,behavior:`smooth`}),V(1))},q=()=>{W()&&c(`inviteReward`)},J=O>0&&!S&&!w;return(0,D.jsxs)(`div`,{ref:d,className:`relative h-full bg-[#FDFDFC] ${t}`,children:[S&&(0,D.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-[#FDFDFC]`,children:(0,D.jsx)(r,{description:`ç ”æŠ¥åŠ è½½ä¸...`})}),w&&(0,D.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-[#FDFDFC]`,children:(0,D.jsx)(`p`,{className:`text-sm text-slate-600`,children:`é¢„è§ˆåŠ è½½å¤±è´¥ï¼Œè¯·ç¨åŽé‡è¯•`})}),(0,D.jsx)(`div`,{ref:m,className:`h-full overflow-auto`,"aria-label":O>0?`å…± ${O} 页`:void 0}),n&&(0,D.jsx)(A,{numPages:O,currentPage:B,zoom:j,ready:J,isFullscreen:F,onZoomIn:()=>P(e=>I(e+.1)),onZoomOut:()=>P(e=>I(e-.1)),onResetZoom:()=>P(1),onGoToPage:e=>U(e,O),onToggleFullscreen:G,onShare:q,onScrollToTop:K})]})}var B=(0,E.memo)(z);export{B as t};