1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{};e.SENTRY_RELEASE={id:"v1.2790.0"};var r=(new e.Error).stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="319648fa-31a3-486c-9a0b-fc3bd1935e1c",e._sentryDebugIdIdentifier="sentry-dbid-319648fa-31a3-486c-9a0b-fc3bd1935e1c")}catch(e){}}();"use strict";(self.webpackChunkresume_io_frontend=self.webpackChunkresume_io_frontend||[]).push([["3525"],{61557:function(e,r,t){t.r(r);var n=t(74848),u=t(96540),c=t(81247),a=t(38221),l=t.n(a),i=t(83852);t(97170);var s=t(13807),o=t(83113),d=t(30343),f=t(28363),g=t(12330),p=t(36961),m=t(49502);let y=null,w=window.devicePixelRatio;r.default=(0,u.forwardRef)((e,r)=>{let{width:t,document:a,renderer:P="client",onPaginationChange:R,onPageRender:h,pixelRatio:b}=e,C=(0,c.wA)(),v=(0,u.useCallback)(()=>C(s.o1.fetchPreviewDone()),[C]),k=(0,u.useCallback)(e=>C(s.o1.fallback(e)),[C]),E=(0,u.useCallback)(e=>new Promise((r,t)=>C(s.o1.fetchClientPreview({...e,resolve:r,reject:t}))),[C]),S=e.getPdfBuffer||E,_=e.onDone||v,D=e.fallbackRenderer||k,[x,A]=(0,u.useState)(null),[I,T]=(0,u.useState)(1),[$,j]=(0,u.useState)(900),[L,M]=(0,u.useState)(0),[N,O]=(0,u.useState)("primary"),U=(0,u.useRef)(null);U.current=x;let V=(0,u.useRef)(I);V.current=I;let W=(0,u.useRef)($);W.current=$;let Y=(0,u.useRef)(N);Y.current=N;let z=(0,u.useRef)(null),B=(0,u.useRef)(null),F=(0,u.useRef)(!1),G=(0,u.useRef)(!1),H=(0,u.useRef)(!1),J=(0,u.useRef)(null),q=(0,u.useRef)(),K=(0,u.useRef)(0),Q=(0,u.useRef)(),X=(0,u.useRef)(0),Z=(0,u.useCallback)(()=>{q.current&&(clearTimeout(q.current),q.current=void 0)},[]),ee=(0,u.useCallback)(({width:e,height:r})=>{let t=z.current,n=B.current;t&&n&&(t.width=e,t.height=r,n.width=e,n.height=r)},[]),er=(0,u.useRef)();er.current=(e,r=X.current)=>{if(o.Ay.operation("renderPdfPage"),F.current){G.current=!0;return}F.current=!0;let n=U.current;if(!n){F.current=!1;return}n.getPage(e).then(e=>{if(H.current)return;let r=t*(b||w)/e.getViewport({scale:1}).width,n=e.getViewport({scale:r});W.current!==n.width&&ee(n),j(n.width),M(t);let u=z.current,c=B.current,a="primary"===Y.current?c:u;if(!a)return;J.current&&(J.current.cancel(),J.current=null);let l=e.render({canvas:a,viewport:n});return J.current=l,l.promise}).then(()=>{J.current=null,H.current||(O(e=>{let r="primary"===e?"secondary":"primary";return Y.current=r,r}),r===X.current&&(Z(),K.current=0),h&&h(),F.current=!1,G.current&&(er.current?.(V.current),G.current=!1),o.Ay.operationEnd("renderPdfPage"),_())}).catch(e=>{e?.name==="RenderingCancelledException"||H.current||n===U.current&&(J.current=null,F.current=!1,f.A.log(e,{tag:`${P||"client"}-rendering`}))})};let et=(0,u.useCallback)(async()=>{let e=V.current;if(!window.Worker)return void D({reason:"Workers are not supported"});let r=X.current+=1;Z(),q.current=setTimeout(()=>{H.current||X.current!==r||(K.current+=1,K.current<3?(f.A.log(Error("Client preview render stalled; retrying"),{tag:`${P||"client"}-rendering`}),Q.current?.()):(K.current=0,D({reason:"Client render stalled"})))},2e4);try{J.current&&(J.current.cancel(),J.current=null),F.current=!1,G.current=!1;let t=await S({document:a});if(H.current)return;o.Ay.operation("parsePdfDocument");let n=await (!y&&(y=new i.nS),i.YE({data:t,worker:y}).promise);if(o.Ay.operationEnd("parsePdfDocument"),H.current)return;let u=U.current;u&&u!==n&&u.destroy(),e>n.numPages&&(e=n.numPages),A(n),U.current=n,T(e),V.current=e,er.current?.(e,r),R({currentPage:e-1,totalPagesCount:n.numPages})}catch(e){if(r!==X.current)return;(Z(),e&&"object"==typeof e&&"name"in e&&"RenderingTimeoutError"===e.name)?D({reason:"Rendering timeout exceeded"}):(D({reason:"Runtime error",message:String(e)}),f.A.log(e,{tag:`${P||"client"}-rendering`,extra:{document:{id:a?.id,type:a?.type,templateId:a?.template,locale:a?.locale,templateConfig:a?.templateConfig},guestLocalStorageTemplateConfig:(()=>{try{return JSON.parse(g.D.getItem("GUEST_EDITOR_RESUME")||"{}")?.templateConfig}catch(e){return null}})()}}))}},[a,P,S,D,R,Z]);Q.current=et;let en=(0,u.useMemo)(()=>l()(()=>Q.current?.(),150),[]);(0,p.h)(()=>(Q.current?.(),()=>{H.current=!0,Z(),en.cancel(),J.current&&(J.current.cancel(),J.current=null),U.current&&(U.current.destroy(),U.current=null)}));let eu=(0,u.useRef)(a),ec=(0,u.useRef)(b);(0,u.useEffect)(()=>{let e=eu.current,r=ec.current;eu.current=a,ec.current=b,!e&&a?et():r!==b?er.current?.(V.current):(0,d.k)(e,a)||en()},[a,b,et,en]),(0,u.useImperativeHandle)(r,()=>({nextPage:()=>{let e=U.current;if(!e)return;let r=V.current+1;T(r),V.current=r,R({currentPage:r-1,totalPagesCount:e.numPages}),er.current?.(r)},previousPage:()=>{let e=U.current;if(!e)return;let r=V.current-1;T(r),V.current=r,R({currentPage:r-1,totalPagesCount:e.numPages}),er.current?.(r)},reset:()=>{let e=U.current;e&&(T(1),V.current=1,R({currentPage:0,totalPagesCount:e.numPages}),er.current?.(1))},resize:e=>{e-L>0&&er.current?.(V.current)}}),[L,R]);let ea=t/$;return(0,n.jsxs)(u.Fragment,{children:[(0,n.jsx)(m.x8,{ref:z,"data-testid":"preview-canvas-primary",$ratio:ea,$visible:"primary"===N}),(0,n.jsx)(m.$t,{ref:B,"data-testid":"preview-canvas-secondary",$ratio:ea,$visible:"secondary"===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.