PageSourceSearch

https://www.tutie.ai/_next/static/chunks/3855.6998a9ebd6718ea4.js

js tutie.ai collected 2026-10-05 17:08:44 UTC 14,172 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3855],{27618:()=>{},33855:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>k});var a=r(95155),s=r(12115),n=r(54014),l=r(13086),i=r(72167),o=r(77204);r(27618);var d=r(62523),u=r(84355),c=r(6262),m=r(54481),f=r(43900),h=r(57918),x=r(70463),g=r(40224),p=r(15949),b=r(59409),v=r(47650),w=r(17652),j=r(59434);n.EA.workerSrc="//unpkg.com/[email protected]/build/pdf.worker.min.mjs";let k=e=>{let{fileUrl:t,onTextSelect:r,onImageReady:n}=e,[k,N]=(0,s.useState)(null),[y,S]=(0,s.useState)(1),[E,C]=(0,s.useState)(1),A=(0,s.useRef)(null),z=(0,s.useRef)(null),_=(0,s.useRef)(null),L=(0,s.useRef)(null),R=(0,w.c3)("tutie"),[P,q]=(0,s.useState)([]),[M,F]=(0,s.useState)([]),[T,I]=(0,s.useState)(!1),[D,U]=(0,s.useState)(!1),[V,W]=(0,s.useState)(null),[Z,O]=(0,s.useState)(null),[B,G]=(0,s.useState)(!1);(0,s.useEffect)(()=>{G(!1)},[t]);let[K,Q]=(0,s.useState)("fit-width"),[Y,H]=(0,s.useState)({width:0,height:0});(0,s.useEffect)(()=>{let e=A.current;if(!e)return;let t=new ResizeObserver(e=>{let t=e[0];if(!t)return;let{width:r,height:a}=t.contentRect;H(e=>e.width===r&&e.height===a?e:{width:r,height:a})});return t.observe(e),()=>t.disconnect()},[]);let J=async e=>{var t;N(e.numPages);let r=(await e.getPage(1)).getViewport({scale:1});q(Array(e.numPages).fill(r.height)),F(Array(e.numPages).fill(r.width)),null===(t=z.current)||void 0===t||t.resetAfterIndex(0,!0)};(0,s.useEffect)(()=>{let e=A.current;if(!e)return;let t=e=>{if(!e.ctrlKey)return;e.preventDefault();let t=1-.01*e.deltaY;_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{Q("custom"),C(e=>Math.max(.5,Math.min(3,e*t)))},1)};return e.addEventListener("wheel",t,{passive:!1}),()=>{e.removeEventListener("wheel",t),_.current&&clearTimeout(_.current)}},[]),(0,s.useEffect)(()=>{let e=()=>{I(null!=document.fullscreenElement)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]),(0,s.useEffect)(()=>{if(!r)return;let e=L.current;if(!e)return;let t=()=>{let e=window.getSelection();if(e&&""!==e.toString().trim()){let t=e.getRangeAt(0);W(e.toString()),O(t.getBoundingClientRect())}else W(null),O(null)};return e.addEventListener("mouseup",t),()=>e.removeEventListener("mouseup",t)},[r]),(0,s.useEffect)(()=>{if(!r)return;let e=()=>{let e=window.getSelection();e&&""!==e.toString().trim()||(W(null),O(null))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[r]),(0,s.useEffect)(()=>{var e;null===(e=z.current)||void 0===e||e.resetAfterIndex(0)},[E]);let X=(0,s.useCallback)(()=>{Q("custom"),C(e=>Math.min(3,e+.2))},[]),$=(0,s.useCallback)(()=>{Q("custom"),C(e=>Math.max(.5,e-.2))},[]),ee=s.memo(e=>{let{index:t,scale:r,style:s}=e;return(0,a.jsx)("div",{style:s,children:(0,a.jsx)(l.A,{pageNumber:t+1,scale:r,renderAnnotationLayer:!1,renderTextLayer:!0,renderMode:"canvas",loading:null})})});ee.displayName="PdfPage";let et=(0,s.useCallback)(e=>{let{index:t,style:r}=e;return(0,a.jsx)(ee,{index:t,scale:E,style:r})},[E]),er=(0,s.useCallback)(()=>{let e=Y.width,t=M[0];e&&t&&C((e-24)/t)},[Y.width,M]);(0,s.useEffect)(()=>{"fit-width"===K&&er()},[K,er,Y.width]);let ea=[{label:"Page Width",value:"fit-width"},{label:"70%",value:.7},{label:"100%",value:1},{label:"150%",value:1.5},{label:"200%",value:2}],es=()=>"".concat(Math.round(100*E),"%"),en=(0,s.useCallback)(async()=>{var e;if(D)return;let t=null===(e=L.current)||void 0===e?void 0:e.querySelector('.react-pdf__Page[data-page-number="'.concat(y,'"] .react-pdf__Page__canvas'));if(t){U(!0);try{let e;await new Promise(e=>requestAnimationFrame(()=>e()));let{width:r,height:a}=t,s=Math.max(r,a),l=s>1600?1600/s:1;if(1===l)e=t.toDataURL("image/png");else{let s=Math.round(r*l),n=Math.round(a*l),i=document.createElement("canvas");i.width=s,i.height=n;let o=i.getContext("2d");o?(o.imageSmoothingEnabled=!0,o.imageSmoothingQuality="high",o.drawImage(t,0,0,s,n),e=i.toDataURL("image/png")):e=t.toDataURL("image/png")}null==n||n(e)}catch(e){console.error("Screenshot capture failed:",e)}finally{setTimeout(()=>U(!1),500)}}},[D,y,n]),el=e=>{setTimeout(()=>{W(null),O(null)},20),null==r||r({action:e,selectedText:null!=V?V:""})},ei=Math.max(0,Y.height-44),eo=Y.width>0&&Y.width<480;return(0,a.jsxs)("div",{ref:A,className:(0,j.cn)("relative flex flex-col items-center max-h-screen overflow-hidden bg-card border dark:border-border",T?"h-[100vh]":"h-full rounded-xl"),children:[(0,a.jsxs)("div",{className:"sticky top-0 z-10 flex items-center justify-between gap-2 w-full px-2 py-1.5 bg-card dark:bg-card border-b dark:border-border",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(d.p,{value:y,onChange:e=>{if(""===e.target.value){S(0);return}let t=parseInt(e.target.value,10);if(S(t),!isNaN(t)&&t>=1&&t<=(k||1)){var r;null===(r=z.current)||void 0===r||r.scrollToItem(t-1,"start")}},className:(0,j.cn)("h-7 text-sm border rounded-md px-1.5 focus-visible:ring-ring/30 outline-none",null!==k&&k>=100?"w-12":"w-10"),"aria-label":"Go to page"}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:["/ ",k||"--"]}),n&&(0,a.jsxs)("button",{className:"ml-2 flex items-center gap-1 h-7 px-2 rounded-md border bg-background hover:bg-muted dark:bg-card dark:border-border dark:hover:bg-muted/60 cursor-pointer disabled:cursor-not-allowed disabled:opacity-60 transition text-xs text-foreground",onClick:en,disabled:D,id:"take-screenshot-button","aria-label":"Capture page screenshot",title:"Screenshot current page",children:[(0,a.jsx)(u.A,{className:"w-3 h-3"}),!eo&&(0,a.jsx)("span",{children:"Screenshot"})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,a.jsx)("button",{onClick:$,className:"h-7 w-7 flex items-center justify-center rounded-md hover:bg-muted dark:hover:bg-muted/60 transition cursor-pointer","aria-label":"Zoom out",children:(0,a.jsx)(c.A,{className:"w-3.5 h-3.5"})}),!eo&&(0,a.jsxs)(b.l6,{value:"fit-width"===K?"fit-width":ea.some(e=>e.value===E)?E.toString():"custom",onValueChange:e=>{"fit-width"===e?(Q("fit-width"),er()):"custom"===e||(Q("custom"),C(Number(e)))},children:[(0,a.jsx)(b.bq,{className:"h-7 px-2 text-xs w-[90px] focus-visible:ring-ring/30 shadow-none cursor-pointer dark:bg-card dark:border-border",children:(0,a.jsx)(b.yv,{placeholder:(()=>
1{if("fit-width"===K)return"Page Width";let e=ea.find(e=>e.value===E);return e?e.label:es()})()})}),(0,a.jsxs)(b.gC,{className:"dark:bg-card dark:border-border",children:[ea.map(e=>(0,a.jsx)(b.eb,{value:e.value.toString(),className:"cursor-pointer text-xs hover:bg-muted dark:hover:bg-muted/60 transition",children:e.label},e.label)),"fit-width"!==K&&!ea.some(e=>e.value===E)&&(0,a.jsx)(b.eb,{value:"custom",className:"text-xs",children:es()})]})]}),(0,a.jsx)("button",{onClick:X,className:"h-7 w-7 flex items-center justify-center rounded-md hover:bg-muted dark:hover:bg-muted/60 transition cursor-pointer","aria-label":"Zoom in",children:(0,a.jsx)(m.A,{className:"w-3.5 h-3.5"})}),(0,a.jsx)("button",{onClick:()=>{if(document.fullscreenElement){document.exitFullscreen();return}let e=A.current;e&&(e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen())},className:"h-7 w-7 flex items-center justify-center rounded-md hover:bg-muted dark:hover:bg-muted/60 transition cursor-pointer","aria-label":T?"Exit fullscreen":"Enter fullscreen",children:T?(0,a.jsx)(f.A,{className:"w-3.5 h-3.5"}):(0,a.jsx)(h.A,{className:"w-3.5 h-3.5"})})]})]}),(0,a.jsxs)("div",{ref:L,className:"w-full flex-1 min-h-0 relative",children:[B?(0,a.jsxs)("div",{className:"h-full w-full flex flex-col items-center justify-center gap-3 p-6 text-center",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground max-w-xs",children:R("resource.previewUnavailable")}),(0,a.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-primary underline underline-offset-4 hover:opacity-80",children:R("resource.downloadOriginal")})]}):(0,a.jsx)(i.A,{file:t,onLoadSuccess:J,onLoadError:e=>{console.warn("PDF preview unavailable:",e),G(!0)},loading:null,className:"h-full w-full",children:k&&ei>0&&(0,a.jsx)(o._m,{ref:z,height:ei,width:"100%",itemCount:k,itemSize:e=>P[e]?P[e]*E:842*E,onItemsRendered:e=>{let{visibleStartIndex:t}=e;S(t+1)},className:"pb-4",overscanCount:3,children:et})}),D&&(0,a.jsx)("div",{className:"absolute top-0 left-0 w-full h-full z-[100] bg-foreground
1/20 dark:bg-foreground/30 screenshot-anim pointer-events-none"}),V&&Z&&(0,v.createPortal)((0,a.jsxs)("div",{style:{position:"fixed",top:Z.top-40,left:Z.left,zIndex:40},className:"fade-in text-foreground p-1 rounded-lg flex items-center gap-2 bg-background border py-1 px-2 shadow-md dark:border-border",children:[(0,a.jsxs)("button",{onClick:()=>el("explain"),className:"text-sm hover:bg-muted dark:hover:bg-muted/60 p-1 rounded-md px-2 transition flex flex-row items-center gap-2 cursor-pointer",children:[(0,a.jsx)(x.A,{className:"w-3 h-3"}),R("chat.explanation")]}),(0,a.jsxs)("button",{onClick:()=>el("ask"),className:"text-sm hover:bg-muted dark:hover:bg-muted/60 p-1 rounded-md transition flex flex-row items-center gap-2 cursor-pointer",children:[(0,a.jsx)(g.A,{className:"w-3 h-3"}),R("chat.question")]}),(0,a.jsxs)("button",{onClick:()=>el("example"),className:"text-sm hover:bg-muted dark:hover:bg-muted/60 p-1 rounded-md transition flex flex-row items-center gap-2 cursor-pointer",children:[(0,a.jsx)(p.A,{className:"w-3 h-3"}),R("chat.example")]})]}),document.body)]})]})}},59409:(e,t,r)=>{"use strict";r.d(t,{bq:()=>c,eb:()=>f,gC:()=>m,l6:()=>d,yv:()=>u});var a=r(95155);r(12115);var s=r(14582),n=r(66474),l=r(5196),i=r(47863),o=r(59434);function d(e){let{...t}=e;return(0,a.jsx)(s.bL,{"data-slot":"select",...t})}function u(e){let{...t}=e;return(0,a.jsx)(s.WT,{"data-slot":"select-value",...t})}function c(e){let{className:t,size:r="default",children:l,...i}=e;return(0,a.jsxs)(s.l9,{"data-slot":"select-trigger","data-size":r,className:(0,o.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...i,children:[l,(0,a.jsx)(s.In,{asChild:!0,children:(0,a.jsx)(n.A,{className:"size-4 opacity-50"})})]})}function m(e){let{className:t,children:r,position:n="popper",...l}=e;return(0,a.jsx)(s.ZL,{children:(0,a.jsxs)(s.UC,{"data-slot":"select-content",className:(0,o.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:n,...l,children:[(0,a.jsx)(h,{}),(0,a.jsx)(s.LM,{className:(0,o.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:r}),(0,a.jsx)(x,{})]})})}function f(e){let{className:t,children:r,...n}=e;return(0,a.jsxs)(s.q7,{"data-slot":"select-item",className:(0,o.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...n,children:[(0,a.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,a.jsx)(s.VF,{children:(0,a.jsx)(l.A,{className:"size-4"})})}),(0,a.jsx)(s.p4,{children:r})]})}function h(e){let{className:t,...r}=e;return(0,a.jsx)(s.PP,{"data-slot":"select-scroll-up-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...r,children:(0,a.jsx)(i.A,{className:"size-4"})})}function x(e){let{className:t,...r}=e;return(0,a.jsx)(s.wn,{"data-slot":"select-scroll-down-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...r,children:(0,a.jsx)(n.A,{className:"size-4"})})}},62523:(e,t,r)=>{"use strict";r.d(t,{p:()=>n});var a=r(95155);r(12115);var s=r(59434);function n(e){let{className:t,type:r,...n}=e;return(0,a.jsx)("input",{type:r,"data-slot":"input",className:(0,s.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",t),...n})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.