1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a01ef4ee-4949-43cc-bab3-05cd6a019f16",e._sentryDebugIdIdentifier="sentry-dbid-a01ef4ee-4949-43cc-bab3-05cd6a019f16")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9167],{49167:(e,t,r)=>{r.d(t,{A:()=>k});var a=r(95155),l=r(6962),s=r(60241),o=r(24371),n=r(51914),d=r(33210),c=r(12115),i=r(66609),u=r(91337);function h(e,t,r){let a=e.rows.reduce((e,t)=>Math.max(e,t.length),e.headers.length),l=t.filter(t=>""!==t.value||t.row<e.rows.length&&t.col<a),s=l.reduce((e,t)=>Math.max(e,t.col+1),a),o=e.rows.map(e=>[...e]);for(let e of l){for(;o.length<=e.row;)o.push(Array.from({length:s},()=>""));let t=Array.from({length:s},(t,r)=>o[e.row]?.[r]??"");t[e.col]=e.value,o[e.row]=t}let n=Array.from({length:s},(t,a)=>e.headers[a]??r(a));return{...e,headers:n,rows:o}}let b=40,m=12,x=e=>{let t=e+1,r="";for(;t>0;){let e=(t-1)%26;r=String.fromCharCode(65+e)+r,t=Math.floor((t-e)/26)}return r},f=(e,t=b,r=m)=>({id:`sheet-${Date.now()}`,name:e,headers:Array.from({length:r},(e,t)=>x(t)),rows:Array.from({length:t},()=>Array.from({length:r},()=>""))}),p=(e,t,r)=>Math.min(Math.max(e,t),r),g=e=>e[0]?.id??null,w=({sheet:e,isActive:t,onClick:r,onRename:l,onDelete:s,canDelete:o,readonly:n})=>{let[i,h]=(0,c.useState)(!1),[b,m]=(0,c.useState)(!1),[x,f]=(0,c.useState)(e.name),[p,g]=(0,c.useState)(e.name);e.name!==p&&(g(e.name),f(e.name));let w=()=>{let t=x.trim();l(t.length?t:e.name),m(!1)};return(0,a.jsxs)("div",{className:"group relative flex items-stretch",children:[b?(0,a.jsx)("div",{className:"px-4 py-2.5",children:(0,a.jsx)("input",{autoFocus:!0,value:x,onChange:e=>f(e.target.value),onBlur:w,onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),w()),"Escape"===t.key&&(t.preventDefault(),f(e.name),m(!1))},className:"rounded border border-blue-500 bg-white px-2 py-0.5 text-sm font-normal text-slate-900 outline-none dark:border-blue-400 dark:bg-neutral-900 dark:text-slate-100"})}):(0,a.jsx)("button",{onClick:r,onDoubleClick:()=>!n&&m(!0),className:(0,u.cn)("group relative flex items-center gap-1.5 border-b-2 border-transparent px-4 py-2.5 text-sm font-medium transition-colors",t?"border-emerald-600 bg-slate-50 text-slate-900 dark:border-emerald-500 dark:bg-neutral-900 dark:text-slate-100":"text-slate-600 hover:bg-slate-50 dark:text-slate-400 dark:hover:bg-neutral-900"),children:(0,a.jsx)("span",{className:"truncate",children:e.name})}),!n&&o&&!b&&(0,a.jsx)("button",{type:"button","aria-label":`Delete sheet ${e.name}`,onClick:()=>h(!0),className:"px-2 hover:bg-slate-200 dark:hover:bg-neutral-800",children:(0,a.jsx)(d.A,{className:"h-3 w-3"})}),i&&(0,a.jsxs)("div",{role:"alertdialog","aria-label":`Delete sheet ${e.name}`,className:"absolute bottom-full left-0 z-50 min-w-56 rounded border bg-white p-3 text-sm shadow-lg dark:bg-neutral-900",children:[(0,a.jsxs)("p",{children:['Delete sheet "',e.name,'"?']}),(0,a.jsxs)("div",{className:"mt-2 flex gap-3",children:[(0,a.jsx)("button",{type:"button",onClick:()=>{h(!1),s()},className:"text-red-600",children:"Delete"}),(0,a.jsx)("button",{type:"button",onClick:()=>h(!1),children:"Cancel"})]})]})]})},k=({sheets:e,onSheetsChange:t,readonly:r=!1,noBorder:d=!1,onFetchMoreRows:k,hasMoreRows:v=!1,isFetchingMoreRows:y=!1,showExportButton:j=!0,onActiveSheetChange:N,className:D})=>{let M=(0,c.useMemo)(()=>Array.isArray(e)&&e.length?e:[f("Sheet1")],[e]),[E,A]=(0,c.useState)(M),[S,C]=(0,c.useState)(g(M)),[_,$]=(0,c.useState)(null),[I,R]=(0,c.useState)(null),[L,K]=(0,c.useState)(null),[z,F]=(0,c.useState)(""),[U,T]=(0,c.useState)(!1),[B,O]=(0,c.useState)(!1),P=(0,c.useRef)("cell"),V=(0,c.useRef)(null),q=(0,c.useRef)(null),G=e=>{A(e),t?.(e)},[H,J]=(0,c.useState)(M);M!==H&&(J(M),A(M),M.some(e=>e.id===S)||C(g(M))),(0,c.useEffect)(()=>{let e=()=>T(!1);return window.addEventListener("mouseup",e),()=>window.removeEventListener("mouseup",e)},[]),(0,c.useEffect)(()=>{S&&N?.(S)},[S,N]);let[Q,W]=(0,c.useState)(S);S!==Q&&(W(S),$(null),R(null),K(null),F(""));let X=(0,c.useMemo)(()=>S?E.find(e=>e.id===S)??E[0]:E[0],[E,S]),Y=(0,c.useMemo)(()=>X?Math.max(X.headers.length||m,X.rows.reduce((e,t)=>
1t.length>e?t.length:e,0),m):0,[X]),Z=(0,c.useMemo)(()=>X?Array.from({length:Y||m},(e,t)=>X.headers[t]??x(t)):[],[X,Y]),ee=(0,c.useMemo)(()=>{if(!X)return[];let e=Y||m;return X.rows.length?X.rows.map(t=>Array.from({length:e},(e,r)=>t[r]??"")):Array.from({length:b},()=>Array.from({length:e},()=>""))},[X,Y]),et=ee.length,er=(0,c.useMemo)(()=>(e=>{if(!e)return null;let t=Math.min(e.start.row,e.end.row),r=Math.max(e.start.row,e.end.row);return{top:t,bottom:r,left:Math.min(e.start.col,e.end.col),right:Math.max(e.start.col,e.end.col)}})(_),[_]),ea=!er||er.top===er.bottom&&er.left===er.right,el=(e,t)=>X?ee[e]?.[t]??"":"",[es,eo]=(0,c.useState)(()=>({startIndex:0,endIndex:Math.min(ee.length||b,b)})),en=c.useCallback(()=>{let e=V.current;if(!e)return;let{scrollTop:t,clientHeight:r}=e,a=Math.max(0,Math.floor(t/32)-20),l=Math.min(et,Math.ceil((t+r)/32)+20);eo(e=>e.startIndex===a&&e.endIndex===l?e:{startIndex:a,endIndex:l})},[et]);(0,c.useEffect)(()=>{en()},[en]),(0,c.useEffect)(()=>{let e=V.current,t=q.current;if(!e||!t||!k||!v)return;let r=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&!y&&k()})},{root:e,rootMargin:"200px 0px",threshold:.1});return r.observe(t),()=>r.disconnect()},[v,y,k]);let ed=()=>{let e=V.current;if(e&&!e.contains(document.activeElement))try{e.focus({preventScroll:!0})}catch{e.focus()}},ec=e=>{if(!X)return;let t=e(X);G(E.map(e=>e.id===t.id?t:e))},ei=e=>{ec(t=>h(t,e,x))},eu=(e,t,r)=>{ei([{row:e,col:t,value:r}])},eh=(e,t)=>{r||(K(e),F(void 0!==t?t:el(e.row,e.col)))},eb=()=>{L&&(eu(L.row,L.col,z),K(null),F(""))},em=()=>{K(null),F("")},ex=async()=>{if(!er)return;let{top:e,bottom:t,left:r,right:a}=er,l=[];for(let s=e;s<=t;s++){let e=[];for(let t=r;t<=a;t++)e.push(el(s,t));l.push(e)}let s=l.map(e=>e.join(" ")).join("\n");try{await navigator.clipboard.writeText(s)}catch(e){console.error("Failed to copy:",e),i.oR.error("Unable to copy selected cells.")}},ef=async()=>{if(!r&&I)try{let e=(await navigator.clipboard.readText()).split("\n").map(e=>e.split(" ")),t=I.row,r=I.col;ei(e.flatMap((e,a)=>e.map((e,l)=>({row:t+a,col:r+l,value:e}))))}catch(e){console.error("Failed to paste:",e),i.oR.error("Unable to paste. Check clipboard permission and try again.")}},ep=()=>{O(e=>!e)};(0,c.useEffect)(()=>{if("u">typeof document&&B){let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}},[B]),(0,c.useEffect)(()=>{if(!B)return;let e=e=>{"Escape"===e.key&&O(!1)};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[B]);let eg=null!==_||null!==I,ew=Math.max(0,Math.min(es.startIndex,et)),ek=Math.max(ew,Math.min(es.endIndex,et)),ev=(0,c.useMemo)(()=>!ee.length||ek<=ew?[]:ee.slice(ew,ek).map((e,t)=>({row:e,rowIndex:ew+t})),[ee,ew,ek]),ey=Math.max(Y,Z.length,0)+1,ej=ew>0?32*ew:0,eN=ek<et?(et-ek)*32:0;return(0,a.jsxs)(a.Fragment,{children:[B&&(0,a.jsx)("div",{className:"fixed inset-0 z-40 bg-black/40 backdrop-blur-sm",onClick:ep,"aria-hidden":"true"}),(0,a.jsxs)("div",{role:B?"dialog":void 0,"aria-modal":!!B||void 0,"aria-label":B?`${X?.name??"Sheet"} expanded view`:void 0,className:(0,u.cn)("flex flex-col overflow-hidden bg-white dark:bg-neutral-950",(0,u.cn)(!d&&"rounded-2xl border border-slate-200 shadow-sm dark:border-slate-800",B?(0,u.cn)("fixed left-1/2 top-1/2 z-50 h-[calc(100vh-2rem)] w-[min(100vw-2rem,96rem)] -translate-x-1/2 -translate-y-1/2 rounded-3xl shadow-2xl",d?"":"border border-slate-200/80 dark:border-slate-800"):"h-full"),D),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-slate-200 px-4 py-2 dark:border-slate-800",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium text-slate-600 dark:text-slate-300",children:[(0,a.jsx)("span",{children:X?.name??"Sheet"}),er&&(0,a.jsxs)("span",{className:"rounded bg-slate-100 px-1.5 py-0.5 text-xs font-semibold text-slate-600 dark:bg-slate-800 dark:text-slate-200",children:[`${x(er.left)}${er.top+1}`,er.left===er.right&&er.top===er.bottom?"":`:${x(er.right)}${er.bottom+1}`]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[!r&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:()=>{X&&!r&&ec(e=>{let t=h(e,[],x);return{...t,rows:[...t.rows,Array.from({length:t.headers.length},()=>"")]}})},className:"rounded-md px-2 py-1 text-xs font-semibold text-slate-600 transition-colors hover:bg-slate-100 dar
1k:text-slate-200 dark:hover:bg-slate-800",children:"+ Row"}),(0,a.jsx)("button",{onClick:()=>{X&&!r&&ec(e=>{let t=h(e,[],x),r=[...t.headers,x(t.headers.length)];return{...t,headers:r,rows:t.rows.map(e=>Array.from({length:r.length},(t,r)=>e[r]??""))}})},className:"rounded-md px-2 py-1 text-xs font-semibold text-slate-600 transition-colors hover:bg-slate-100 dark:text-slate-200 dark:hover:bg-slate-800",children:"+ Column"})]}),j&&(0,a.jsxs)("button",{onClick:()=>{if(!X)return;let e=e=>/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e,t=h(X,[],x),r=[t.headers.map(e).join(",")];t.rows.forEach(t=>{r.push(t.map(t=>e(t)).join(","))});let a=new Blob([r.join("\n")],{type:"text/csv"}),l=URL.createObjectURL(a),s=document.createElement("a");s.href=l,s.download=`${X.name}.csv`,s.click(),URL.revokeObjectURL(l)},className:"inline-flex items-center gap-1 rounded-md border border-slate-200 px-2 py-1 text-xs font-medium text-slate-600 transition-colors hover:bg-slate-100 dark:border-slate-700 dark:text-slate-200 dark:hover:bg-slate-800",children:[(0,a.jsx)(l.A,{className:"h-3.5 w-3.5"}),"Export CSV"]}),(0,a.jsx)("button",{onClick:ep,className:"inline-flex items-center gap-1 rounded-md border border-slate-200 px-2 py-1 text-xs font-medium text-slate-600 transition-colors hover:bg-slate-100 dark:border-slate-700 dark:text-slate-200 dark:hover:bg-slate-800",title:B?"Exit fullscreen":"Enter fullscreen",children:B?(0,a.jsx)(s.A,{className:"h-3.5 w-3.5"}):(0,a.jsx)(o.A,{className:"h-3.5 w-3.5"})})]})]}),(0,a.jsxs)("div",{role:"grid","aria-label":"Spreadsheet cells",ref:V,tabIndex:0,onKeyDown:e=>{if(!X||((e.metaKey||e.ctrlKey)&&"c"===e.key&&!L?(e.preventDefault(),ex(),!0):(!!e.metaKey||!!e.ctrlKey)&&"v"===e.key&&!L&&(e.preventDefault(),ef(),!0))||L&&("Enter"===e.key?(e.preventDefault(),eb()):"Escape"===e.key&&(e.preventDefault(),em()),1)||!I)return;let{row:t,col:a}=I,l=(e,t)=>{let r={row:p(e,0,Math.max(et-1,0)),col:p(t,0,Math.max(Y-1,0))};R(r),$({start:r,end:r,mode:"cell"})};switch(e.key){case"ArrowUp":e.preventDefault(),l(t-1,a);break;case"ArrowDown":e.preventDefault(),l(t+1,a);break;case"ArrowLeft":e.preventDefault(),l(t,a-1);break;case"ArrowRight":case"Tab":e.preventDefault(),l(t,a+1);break;case"Enter":e.preventDefault(),eh(I);break;case"Backspace":case"Delete":if(r)return;if(e.preventDefault(),er){let{top:e,bottom:t,left:r,right:a}=er,l=[];for(let s=e;s<=t;s+=1)for(let e=r;e<=a;e+=1)l.push({row:s,col:e,value:""});ei(l)}else eu(t,a,"");break;default:if(r)return;1!==e.key.length||e.metaKey||e.ctrlKey||eh(I,e.key)}},onScroll:en,className:(0,u.cn)("relative flex-1 overflow-auto focus:outline-none",eg?"ring-0":""),children:[(0,a.jsxs)("table",{className:"min-w-max border-separate border-spacing-0 text-sm",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{"aria-label":"Row numbers",className:"sticky left-0 top-0 z-20 h-8 w-12 border-b border-r border-slate-200 bg-slate-100 text-left text-xs font-semibold text-slate-500 shadow-[2px_0_4px_rgba(0,0,0,0.05)] dark:border-slate-800 dark:bg-neutral-900 dark:text-slate-400"}),Z.map((e,t)=>(0,a.jsx)("th",{onMouseDown:e=>{let r;e.preventDefault(),ed(),r=Math.max(0,et-1),R({row:0,col:t}),$({start:{row:0,col:t},end:{row:r,col:t},mode:"column"}),T(!0),P.current="column"},onMouseEnter:()=>{U&&"column"===P.current&&$(e=>e?{...e,end:{row:e.end.row,col:t}}:e)},className:(0,u.cn)("sticky top-0 z-10 h-8 min-w-[120px] select-none border-b border-r border-slate-200 bg-slate-100 px-3 text-left text-xs font-semibold uppercase tracking-wide text-slate-500 transition-colors dark:border-slate-800 dark:bg-neutral-900 dark:text-slate-400",er&&t>=er.left&&t<=er.right?"bg-emerald-100 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300":"hover:bg-slate-200 dark:hover:bg-neutral-800"),children:e},`header-${t}`))]})}),(0,a.jsxs)("tbody",{children:[ej>0&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:ey,"aria-hidden":"true",className:"border-0 p-0",style:{height:`${ej}px`}})}),ev.map(({row:e,rowIndex:t})=>(0,a.jsxs)("tr",{className:"group",children:[(0,a.jsx)("th",{onMouseDown:e=>{let r;e.preventDefault(),ed(),r=Math.max(0,Y-1),R({row:t,col:0}),$({start:{row:t,col:0},end:{row:t,col:r},mode:"row"}),T(!0),P.current="row"},onMouseEnter:()=>{U&&"row"===P.current&&$(e=>e?{...e,end:{row:t,col:e.end.col}}:e)},className:(0,u.cn)("sticky left-0 z-10 h-8 select-none border-b border-r border-slate-200 bg-slate-100 px-2 text-right text-xs font-semibold text-slate-500 shadow-[2px_0_4px_rgba(0,0,0,0.05)] transition-colors dark:border-slate-800 dark:bg-neutral-900 dark:text-slate-400",er&&t>=er.top&&t<=er.bottom?"bg-emerald-100 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300":"group-hover:bg-slate-200 dark:group-hover:bg-neutral-800"),children:t+1}),e.map((e,r)=>{let l=!!er&&t>=er.top&&t<=er.bottom&&r>=er.left&&r<=er.right,s=I?.row===t&&I?.col===r,o=L?.row===t&&L?.col===r;return(0,a.jsx)("td",{onMouseDown:e=>{if(!o){let a;e.preventDefault(),ed(),R(a={row:t,col:r}),$({start:a,end:a,mode:"cell"}),K(null),T(!0),P.current="cell"}},onMouseEnter:()=>{U&&"cell"===P.current&&$(e=>e?{...e,end:{row:t,col:r}}:e)},onDoubleClick:()=>eh({row:t,col:r}),className:(0,u.cn)("group/cell relative h-8 min-w-[120px] border-b border-r border-slate-200 bg-white px-3 text-sm text-slate-900 transition-colors dark:border-slate-800 dark:bg-neutral-950 dar
1k:text-slate-100",s&&!o&&ea?"z-10 shadow-[inset_0_0_0_2px_#2563eb] dark:shadow-[inset_0_0_0_2px_#3b82f6]":"",!l||o||s?!s&&"hover:bg-slate-50 dark:hover:bg-neutral-900":"bg-blue-50/50 dark:bg-blue-950/30",((e,t)=>{if(!er)return"";let{top:r,bottom:a,left:l,right:s}=er;if(e<r||e>a||t<l||t>s)return"";let o=[];return e===r&&o.push("border-t-2 border-t-sky-500 dark:border-t-sky-400"),e===a&&o.push("border-b-2 border-b-sky-500 dark:border-b-sky-400"),t===l&&o.push("border-l-2 border-l-sky-500 dark:border-l-sky-400"),t===s&&o.push("border-r-2 border-r-sky-500 dark:border-r-sky-400"),o.join(" ")})(t,r)),children:(0,a.jsx)("div",{className:"relative h-full w-full",children:o?(0,a.jsx)("input",{autoFocus:!0,className:"absolute inset-px h-[calc(100%-2px)] w-[calc(100%-2px)] min-w-0 rounded-sm border border-slate-300 bg-white px-2 text-sm text-slate-900 outline-none focus:border-blue-500 focus:ring-0 dark:border-slate-700 dark:bg-neutral-900 dark:text-slate-100 dark:focus:border-blue-400",value:z,onChange:e=>F(e.target.value),onMouseDown:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),onBlur:eb,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),eb()),"Escape"===e.key&&(e.preventDefault(),em())}}):(0,a.jsx)("div",{className:"flex h-full items-center",children:(0,a.jsx)("span",{className:"truncate",children:e})})})},`cell-${t}-${r}`)})]},`row-${t}`)),eN>0&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:ey,"aria-hidden":"true",className:"border-0 p-0",style:{height:`${eN}px`}})})]})]}),v&&(0,a.jsx)("div",{ref:q,className:y?"flex h-10 w-full items-center justify-center text-xs text-slate-500 dark:text-slate-400":"h-px w-full",children:y&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"mr-2 inline-block h-3 w-3 animate-spin rounded-full border-2 border-slate-400 border-b-transparent dark:border-slate-500"}),"Loading more rowsâ¦"]})})]}),(0,a.jsx)("div",{className:(0,u.cn)("flex items-center overflow-hidden border-t border-slate-200 bg-white dark:border-slate-700 dark:bg-neutral-950",!d&&(B?"rounded-b-3xl":"rounded-b-2xl")),children:(0,a.jsxs)("div",{className:"flex flex-1 items-stretch overflow-x-auto",children:[E.map(e=>(0,a.jsx)(w,{sheet:e,isActive:e.id===S,onClick:()=>{C(e.id)},onRename:t=>{var r;return r=e.id,void G(E.map(e=>e.id===r?{...e,name:t}:e))},onDelete:()=>(e=>{if(r||E.length<=1)return;let t=E.filter(t=>t.id!==e);G(t),S===e&&C(t[0]?.id??null)})(e.id),canDelete:E.length>1,readonly:r},e.id)),!r&&(0,a.jsx)("button",{onClick:()=>{if(r)return;let e=E.length+1,t=f(`Sheet${e}`);G([...E,t]),C(t.id)},className:"inline-flex shrink-0 items-center justify-center px-4 py-2.5 text-slate-600 transition-colors hover:bg-slate-50 dark:text-slate-400 dark:hover:bg-neutral-900",title:"Add sheet",children:(0,a.jsx)(n.A,{className:"h-4 w-4"})})]})})]})]})}}}]);
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.