1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3149],{9199:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(78340).A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},23149:(e,t,r)=>{r.d(t,{f:()=>u,A:()=>d});var a=r(95155),n=r(12115),l=r(51914),i=r(82482),o=r(9199),s=r(25182);let c={x:0,y:0,w:1200,h:760};function d(e){let{nodes:t,links:r,roles:d,caption:u,ariaLabel:x,renderSelected:h,suggestInvestors:p=!1,emptyPanel:m="Select a node to list its counterparties."}=e,[f,g]=(0,n.useState)(null),[y,b]=(0,n.useState)(null),[w,v]=(0,n.useState)(null),M=(0,n.useRef)(null),k=(0,n.useMemo)(()=>[...t].sort((e,t)=>t.degree-e.degree||e.name.localeCompare(t.name)).map(e=>e.id),[t]),j=w??y??k[0]??null,N=(e,t)=>{let r=k.indexOf(e),a="first"===t?0:"last"===t?k.length-1:Math.min(k.length-1,Math.max(0,r+t)),n=k[a];v(n),M.current?.querySelector(`g[data-node-id="${CSS.escape(n)}"]`)?.focus()},$=(0,n.useMemo)(()=>new Map(t.map(e=>[e.id,e])),[t]),C=(0,n.useMemo)(()=>{let e=new Map;for(let t of r)e.has(t.source)||e.set(t.source,new Map),e.has(t.target)||e.set(t.target,new Map),e.get(t.source).set(t.target,t.weight),e.get(t.target).set(t.source,t.weight);return e},[r]),S=f??y,A=(0,n.useMemo)(()=>[...t].sort((e,t)=>t.degree-e.degree||e.name.localeCompare(t.name)).slice(0,5),[t]),q=(0,n.useMemo)(()=>{if(!S)return null;let e=new Set([S]);for(let t of C.get(S)?.keys()??[])e.add(t);return e},[S,C]),D=y?$.get(y)??null:null,O=(0,n.useMemo)(()=>y?[...C.get(y)?.entries()??[]].flatMap(e=>{let[t,r]=e,a=$.get(t);return a?[{node:a,weight:r}]:[]}).sort((e,t)=>t.weight-e.weight||e.node.name.localeCompare(t.node.name)):[],[y,C,$]),R=e=>b(t=>t===e?null:e),E=(0,n.useMemo)(()=>Math.max(1,...t.map(e=>e.degree)),[t]),[I,z]=(0,n.useState)(c),K=(0,n.useRef)(new Map),W=(0,n.useRef)(null),B=(0,n.useRef)(!1),L=1200/I.w,P=(e,t)=>{let r=M.current?.getBoundingClientRect();return r?{x:I.x+(e-r.left)/r.width*I.w,y:I.y+(t-r.top)/r.height*I.h}:{x:0,y:0}},Y=e=>{let t=Math.min(1200,Math.max(150,e.w)),r=760*t/1200;return{w:t,h:r,x:Math.min(1200-t,Math.max(0,e.x)),y:Math.min(760-r,Math.max(0,e.y))}},_=(e,t,r)=>{z(a=>{let n=Math.min(8,Math.max(1,1200/a.w*e)),l=1200/n,i=760/n;return Y({w:l,h:i,x:t-(t-a.x)*l/a.w,y:r-(r-a.y)*i/a.h})})},F=e=>{K.current.delete(e.pointerId),0===K.current.size?W.current=null:W.current={view:I,dist:0,mid:[...K.current.values()][0]}};return(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 text-[12px] text-white/55",children:[Object.entries(d).map(e=>{let[t,r]=e;return(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-full",style:{background:r.color},"aria-hidden":"true"}),r.label,null!=r.count?` (${r.count})`:""]},t)}),u,(0,a.jsx)("span",{className:"sr-only",children:"Use arrow keys to move between nodes, Enter to select."})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-[minmax(0,1fr)_280px]",children:[(0,a.jsxs)("div",{className:"glass-card relative min-w-0 overflow-hidden rounded-lg",children:[(0,a.jsx)("div",{className:"absolute right-2 top-2 z-10 flex flex-col gap-1",children:[{icon:l.A,label:"Zoom in",act:()=>_(1.5,I.x+I.w/2,I.y+I.h/2)},{icon:i.A,label:"Zoom out",act:()=>_(1/1.5,I.x+I.w/2,I.y+I.h/2)},{icon:o.A,label:"Reset view",act:()=>z(c)}].map(e=>{let{icon:t,label:r,act:n}=e;return(0,a.jsx)("button",{type:"button",onClick:n,"aria-label":r,title:r,className:"focus-ring flex h-11 w-11 items-center justify-center rounded-md border border-white/10 bg-canvas/80 text-white/70 hover:bg-white/[0.08] hover:text-white sm:h-8 sm:w-8",children:(0,a.jsx)(t,{className:"h-4 w-4","aria-hidden":"true"})},r)})}),(0,a.jsx)("span",{className:"pointer-events-none absolute bottom-2 left-3 z-10 font-mono text-[10px] text-white/45",children:L>1.01?`${L.toFixed(1)}x \xb7 drag to pan`:"ctrl+scroll or pinch to zoom"}),(0,a.jsxs)("svg",{ref:M,viewBox:`${I.x} ${I.y} ${I.w} ${I.h}`,className:"block h-auto w-full touch-none select-none",style:{cursor:L>1.01?"grab":"default"},role:"img","aria-label":x,onMouseLeave:()=>g(null),onWheel:e=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let t=P(e.clientX,e.clientY);_(Math.exp(-(.01*e.deltaY)),t.x,t.y)},onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),K.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),B.current=!1;let t=[...K.current.values()],r=2===t.length?{x:(t[0].x+t[1].x)/2,y:(t[0].y+t[1].y)/2}:t[0];W.current={view:I,dist:2===t.length?Math.hypot(t[0].x-t[1].x,t[0].y-t[1].y):0,mid:r}},onPointerMove:e=>{if(!K.current.has(e.pointerId)||!W.current)return;K.current.set(e.pointerId,{x:e.clientX,y:e.clientY});let t=e.currentTarget.getBoundingClientRect(),r=[...K.current.values()],a=W.current,n=a.view.w/t.width;if(r.length>=2){let e=Math.hypot(r[0].x-r[1].x,r[0].y-r[1].y),l={x:(r[0].x+r[1].x)/2,y:(r[0].y+r[1].y)/2},i=a.dist>0?e/a.dist:1,o=a.view.w/i,s=a.view.h/i,c={x:a.view.x+(a.mid.x-t.left)*n,y:a.view.y+(a.mid.y-t.top)*n},d=o/t.width;z(Y({w:o,h:s,x:c.x-(l.x-t.left)*d,y:c.y-(l.y-t.top)*d})),B.current=!0;return}let l=(r[0].x-a.mid.x)*n,i=(r[0].y-a.mid.y)*n;Math.abs(l)+Math.abs(i)>2&&(B.current=!0),z(Y({...a.view,x:a.view.x-l,y:a.view.y-i}))},onPointerUp:F,onPointerCancel:F,onDoubleClick:e=>{let t=P(e.clientX,e.clientY);_(2,t.x,t.y)},children:[(0,a.jsx)("g",{fill:"none",children:r.map(e=>{let t=$.get(e.source),r=$.get(e.target);if(!t||!r)return null;let n=null!=S&&(e.source===S||e.target===S),l=d[t.role]?.color??s.OK.primary;return(0,a.jsx)("line",{x1:t.x,y1:t.y,x2:r.x,y2:r.y,strokeWidth:(.8+1.2*Math.log2(Math.max(1,e.weight)))/Math.sqrt(L),stroke:n?"#ffffff"
1:l,strokeOpacity:q?n?.9:.08:.1},`${e.source}>${e.target}`)})}),(0,a.jsx)("g",{children:t.map(e=>{var t,r;let n,l,i,o=Math.min(22,3+2.4*Math.sqrt(e.degree)),c=!!q&&!q.has(e.id),u=e.id===S,x=u||e.labelled&&!c&&(q||A.some(t=>t.id===e.id)),h=(n=Math.sqrt(e.degree/E),t=d[e.role]?.color??s.OK.primary,r=.45*n-.25,l=parseInt(t.slice(1),16),i=e=>{let t=l>>e&255;return Math.round(t+(255*(r>0)-t)*Math.abs(r))},`rgb(${i(16)}, ${i(8)}, ${i(0)})`),p=e.name.length>44?`${e.name.slice(0,42).trimEnd()}\u2026`:e.name;return(0,a.jsxs)("g",{"data-node-id":e.id,transform:`translate(${e.x} ${e.y})`,opacity:c?.22:1,className:"cursor-pointer transition-opacity duration-150",onMouseEnter:()=>g(e.id),onFocus:()=>g(e.id),onBlur:()=>g(null),onClick:()=>{B.current||R(e.id)},onKeyDown:t=>{"Enter"===t.key||" "===t.key?(t.preventDefault(),R(e.id)):"ArrowRight"===t.key||"ArrowDown"===t.key?(t.preventDefault(),N(e.id,1)):"ArrowLeft"===t.key||"ArrowUp"===t.key?(t.preventDefault(),N(e.id,-1)):"Home"===t.key?(t.preventDefault(),N(e.id,"first")):"End"===t.key&&(t.preventDefault(),N(e.id,"last"))},tabIndex:e.id===j?0:-1,role:"button","aria-label":`${e.name}, ${d[e.role]?.label??e.role}, ${e.degree} counterparties`,"aria-pressed":e.id===y,children:[e.degree>=.5*E&&(0,a.jsx)("circle",{r:o+4,fill:h,fillOpacity:.18}),(0,a.jsx)("circle",{r:o,fill:h,fillOpacity:u||e.id===y?1:.85,stroke:e.id===y?"#fff":"#000000",strokeWidth:e.id===y?2:1}),x&&(0,a.jsx)("text",{x:o+4,y:4,fontSize:(u?16:13)/Math.sqrt(L),fontWeight:u?600:500,fill:u?"#fff":"rgba(255,255,255,0.8)",stroke:"#000000",strokeWidth:3/Math.sqrt(L),paintOrder:"stroke",style:{pointerEvents:"none"},children:p})]},e.id)})})]})]}),(0,a.jsxs)("aside",{className:"glass-card flex min-h-[220px] flex-col rounded-lg p-4",children:[(0,a.jsx)("p",{className:"sr-only","aria-live":"polite",children:D?`${D.name} selected`:m}),D?h(D,O,b):(0,a.jsxs)("div",{className:"p-4",children:[(0,a.jsx)("p",{className:"text-sm text-white/65",children:m}),p&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"mt-4 text-xs text-white/65",children:"Start with a highly connected investor"}),(0,a.jsx)("ul",{className:"mt-2 space-y-1",children:A.map(e=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>b(e.id),className:"focus-ring min-h-11 w-full rounded border border-edge-1 px-3 py-2 text-left text-sm text-white/85 hover:bg-raised",children:[e.name,(0,a.jsxs)("span",{className:"block text-xs text-white/60",children:[e.degree," co-investors"]})]})},e.id))})]})]})]})]})]})}function u(e){let{partners:t,select:r}=e;return(0,a.jsx)("ol",{className:"mt-3 flex max-h-[360px] flex-col gap-1 overflow-y-auto border-t border-white/[0.08] pt-3 text-[13px]",children:t.map(e=>{let{node:t,weight:n}=e;return(0,a.jsxs)("li",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>r(t.id),className:"focus-ring min-h-11 min-w-0 truncate rounded text-left text-white/85 hover:text-brand-primary sm:min-h-0",children:t.name}),(0,a.jsx)("span",{className:"shrink-0 font-mono text-[11px] tabular-nums text-white/55",children:n})]},t.id)})})}},25182:(e,t,r)=>{r.d(t,{Nb:()=>n,OK:()=>a,bp:()=>l}),r(12115);let a={primary:"#20c8e8",ocean:"#2870f0",lagoon:"#18e0a8",deep:"#1d82b5",aqua:"#159da6",mint:"#07c88e",brightcyan:"#19b9c3",softblue:"#1f8ece",amber:"#f2b544",coral:"#f07a5e"},n=[a.primary,a.ocean,a.lagoon,a.aqua,a.deep,a.brightcyan,a.softblue,a.mint];a.ocean,a.lagoon,a.aqua,a.primary,a.deep,a.brightcyan;let l={tick:"rgba(255, 255, 255, 0.55)",axis:"rgba(255, 255, 255, 0.20)",grid:"rgba(255, 255, 255, 0.20)",axisLine:"rgba(255, 255, 255, 0.30)",tooltip:{backgroundColor:"rgba(0, 0, 0, 0.95)",border:"1px solid rgba(255, 255, 255, 0.15)",borderRadius:"12px",color:"#ffffff",backdropFilter:"blur(16px)",boxShadow:"0 8px 32px rgba(0, 0, 0, 0.8)",padding:"10px 14px"},tooltipItem:{color:"#ffffff",fontSize:"12px",padding:"2px 0"},tooltipLabel:{color:"#ffffff",fontWeight:"bold",fontSize:"13px",marginBottom:"4px"}};a.primary,a.ocean,a.lagoon,a.deep,a.aqua,a.mint,a.brightcyan,a.softblue},51914:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(78340).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])}}]);
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.