@cyber-harbour/ui 2.2.13 → 2.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +17 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -17
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -38,32 +38,32 @@ import {a,w,x,u,c,l,z,Pa as Pa$1,Ya,ma,ra,pb,Cb,y,kb,G,ib,H,lb}from'./chunk-M52O
|
|
|
38
38
|
width: 100%;
|
|
39
39
|
min-width: 0;
|
|
40
40
|
max-width: ${typeof o=="number"?c(o,r.baseSize):o||"100%"};
|
|
41
|
-
`),{ignoreStyles:["padding-inline"]});var vo=20,yo="splitter_columns_widths",ur=a((r,o,n)=>{let a=localStorage.getItem(r);if(a)try{let d=JSON.parse(a);if(Array.isArray(d)&&d.length===o)return d}catch{}else if(n.length===o)return n;return Array(o).fill(100/o)},"getSavedWidths"),Dc=a(({columns:r,initialWidths:o,layoutClassname:n="",splitterClassname:a="",minWidth:d=vo,storageKey:s=yo})=>{let[
|
|
41
|
+
`),{ignoreStyles:["padding-inline"]});var vo=20,yo="splitter_columns_widths",ur=a((r,o,n)=>{let a=localStorage.getItem(r);if(a)try{let d=JSON.parse(a);if(Array.isArray(d)&&d.length===o)return d}catch{}else if(n.length===o)return n;return Array(o).fill(100/o)},"getSavedWidths"),Dc=a(({columns:r,initialWidths:o,layoutClassname:n="",splitterClassname:a="",minWidth:d=vo,storageKey:s=yo})=>{let[p,w]=useState(()=>ur(s,r.length,o)),x=useRef(null),R=useRef(null),E=useRef(d),g=useRef(p),I=useCallback(S=>{if(R.current===null||!x.current)return;let C=x.current.getBoundingClientRect(),D=C.width,$=S-C.left,U=[...g.current],Q=R.current,oe=Q+1,ie=U.slice(0,Q).reduce((we,ve)=>we+ve,0),ye=$/D*100-ie,le=U[Q]+U[oe]-ye;ye>=E.current&&le>=E.current&&(U[Q]=ye,U[oe]=le,w(U),g.current=U);},[]),B=useCallback(S=>I(S.clientX),[I]),t=useCallback(S=>{S.preventDefault(),I(S.touches[0].clientX);},[I]),z=useCallback(()=>{R.current=null,localStorage.setItem(s,JSON.stringify(g.current)),document.removeEventListener("mousemove",B),document.removeEventListener("mouseup",z),document.removeEventListener("touchmove",t),document.removeEventListener("touchend",z);},[B,t,s]),k=useCallback(S=>C=>{C.preventDefault(),R.current=S,document.addEventListener("mousemove",B,{passive:false}),document.addEventListener("mouseup",z);},[B,z]),P=useCallback(S=>C=>{C.preventDefault(),R.current=S,document.addEventListener("touchmove",t,{passive:false}),document.addEventListener("touchend",z);},[t,z]);return useEffect(()=>{let S=ur(s,r.length,o);g.current=S,w(S);},[r.length,o,s]),jsx("div",{ref:x,className:`flex select-none ${n}`,children:r.map(({content:S,className:C},D)=>jsxs(Fragment,{children:[jsx("div",{className:C,style:{flex:`${p[D]} 1 0%`},children:S}),D<r.length-1&&jsx("div",{onMouseDown:k(D),onTouchStart:P(D),className:`hidden lg:flex! lg:sticky lg:top-0 border-s border-gray-200 dark:border-neutral-700 ${a}`,children:jsx("span",{className:"absolute top-1/2 start-1/2 -translate-x-1/2 -translate-y-1/2 block w-5 h-8 flex justify-center items-center bg-white dark:bg-neutral-800 border border-gray-200 dark:border-neutral-700 text-gray-400 dark:text-neutral-500 rounded-md cursor-col-resize hover:bg-gray-100 dark:hover:bg-neutral-700",children:jsxs("svg",{className:"shrink-0 size-5",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("circle",{cx:"9",cy:"12",r:"1"}),jsx("circle",{cx:"9",cy:"5",r:"1"}),jsx("circle",{cx:"9",cy:"19",r:"1"}),jsx("circle",{cx:"15",cy:"12",r:"1"}),jsx("circle",{cx:"15",cy:"5",r:"1"}),jsx("circle",{cx:"15",cy:"19",r:"1"})]})})})]},`${D}`))})},"SplitterLayout");var So=xo.div`
|
|
42
42
|
width: 100%;
|
|
43
43
|
height: 100%;
|
|
44
44
|
display: flex;
|
|
45
45
|
align-items: center;
|
|
46
46
|
justify-content: center;
|
|
47
|
-
`,Do=a(({width:r=280,height:o=280})=>{let n=useTheme();return jsx(So,{children:jsxs(wo,{foregroundColor:n.contentLoader.foreground,backgroundColor:n.contentLoader.background,width:r,height:o,viewBox:"0 0 280 280",children:[jsx("path",{d:"m55 38-0.97266 0.22852 7.0801 30.092-18.355-20.979-0.75195 0.6582 19.596 22.395 0.43164 1.834 0.97266-0.22852 0.75195-0.6582-0.37695-0.42969 9.625-27.912-0.94531-0.32617-9.4375 27.371-0.10547-0.12109zm8 34-0.78516 0.61914 0.0957 0.12305-12.311 13.258 0.73242 0.67969 12.205-13.145 14.277 18.084 0.78516-0.61914-14.373-18.207 0.10547-0.11328zm15 19-0.48438 0.875 46.992 25.996 8e-3 4e-3 20.506 11.592-28.182 4.5449 0.15998 0.98819 29.418-4.7441 0.25 0.14062-12.555 24.143 0.88672 0.46094 13-25 15 25 26 30v18l-11 18 0.85352 0.52148 9.8008-16.039-4.6543 33.518 0.99023 0.13867 4.7793-34.408 7.2305 16.27 0.91406-0.40625-7.9141-17.807v-17.104l18 12.316 0.56445-0.82617-18.896-12.928-25.855-29.836-14.633-24.387 0.01562-0.02344h23.805v-1h-23.152l13.848-21.234 55.201-28.791-0.45898-0.88476 0.77734 0.62305 11.402-14.25 16.668-11.842-0.58008-0.81641-16.785 11.928-11.486 14.355-55.434 28.912-14.277 21.893-7.7617-27.166-0.96094 0.27344 7.7227 27.031-1.1191 0.17969-21.604-12.211zm140.43-12.912-6.957-17.338-0.92773 0.37305 6.957 17.338zm-6.957-17.338 0.72266 0.69336 16.232-16.896-0.7207-0.69336zm-3.4766 137.25 5 15 0.94922-0.31641-5-15zm-91-63-0.48047-0.87695-31 17 0.48047 0.87695zm-31 17 5 18 0.96289-0.26758-5-18zm0 0-0.70703-0.70703-12.898 12.898-17.881 9.9336 0.48633 0.875 18-10zm5 18-0.64062-0.76758-18 15 0.64062 0.76758z"}),jsx("circle",{cx:"229.92",cy:"63.7318",r:"5",transform:"rotate(173.661 229.92 63.7318)"}),jsx("circle",{cx:"227.711",cy:"43.8541",r:"5",transform:"rotate(173.661 227.711 43.8541)"}),jsx("circle",{cx:"211.478",cy:"60.7499",r:"5",transform:"rotate(173.661 211.478 60.7499)"}),jsx("circle",{cx:"218.434",cy:"78.0877",r:"5",transform:"rotate(173.661 218.434 78.0877)"}),jsx("circle",{cx:"246.705",cy:"51.8054",r:"5",transform:"rotate(173.661 246.705 51.8054)"}),jsx("circle",{cx:"42",cy:"48",r:"5"}),jsx("circle",{cx:"55",cy:"38",r:"5"}),jsx("circle",{cx:"73",cy:"43",r:"5"}),jsx("circle",{cx:"63",cy:"72",r:"5"}),jsx("circle",{cx:"50",cy:"86",r:"5"}),jsx("circle",{cx:"78",cy:"91",r:"5"}),jsx("circle",{cx:"73",cy:"165",r:"5"}),jsx("circle",{cx:"73",cy:"185",r:"5"}),jsx("circle",{cx:"91",cy:"170",r:"5"}),jsx("circle",{cx:"86",cy:"152",r:"5"}),jsx("circle",{cx:"148",cy:"130",r:"5"}),jsx("circle",{cx:"189",cy:"185",r:"5"}),jsx("circle",{cx:"163",cy:"107",r:"5"}),jsx("circle",{cx:"140",cy:"102",r:"5"}),jsx("circle",{cx:"117",cy:"135",r:"5"}),jsx("circle",{cx:"125",cy:"117",r:"5"}),jsx("circle",{cx:"208",cy:"198",r:"5"}),jsx("circle",{cx:"189",cy:"203",r:"5"}),jsx("circle",{cx:"198",cy:"221",r:"5"}),jsx("circle",{cx:"178",cy:"221",r:"5"}),jsx("circle",{cx:"184",cy:"239",r:"5"}),jsx("circle",{cx:"213",cy:"213",r:"5"}),jsx("circle",{cx:"173",cy:"130",r:"5"}),jsx("circle",{cx:"163",cy:"155",r:"5"}),jsx("circle",{cx:"135",cy:"155",r:"5"}),jsx("circle",{cx:"55",cy:"175",r:"5"})]})})},"GraphLoader"),hr=Do;var ft=typeof window<"u"&&window.devicePixelRatio||1;function Ho(r){return !r||r.length===0?[]:r.map(o=>{let n=new Image;n.src=o.img;let a=new Image;return a.src=o.hoverImg,{...o,normalImg:n,hoverImg:a}})}a(Ho,"prepareButtonImages");var te={fontSize:3,nodeSizeBase:30,nodeAreaFactor:2,textPaddingFactor:.9,gridSpacing:20,dotSize:1,maxZoom:4},Wo=forwardRef(({loading:r,width:o,height:n,graphData:a$1,buttons:d=[],onNodeClick:s,onBackgroundClick:h,onNodeHover:x,onLinkHover:k,onLinkClick:N},M)=>{let f=useTheme(),[L,B]=useState(true),t=useRef({transform:{x:0,y:0,k:1},isPanning:false,hoveredNode:null,hoveredLink:null,draggedNode:null,selectedNode:null,hoveredButtonIndex:null,highlightNodes:new Set,highlightLinks:new Set,lastMousePos:{x:0,y:0},mustBeStoppedPropagation:false,mouseStartPos:null,isDragging:false,width:o*ft,height:n*ft,animation:{id:null,buttonIndex:null},spinnerAngle:0}),{nodes:I,links:S}=useMemo(()=>No(a$1),[a$1]),[p,F]=useState([]),P=useRef(null),T=useRef(null),$=useRef(null),Y=scaleOrdinal(schemeCategory10),ne=useCallback(()=>{if(!P.current)return false;try{let e=P.current.getContext("2d");return e?($.current=e,!0):(console.error("Failed to get 2D context"),!1)}catch(e){return console.error("Error initializing Canvas 2D context:",e),false}},[]),re=useCallback(()=>T.current?T.current.nodes():null,[]),se=useCallback(()=>{if(!T.current)return null;let e=T.current.force("link");return e?e.links():null},[]),ye=useCallback(e=>{e.save(),e.setTransform(1,0,0,1,0,0);let{width:l,height:c}=t.current,u=te.gridSpacing,g=te.dotSize;e.fillStyle=f.graph2D.grid.dotColor;for(let w=u/2;w<=l;w+=u)for(let m=u/2;m<=c;m+=u)e.beginPath(),e.arc(w,m,g,0,2*Math.PI),e.fill();e.restore();},[f.graph2D.grid.dotColor,te.gridSpacing,te.dotSize]),le=useCallback((e,l,c)=>{if(!e)return "";if(c.measureText(e).width<=l)return e;let g=e,w="...";for(;c.measureText(g+w).width>l&&g.length>0;)g=g.slice(0,-1);return g+w},[]),we=a(e=>{let c=Math.min(e,te.maxZoom)/te.maxZoom;return Math.max(te.fontSize*c,te.fontSize)},"calculateFontSize"),ve=useCallback(e=>{let l=se(),c=re();!l||l.length===0||!c||c.length===0||(e.lineWidth=.5,e.globalAlpha=1,l.forEach(u=>{let g=typeof u.source=="object"?u.source:c.find(We=>We.id===u.source),w=typeof u.target=="object"?u.target:c.find(We=>We.id===u.target);if(!g||!w)return;let m={x:g.x||0,y:g.y||0},b={x:w.x||0,y:w.y||0},D=b.x-m.x,E=b.y-m.y,_=Math.sqrt(D*D+E*E),y=D/_,C=E/_,A=te.nodeSizeBase/2,z=te.nodeSizeBase/2,j=4,v={x:m.x+y*A,y:m.y+C*A},O={x:b.x-y*(z+j),y:b.y-C*(z+j)},R={x:b.x-y*(z+1),y:b.y-C*(z+1)},G=t.current.highlightLinks.has(u),K=G?f.graph2D.link.highlighted:f.graph2D.link.normal,ee=G?1.5:.5,me=m.x+(b.x-m.x)/2,pe=m.y+(b.y-m.y)/2,he=Math.atan2(E,D);if(u.label){let We=t.current.transform.k,Ze=we(We);e.font=`${Ze}px Sans-Serif`;let Vt=e.measureText(u.label).width,Gt=10;e.beginPath(),e.moveTo(v.x,v.y);let Kt=_/2-(Vt+Gt)/2,Jt={x:m.x+y*Kt,y:m.y+C*Kt};e.lineTo(Jt.x,Jt.y),e.strokeStyle=K,e.lineWidth=ee,e.stroke(),e.beginPath();let Qt=_/2+(Vt+Gt)/2,er={x:m.x+y*Qt,y:m.y+C*Qt};e.moveTo(er.x,er.y),e.lineTo(O.x,O.y),e.strokeStyle=K,e.lineWidth=ee,e.stroke();}else e.beginPath(),e.moveTo(v.x,v.y),e.lineTo(O.x,O.y),e.strokeStyle=K,e.lineWidth=ee,e.stroke();let He=2;if(e.save(),e.translate(R.x,R.y),e.rotate(he),e.beginPath(),e.moveTo(0,0),e.lineTo(-j,He),e.lineTo(-j,0),e.lineTo(-j,-He),e.closePath(),e.fillStyle=K,e.fill(),e.restore(),u.label){let We=t.current.transform.k,Ze=we(We);e.font=`${Ze}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.save(),e.translate(me,pe),Math.abs(he)>Math.PI/2?e.rotate(he+Math.PI):e.rotate(he),e.fillStyle=G?f.graph2D.link.highlightedTextColor:f.graph2D.link.textColor,e.fillText(u.label,0,0),e.restore();}}));},[te,f.graph2D.link]),q=a((e,l,c,u,g,w,m)=>{try{if(w!=null){let b=g*.8;e.font=`${b}px sans-serif`,e.textBaseline="middle",e.textAlign="left";let D=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1,minimumFractionDigits:0,compactDisplay:"short"}).format(w),E=e.measureText(D).width,_=g*.3,C=(g+_+E)/2;e.drawImage(l,c-C,u-g/2,g,g),e.fillStyle=m||"#99989C",e.fillText(D,c-C+g+_,u);}else e.drawImage(l,c-g/2,u-g/2,g,g);}catch(b){console.warn("Error rendering icon:",b);}},"drawIconWithOptionalCounter"),H=useCallback((e,l$1)=>{if(!p||p.length===0||!e||!e.x||!e.y)return;let{x:c,y:u}=e,g=te.nodeSizeBase*te.nodeAreaFactor/2;l$1.save();let w=Math.min(p.length,8),m=Math.min(Math.PI*2/w,Math.PI);for(let b=0;b<w;b++){let D=b*m,E=(b+1)*m,_=t.current.hoveredButtonIndex===b;l$1.beginPath(),l$1.arc(c,u,g,D,E,false),l$1.lineTo(c,u),l$1.closePath(),l$1.lineWidth=1,l$1.strokeStyle=f.graph2D?.button?.stroke||"#FFFFFF",l$1.stroke(),l$1.fillStyle=_?f.graph2D?.button?.hoverFill||"rgba(255, 255, 255, 0.3)":f.graph2D?.button?.normalFill||"rgba(255, 255, 255, 0.1)",l$1.fill();let y=g*.2,C=(D+E)/2,A=g-te.nodeSizeBase/2+y,z=c+Math.cos(C)*A,j=u+Math.sin(C)*A,v=p[b];if(v.loading){let O=y/2,R=y/12;l$1.save(),l$1.translate(z,j),l$1.rotate(t.current.spinnerAngle);for(let G=0;G<12;G++){let K=Math.PI*2*G/12,ee=G/12,me=Math.cos(K)*O,pe=Math.sin(K)*O;l$1.beginPath(),l$1.fillStyle=l(f.graph2D?.button?.spinnerColor,ee),l$1.arc(me,pe,R,0,Math.PI*2),l$1.fill();}l$1.restore(),t.current.spinnerAngle+=.1,t.current.spinnerAngle>Math.PI*2&&(t.current.spinnerAngle-=Math.PI*2),t.current.animation.id!==null&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null),t.current.animation.id=requestAnimationFrame(W),t.current.animation.buttonIndex=b;}else {t.current.animation.id&&t.current.animation.buttonIndex===b&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null);let O=_?v.hoverImg:v.normalImg,R=v.getCount?v.getCount(e):null;O.complete?q(l$1,O,z,j,y,R,f.graph2D?.button?.textColor):O.onload=()=>{$.current&&q(l$1,O,z,j,y,R,f.graph2D?.button?.textColor);};}}l$1.restore();},[p,f.graph2D?.button]),V=useCallback(e=>{let l=re();!l||l.length===0||(e.globalAlpha=1,l.forEach(c=>{let{x:u,y:g,color:w,fontColor:m,label:b}=c,D=t.current.highlightNodes.has(c)||c===t.current.hoveredNode||c===t.current.draggedNode,E=c===t.current.selectedNode,_=te.nodeSizeBase,y=te.nodeSizeBase/2;if(D&&!E){let C=te.nodeSizeBase*te.nodeAreaFactor*.75/2;e.beginPath(),e.arc(u,g,C,0,2*Math.PI,false),e.fillStyle=f.graph2D.ring.highlightFill,e.fill();}if(E)if(d&&d.length>0)H(c,e);else {let C=te.nodeSizeBase*te.nodeAreaFactor/2;e.beginPath(),e.arc(u,g,C,0,2*Math.PI,false),e.fillStyle=f.graph2D.ring.selectionFill||f.graph2D.ring.highlightFill,e.fill();}if(e.beginPath(),e.arc(u,g,y,0,2*Math.PI),e.fillStyle=w||Y(c.group||"0"),e.fill(),b){e.save(),e.translate(u,g);let C=t.current.transform.k,A=we(C),z=_*te.textPaddingFactor;e.font=`${A}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle=m||"#000";let j=le(b,z,e);e.fillText(j,0,0),e.restore();}}));},[f.graph2D.ring,d,H]),W=useCallback(()=>{let e=$.current;e&&(e.clearRect(0,0,t.current.width,t.current.height),ye(e),e.save(),e.setTransform(t.current.transform.k,0,0,t.current.transform.k,t.current.transform.x,t.current.transform.y),ve(e),V(e),e.restore());},[ve,V,ye]),Z=useCallback((e,l=[],c)=>{let u=se()||[],g=re()||[];if(!T.current||!e.length)return;let{width:w,height:m}=t.current,b=c?.smoothAppearance??false,D=c?.transitionDuration??1e3,E=new Set(g.map(v=>v.id)),_=e.filter(v=>!E.has(v.id)),y=new Set(u.map(v=>`${typeof v.source=="object"?v.source.id:v.source}-${typeof v.target=="object"?v.target.id:v.target}`)),C=l.filter(v=>{let O=`${typeof v.source=="object"?v.source.id:v.source}-${typeof v.target=="object"?v.target.id:v.target}`;return !y.has(O)});if(_.length===0&&C.length===0)return;let A=[...g,..._],z=[...u,...C];b&&(_.forEach(v=>{let O=C.filter(R=>{let G=typeof R.source=="object"?R.source.id:R.source,K=typeof R.target=="object"?R.target.id:R.target;return G===v.id&&E.has(K)||K===v.id&&E.has(G)});if(O.length>0){let R=O[0],G=typeof R.source=="object"?R.source.id===v.id?R.target:R.source.id:R.source===v.id?R.target:R.source,K=A.find(ee=>ee.id===G);if(K&&K.x!==void 0&&K.y!==void 0){let ee=30+Math.random()*20,me=Math.random()*Math.PI*2;v.x=K.x+Math.cos(me)*ee,v.y=K.y+Math.sin(me)*ee,v.vx=0,v.vy=0;}}else {let R=w/2,G=m/2,K=Math.min(w,m)/4,ee=Math.random()*Math.PI*2;v.x=R+Math.cos(ee)*(K*Math.random()),v.y=G+Math.sin(ee)*(K*Math.random()),v.vx=0,v.vy=0;}}),g.forEach(v=>{v.fx=v.x,v.fy=v.y;})),T.current.nodes(A);let j=T.current.force("link");j&&j.links(z),C.forEach(v=>{let O=typeof v.source=="object"?v.source:A.find(G=>G.id===v.source),R=typeof v.target=="object"?v.target:A.find(G=>G.id===v.target);!O||!R||(!O.neighbors&&(O.neighbors=[]),!R.neighbors&&(R.neighbors=[]),O.neighbors.push(R),R.neighbors.push(O),!O.links&&(O.links=[]),!R.links&&(R.links=[]),O.links.push(v),R.links.push(v));}),b?(T.current.alphaTarget(.3),T.current.alpha(.3),T.current.velocityDecay(.7),T.current.restart(),setTimeout(()=>{g.forEach(v=>{v.fx=void 0,v.fy=void 0;}),T.current?.alphaTarget(0),T.current?.alpha(.1),T.current?.velocityDecay(.6);},D)):T.current.alpha(.1).restart(),W();},[I,W]),oe=useCallback(e=>{let l=re(),c=se();if(!T.current||!e.length||!l||l.length===0||!c||c.length===0)return;let u=new Set(e);if(t.current.selectedNode&&t.current.selectedNode.id!==void 0&&u.has(t.current.selectedNode.id)&&(t.current.selectedNode=null),t.current.hoveredNode&&t.current.hoveredNode.id!==void 0&&u.has(t.current.hoveredNode.id)&&(t.current.hoveredNode=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set),t.current.hoveredLink){let b=typeof t.current.hoveredLink.source=="object"?t.current.hoveredLink.source.id:t.current.hoveredLink.source,D=typeof t.current.hoveredLink.target=="object"?t.current.hoveredLink.target.id:t.current.hoveredLink.target;(b!==void 0&&u.has(b)||D!==void 0&&u.has(D))&&(t.current.hoveredLink=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set);}t.current.draggedNode&&t.current.draggedNode.id!==void 0&&u.has(t.current.draggedNode.id)&&(t.current.draggedNode=null);let g=l.filter(b=>b.id!==void 0&&!u.has(b.id)),w=c.filter(b=>{let D=typeof b.source=="object"?b.source.id:b.source,E=typeof b.target=="object"?b.target.id:b.target;return D!==void 0&&!u.has(D)&&E!==void 0&&!u.has(E)});g.forEach(b=>{b.neighbors=[],b.links=[];}),w.forEach(b=>{let D=typeof b.source=="object"?b.source:g.find(_=>_.id===b.source),E=typeof b.target=="object"?b.target:g.find(_=>_.id===b.target);!D||!E||(D.neighbors=D.neighbors||[],E.neighbors=E.neighbors||[],D.neighbors.push(E),E.neighbors.push(D),D.links=D.links||[],E.links=E.links||[],D.links.push(b),E.links.push(b));}),T.current.nodes(g);let m=T.current.force("link");m&&m.links(w),W();},[W]),ae=useCallback((e=0,l=20)=>{let c=re();if(!$.current||!P.current||!c||!c.length)return;let g=1/0,w=1/0,m=-1/0,b=-1/0;if(c.forEach(D=>{if(D.x===void 0||D.y===void 0)return;let E=D.x,_=D.y;g=Math.min(g,E),w=Math.min(w,_),m=Math.max(m,E),b=Math.max(b,_);}),isFinite(g)&&isFinite(m)&&isFinite(w)&&isFinite(b)){let{width:D,height:E}=t.current;g-=l,w-=l,m+=l,b+=l;let _=m-g,y=b-w,C=_>0?D/_:1,A=y>0?E/y:1,z=Math.min(C,A,10),j=g+_/2,v=w+y/2,O={k:z,x:D/2-j*z,y:E/2-v*z};if(e>0){let R={...t.current.transform},G=Date.now(),K=a(()=>{let ee=Math.min(1,(Date.now()-G)/e),me=ee===1?1:1-Math.pow(1-ee,3),pe={k:R.k+(O.k-R.k)*me,x:R.x+(O.x-R.x)*me,y:R.y+(O.y-R.y)*me};t.current.transform=pe,W(),ee<1&&requestAnimationFrame(K);},"animateZoom");requestAnimationFrame(K);}else t.current.transform=O,W();}},[]),X=useCallback((e,l)=>{let c=re();if(!c||c.length===0)return null;let u=te.nodeSizeBase/2,g=typeof window<"u"&&window.devicePixelRatio||1,w=(e*g-t.current.transform.x)/t.current.transform.k,m=(l*g-t.current.transform.y)/t.current.transform.k;return c.find(b=>{let D=(b.x||0)-w,E=(b.y||0)-m;return Math.sqrt(D*D+E*E)<=u})||null},[]),Q=useCallback((e,l)=>{let c=se(),u=re();if(!c||c.length===0||!u||u.length===0)return null;let g=typeof window<"u"&&window.devicePixelRatio||1,w=(e*g-t.current.transform.x)/t.current.transform.k,m=(l*g-t.current.transform.y)/t.current.transform.k,b=5;return c.find(D=>{let E=typeof D.source=="object"?D.source:u.find(Ze=>Ze.id===D.source),_=typeof D.target=="object"?D.target:u.find(Ze=>Ze.id===D.target);if(!E||!_)return false;let y=E.x||0,C=E.y||0,A=_.x||0,z=_.y||0,j=w-y,v=m-C,O=A-y,R=z-C,G=j*O+v*R,K=O*O+R*R;if(K===0)return false;let ee=G/K;ee=Math.max(0,Math.min(1,ee));let me=y+ee*O,pe=C+ee*R,he=w-me,He=m-pe;return Math.sqrt(he*he+He*He)<=b})||null},[]),de=useCallback((e,l,c,u,g,w,m)=>{let b=e-c,D=l-u,E=Math.sqrt(b*b+D*D),_=Math.atan2(D,b);_<0&&(_+=2*Math.PI);let A=E>=g*.5&&E<=g*1,z=false;return w===Math.PI&&m===Math.PI*2?z=_>=Math.PI&&_<=Math.PI*2:w===0&&m===Math.PI?z=_>=0&&_<=Math.PI:z=w<=m&&_>=w&&_<=m||w>m&&(_>=w||_<=m),A&&z},[]),ce=useCallback(e=>{if(e===t.current.hoveredNode)return;let l=new Set,c=new Set;e&&(l.add(e),e.neighbors&&e.neighbors.forEach(u=>l.add(u)),e.links&&e.links.forEach(u=>c.add(u))),t.current.hoveredNode=e,x&&x(e),t.current.highlightNodes=l,t.current.highlightLinks=c;},[x]),ue=useCallback(e=>{if(e===t.current.hoveredLink)return;let l=new Set,c=new Set;if(e){c.add(e);let u=re();if(u){let g=typeof e.source=="object"?e.source:u.find(m=>m.id===e.source),w=typeof e.target=="object"?e.target:u.find(m=>m.id===e.target);g&&l.add(g),w&&l.add(w);}}t.current.hoveredLink=e,k&&k(e),t.current.highlightNodes=l,t.current.highlightLinks=c;},[k,re]),Se=useCallback(e=>{N&&N(e);},[N]),_e=useCallback(e=>{t.current.selectedNode=e,s&&s(e);},[s]),qe=useCallback(()=>{t.current.selectedNode=null,h&&h();},[h]),Ee=useCallback(e=>{if(!P.current||!T.current)return;let l=P.current.getBoundingClientRect(),c=e.clientX-l.left,u=e.clientY-l.top;t.current.mouseStartPos={x:c,y:u},t.current.isDragging=false;let g=X(c,u);g?(t.current.draggedNode=g,g.fx=g.x,g.fy=g.y):(t.current.isPanning=true,t.current.lastMousePos={x:c,y:u});},[X]),Fe=useCallback((e,l)=>{let c=null;if(P.current&&t.current&&p.length>0){let u=te.nodeSizeBase*te.nodeAreaFactor/2,g=P.current.getBoundingClientRect(),w=P.current.width/g.width,m=P.current.height/g.height,b=e*w,D=l*m,E=(b-t.current.transform.x)/t.current.transform.k,_=(D-t.current.transform.y)/t.current.transform.k,y=t.current.selectedNode?.x||0,C=t.current.selectedNode?.y||0,A=Math.min(p.length,8),z=Math.min(Math.PI*2/A,Math.PI);for(let j=0;j<A;j++){let v=j*z,O=(j+1)*z;if(de(E,_,y,C,u,v,O)){c=j;break}}}return c},[p]),Ce=useCallback(e=>{if(!P.current)return;let l=P.current.getBoundingClientRect(),c=e.clientX-l.left,u=e.clientY-l.top;if(t.current.draggedNode&&t.current.mouseStartPos&&T.current){let m=t.current.mouseStartPos.x,b=t.current.mouseStartPos.y,D=c-m,E=u-b;Math.sqrt(D*D+E*E)>3&&(t.current.isDragging=true,T.current.alphaTarget()===0&&T.current.alphaTarget(0).restart());let C=typeof window<"u"&&window.devicePixelRatio||1,A=(c*C-t.current.transform.x)/t.current.transform.k,z=(u*C-t.current.transform.y)/t.current.transform.k;t.current.draggedNode.fx=A,t.current.draggedNode.fy=z;return}if(t.current.isPanning&&t.current.mouseStartPos){let m=c-t.current.lastMousePos.x,b=u-t.current.lastMousePos.y,D=t.current.mouseStartPos.x,E=t.current.mouseStartPos.y;Math.sqrt(Math.pow(c-D,2)+Math.pow(u-E,2))>3&&(t.current.isDragging=true),t.current.transform={...t.current.transform,x:t.current.transform.x+m,y:t.current.transform.y+b},t.current.lastMousePos={x:c,y:u},W();return}let g,w;if(t.current.selectedNode&&P.current&&p.length>0){let m=Fe(c,u);m!==null&&(w=t.current.selectedNode),m!==t.current.hoveredButtonIndex&&(g=true),t.current.hoveredButtonIndex=m;}else t.current.hoveredButtonIndex!==null&&(t.current.hoveredButtonIndex=null);if(!w&&(w=X(c,u),!w)){let m=Q(c,u),b=m!==t.current.hoveredLink;if(m&&t.current.hoveredNode&&ce(null),ue(m),P.current&&(P.current.style.cursor=m?"pointer":"default"),b){W();return}}w&&t.current.hoveredLink&&ue(null),w!==t.current.hoveredNode&&(g=true),ce(w),P.current&&(P.current.style.cursor=w?"pointer":"default"),g&&W();},[p,X,Q,ce,ue,W,de,Fe]),Me=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.stopPropagation(),e.preventDefault()),t.current.mustBeStoppedPropagation=false;},[]),Ne=useCallback(e=>{let l=t.current.isDragging;if(l&&(t.current.mustBeStoppedPropagation=true),!l&&t.current.mouseStartPos){let c=P.current?.getBoundingClientRect();if(c){let u=e.clientX-c.left,g=e.clientY-c.top;p.length>0&&t.current.hoveredButtonIndex===null&&(t.current.hoveredButtonIndex=Fe(u,g));let w=false;if(t.current.selectedNode&&t.current.hoveredButtonIndex!==null&&d[t.current.hoveredButtonIndex]){let m=d[t.current.hoveredButtonIndex];m&&m.onClick&&(m.onClick(t.current.selectedNode),w=true,t.current.hoveredButtonIndex=null);}if(!w&&t.current.draggedNode)_e(t.current.draggedNode);else if(!w&&!t.current.draggedNode){let m=Q(u,g);m?Se(m):qe();}}}if(t.current.draggedNode&&T.current){if(l){T.current.alphaTarget(0);let c=.05,u=.04,g=.6;T.current.alpha(c).alphaDecay(u),T.current.velocityDecay(g);}else T.current.alphaTarget(0);t.current.draggedNode.fx=void 0,t.current.draggedNode.fy=void 0,t.current.draggedNode=null;}t.current.isDragging=false,t.current.mouseStartPos=null,t.current.isPanning&&(t.current.isPanning=false),W();},[d,W,_e,qe,Q,Se,Fe,p]),Ue=useCallback(e=>{if(e.stopPropagation(),e.preventDefault(),!P.current)return;let l=P.current.getBoundingClientRect(),c=e.clientX-l.left,u=e.clientY-l.top,w=-e.deltaY>0?1.1:1/1.1,m=t.current.transform,b=m.k*w;if(b<.01||b>10)return;let D=m.k*w,E=c-(c-m.x)*w,_=u-(u-m.y)*w;t.current.transform={k:D,x:E,y:_},W();},[W]),Be=a((e,l)=>{let c=e.touches[0];if(c){let u={clientX:c.clientX,clientY:c.clientY};l(u);}},"convertTouchToMouseEvent"),et=useCallback(e=>{Be(e,Ee);},[Ee]),Oe=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.preventDefault(),e.stopPropagation()),t.current.mustBeStoppedPropagation=false,Be(e,Ne);},[Ne]),Lt=useCallback(e=>{Be(e,Ce);},[Ce]);return useImperativeHandle(M,()=>({zoomToFit:ae,addNodes:Z,removeNodes:oe}),[ae,Z,oe]),useEffect(()=>{let e=P.current,{width:l,height:c}=t.current;if(!e)return;ne(),B(true);let u=l/2,g=c/2,w=te.nodeSizeBase,m=w/2,b=w*2.5;T.current&&T.current.stop();let D=T.current=forceSimulation(I).force("link",forceLink(S).id(E=>E.id).distance(b).strength(.9)).force("charge",forceManyBody().strength(-w/10*200).theta(.5).distanceMin(w*2)).force("x",forceX().strength(.03)).force("y",forceY().strength(.03)).force("center",forceCenter(u,g).strength(.05)).force("collide",forceCollide().radius(m*2).iterations(2).strength(1)).velocityDecay(.6);return ()=>{D.stop();}},[I,S]),useLayoutEffect(()=>{let e=P.current;e&&(t.current.width=o*ft,t.current.height=n*ft,e.width=t.current.width,e.height=t.current.height);},[o,n]),useEffect(()=>{if(T.current){let e=T.current;e.on("tick",()=>{W();}),e.on("end",()=>{L&&(ae(0,20),setTimeout(()=>{B(false);},200));});}L||W();},[I,S,L,W,ae]),useEffect(()=>{!I||!S||S.forEach(e=>{let l=typeof e.source=="object"?e.source:I.find(u=>u.id===e.source),c=typeof e.target=="object"?e.target:I.find(u=>u.id===e.target);!l||!c||(!l.neighbors&&(l.neighbors=[]),!c.neighbors&&(c.neighbors=[]),l.neighbors.push(c),c.neighbors.push(l),!l.links&&(l.links=[]),!c.links&&(c.links=[]),l.links.push(e),c.links.push(e));});},[I,S]),useEffect(()=>{d&&d.length>0&&F(Ho(d));},[d]),useEffect(()=>{let e=P.current;if(!(!e||typeof window>"u"))return e.addEventListener("wheel",Ue,{passive:false}),e.addEventListener("touchend",Oe,{passive:false}),()=>{e.removeEventListener("wheel",Ue),e.removeEventListener("touchend",Oe);}},[Ue,Oe]),jsxs($o,{children:[(r||L)&&jsx(hr,{width:o,height:n}),jsx(Xo,{ref:P,style:{width:o,height:n,display:r||L?"none":"block"},onMouseDown:Ee,onMouseMove:Ce,onMouseUp:Ne,onMouseLeave:Ne,onClick:Me,onTouchStart:et,onTouchMove:Lt})]})}),$o=styled.div`
|
|
47
|
+
`,Do=a(({width:r=280,height:o=280})=>{let n=useTheme();return jsx(So,{children:jsxs(wo,{foregroundColor:n.contentLoader.foreground,backgroundColor:n.contentLoader.background,width:r,height:o,viewBox:"0 0 280 280",children:[jsx("path",{d:"m55 38-0.97266 0.22852 7.0801 30.092-18.355-20.979-0.75195 0.6582 19.596 22.395 0.43164 1.834 0.97266-0.22852 0.75195-0.6582-0.37695-0.42969 9.625-27.912-0.94531-0.32617-9.4375 27.371-0.10547-0.12109zm8 34-0.78516 0.61914 0.0957 0.12305-12.311 13.258 0.73242 0.67969 12.205-13.145 14.277 18.084 0.78516-0.61914-14.373-18.207 0.10547-0.11328zm15 19-0.48438 0.875 46.992 25.996 8e-3 4e-3 20.506 11.592-28.182 4.5449 0.15998 0.98819 29.418-4.7441 0.25 0.14062-12.555 24.143 0.88672 0.46094 13-25 15 25 26 30v18l-11 18 0.85352 0.52148 9.8008-16.039-4.6543 33.518 0.99023 0.13867 4.7793-34.408 7.2305 16.27 0.91406-0.40625-7.9141-17.807v-17.104l18 12.316 0.56445-0.82617-18.896-12.928-25.855-29.836-14.633-24.387 0.01562-0.02344h23.805v-1h-23.152l13.848-21.234 55.201-28.791-0.45898-0.88476 0.77734 0.62305 11.402-14.25 16.668-11.842-0.58008-0.81641-16.785 11.928-11.486 14.355-55.434 28.912-14.277 21.893-7.7617-27.166-0.96094 0.27344 7.7227 27.031-1.1191 0.17969-21.604-12.211zm140.43-12.912-6.957-17.338-0.92773 0.37305 6.957 17.338zm-6.957-17.338 0.72266 0.69336 16.232-16.896-0.7207-0.69336zm-3.4766 137.25 5 15 0.94922-0.31641-5-15zm-91-63-0.48047-0.87695-31 17 0.48047 0.87695zm-31 17 5 18 0.96289-0.26758-5-18zm0 0-0.70703-0.70703-12.898 12.898-17.881 9.9336 0.48633 0.875 18-10zm5 18-0.64062-0.76758-18 15 0.64062 0.76758z"}),jsx("circle",{cx:"229.92",cy:"63.7318",r:"5",transform:"rotate(173.661 229.92 63.7318)"}),jsx("circle",{cx:"227.711",cy:"43.8541",r:"5",transform:"rotate(173.661 227.711 43.8541)"}),jsx("circle",{cx:"211.478",cy:"60.7499",r:"5",transform:"rotate(173.661 211.478 60.7499)"}),jsx("circle",{cx:"218.434",cy:"78.0877",r:"5",transform:"rotate(173.661 218.434 78.0877)"}),jsx("circle",{cx:"246.705",cy:"51.8054",r:"5",transform:"rotate(173.661 246.705 51.8054)"}),jsx("circle",{cx:"42",cy:"48",r:"5"}),jsx("circle",{cx:"55",cy:"38",r:"5"}),jsx("circle",{cx:"73",cy:"43",r:"5"}),jsx("circle",{cx:"63",cy:"72",r:"5"}),jsx("circle",{cx:"50",cy:"86",r:"5"}),jsx("circle",{cx:"78",cy:"91",r:"5"}),jsx("circle",{cx:"73",cy:"165",r:"5"}),jsx("circle",{cx:"73",cy:"185",r:"5"}),jsx("circle",{cx:"91",cy:"170",r:"5"}),jsx("circle",{cx:"86",cy:"152",r:"5"}),jsx("circle",{cx:"148",cy:"130",r:"5"}),jsx("circle",{cx:"189",cy:"185",r:"5"}),jsx("circle",{cx:"163",cy:"107",r:"5"}),jsx("circle",{cx:"140",cy:"102",r:"5"}),jsx("circle",{cx:"117",cy:"135",r:"5"}),jsx("circle",{cx:"125",cy:"117",r:"5"}),jsx("circle",{cx:"208",cy:"198",r:"5"}),jsx("circle",{cx:"189",cy:"203",r:"5"}),jsx("circle",{cx:"198",cy:"221",r:"5"}),jsx("circle",{cx:"178",cy:"221",r:"5"}),jsx("circle",{cx:"184",cy:"239",r:"5"}),jsx("circle",{cx:"213",cy:"213",r:"5"}),jsx("circle",{cx:"173",cy:"130",r:"5"}),jsx("circle",{cx:"163",cy:"155",r:"5"}),jsx("circle",{cx:"135",cy:"155",r:"5"}),jsx("circle",{cx:"55",cy:"175",r:"5"})]})})},"GraphLoader"),hr=Do;var mt=typeof window<"u"&&window.devicePixelRatio||1;function Ho(r){return !r||r.length===0?[]:r.map(o=>{let n=new Image;n.src=o.img;let a=new Image;return a.src=o.hoverImg,{...o,normalImg:n,hoverImg:a}})}a(Ho,"prepareButtonImages");var re={fontSize:3,nodeSizeBase:30,nodeAreaFactor:2,textPaddingFactor:.9,gridSpacing:20,dotSize:1,maxZoom:4},Wo=forwardRef(({loading:r,width:o,height:n,graphData:a$1,buttons:d=[],onNodeClick:s,onBackgroundClick:p,onNodeHover:w,onLinkHover:x,onLinkClick:R},E)=>{let g=useTheme(),[I,B]=useState(true),t=useRef({transform:{x:0,y:0,k:1},isPanning:false,hoveredNode:null,hoveredLink:null,draggedNode:null,selectedNode:null,hoveredButtonIndex:null,highlightNodes:new Set,highlightLinks:new Set,lastMousePos:{x:0,y:0},mustBeStoppedPropagation:false,mouseStartPos:null,isDragging:false,width:o*mt,height:n*mt,animation:{id:null,buttonIndex:null},spinnerAngle:0}),{nodes:z,links:k}=useMemo(()=>No(a$1),[a$1]),[P,S]=useState([]),C=useRef(null),D=useRef(null),$=useRef(null),U=scaleOrdinal(schemeCategory10),Q=useCallback(()=>{if(!C.current)return false;try{let e=C.current.getContext("2d");return e?($.current=e,!0):(console.error("Failed to get 2D context"),!1)}catch(e){return console.error("Error initializing Canvas 2D context:",e),false}},[]),oe=useCallback(()=>D.current?D.current.nodes():null,[]),ie=useCallback(()=>{if(!D.current)return null;let e=D.current.force("link");return e?e.links():null},[]),ye=useCallback(e=>{e.save(),e.setTransform(1,0,0,1,0,0);let{width:l,height:c}=t.current,u=re.gridSpacing,h=re.dotSize;e.fillStyle=g.graph2D.grid.dotColor;for(let y=u/2;y<=l;y+=u)for(let f=u/2;f<=c;f+=u)e.beginPath(),e.arc(y,f,h,0,2*Math.PI),e.fill();e.restore();},[g.graph2D.grid.dotColor,re.gridSpacing,re.dotSize]),le=useCallback((e,l,c)=>{if(!e)return "";if(c.measureText(e).width<=l)return e;let h=e,y="...";for(;c.measureText(h+y).width>l&&h.length>0;)h=h.slice(0,-1);return h+y},[]),we=a(e=>{let c=Math.min(e,re.maxZoom)/re.maxZoom;return Math.max(re.fontSize*c,re.fontSize)},"calculateFontSize"),ve=useCallback(e=>{let l=ie(),c=oe();!l||l.length===0||!c||c.length===0||(e.lineWidth=.5,e.globalAlpha=1,l.forEach(u=>{let h=typeof u.source=="object"?u.source:c.find(We=>We.id===u.source),y=typeof u.target=="object"?u.target:c.find(We=>We.id===u.target);if(!h||!y)return;let f={x:h.x||0,y:h.y||0},m={x:y.x||0,y:y.y||0},M=m.x-f.x,N=m.y-f.y,A=Math.sqrt(M*M+N*N),v=M/A,T=N/A,j=re.nodeSizeBase/2,_=re.nodeSizeBase/2,F=4,b={x:f.x+v*j,y:f.y+T*j},O={x:m.x-v*(_+F),y:m.y-T*(_+F)},L={x:m.x-v*(_+1),y:m.y-T*(_+1)},G=t.current.highlightLinks.has(u),K=G?g.graph2D.link.highlighted:g.graph2D.link.normal,te=G?1.5:.5,me=f.x+(m.x-f.x)/2,pe=f.y+(m.y-f.y)/2,he=Math.atan2(N,M);if(u.label){let We=t.current.transform.k,Ze=we(We);e.font=`${Ze}px Sans-Serif`;let Vt=e.measureText(u.label).width,Gt=10;e.beginPath(),e.moveTo(b.x,b.y);let Kt=A/2-(Vt+Gt)/2,Jt={x:f.x+v*Kt,y:f.y+T*Kt};e.lineTo(Jt.x,Jt.y),e.strokeStyle=K,e.lineWidth=te,e.stroke(),e.beginPath();let Qt=A/2+(Vt+Gt)/2,er={x:f.x+v*Qt,y:f.y+T*Qt};e.moveTo(er.x,er.y),e.lineTo(O.x,O.y),e.strokeStyle=K,e.lineWidth=te,e.stroke();}else e.beginPath(),e.moveTo(b.x,b.y),e.lineTo(O.x,O.y),e.strokeStyle=K,e.lineWidth=te,e.stroke();let He=2;if(e.save(),e.translate(L.x,L.y),e.rotate(he),e.beginPath(),e.moveTo(0,0),e.lineTo(-F,He),e.lineTo(-F,0),e.lineTo(-F,-He),e.closePath(),e.fillStyle=K,e.fill(),e.restore(),u.label){let We=t.current.transform.k,Ze=we(We);e.font=`${Ze}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.save(),e.translate(me,pe),Math.abs(he)>Math.PI/2?e.rotate(he+Math.PI):e.rotate(he),e.fillStyle=G?g.graph2D.link.highlightedTextColor:g.graph2D.link.textColor,e.fillText(u.label,0,0),e.restore();}}));},[re,g.graph2D.link]),Y=a((e,l,c,u,h,y,f)=>{try{if(y!=null){let m=h*.8;e.font=`${m}px sans-serif`,e.textBaseline="middle",e.textAlign="left";let M=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1,minimumFractionDigits:0,compactDisplay:"short"}).format(y),N=e.measureText(M).width,A=h*.3,T=(h+A+N)/2;e.drawImage(l,c-T,u-h/2,h,h),e.fillStyle=f||"#99989C",e.fillText(M,c-T+h+A,u);}else e.drawImage(l,c-h/2,u-h/2,h,h);}catch(m){console.warn("Error rendering icon:",m);}},"drawIconWithOptionalCounter"),H=useCallback((e,l$1)=>{if(!P||P.length===0||!e||!e.x||!e.y)return;let{x:c,y:u}=e,h=re.nodeSizeBase*re.nodeAreaFactor/2;l$1.save();let y=Math.min(P.length,8),f=Math.min(Math.PI*2/y,Math.PI);for(let m=0;m<y;m++){let M=m*f,N=(m+1)*f,A=t.current.hoveredButtonIndex===m;l$1.beginPath(),l$1.arc(c,u,h,M,N,false),l$1.lineTo(c,u),l$1.closePath(),l$1.lineWidth=1,l$1.strokeStyle=g.graph2D?.button?.stroke||"#FFFFFF",l$1.stroke(),l$1.fillStyle=A?g.graph2D?.button?.hoverFill||"rgba(255, 255, 255, 0.3)":g.graph2D?.button?.normalFill||"rgba(255, 255, 255, 0.1)",l$1.fill();let v=h*.2,T=(M+N)/2,j=h-re.nodeSizeBase/2+v,_=c+Math.cos(T)*j,F=u+Math.sin(T)*j,b=P[m];if(b.loading){let O=v/2,L=v/12;l$1.save(),l$1.translate(_,F),l$1.rotate(t.current.spinnerAngle);for(let G=0;G<12;G++){let K=Math.PI*2*G/12,te=G/12,me=Math.cos(K)*O,pe=Math.sin(K)*O;l$1.beginPath(),l$1.fillStyle=l(g.graph2D?.button?.spinnerColor,te),l$1.arc(me,pe,L,0,Math.PI*2),l$1.fill();}l$1.restore(),t.current.spinnerAngle+=.1,t.current.spinnerAngle>Math.PI*2&&(t.current.spinnerAngle-=Math.PI*2),t.current.animation.id!==null&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null),t.current.animation.id=requestAnimationFrame(W),t.current.animation.buttonIndex=m;}else {t.current.animation.id&&t.current.animation.buttonIndex===m&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null);let O=A?b.hoverImg:b.normalImg,L=b.getCount?b.getCount(e):null;O.complete?Y(l$1,O,_,F,v,L,g.graph2D?.button?.textColor):O.onload=()=>{$.current&&Y(l$1,O,_,F,v,L,g.graph2D?.button?.textColor);};}}l$1.restore();},[P,g.graph2D?.button]),V=useCallback(e=>{let l=oe();!l||l.length===0||(e.globalAlpha=1,l.forEach(c=>{let{x:u,y:h,color:y,fontColor:f,label:m}=c,M=t.current.highlightNodes.has(c)||c===t.current.hoveredNode||c===t.current.draggedNode,N=c===t.current.selectedNode,A=re.nodeSizeBase,v=re.nodeSizeBase/2;if(M&&!N){let T=re.nodeSizeBase*re.nodeAreaFactor*.75/2;e.beginPath(),e.arc(u,h,T,0,2*Math.PI,false),e.fillStyle=g.graph2D.ring.highlightFill,e.fill();}if(N)if(d&&d.length>0)H(c,e);else {let T=re.nodeSizeBase*re.nodeAreaFactor/2;e.beginPath(),e.arc(u,h,T,0,2*Math.PI,false),e.fillStyle=g.graph2D.ring.selectionFill||g.graph2D.ring.highlightFill,e.fill();}if(e.beginPath(),e.arc(u,h,v,0,2*Math.PI),e.fillStyle=y||U(c.group||"0"),e.fill(),m){e.save(),e.translate(u,h);let T=t.current.transform.k,j=we(T),_=A*re.textPaddingFactor;e.font=`${j}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle=f||"#000";let F=le(m,_,e);e.fillText(F,0,0),e.restore();}}));},[g.graph2D.ring,d,H]),W=useCallback(()=>{let e=$.current;e&&(e.clearRect(0,0,t.current.width,t.current.height),ye(e),e.save(),e.setTransform(t.current.transform.k,0,0,t.current.transform.k,t.current.transform.x,t.current.transform.y),ve(e),V(e),e.restore());},[ve,V,ye]),Z=useCallback((e,l=[],c)=>{let u=ie()||[],h=oe()||[];if(!D.current||!e.length)return;let{width:y,height:f}=t.current,m=c?.smoothAppearance??false,M=c?.transitionDuration??1e3,N=new Set(h.map(b=>b.id)),A=e.filter(b=>!N.has(b.id)),v=new Set(u.map(b=>`${typeof b.source=="object"?b.source.id:b.source}-${typeof b.target=="object"?b.target.id:b.target}`)),T=l.filter(b=>{let O=`${typeof b.source=="object"?b.source.id:b.source}-${typeof b.target=="object"?b.target.id:b.target}`;return !v.has(O)});if(A.length===0&&T.length===0)return;let j=[...h,...A],_=[...u,...T];m&&(A.forEach(b=>{let O=T.filter(L=>{let G=typeof L.source=="object"?L.source.id:L.source,K=typeof L.target=="object"?L.target.id:L.target;return G===b.id&&N.has(K)||K===b.id&&N.has(G)});if(O.length>0){let L=O[0],G=typeof L.source=="object"?L.source.id===b.id?L.target:L.source.id:L.source===b.id?L.target:L.source,K=j.find(te=>te.id===G);if(K&&K.x!==void 0&&K.y!==void 0){let te=30+Math.random()*20,me=Math.random()*Math.PI*2;b.x=K.x+Math.cos(me)*te,b.y=K.y+Math.sin(me)*te,b.vx=0,b.vy=0;}}else {let L=y/2,G=f/2,K=Math.min(y,f)/4,te=Math.random()*Math.PI*2;b.x=L+Math.cos(te)*(K*Math.random()),b.y=G+Math.sin(te)*(K*Math.random()),b.vx=0,b.vy=0;}}),h.forEach(b=>{b.fx=b.x,b.fy=b.y;})),D.current.nodes(j);let F=D.current.force("link");F&&F.links(_),T.forEach(b=>{let O=typeof b.source=="object"?b.source:j.find(G=>G.id===b.source),L=typeof b.target=="object"?b.target:j.find(G=>G.id===b.target);!O||!L||(!O.neighbors&&(O.neighbors=[]),!L.neighbors&&(L.neighbors=[]),O.neighbors.push(L),L.neighbors.push(O),!O.links&&(O.links=[]),!L.links&&(L.links=[]),O.links.push(b),L.links.push(b));}),m?(D.current.alphaTarget(.3),D.current.alpha(.3),D.current.velocityDecay(.7),D.current.restart(),setTimeout(()=>{h.forEach(b=>{b.fx=void 0,b.fy=void 0;}),D.current?.alphaTarget(0),D.current?.alpha(.1),D.current?.velocityDecay(.6);},M)):D.current.alpha(.1).restart(),W();},[z,W]),ne=useCallback(e=>{let l=oe(),c=ie();if(!D.current||!e.length||!l||l.length===0||!c||c.length===0)return;let u=new Set(e);if(t.current.selectedNode&&t.current.selectedNode.id!==void 0&&u.has(t.current.selectedNode.id)&&(t.current.selectedNode=null),t.current.hoveredNode&&t.current.hoveredNode.id!==void 0&&u.has(t.current.hoveredNode.id)&&(t.current.hoveredNode=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set),t.current.hoveredLink){let m=typeof t.current.hoveredLink.source=="object"?t.current.hoveredLink.source.id:t.current.hoveredLink.source,M=typeof t.current.hoveredLink.target=="object"?t.current.hoveredLink.target.id:t.current.hoveredLink.target;(m!==void 0&&u.has(m)||M!==void 0&&u.has(M))&&(t.current.hoveredLink=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set);}t.current.draggedNode&&t.current.draggedNode.id!==void 0&&u.has(t.current.draggedNode.id)&&(t.current.draggedNode=null);let h=l.filter(m=>m.id!==void 0&&!u.has(m.id)),y=c.filter(m=>{let M=typeof m.source=="object"?m.source.id:m.source,N=typeof m.target=="object"?m.target.id:m.target;return M!==void 0&&!u.has(M)&&N!==void 0&&!u.has(N)});h.forEach(m=>{m.neighbors=[],m.links=[];}),y.forEach(m=>{let M=typeof m.source=="object"?m.source:h.find(A=>A.id===m.source),N=typeof m.target=="object"?m.target:h.find(A=>A.id===m.target);!M||!N||(M.neighbors=M.neighbors||[],N.neighbors=N.neighbors||[],M.neighbors.push(N),N.neighbors.push(M),M.links=M.links||[],N.links=N.links||[],M.links.push(m),N.links.push(m));}),D.current.nodes(h);let f=D.current.force("link");f&&f.links(y),W();},[W]),ae=useCallback((e=0,l=20)=>{let c=oe();if(!$.current||!C.current||!c||!c.length)return;let h=1/0,y=1/0,f=-1/0,m=-1/0;if(c.forEach(M=>{if(M.x===void 0||M.y===void 0)return;let N=M.x,A=M.y;h=Math.min(h,N),y=Math.min(y,A),f=Math.max(f,N),m=Math.max(m,A);}),isFinite(h)&&isFinite(f)&&isFinite(y)&&isFinite(m)){let{width:M,height:N}=t.current;h-=l,y-=l,f+=l,m+=l;let A=f-h,v=m-y,T=A>0?M/A:1,j=v>0?N/v:1,_=Math.min(T,j,10),F=h+A/2,b=y+v/2,O={k:_,x:M/2-F*_,y:N/2-b*_};if(e>0){let L={...t.current.transform},G=Date.now(),K=a(()=>{let te=Math.min(1,(Date.now()-G)/e),me=te===1?1:1-Math.pow(1-te,3),pe={k:L.k+(O.k-L.k)*me,x:L.x+(O.x-L.x)*me,y:L.y+(O.y-L.y)*me};t.current.transform=pe,W(),te<1&&requestAnimationFrame(K);},"animateZoom");requestAnimationFrame(K);}else t.current.transform=O,W();}},[]),X=useCallback((e,l)=>{let c=oe();if(!c||c.length===0)return null;let u=re.nodeSizeBase/2,h=typeof window<"u"&&window.devicePixelRatio||1,y=(e*h-t.current.transform.x)/t.current.transform.k,f=(l*h-t.current.transform.y)/t.current.transform.k;return c.find(m=>{let M=(m.x||0)-y,N=(m.y||0)-f;return Math.sqrt(M*M+N*N)<=u})||null},[]),ee=useCallback((e,l)=>{let c=ie(),u=oe();if(!c||c.length===0||!u||u.length===0)return null;let h=typeof window<"u"&&window.devicePixelRatio||1,y=(e*h-t.current.transform.x)/t.current.transform.k,f=(l*h-t.current.transform.y)/t.current.transform.k,m=5;return c.find(M=>{let N=typeof M.source=="object"?M.source:u.find(Ze=>Ze.id===M.source),A=typeof M.target=="object"?M.target:u.find(Ze=>Ze.id===M.target);if(!N||!A)return false;let v=N.x||0,T=N.y||0,j=A.x||0,_=A.y||0,F=y-v,b=f-T,O=j-v,L=_-T,G=F*O+b*L,K=O*O+L*L;if(K===0)return false;let te=G/K;te=Math.max(0,Math.min(1,te));let me=v+te*O,pe=T+te*L,he=y-me,He=f-pe;return Math.sqrt(he*he+He*He)<=m})||null},[]),de=useCallback((e,l,c,u,h,y,f)=>{let m=e-c,M=l-u,N=Math.sqrt(m*m+M*M),A=Math.atan2(M,m);A<0&&(A+=2*Math.PI);let j=N>=h*.5&&N<=h*1,_=false;return y===Math.PI&&f===Math.PI*2?_=A>=Math.PI&&A<=Math.PI*2:y===0&&f===Math.PI?_=A>=0&&A<=Math.PI:_=y<=f&&A>=y&&A<=f||y>f&&(A>=y||A<=f),j&&_},[]),ce=useCallback(e=>{if(e===t.current.hoveredNode)return;let l=new Set,c=new Set;e&&(l.add(e),e.neighbors&&e.neighbors.forEach(u=>l.add(u)),e.links&&e.links.forEach(u=>c.add(u))),t.current.hoveredNode=e,w&&w(e),t.current.highlightNodes=l,t.current.highlightLinks=c;},[w]),ue=useCallback(e=>{if(e===t.current.hoveredLink)return;let l=new Set,c=new Set;if(e){c.add(e);let u=oe();if(u){let h=typeof e.source=="object"?e.source:u.find(f=>f.id===e.source),y=typeof e.target=="object"?e.target:u.find(f=>f.id===e.target);h&&l.add(h),y&&l.add(y);}}t.current.hoveredLink=e,x&&x(e),t.current.highlightNodes=l,t.current.highlightLinks=c;},[x,oe]),Se=useCallback(e=>{R&&R(e);},[R]),_e=useCallback(e=>{t.current.selectedNode=e,s&&s(e);},[s]),qe=useCallback(()=>{t.current.selectedNode=null,p&&p();},[p]),Ee=useCallback(e=>{if(!C.current||!D.current)return;let l=C.current.getBoundingClientRect(),c=e.clientX-l.left,u=e.clientY-l.top;t.current.mouseStartPos={x:c,y:u},t.current.isDragging=false;let h=X(c,u);h?(t.current.draggedNode=h,h.fx=h.x,h.fy=h.y):(t.current.isPanning=true,t.current.lastMousePos={x:c,y:u});},[X]),Fe=useCallback((e,l)=>{let c=null;if(C.current&&t.current&&P.length>0){let u=re.nodeSizeBase*re.nodeAreaFactor/2,h=C.current.getBoundingClientRect(),y=C.current.width/h.width,f=C.current.height/h.height,m=e*y,M=l*f,N=(m-t.current.transform.x)/t.current.transform.k,A=(M-t.current.transform.y)/t.current.transform.k,v=t.current.selectedNode?.x||0,T=t.current.selectedNode?.y||0,j=Math.min(P.length,8),_=Math.min(Math.PI*2/j,Math.PI);for(let F=0;F<j;F++){let b=F*_,O=(F+1)*_;if(de(N,A,v,T,u,b,O)){c=F;break}}}return c},[P]),Ce=useCallback(e=>{if(!C.current)return;let l=C.current.getBoundingClientRect(),c=e.clientX-l.left,u=e.clientY-l.top;if(t.current.draggedNode&&t.current.mouseStartPos&&D.current){let f=t.current.mouseStartPos.x,m=t.current.mouseStartPos.y,M=c-f,N=u-m;Math.sqrt(M*M+N*N)>3&&(t.current.isDragging=true,D.current.alphaTarget()===0&&D.current.alphaTarget(0).restart());let T=typeof window<"u"&&window.devicePixelRatio||1,j=(c*T-t.current.transform.x)/t.current.transform.k,_=(u*T-t.current.transform.y)/t.current.transform.k;t.current.draggedNode.fx=j,t.current.draggedNode.fy=_;return}if(t.current.isPanning&&t.current.mouseStartPos){let f=c-t.current.lastMousePos.x,m=u-t.current.lastMousePos.y,M=t.current.mouseStartPos.x,N=t.current.mouseStartPos.y;Math.sqrt(Math.pow(c-M,2)+Math.pow(u-N,2))>3&&(t.current.isDragging=true),t.current.transform={...t.current.transform,x:t.current.transform.x+f,y:t.current.transform.y+m},t.current.lastMousePos={x:c,y:u},W();return}let h,y;if(t.current.selectedNode&&C.current&&P.length>0){let f=Fe(c,u);f!==null&&(y=t.current.selectedNode),f!==t.current.hoveredButtonIndex&&(h=true),t.current.hoveredButtonIndex=f;}else t.current.hoveredButtonIndex!==null&&(t.current.hoveredButtonIndex=null);if(!y&&(y=X(c,u),!y)){let f=ee(c,u),m=f!==t.current.hoveredLink;if(f&&t.current.hoveredNode&&ce(null),ue(f),C.current&&(C.current.style.cursor=f?"pointer":"default"),m){W();return}}y&&t.current.hoveredLink&&ue(null),y!==t.current.hoveredNode&&(h=true),ce(y),C.current&&(C.current.style.cursor=y?"pointer":"default"),h&&W();},[P,X,ee,ce,ue,W,de,Fe]),Me=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.stopPropagation(),e.preventDefault()),t.current.mustBeStoppedPropagation=false;},[]),Ne=useCallback(e=>{let l=t.current.isDragging;if(l&&(t.current.mustBeStoppedPropagation=true),!l&&t.current.mouseStartPos){let c=C.current?.getBoundingClientRect();if(c){let u=e.clientX-c.left,h=e.clientY-c.top;P.length>0&&t.current.hoveredButtonIndex===null&&(t.current.hoveredButtonIndex=Fe(u,h));let y=false;if(t.current.selectedNode&&t.current.hoveredButtonIndex!==null&&d[t.current.hoveredButtonIndex]){let f=d[t.current.hoveredButtonIndex];f&&f.onClick&&(f.onClick(t.current.selectedNode),y=true,t.current.hoveredButtonIndex=null);}if(!y&&t.current.draggedNode)_e(t.current.draggedNode);else if(!y&&!t.current.draggedNode){let f=ee(u,h);f?Se(f):qe();}}}if(t.current.draggedNode&&D.current){if(l){D.current.alphaTarget(0);let c=.05,u=.04,h=.6;D.current.alpha(c).alphaDecay(u),D.current.velocityDecay(h);}else D.current.alphaTarget(0);t.current.draggedNode.fx=void 0,t.current.draggedNode.fy=void 0,t.current.draggedNode=null;}t.current.isDragging=false,t.current.mouseStartPos=null,t.current.isPanning&&(t.current.isPanning=false),W();},[d,W,_e,qe,ee,Se,Fe,P]),Ue=useCallback(e=>{if(e.stopPropagation(),e.preventDefault(),!C.current)return;let l=C.current.getBoundingClientRect(),c=e.clientX-l.left,u=e.clientY-l.top,y=-e.deltaY>0?1.1:1/1.1,f=t.current.transform,m=f.k*y;if(m<.01||m>10)return;let M=f.k*y,N=c-(c-f.x)*y,A=u-(u-f.y)*y;t.current.transform={k:M,x:N,y:A},W();},[W]),Be=a((e,l)=>{let c=e.touches[0];if(c){let u={clientX:c.clientX,clientY:c.clientY};l(u);}},"convertTouchToMouseEvent"),et=useCallback(e=>{Be(e,Ee);},[Ee]),Oe=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.preventDefault(),e.stopPropagation()),t.current.mustBeStoppedPropagation=false,Be(e,Ne);},[Ne]),Lt=useCallback(e=>{Be(e,Ce);},[Ce]);return useImperativeHandle(E,()=>({zoomToFit:ae,addNodes:Z,removeNodes:ne}),[ae,Z,ne]),useEffect(()=>{let e=C.current,{width:l,height:c}=t.current;if(!e)return;Q(),B(true);let u=l/2,h=c/2,y=re.nodeSizeBase,f=y/2,m=y*2.5;D.current&&D.current.stop();let M=D.current=forceSimulation(z).force("link",forceLink(k).id(N=>N.id).distance(m).strength(.9)).force("charge",forceManyBody().strength(-y/10*200).theta(.5).distanceMin(y*2)).force("x",forceX().strength(.03)).force("y",forceY().strength(.03)).force("center",forceCenter(u,h).strength(.05)).force("collide",forceCollide().radius(f*2).iterations(2).strength(1)).velocityDecay(.6);return ()=>{M.stop();}},[z,k]),useLayoutEffect(()=>{let e=C.current;e&&(t.current.width=o*mt,t.current.height=n*mt,e.width=t.current.width,e.height=t.current.height);},[o,n]),useEffect(()=>{if(D.current){let e=D.current;e.on("tick",()=>{W();}),e.on("end",()=>{I&&(ae(0,20),setTimeout(()=>{B(false);},200));});}I||W();},[z,k,I,W,ae]),useEffect(()=>{!z||!k||k.forEach(e=>{let l=typeof e.source=="object"?e.source:z.find(u=>u.id===e.source),c=typeof e.target=="object"?e.target:z.find(u=>u.id===e.target);!l||!c||(!l.neighbors&&(l.neighbors=[]),!c.neighbors&&(c.neighbors=[]),l.neighbors.push(c),c.neighbors.push(l),!l.links&&(l.links=[]),!c.links&&(c.links=[]),l.links.push(e),c.links.push(e));});},[z,k]),useEffect(()=>{d&&d.length>0&&S(Ho(d));},[d]),useEffect(()=>{let e=C.current;if(!(!e||typeof window>"u"))return e.addEventListener("wheel",Ue,{passive:false}),e.addEventListener("touchend",Oe,{passive:false}),()=>{e.removeEventListener("wheel",Ue),e.removeEventListener("touchend",Oe);}},[Ue,Oe]),jsxs($o,{children:[(r||I)&&jsx(hr,{width:o,height:n}),jsx(Xo,{ref:C,style:{width:o,height:n,display:r||I?"none":"block"},onMouseDown:Ee,onMouseMove:Ce,onMouseUp:Ne,onMouseLeave:Ne,onClick:Me,onTouchStart:et,onTouchMove:Lt})]})}),$o=styled.div`
|
|
48
48
|
display: flex;
|
|
49
49
|
align-items: center;
|
|
50
50
|
justify-content: center;
|
|
51
51
|
width: 100%;
|
|
52
52
|
min-width: 0;
|
|
53
53
|
position: relative;
|
|
54
|
-
`,Xo=styled.canvas``;Wo.displayName="Graph2D";var tl=w(({isActive:r,position:o,top:n=0,left:a=0,right:d,bottom:s,...
|
|
54
|
+
`,Xo=styled.canvas``;Wo.displayName="Graph2D";var tl=w(({isActive:r,position:o,top:n=0,left:a=0,right:d,bottom:s,...p})=>jsx(Uo,{$isActive:r,$position:o,$top:n,$left:a,$right:d,$bottom:s,...p})),Uo=xo.div(({$isActive:r,$top:o,$left:n,$right:a,$bottom:d,$position:s,theme:p})=>`
|
|
55
55
|
${r?`
|
|
56
56
|
position: ${s};
|
|
57
57
|
z-index: 1000;
|
|
58
|
-
${typeof o=="number"?`top: ${c(o,
|
|
59
|
-
${typeof n=="number"?`left: ${c(n,
|
|
60
|
-
${typeof a=="number"?`right: ${c(a,
|
|
61
|
-
${typeof d=="number"?`bottom: ${c(d,
|
|
58
|
+
${typeof o=="number"?`top: ${c(o,p.baseSize)};`:""}
|
|
59
|
+
${typeof n=="number"?`left: ${c(n,p.baseSize)};`:""}
|
|
60
|
+
${typeof a=="number"?`right: ${c(a,p.baseSize)};`:""}
|
|
61
|
+
${typeof d=="number"?`bottom: ${c(d,p.baseSize)};`:""}
|
|
62
62
|
|
|
63
63
|
`:""}
|
|
64
64
|
|
|
65
65
|
min-width: 0;
|
|
66
|
-
`);var Go=[.1,.25,.5,.75,1,1.5,2,3,4,5],Ko=5,Jo=.1,Qo=140;function mt(r,o,n,a){return {x:r<n?(n-r)/2:0,y:o<a?(a-o)/2:0}}a(mt,"computePadding");var br=a(({url:r,alt:o="image",naturalWidth:n,naturalHeight:a$1,zoomSteps:d=Go,maxZoom:s=Ko,minZoom:h=Jo,showMinimap:x=true,minimapWidth:k=Qo,className:N,onZoomChange:M})=>{let[f,L]=useState("adaptive"),[B,t]=useState(1),[I,S]=useState(false),p=useRef(false),[F,P]=useState(false),[T,$]=useState(false),[Y,ne]=useState({left:0,top:0}),re=useRef(0),[se,ye]=useState({width:0,height:0}),le=useRef({width:0,height:0}),we=useRef(null),ve=useRef(null),q=useRef({x:0,y:0,scrollLeft:0,scrollTop:0}),H=useRef(f),V=useRef(B),W=useRef(M);H.current=f,V.current=B,W.current=M;let Z=n||le.current.width,oe=a$1||le.current.height,ae=useMemo(()=>[...d].sort((y,C)=>y-C),[d]),X=useCallback(()=>se.width===0||Z===0?1:Math.min(se.width/Z,se.height/oe,1),[se,Z,oe]),Q=useCallback((y,C)=>{if(C==="in"){let z=ae.find(j=>j>y+.001);return z!==void 0?Math.min(z,s):y}let A=ae.findLast(z=>z<y-.001);return A!==void 0?Math.max(A,h):y},[ae,s,h]),de=useCallback(()=>H.current==="adaptive"?X():V.current,[X]),ce=useCallback(y=>{L("manual"),t(y),W.current?.(y,"manual");},[]),ue=useCallback(()=>{L("adaptive"),W.current?.(X(),"adaptive");},[X]),Se=useCallback(y=>{requestAnimationFrame(()=>{let C=ve.current;if(!C)return;let A=C.getBoundingClientRect(),z=Z*y,j=oe*y,v=mt(z,j,A.width,A.height);C.scrollLeft=z/2+v.x-A.width/2,C.scrollTop=j/2+v.y-A.height/2;});},[Z,oe]);useEffect(()=>{L("adaptive"),t(1),P(false),$(false),le.current={width:0,height:0};},[r]),useEffect(()=>{let y=ve.current;if(!y)return;let C=new ResizeObserver(A=>{let z=A[0];if(!z)return;let{width:j,height:v}=z.contentRect;ye(O=>O.width===j&&O.height===v?O:{width:j,height:v});});return C.observe(y),()=>C.disconnect()},[]),useEffect(()=>{let y=ve.current;if(!y)return;let C=a(()=>{cancelAnimationFrame(re.current),re.current=requestAnimationFrame(()=>{let A=y.scrollLeft,z=y.scrollTop;ne(j=>j.left===A&&j.top===z?j:{left:A,top:z});});},"handleScroll");return y.addEventListener("scroll",C,{passive:true}),()=>{y.removeEventListener("scroll",C),cancelAnimationFrame(re.current);}},[]),useEffect(()=>{let y=ve.current;if(!y||!F)return;let C=a(A=>{if(!(A.ctrlKey||A.metaKey))return;A.preventDefault();let z=de(),j=A.deltaY>0?"out":"in",v=Q(z,j),O=X();if(j==="out"&&v<=O){ue();return}let R=y.getBoundingClientRect(),G,K,ee=le.current.width||1,me=le.current.height||1;if(H.current==="adaptive"){let pe=we.current;if(!pe)return;let he=pe.getBoundingClientRect();G=(A.clientX-he.left)/(he.width/ee),K=(A.clientY-he.top)/(he.height/me);}else {let pe=ee*z,he=me*z,He=mt(pe,he,R.width,R.height);G=(y.scrollLeft+A.clientX-R.left-He.x)/z,K=(y.scrollTop+A.clientY-R.top-He.y)/z;}ce(v),requestAnimationFrame(()=>{let pe=y.getBoundingClientRect(),he=mt(ee*v,me*v,pe.width,pe.height);y.scrollLeft=G*v+he.x-(A.clientX-pe.left),y.scrollTop=K*v+he.y-(A.clientY-pe.top);});},"handleWheel");return y.addEventListener("wheel",C,{passive:false}),()=>y.removeEventListener("wheel",C)},[F,de,Q,X,ce,ue]),useEffect(()=>{if(f!=="manual")return;let y=ve.current;if(!y)return;let C=a(j=>{j.button===0&&(j.preventDefault(),p.current=true,S(true),q.current={x:j.clientX,y:j.clientY,scrollLeft:y.scrollLeft,scrollTop:y.scrollTop});},"handleMouseDown"),A=a(j=>{if(!p.current)return;let{x:v,y:O,scrollLeft:R,scrollTop:G}=q.current;y.scrollLeft=R-(j.clientX-v),y.scrollTop=G-(j.clientY-O);},"handleMouseMove"),z=a(()=>{p.current=false,S(false);},"handleMouseUp");return y.addEventListener("mousedown",C),window.addEventListener("mousemove",A),window.addEventListener("mouseup",z),()=>{y.removeEventListener("mousedown",C),window.removeEventListener("mousemove",A),window.removeEventListener("mouseup",z);}},[f]);let _e=useCallback(()=>{f==="manual"&&ue();},[f,ue]),qe=useCallback(()=>{let y=de(),C=Q(y,"in");C!==y&&(ce(C),Se(C));},[de,Q,ce,Se]),Ee=useCallback(()=>{let y=de(),C=Q(y,"out");if(C<=X()){ue();return}ce(C),Se(C);},[de,Q,X,ue,ce,Se]),Fe=useCallback(()=>{ce(1),Se(1);},[ce,Se]),Ce=useCallback(()=>{let y=we.current;y&&(le.current={width:y.naturalWidth,height:y.naturalHeight},P(true),$(false));},[]),Me=f==="adaptive"?X():B,Ne=Z*Me,Ue=oe*Me,Be=se.width,et=se.height,Oe=f==="manual"?mt(Ne,Ue,Be,et):{x:0,y:0},Lt=x&&f==="manual"&&(Ne>Be||Ue>et),e=Z>0?k/Z:0,l=oe*e,c=Be>0?Be/B*e:0,u=et>0?et/B*e:0,g=Math.max(0,Y.left-Oe.x)/B*e,w=Math.max(0,Y.top-Oe.y)/B*e,m=f==="adaptive"?"Fit":`${Math.round(B*100)}%`,b=Q(Me,"in")!==Me,D=f==="manual"||Me>h,E=f==="adaptive"?{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}:{width:Ne,height:Ue,maxWidth:"none",maxHeight:"none",marginLeft:Oe.x,marginTop:Oe.y,flexShrink:0},_={cursor:f==="manual"?I?"grabbing":"grab":"default"};return jsxs("div",{className:`h-full w-full flex flex-col min-h-0 min-w-0 overflow-hidden ${N??""}`,children:[jsxs("div",{className:"flex w-full items-center px-8.5 py-3 gap-1 shrink-0",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Pa$1,{style:{width:20,height:20}}),onClick:Ee,disabled:!D,p:7,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700! h-[38px]!"}),jsx("button",{type:"button",onClick:f==="manual"?ue:void 0,className:"flex items-center justify-center bg-white dark:bg-neutral-800 h-[38px] min-w-16 px-3 select-none border border-gray-300 dark:border-neutral-600 rounded-md","aria-label":m,children:jsx(Ya,{style:{fontSize:12,fontWeight:500},children:m})}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(ma,{style:{width:14,height:14}}),onClick:qe,disabled:!b,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700! h-[38px]!",p:10}),jsx(z,{variant:"outlined","aria-label":"fit-to-container",size:"small",color:f==="adaptive"?"primary":"default",icon:jsx(ra,{style:{width:14,height:14}}),onClick:ue,className:`${f==="adaptive"?"bg-blue-50!":"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!"} ml-auto h-[38px]!`,p:10}),jsx(z,{variant:"outlined","aria-label":"original-size",size:"small",color:f==="manual"&&B===1?"primary":"default",onClick:Fe,className:`${f==="manual"&&B===1?"bg-blue-50!":"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!"} h-[38px]!`,py:10,px:11,children:jsx(Ya,{style:{fontSize:12,fontWeight:500,lineHeight:1},children:"1:1"})})]}),jsxs("div",{className:"flex-1 min-h-0 min-w-0 relative",children:[jsx("div",{ref:ve,className:`h-full w-full ${f==="adaptive"?"flex items-center justify-center overflow-hidden":"overflow-auto"}`,style:_,onDoubleClick:_e,children:T?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx(Ya,{color:"text.lighter",children:"Failed to load image"})}):jsx("img",{ref:we,src:r,alt:o,draggable:false,className:"block select-none",style:E,onLoad:Ce,onError:()=>$(true)})}),Lt&&jsxs("div",{className:"absolute bottom-3 right-3 rounded-lg overflow-hidden shadow-lg pointer-events-none",style:{width:k,height:l,backdropFilter:"blur(8px)",background:"rgba(255,255,255,0.75)"},children:[jsx("img",{src:r,alt:"",draggable:false,className:"block w-full h-full object-contain"}),jsx("div",{className:"absolute border-2 border-blue-500 rounded-sm",style:{width:Math.min(c,k),height:Math.min(u,l),left:Math.max(0,Math.min(g,k-c)),top:Math.max(0,Math.min(w,l-u)),background:"rgba(59,130,246,0.1)"}})]})]})]})},"ImageDriver");var yr=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full py-5.5 px-8.5",children:jsx("audio",{controls:true,src:r,className:"w-full"})}),"AudioDriver");var zt=a(({url:r})=>{let[o,n]=useState(null),[a$1,d]=useState(false),[s,h]=useState(true),[x,k]=useState(null);return useEffect(()=>{d(true);},[]),useEffect(()=>{if(!a$1)return;a(async()=>{try{let M=await import('./PdfDriver-DTZKADSW.mjs');n(()=>M.PdfDriver),h(!1);}catch(M){console.error("Failed to load PDF driver:",M),k("Failed to load PDF viewer"),h(false);}},"loadPdfDriver")();},[a$1]),a$1?s?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading PDF viewer..."})}):x||!o?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-red-500 text-center",children:jsx("p",{children:x||"PDF viewer unavailable"})})}):jsx(o,{url:r}):jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading PDF viewer..."})})},"PdfDriverWrapper");var kr=50,rn=1e4,Sr=a(({url:r,blob:o})=>{let n=useRef(null),a$1=useRef(null),[d,s]=useState(null),[h,x]=useState(true),[k,N]=useState(1),M=useRef(false),[f,L]=useState({width:0,height:0}),B=useRef(0),t=a(()=>{M.current=true,N(S=>Math.min(S+.25,4));},"handleZoomIn"),I=a(()=>{M.current=true,N(S=>Math.max(S-.25,.25));},"handleZoomOut");return useEffect(()=>{a(async()=>{if(a$1.current)try{x(!0),s(null);let p=o;if(!p&&r&&(p=await(await fetch(r)).blob()),!p){s("\u041D\u0435 \u043D\u0430\u0434\u0430\u043D\u043E \u0434\u043B\u044F DOCX \u0444\u0430\u0439\u043B\u0443");return}if(p.size/(1024*1024)>kr){s(`\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439 (> ${kr} \u041C\u0411)`);return}a$1.current.innerHTML="";let P=renderAsync(p,a$1.current,void 0,{debug:!0,experimental:!0,hideWrapperOnPrint:!0,breakPages:!0,ignoreLastRenderedPageBreak:!1}),T=new Promise((Y,ne)=>setTimeout(()=>ne(new Error("\u0420\u0435\u043D\u0434\u0435\u0440\u0438\u043D\u0433 DOCX \u0437\u0430\u0439\u043D\u044F\u0432 \u043D\u0430\u0434\u0442\u043E \u0431\u0430\u0433\u0430\u0442\u043E \u0447\u0430\u0441\u0443")),rn));await Promise.race([P,T]),await new Promise(Y=>requestAnimationFrame(Y));let $=a$1.current.querySelector(".docx-wrapper");if($&&(B.current=$.offsetWidth,L({width:$.offsetWidth,height:$.offsetHeight})),n.current&&B.current>0){let Y=n.current.clientWidth,ne=Math.min(Y/B.current,1);N(ne);}x(!1);}catch(p){s(p?.message||"\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438 DOCX \u0444\u0430\u0439\u043B"),x(false);}},"renderDocument")();},[r,o]),useEffect(()=>{if(!n.current)return;let S=tn(F=>{if(!(M.current||B.current===0))for(let P of F){let T=P.contentRect.width,$=Math.min(T/B.current,1);N($);}},150),p=new ResizeObserver(S);return p.observe(n.current),()=>{p.disconnect(),S.cancel();}},[]),jsxs("div",{className:"h-full w-full flex flex-col px-0.5",children:[jsxs("div",{className:"flex justify-center items-stretch px-8 py-3 gap-1 border-b border-gray-200 dark:border-neutral-700",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Pa$1,{style:{width:20,height:20}}),onClick:I,disabled:k<=.25,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",p:7}),jsxs(pb,{py:8,px:8,className:"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!",children:[jsx(Ya,{color:"text.lighter",style:{fontSize:10},children:"Scale:"}),jsxs(Ya,{children:[Math.round(k*100),"%"]})]}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(ma,{style:{width:14,height:14}}),onClick:t,disabled:k>=4,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",p:10})]}),!!d&&!h&&jsx("div",{className:"text-red-500 p-8",children:d}),h&&jsx("div",{className:"flex items-center justify-center p-8",children:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F..."}),jsx("div",{ref:n,className:"w-full h-full overflow-auto bg-gray-400 dark:bg-neutral-700 [&::-webkit-scrollbar-thumb]:bg-gray-100 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-600 [&::-webkit-scrollbar-track]:bg-gray-400 dark:[&::-webkit-scrollbar-track]:bg-neutral-700",style:{scrollbarGutter:"stable both-edges"},children:jsx("div",{style:{width:f.width>0?f.width*k:void 0,height:f.height>0?f.height*k:void 0,overflow:"hidden",margin:"0 auto"},children:jsx("div",{ref:a$1,className:`[&>div.docx-wrapper_table_*]:wrap-break-word!
|
|
66
|
+
`);var Go=[.1,.25,.5,.75,1,1.5,2,3,4,5],Ko=5,Jo=.1,Qo=140;function bt(r,o,n,a){return {x:r<n?(n-r)/2:0,y:o<a?(a-o)/2:0}}a(bt,"computePadding");var br=a(({url:r,alt:o="image",naturalWidth:n,naturalHeight:a$1,zoomSteps:d=Go,maxZoom:s=Ko,minZoom:p=Jo,showMinimap:w=true,minimapWidth:x=Qo,className:R,onZoomChange:E})=>{let[g,I]=useState("adaptive"),[B,t]=useState(1),[z$1,k]=useState(false),P=useRef(false),[S,C]=useState(false),[D,$]=useState(false),[U,Q]=useState({left:0,top:0}),oe=useRef(0),[ie,ye]=useState({width:0,height:0}),le=useRef({width:0,height:0}),we=useRef(null),ve=useRef(null),Y=useRef({x:0,y:0,scrollLeft:0,scrollTop:0}),H=useRef(g),V=useRef(B),W=useRef(E);H.current=g,V.current=B,W.current=E;let Z=n||le.current.width,ne=a$1||le.current.height,ae=useMemo(()=>[...d].sort((v,T)=>v-T),[d]),X=useCallback(()=>ie.width===0||Z===0?1:Math.min(ie.width/Z,ie.height/ne,1),[ie,Z,ne]),ee=useCallback((v,T)=>{if(T==="in"){let _=ae.find(F=>F>v+.001);return _!==void 0?Math.min(_,s):v}let j=ae.findLast(_=>_<v-.001);return j!==void 0?Math.max(j,p):v},[ae,s,p]),de=useCallback(()=>H.current==="adaptive"?X():V.current,[X]),ce=useCallback(v=>{I("manual"),t(v),W.current?.(v,"manual");},[]),ue=useCallback(()=>{I("adaptive"),W.current?.(X(),"adaptive");},[X]),Se=useCallback(v=>{requestAnimationFrame(()=>{let T=ve.current;if(!T)return;let j=T.getBoundingClientRect(),_=Z*v,F=ne*v,b=bt(_,F,j.width,j.height);T.scrollLeft=_/2+b.x-j.width/2,T.scrollTop=F/2+b.y-j.height/2;});},[Z,ne]);useEffect(()=>{I("adaptive"),t(1),C(false),$(false),le.current={width:0,height:0};},[r]),useEffect(()=>{let v=ve.current;if(!v)return;let T=new ResizeObserver(j=>{let _=j[0];if(!_)return;let{width:F,height:b}=_.contentRect;ye(O=>O.width===F&&O.height===b?O:{width:F,height:b});});return T.observe(v),()=>T.disconnect()},[]),useEffect(()=>{let v=ve.current;if(!v)return;let T=a(()=>{cancelAnimationFrame(oe.current),oe.current=requestAnimationFrame(()=>{let j=v.scrollLeft,_=v.scrollTop;Q(F=>F.left===j&&F.top===_?F:{left:j,top:_});});},"handleScroll");return v.addEventListener("scroll",T,{passive:true}),()=>{v.removeEventListener("scroll",T),cancelAnimationFrame(oe.current);}},[]),useEffect(()=>{let v=ve.current;if(!v||!S)return;let T=a(j=>{if(!(j.ctrlKey||j.metaKey))return;j.preventDefault();let _=de(),F=j.deltaY>0?"out":"in",b=ee(_,F),O=X();if(F==="out"&&b<=O){ue();return}let L=v.getBoundingClientRect(),G,K,te=le.current.width||1,me=le.current.height||1;if(H.current==="adaptive"){let pe=we.current;if(!pe)return;let he=pe.getBoundingClientRect();G=(j.clientX-he.left)/(he.width/te),K=(j.clientY-he.top)/(he.height/me);}else {let pe=te*_,he=me*_,He=bt(pe,he,L.width,L.height);G=(v.scrollLeft+j.clientX-L.left-He.x)/_,K=(v.scrollTop+j.clientY-L.top-He.y)/_;}ce(b),requestAnimationFrame(()=>{let pe=v.getBoundingClientRect(),he=bt(te*b,me*b,pe.width,pe.height);v.scrollLeft=G*b+he.x-(j.clientX-pe.left),v.scrollTop=K*b+he.y-(j.clientY-pe.top);});},"handleWheel");return v.addEventListener("wheel",T,{passive:false}),()=>v.removeEventListener("wheel",T)},[S,de,ee,X,ce,ue]),useEffect(()=>{if(g!=="manual")return;let v=ve.current;if(!v)return;let T=a(F=>{F.button===0&&(F.preventDefault(),P.current=true,k(true),Y.current={x:F.clientX,y:F.clientY,scrollLeft:v.scrollLeft,scrollTop:v.scrollTop});},"handleMouseDown"),j=a(F=>{if(!P.current)return;let{x:b,y:O,scrollLeft:L,scrollTop:G}=Y.current;v.scrollLeft=L-(F.clientX-b),v.scrollTop=G-(F.clientY-O);},"handleMouseMove"),_=a(()=>{P.current=false,k(false);},"handleMouseUp");return v.addEventListener("mousedown",T),window.addEventListener("mousemove",j),window.addEventListener("mouseup",_),()=>{v.removeEventListener("mousedown",T),window.removeEventListener("mousemove",j),window.removeEventListener("mouseup",_);}},[g]);let _e=useCallback(()=>{g==="manual"&&ue();},[g,ue]),qe=useCallback(()=>{let v=de(),T=ee(v,"in");T!==v&&(ce(T),Se(T));},[de,ee,ce,Se]),Ee=useCallback(()=>{let v=de(),T=ee(v,"out");if(T<=X()){ue();return}ce(T),Se(T);},[de,ee,X,ue,ce,Se]),Fe=useCallback(()=>{ce(1),Se(1);},[ce,Se]),Ce=useCallback(()=>{let v=we.current;v&&(le.current={width:v.naturalWidth,height:v.naturalHeight},C(true),$(false));},[]),Me=g==="adaptive"?X():B,Ne=Z*Me,Ue=ne*Me,Be=ie.width,et=ie.height,Oe=g==="manual"?bt(Ne,Ue,Be,et):{x:0,y:0},Lt=w&&g==="manual"&&(Ne>Be||Ue>et),e=Z>0?x/Z:0,l=ne*e,c=Be>0?Be/B*e:0,u=et>0?et/B*e:0,h=Math.max(0,U.left-Oe.x)/B*e,y=Math.max(0,U.top-Oe.y)/B*e,f=g==="adaptive"?"Fit":`${Math.round(B*100)}%`,m=ee(Me,"in")!==Me,M=g==="manual"||Me>p,N=g==="adaptive"?{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}:{width:Ne,height:Ue,maxWidth:"none",maxHeight:"none",marginLeft:Oe.x,marginTop:Oe.y,flexShrink:0},A={cursor:g==="manual"?z$1?"grabbing":"grab":"default"};return jsxs("div",{className:`h-full w-full flex flex-col min-h-0 min-w-0 overflow-hidden ${R??""}`,children:[jsxs("div",{className:"flex w-full items-center px-8.5 py-3 gap-1 shrink-0",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Pa$1,{style:{width:20,height:20}}),onClick:Ee,disabled:!M,p:7,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700! h-[38px]!"}),jsx("button",{type:"button",onClick:g==="manual"?ue:void 0,className:"flex items-center justify-center bg-white dark:bg-neutral-800 h-[38px] min-w-16 px-3 select-none border border-gray-300 dark:border-neutral-600 rounded-md","aria-label":f,children:jsx(Ya,{style:{fontSize:12,fontWeight:500},children:f})}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(ma,{style:{width:14,height:14}}),onClick:qe,disabled:!m,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700! h-[38px]!",p:10}),jsx(z,{variant:"outlined","aria-label":"fit-to-container",size:"small",color:g==="adaptive"?"primary":"default",icon:jsx(ra,{style:{width:14,height:14}}),onClick:ue,className:`${g==="adaptive"?"bg-blue-50!":"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!"} ml-auto h-[38px]!`,p:10}),jsx(z,{variant:"outlined","aria-label":"original-size",size:"small",color:g==="manual"&&B===1?"primary":"default",onClick:Fe,className:`${g==="manual"&&B===1?"bg-blue-50!":"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!"} h-[38px]!`,py:10,px:11,children:jsx(Ya,{style:{fontSize:12,fontWeight:500,lineHeight:1},children:"1:1"})})]}),jsxs("div",{className:"flex-1 min-h-0 min-w-0 relative",children:[jsx("div",{ref:ve,className:`h-full w-full ${g==="adaptive"?"flex items-center justify-center overflow-hidden":"overflow-auto"}`,style:A,onDoubleClick:_e,children:D?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx(Ya,{color:"text.lighter",children:"Failed to load image"})}):jsx("img",{ref:we,src:r,alt:o,draggable:false,className:"block select-none",style:N,onLoad:Ce,onError:()=>$(true)})}),Lt&&jsxs("div",{className:"absolute bottom-3 right-3 rounded-lg overflow-hidden shadow-lg pointer-events-none",style:{width:x,height:l,backdropFilter:"blur(8px)",background:"rgba(255,255,255,0.75)"},children:[jsx("img",{src:r,alt:"",draggable:false,className:"block w-full h-full object-contain"}),jsx("div",{className:"absolute border-2 border-blue-500 rounded-sm",style:{width:Math.min(c,x),height:Math.min(u,l),left:Math.max(0,Math.min(h,x-c)),top:Math.max(0,Math.min(y,l-u)),background:"rgba(59,130,246,0.1)"}})]})]})]})},"ImageDriver");var yr=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full py-5.5 px-8.5",children:jsx("audio",{controls:true,src:r,className:"w-full"})}),"AudioDriver");var zt=a(({url:r})=>{let[o,n]=useState(null),[a$1,d]=useState(false),[s,p]=useState(true),[w,x]=useState(null);return useEffect(()=>{d(true);},[]),useEffect(()=>{if(!a$1)return;a(async()=>{try{let E=await import('./PdfDriver-DTZKADSW.mjs');n(()=>E.PdfDriver),p(!1);}catch(E){console.error("Failed to load PDF driver:",E),x("Failed to load PDF viewer"),p(false);}},"loadPdfDriver")();},[a$1]),a$1?s?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading PDF viewer..."})}):w||!o?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-red-500 text-center",children:jsx("p",{children:w||"PDF viewer unavailable"})})}):jsx(o,{url:r}):jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading PDF viewer..."})})},"PdfDriverWrapper");var kr=50,rn=1e4,Sr=a(({url:r,blob:o})=>{let n=useRef(null),a$1=useRef(null),[d,s]=useState(null),[p,w]=useState(true),[x,R]=useState(1),E=useRef(false),[g,I]=useState({width:0,height:0}),B=useRef(0),t=a(()=>{E.current=true,R(k=>Math.min(k+.25,4));},"handleZoomIn"),z$1=a(()=>{E.current=true,R(k=>Math.max(k-.25,.25));},"handleZoomOut");return useEffect(()=>{a(async()=>{if(a$1.current)try{w(!0),s(null);let P=o;if(!P&&r&&(P=await(await fetch(r)).blob()),!P){s("\u041D\u0435 \u043D\u0430\u0434\u0430\u043D\u043E \u0434\u043B\u044F DOCX \u0444\u0430\u0439\u043B\u0443");return}if(P.size/(1024*1024)>kr){s(`\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439 (> ${kr} \u041C\u0411)`);return}a$1.current.innerHTML="";let C=renderAsync(P,a$1.current,void 0,{debug:!0,experimental:!0,hideWrapperOnPrint:!0,breakPages:!0,ignoreLastRenderedPageBreak:!1}),D=new Promise((U,Q)=>setTimeout(()=>Q(new Error("\u0420\u0435\u043D\u0434\u0435\u0440\u0438\u043D\u0433 DOCX \u0437\u0430\u0439\u043D\u044F\u0432 \u043D\u0430\u0434\u0442\u043E \u0431\u0430\u0433\u0430\u0442\u043E \u0447\u0430\u0441\u0443")),rn));await Promise.race([C,D]),await new Promise(U=>requestAnimationFrame(U));let $=a$1.current.querySelector(".docx-wrapper");if($&&(B.current=$.offsetWidth,I({width:$.offsetWidth,height:$.offsetHeight})),n.current&&B.current>0){let U=n.current.clientWidth,Q=Math.min(U/B.current,1);R(Q);}w(!1);}catch(P){s(P?.message||"\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438 DOCX \u0444\u0430\u0439\u043B"),w(false);}},"renderDocument")();},[r,o]),useEffect(()=>{if(!n.current)return;let k=tn(S=>{if(!(E.current||B.current===0))for(let C of S){let D=C.contentRect.width,$=Math.min(D/B.current,1);R($);}},150),P=new ResizeObserver(k);return P.observe(n.current),()=>{P.disconnect(),k.cancel();}},[]),jsxs("div",{className:"h-full w-full flex flex-col px-0.5",children:[jsxs("div",{className:"flex justify-center items-stretch px-8 py-3 gap-1 border-b border-gray-200 dark:border-neutral-700",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Pa$1,{style:{width:20,height:20}}),onClick:z$1,disabled:x<=.25,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",p:7}),jsxs(pb,{py:8,px:8,className:"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!",children:[jsx(Ya,{color:"text.lighter",style:{fontSize:10},children:"Scale:"}),jsxs(Ya,{children:[Math.round(x*100),"%"]})]}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(ma,{style:{width:14,height:14}}),onClick:t,disabled:x>=4,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",p:10})]}),!!d&&!p&&jsx("div",{className:"text-red-500 p-8",children:d}),p&&jsx("div",{className:"flex items-center justify-center p-8",children:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F..."}),jsx("div",{ref:n,className:"w-full h-full overflow-auto bg-gray-400 dark:bg-neutral-700 [&::-webkit-scrollbar-thumb]:bg-gray-100 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-600 [&::-webkit-scrollbar-track]:bg-gray-400 dark:[&::-webkit-scrollbar-track]:bg-neutral-700",style:{scrollbarGutter:"stable both-edges"},children:jsx("div",{style:{width:g.width>0?g.width*x:void 0,height:g.height>0?g.height*x:void 0,overflow:"hidden",margin:"0 auto"},children:jsx("div",{ref:a$1,className:`[&>div.docx-wrapper_table_*]:wrap-break-word!
|
|
67
67
|
[&>div.docx-wrapper_table]:table-fixed!
|
|
68
68
|
[&>div.docx-wrapper_table_td]:w-fit!
|
|
69
69
|
[&>div.docx-wrapper_table_col]:w-fit!
|
|
@@ -79,11 +79,11 @@ ${r?`
|
|
|
79
79
|
[&>div.docx-wrapper]:box-border
|
|
80
80
|
[&>div.docx-wrapper]:min-w-fit!
|
|
81
81
|
[&>div.docx-wrapper]:w-full!
|
|
82
|
-
[&>div.docx-wrapper]:min-h-full`,style:{boxSizing:"border-box",wordBreak:"break-word",overflowWrap:"break-word",transform:`scale(${
|
|
83
|
-
`||
|
|
84
|
-
`)){let
|
|
82
|
+
[&>div.docx-wrapper]:min-h-full`,style:{boxSizing:"border-box",wordBreak:"break-word",overflowWrap:"break-word",transform:`scale(${x})`,transformOrigin:"top left"}})})})]})},"DocxDriver");var vn=a(r=>({js:[javascript({jsx:false})],jsx:[javascript({jsx:true})],ts:[javascript({typescript:true,jsx:false})],tsx:[javascript({typescript:true,jsx:true})],json:[json()],html:[html()],css:[css()],scss:[css()],py:[python()],java:[java()],cpp:[cpp()],c:[cpp()],php:[php()],rs:[rust()],xml:[xml()],yaml:[yaml()],yml:[yaml()],md:[markdown()],sql:[sql()],sh:[markdown()],bash:[markdown()]})[r]||[],"getLanguageExtension");function yn(){let[r,o]=useState(()=>typeof document<"u"?document.documentElement.classList.contains("dark"):false);return useEffect(()=>{let n=new MutationObserver(()=>{o(document.documentElement.classList.contains("dark"));});return n.observe(document.documentElement,{attributes:true,attributeFilter:["class"]}),()=>n.disconnect()},[]),r}a(yn,"useIsDarkMode");var Pr=a(({url:r,extension:o})=>{let[n,a$1]=useState(""),[d,s]=useState(true),[p,w]=useState(null),[x,R]=useState(0),E=useRef(null),g=yn();if(useEffect(()=>{a(async()=>{try{s(!0),w(null);let z=await fetch(r);if(!z.ok)throw new Error(`Failed to load file: ${z.statusText}`);let k=await z.text();if(o==="json")try{k=JSON.stringify(JSON.parse(k),null,2);}catch{}a$1(k);}catch(z){w(z instanceof Error?z.message:"Failed to load text content");}finally{s(false);}},"loadTextContent")();},[r]),useEffect(()=>{let t=a(()=>{if(E.current){let z=E.current.clientHeight;R(z);}},"updateHeight");return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t);}},[d]),d)return jsx("div",{className:"flex items-center justify-center p-8.5",children:jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading text content..."})});if(p)return jsx("div",{className:"flex items-center justify-center p-8.5",children:jsxs("div",{className:"text-red-500",children:["Error: ",p]})});if(o==="md")return jsx("div",{ref:E,className:"h-full w-full overflow-auto p-5 prose dark:prose-invert max-w-[100%] select-text prose-table px-8.5",style:{wordBreak:"break-word"},children:jsx(mn,{remarkPlugins:[bn],children:n})});let B=vn(o);return jsx("div",{ref:E,className:"h-full w-full",children:x>0&&jsx(nn,{value:n,theme:g?vscodeDark:vscodeLight,extensions:B,editable:false,height:`${x}px`,basicSetup:{lineNumbers:true,highlightActiveLineGutter:false,highlightActiveLine:false,foldGutter:true,dropCursor:false,indentOnInput:false,syntaxHighlighting:true,bracketMatching:true,closeBrackets:false,autocompletion:false,rectangularSelection:false,crosshairCursor:false,highlightSelectionMatches:false,closeBracketsKeymap:false,searchKeymap:false,foldKeymap:true,completionKeymap:false,lintKeymap:false}})})},"TextDriver");var Er=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full px-8.5",children:jsx("video",{controls:true,src:r,className:"w-full max-h-full"})}),"VideoDriver");var Dt=class{static{a(this,"LruChunkCache");}cache=new Map;pinned=new Set;maxSize;constructor(o=8){this.maxSize=o;}get(o){let n=this.cache.get(o);return n!==void 0&&(this.cache.delete(o),this.cache.set(o,n)),n}set(o,n){if(this.cache.delete(o),this.cache.size>=this.maxSize){for(let a of this.cache.keys())if(!this.pinned.has(a)){this.cache.delete(a);break}}this.cache.set(o,n);}pin(o){this.pinned.clear();for(let n of o)this.pinned.add(n);this.pinned.size>this.maxSize&&(this.maxSize=this.pinned.size+4);}clear(){this.cache.clear(),this.pinned.clear();}};var Ye="chunks",jt=class{static{a(this,"IndexedDBStore");}db;sessionId;dbName;constructor(o,n,a){this.db=o,this.sessionId=n,this.dbName=a;}async set(o,n){return new Promise((a,d)=>{let s=this.db.transaction(Ye,"readwrite");s.objectStore(Ye).put(n,o),s.oncomplete=()=>a(),s.onerror=()=>d(s.error);})}async get(o){return new Promise((n,a)=>{let s=this.db.transaction(Ye,"readonly").objectStore(Ye).get(o);s.onsuccess=()=>n(s.result??void 0),s.onerror=()=>a(s.error);})}async clear(){return new Promise((o,n)=>{let a=this.db.transaction(Ye,"readwrite");a.objectStore(Ye).clear(),a.oncomplete=()=>o(),a.onerror=()=>n(a.error);})}async destroy(){return this.db.close(),new Promise((o,n)=>{let a=indexedDB.deleteDatabase(this.dbName);a.onsuccess=()=>o(),a.onerror=()=>n(a.error),a.onblocked=()=>o();})}},Ft=class{static{a(this,"MemoryStore");}sessionId=null;chunks=new Map;async set(o,n){this.chunks.set(o,n);}async get(o){return this.chunks.get(o)}async clear(){this.chunks.clear();}async destroy(){this.chunks.clear();}};async function Nr(){let r=`${Date.now()}_${Math.random().toString(36).slice(2)}`,o=`csv-chunks-${r}`;try{let n=await new Promise((a,d)=>{let s=indexedDB.open(o,1);s.onupgradeneeded=()=>{let p=s.result;p.objectStoreNames.contains(Ye)||p.createObjectStore(Ye);},s.onsuccess=()=>a(s.result),s.onerror=()=>d(s.error);});return new jt(n,r,o)}catch{return console.warn("IndexedDB unavailable, falling back to in-memory storage"),new Ft}}a(Nr,"createChunkStore");function Dn(r){let o=[],n=false,a=0,d=0;for(let s=0;s<r.length;s++){let p=r[s];if(p==='"')n=!n;else if(!n&&(p===`
|
|
83
|
+
`||p==="\r"&&r[s+1]!==`
|
|
84
|
+
`)){let w=s,x=r.slice(a,w).replace(/\r$/,"");x&&o.push(x),a=s+1,d=s+1;}}return [o,r.slice(d)]}a(Dn,"splitCsvRows");function Cn(r,o){return r.stream?Promise.resolve(r.stream):r.blob?Promise.resolve(r.blob.stream()):r.url?fetch(r.url,{signal:o}).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.body}):Promise.reject(new Error("No source provided"))}a(Cn,"resolveStream");function Lr(r){let[o,n]=useState("idle"),[a,d]=useState(0),[s,p]=useState([]),[w,x]=useState(null),[R,E]=useState(0),[g,I]=useState(0),B=useRef(r),t=useRef(0),z=useRef(0),k=useRef(""),P=useRef(new Dt(10)),S=useRef(null),C=useRef(null),D=useRef(new Set),$=useRef(null),U=useRef(false),Q=useCallback((H,V)=>{let W=H+`
|
|
85
85
|
`+V.join(`
|
|
86
|
-
`),{data:Z}=Bt.parse(W,{header:true,dynamicTyping:false,skipEmptyLines:true});return Z},[]),
|
|
86
|
+
`),{data:Z}=Bt.parse(W,{header:true,dynamicTyping:false,skipEmptyLines:true});return Z},[]),oe=useCallback(async(H,V)=>{let W=S.current;if(!W)return;let Z=Math.max(0,Math.floor(H/1e3)-2),ne=Math.min(t.current-1,Math.floor(V/1e3)+2),ae=false;for(let X=Z;X<=ne;X++)if(P.current.get(X)===void 0&&!D.current.has(X)){D.current.add(X);try{let ee=await W.get(X);if(ee&&k.current){let de=Q(k.current,ee);P.current.set(X,de),ae=!0;}}finally{D.current.delete(X);}}ae&&I(X=>X+1);},[Q]),ie=useCallback(H=>{let V=Math.floor(H/1e3),W=H%1e3;return P.current.get(V)?.[W]},[g]),ye=useCallback(async()=>{U.current=true;let H=new AbortController;C.current=H,await S.current?.destroy();let V=await Nr();S.current=V,t.current=0,z.current=0,k.current="",P.current.clear(),p([]),d(0),x(null),E(0),n("loading");let W=B.current;try{let Z=await Cn(W,H.signal);n("streaming");let ne=Z.getReader(),ae=new TextDecoder("utf-8"),X="",ee=[],de=!0,ce=0,ue=0,Se=W.blob?.size||0;for(;;){if(H.signal.aborted)return;let{done:_e,value:qe}=await ne.read();if(_e)break;ce+=qe.byteLength,Se&&E(ce/Se),X+=ae.decode(qe,{stream:!0});let[Ee,Fe]=Dn(X);if(Ee.length!==0){if(X=Fe,de&&Ee.length>0){k.current=Ee.shift().replace(/^\uFEFF/,"");let{data:Ce}=Bt.parse(k.current,{});Ce[0]&&p(Ce[0]),de=!1;}for(let Ce of Ee)if(Ce.trim()&&(ee.push(Ce),ee.length>=1e3)){let Me=t.current;if(await V.set(Me,ee),Me<3){let Ne=Q(k.current,ee);P.current.set(Me,Ne);}t.current+=1,ue+=ee.length,ee=[],z.current=ue,$.current||($.current=requestAnimationFrame(()=>{d(z.current),$.current=null;}));}}}if(X.trim())if(de){k.current=X;let{data:_e}=Bt.parse(k.current,{});_e[0]&&p(_e[0]);}else ee.push(X);ee.length>0&&(await V.set(t.current,ee),t.current+=1,ue+=ee.length),$.current&&(cancelAnimationFrame($.current),$.current=null),d(ue),E(1),n("done");}catch(Z){if(H.signal.aborted)return;let ne=Z instanceof Error?Z.message:"Unknown error";x(ne),n("partial_error");}finally{U.current=false;}},[Q]),le=useRef(false);useEffect(()=>(le.current=true,U.current||ye(),()=>{le.current=false,queueMicrotask(()=>{le.current||(C.current?.abort(),S.current?.destroy(),$.current&&cancelAnimationFrame($.current));});}),[ye]);let we=S.current?.sessionId??null,ve=t.current,Y=useCallback(H=>{P.current.pin(H);},[]);return {state:o,headers:s,totalRows:a,getRow:ie,error:w,progress:R,prefetchRange:oe,sessionId:we,chunkCount:ve,pinChunks:Y}}a(Lr,"useCsvStream");var Mn=`
|
|
87
87
|
const DB_VERSION = 1;
|
|
88
88
|
const STORE_NAME = 'chunks';
|
|
89
89
|
|
|
@@ -169,7 +169,7 @@ self.onmessage = async (e) => {
|
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
171
|
};
|
|
172
|
-
`,st=null,ct=null;function Ot(){if(!st){let r=new Blob([Mn],{type:"application/javascript"});ct=URL.createObjectURL(r),st=new Worker(ct);}return st}a(Ot,"getSearchWorker");function Ir(){st?.terminate(),st=null,ct&&(URL.revokeObjectURL(ct),ct=null);}a(Ir,"terminateSearchWorker");function zr(r,o){let[n,a]=useState(""),[d,s]=useState("idle"),[
|
|
172
|
+
`,st=null,ct=null;function Ot(){if(!st){let r=new Blob([Mn],{type:"application/javascript"});ct=URL.createObjectURL(r),st=new Worker(ct);}return st}a(Ot,"getSearchWorker");function Ir(){st?.terminate(),st=null,ct&&(URL.revokeObjectURL(ct),ct=null);}a(Ir,"terminateSearchWorker");function zr(r,o){let[n,a]=useState(""),[d,s]=useState("idle"),[p,w]=useState(null),[x,R]=useState({searched:0,total:0,found:0}),E=useRef(null),g=useCallback(t=>{if(!r||o===0)return;if(!t.trim()){w(null),s("idle"),R({searched:0,total:0,found:0});return}s("searching"),R({searched:0,total:o,found:0});let z=Ot();z.onmessage=k=>{let{type:P}=k.data;P==="progress"&&R({searched:k.data.searched,total:k.data.total,found:k.data.found}),P==="done"&&(w(k.data.matchedIndices),s("done")),P==="cancelled"&&s("idle"),P==="error"&&(s("idle"),console.error("Search worker error:",k.data.message));},z.postMessage({type:"cancel"}),z.postMessage({type:"search",sessionId:r,query:t,chunkCount:o,chunkSize:1e3});},[r,o]),I=useCallback(t=>{a(t),E.current&&clearTimeout(E.current),E.current=setTimeout(()=>{g(t);},300);},[g]),B=useCallback(()=>{a(""),w(null),s("idle"),R({searched:0,total:0,found:0}),Ot().postMessage({type:"cancel"});},[]);return useEffect(()=>()=>{E.current&&clearTimeout(E.current),Ir();},[]),{query:n,onQueryChange:I,clearSearch:B,searchState:d,matchedIndices:p,searchProgress:x}}a(zr,"useCsvSearch");var _n={loading:"Loading...",rows:"rows",retry:"Retry",searchPlaceholder:"Search...",searchFound:"found",searching:"Searching..."};function An(r,o,n){let a=1/0,d=-1/0,s=Math.min(n,r.length-1);for(let p=o;p<=s;p++){let w=r[p];w<a&&(a=w),w>d&&(d=w);}return {min:a,max:d}}a(An,"getMinMax");function jn(r,o,n){let a=Math.min(100,n),d=r.map(()=>[]);for(let s=0;s<a;s++){let p=o(s);if(p)for(let w=0;w<r.length;w++){let x=p[r[w]]??"";d[w].push(x.length);}}return r.map((s,p)=>{let w=s.length*9,x=d[p];if(x.length===0)return Math.min(Math.max(150,w+24),800);x.sort((B,t)=>B-t);let R=Math.floor(x.length*.9),g=x[R]*7.5+24,I=Math.max(w+24,g);return Math.min(Math.max(50,I),800)})}a(jn,"estimateColumnWidths");var $t=a(r=>{let{state:o,headers:n,totalRows:a$1,getRow:d,error:s,progress:p,prefetchRange:w,sessionId:x,chunkCount:R,pinChunks:E}=Lr(r),g={..._n,...r.labels},{query:I,onQueryChange:B,clearSearch:t,searchState:z$1,matchedIndices:k}=zr(x,R),P=k!==null,S=P?k.length:a$1,[C,D]=useState([]),$=useRef(null),U=useRef(null),Q=useRef(false),oe=useRef(false);useEffect(()=>{oe.current=false,Q.current=false,D([]);},[x]),useEffect(()=>{if(n.length===0||Q.current||oe.current||a$1===0)return;let Y=d(0);!Y||!n.some(H=>Y[H]!==void 0)||(oe.current=true,D(jn(n,d,a$1)));},[n,a$1,d]),useEffect(()=>()=>U.current?.(),[]);let ie=useCallback((Y,H)=>{Y.preventDefault(),Q.current=true;let V=Y.clientX,W=C[H]??150;$.current={index:H,startX:V,startWidth:W};let Z=a(ae=>{if(!$.current)return;let X=ae.clientX-V,ee=Math.max(50,W+X);D(de=>{let ce=[...de];return ce[H]=ee,ce});},"onMouseMove"),ne=a(()=>{$.current=null,U.current=null,document.removeEventListener("mousemove",Z),document.removeEventListener("mouseup",ne);},"onMouseUp");U.current=ne,document.addEventListener("mousemove",Z),document.addEventListener("mouseup",ne);},[C]),ye=C.reduce((Y,H)=>Y+H,0),le=useCallback(()=>jsx(On,{children:n.map((Y,H)=>jsxs(Hn,{style:{width:C[H]},children:[Y,jsx(Wn,{onMouseDown:V=>ie(V,H)})]},H))}),[n,C,ie]),we=useCallback(Y=>{if(P&&k){let H=1/0,V=-1/0,W=new Set,Z=Math.min(Y.endIndex,k.length-1);for(let ne=Y.startIndex;ne<=Z;ne++){let ae=k[ne];ae<H&&(H=ae),ae>V&&(V=ae),W.add(Math.floor(ae/1e3));}E(Array.from(W)),H!==1/0&&w(H,V);}else E([]),w(Y.startIndex,Y.endIndex);},[w,E,P,k]),ve=useCallback(Y=>{let H=P&&k?k[Y]:Y,V=d(H);return V?n.map((W,Z)=>jsx(jr,{style:{width:C[Z]},children:V[W]??""},Z)):n.map((W,Z)=>jsx(jr,{style:{width:C[Z]},children:jsx(Yn,{})},Z))},[d,n,C,P,k]);return useEffect(()=>{if(S>0)if(P&&k){let{min:Y,max:H}=An(k,0,50);Y!==1/0&&w(Y,H);}else w(0,50);},[S,P,k,w]),o==="idle"||o==="loading"||o==="streaming"?jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-3",children:[jsx("div",{className:"h-10 w-10 rounded-full border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent"}),o==="streaming"&&a$1>0&&jsxs(Ya,{variant:"body",color:"text.lighter",style:{fontSize:12},children:[g.loading," ",a$1.toLocaleString()," ",g.rows,p>0?` (${Math.round(p*100)}%)`:""]})]}):jsxs("div",{className:"h-full w-full flex flex-col",children:[jsxs("div",{className:"flex items-center justify-between px-4 py-2 gap-3",children:[jsx(Ya,{variant:"body",color:"text.lighter",style:{fontSize:12,whiteSpace:"nowrap"},children:`${S.toLocaleString()} ${P?g.searchFound:g.rows}${P?` / ${a$1.toLocaleString()}`:""}`}),jsxs(qn,{children:[jsx(Un,{type:"text",value:I,onChange:Y=>B(Y.target.value),placeholder:g.searchPlaceholder}),z$1==="searching"?jsx(Vn,{children:jsx(Kn,{})}):I?jsx(Zn,{onClick:t,type:"button",children:"\u2715"}):null]})]}),o==="partial_error"&&jsxs(pb,{className:"flex items-center justify-between mx-4 mb-2 px-3 py-2 rounded bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-900",children:[jsx(Ya,{variant:"body",className:"text-red-600 dark:text-red-400",style:{fontSize:12},children:s}),r.onRetry&&jsx(z,{onClick:()=>r.onRetry(s??""),variant:"outlined",size:"small",children:g.retry})]}),jsx("div",{className:"flex-1 min-h-0",children:n.length>0&&jsx(TableVirtuoso,{totalCount:S,increaseViewportBy:300,fixedHeaderContent:le,itemContent:ve,rangeChanged:we,style:{height:"100%"},components:{Table:a(({style:Y,context:H,...V})=>jsx(Fn,{style:{...Y,minWidth:"100%",width:ye},...V}),"Table"),TableHead:Bn,TableRow:a(({context:Y,...H})=>jsx($n,{...H}),"TableRow")}},P?"filtered":"all")})]})},"CsvDriver"),Fn=styled.table(({theme:r})=>`
|
|
173
173
|
border-collapse: separate;
|
|
174
174
|
border-spacing: 0;
|
|
175
175
|
table-layout: fixed;
|
|
@@ -273,7 +273,7 @@ self.onmessage = async (e) => {
|
|
|
273
273
|
border-top-color: ${r.colors.text?.light};
|
|
274
274
|
border-radius: 50%;
|
|
275
275
|
animation: ${Gn} 0.6s linear infinite;
|
|
276
|
-
`);var Wr=memo(a(function({extension:o,blob:n,path:a,buffer:d,stream:s,csvLabels:
|
|
276
|
+
`);var Wr=memo(a(function({extension:o,blob:n,path:a,buffer:d,stream:s,csvLabels:p,onCsvRetry:w,not_supported_message:x=" Sorry, this file type isn\u2019t supported yet."}){let R=o.toLocaleLowerCase().trim(),E;if(a?E=a:n&&(E=URL.createObjectURL(n)),["csv","tsv"].includes(R))return jsx($t,{url:E,blob:n,stream:s,labels:p,onRetry:w});if(E){if(["jpeg","jpg","png","gif","bmp","ico","svg","tiff","webp"].includes(R))return jsx(br,{url:E});if(["aac","ac3","aiff","amr","dts","flac","m4a","mp3","ogg","opus","wav","wma"].includes(R))return jsx(yr,{url:E});if(["3gp","avi","dv","flv","m2ts","m4v","mkv","mov","mp4","mpeg","mpg","mts","ogv","vob","webm"].includes(R))return jsx(Er,{url:E});if(o==="pdf")return jsx(zt,{url:E});if(["txt","js","jsx","ts","tsx","json","html","css","scss","py","java","cpp","c","cs","php","rb","go","rs","swift","kt","xml","yaml","yml","md","sql","sh","bash","cfg","conf","env","htm","ini","log","markdown","ndjson","properties","rst","toml"].includes(R))return jsx(Pr,{url:E,extension:R})}return R==="docx"?jsx(Sr,{url:E,blob:n}):jsx("div",{className:"h-full flex flex-col justify-center items-center",children:jsx(pb,{className:"mx-5",children:jsx(Ya,{variant:"h2",color:"text.light",weight:500,className:"text-center",children:x})})})},"Driver"));var Xd=a(r=>jsx("div",{className:"h-full w-full",children:jsx(Wr,{...r})}),"FileViewer");var Yr=250,ru=a(({text:r,speed:o=50,onDone:n,markdown:a$1=false,markdownComponents:d={},className:s,...p})=>{let[w,x]=useState(""),R=useRef(null),E=useRef(null);return useEffect(()=>{let g=false;if(o>0){x(""),R.current=performance.now();let I=a(B=>{if(g||!R.current)return;let t=B-R.current,z=t/o>Yr?o/2:o,k=t/o>Yr?1.5:1,P=Math.floor(t/z*k);if(P>=r.length){x(r),g=true,n?.();return}x(r.slice(0,P)),E.current=requestAnimationFrame(I);},"tick");E.current=requestAnimationFrame(I);}else x(r),n?.();return ()=>{E.current&&cancelAnimationFrame(E.current);}},[r,o,n]),a$1?jsx("div",{className:s,children:jsx(mn,{remarkPlugins:[bn],components:d,...p,children:w})}):jsx(Ya,{className:s,...p,children:w})},"Typewriter");var ca={timeout:2e3,message:"Copied!"},gu=a(({text:r,children:o,format:n="text/plain",tooltip:a$1,positions:d=["top"],className:s})=>{let[p,w]=useState(false),x=useRef(null),R={...ca,...a$1},E=Array.isArray(d)?d[0]:d,g=a(async()=>{"clipboard"in navigator?await navigator.clipboard.writeText(r):oa(r,{format:n}),w(true),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>w(false),R.timeout);},"handleCopy");return useEffect(()=>()=>{x.current&&clearTimeout(x.current);},[]),jsx(Popover,{padding:6,positions:d,isOpen:p,align:"center",onClickOutside:()=>w(false),content:!!a$1?.message&&jsx(Cb,{className:s,$position:E,$offset:6,children:a$1.message}),containerStyle:{zIndex:"9999"},children:jsx("div",{className:"inline-block",onMouseLeave:()=>w(false),children:o({copy:g})})})},"CopyToClipboard");var Ur=a(r=>new Date(r?Array.isArray(r)?r[1]||r[0]||new Date:r:new Date),"getInitValue"),Rt=a((r,o)=>{let n;if(o){let d=parse(r||"",o,new Date);if(isValid(d)&&getYear(d)>=1970)return d}let a=new Date(r||"");return isNaN(a.getTime())?n:a},"parseDate"),ba=a((r,o)=>{let n=r?Rt(r,o):void 0;return n&&o?format(n,o):r},"renderDate"),Pu=a(({value:r,range:o,inline:n=false,minDate:a=new Date(getYear(new Date)-5,0,1),maxDate:d=new Date(getYear(new Date)+5,11,31),format:s="dd.MM.yyyy",onChange:p,...w})=>{let[x,R]=useState(getMonth(Ur(r))),[E,g]=useState(getYear(Ur(r))),I=useMemo(()=>{if(r){if(Array.isArray(r)){let t=Rt(r[0],s),z=Rt(r[1],s);return [t,z]}return Rt(r,s)}},[r]),B=useCallback(t=>{if(o){let z=!!(I&&Array.isArray(I)&&I[0]),k=!!(I&&Array.isArray(I)&&I[1]);!z||z&&k?p?.([t.toString(),""]):z&&!k&&(t<I[0]?p?.([t.toString(),I[0].toString()]):p?.([I[0].toString(),t.toString()]));}else p?.(t.toString());},[o,I,p]);return n?jsx(Zr,{month:x,year:E,minDate:a,maxDate:d,selectedDate:I,onSelectDate:B,onChangeMonth:R,onChangeYear:g}):o?jsx(va,{range:true,value:r,onChange:p,...w}):jsx(ya,{value:r,onChange:p,minDate:a,maxDate:d,month:x,year:E,selectedDate:I,onChangeMonth:R,onChangeYear:g,onSelectDate:B,formatStr:s,...w})},"DatePicker"),va=a(({minDate:r,maxDate:o,value:n,onChange:a})=>null,"DatePickerGroupInput"),ya=a(({placeholder:r,value:o,onChange:n,inputProps:a,...d})=>{let[s,p]=useState(false),w=y(),x=useCallback(()=>{p(false);},[]);return jsx(Popover,{positions:["bottom","top","right","left"],align:"start",isOpen:s,onClickOutside:()=>p(false),content:jsx(pb,{children:jsx(Zr,{...d,onClose:x})}),containerStyle:{zIndex:`${w.zIndex.popover}`},children:jsx("div",{onClick:()=>p(true),children:jsx(kb,{...a,placeholder:r,value:ba(o,d.formatStr),onChange:R=>n?.(R.target.value)})})})},"DatePickerInput"),Zr=a(({month:r,year:o,selectedDate:n,minDate:a,maxDate:d,onSelectDate:s,onChangeMonth:p,onChangeYear:w,onClose:x})=>{let R=useMemo(()=>new Array(12).fill(null).map((S,C)=>{let D=new Date(0,C);return {value:C+1,inputDisplay:format(D,"MMMM")}}),[]),E=useMemo(()=>{let S=getYear(a),D=getYear(d)-S+1;return new Array(D).fill(null).map(($,U)=>{let Q=S+U;return {value:Q,inputDisplay:Q.toString()}})},[a,d]),g=useMemo(()=>new Array(7).fill(null).map((S,C)=>{let D=startOfWeek(new Date,{weekStartsOn:C});return format(D,"EEE")}),[]),I=useMemo(()=>{let S=startOfMonth(new Date(o,r)),C=endOfMonth(new Date(o,r)),D=getDay(S)===0?S:previousSunday(S),$=getDay(C)===6?C:nextSaturday(C),U=differenceInDays($,D),Q=differenceInDays(S,D);return new Array(U+1).fill(null).map((oe,ie)=>new Date(o,r,ie-Q+1))},[r,o]),B=useCallback(()=>{r===0?(w(o-1),p(11)):p(r-1);},[r,o]),t=useCallback(()=>{r===11?(w(o+1),p(0)):p(r+1);},[r,o]),z$1=useMemo(()=>a?!(o<getYear(a)||o===getYear(a)&&r<=getMonth(a)):true,[r,o,a]),k=useMemo(()=>d?!(o>getYear(d)||o===getYear(d)&&r>=getMonth(d)):true,[r,o,d]),P=useCallback(S=>{S.stopPropagation();},[]);return jsxs("div",{className:"flex flex-col date-picker-calendar",onClick:P,children:[jsxs("div",{className:"flex justify-center items-center gap-2 pb-3",children:[z$1&&jsx(z,{size:"small",variant:"empty",icon:jsx(G,{}),onClick:B}),jsxs("div",{className:"flex-1 flex justify-center gap-1",children:[jsx(ib,{placeholder:"",hasBorder:false,selected:r+1,options:R,onSelect:S=>p(S-1),maxWidth:150,maxHeight:300}),jsx(ib,{placeholder:"",hasBorder:false,selected:o,options:E,onSelect:S=>w(S),maxWidth:100,maxHeight:300})]}),k&&jsx(z,{size:"small",variant:"empty",icon:jsx(H,{}),onClick:t})]}),jsx("div",{className:"grid grid-cols-7 gap-2",children:g.map(S=>jsx("div",{className:"text-center",children:S},S))}),jsx("div",{className:"grid grid-cols-7 gap-2 mt-2",children:I.map(S=>{let C=getMonth(S)===r,D=format(S,"yyyy-MM-dd")===format(new Date,"yyyy-MM-dd"),$=n&&(Array.isArray(n)&&(n[0]&&format(S,"yyyy-MM-dd")===format(n[0],"yyyy-MM-dd")||n[1]&&format(S,"yyyy-MM-dd")===format(n[1],"yyyy-MM-dd"))||!Array.isArray(n)&&format(S,"yyyy-MM-dd")===format(n,"yyyy-MM-dd")),U=n&&Array.isArray(n)&&n[0]&&n[1]&&S>n[0]&&S<n[1],Q=a&&differenceInDays(S,a)<0||d&&differenceInDays(S,d)>0||!C;return jsx(wa,{date:S,isCurrentMonth:C,isCurrentDay:D,isSelected:!!$,isInRange:!!U,isDisabled:!!Q,onSelectDate:oe=>{s(oe),x?.();}},S.toISOString())})})]})},"DatePickerCalendar"),wa=a(({date:r,isCurrentMonth:o,isCurrentDay:n,isSelected:a$1,isInRange:d,isDisabled:s,onSelectDate:p})=>jsx("div",{className:`text-center p-2 cursor-pointer rounded ${s?"text-gray-400 dark:text-neutral-600 cursor-not-allowed":a$1?"bg-blue-500 text-white":d?"bg-blue-100 dark:bg-blue-900/30":n?"text-blue-500":o?"text-black dark:text-white":"text-gray-400 dark:text-neutral-600"} ${s?"":a$1?"hover:bg-blue-600":"hover:bg-gray-100 dark:hover:bg-neutral-700"}`,onClick:a(x=>{s||p(r);},"handleClick"),children:format(r,"d")}),"CalendarDay");var Sa=a(r=>{switch(r){case "primary":return "bg-blue-100 border-blue-200 dark:bg-blue-800/10 dark:border-blue-900";case "error":return "bg-red-100 border-red-200 dark:bg-red-800/10 dark:border-red-900";case "warning":return "bg-yellow-100 border-yellow-200 dark:bg-yellow-800/10 dark:border-yellow-900";case "success":return "bg-teal-100 border-teal-200 dark:bg-teal-800/10 dark:border-teal-900";case "default":default:return "bg-white border border-gray-200 dark:bg-neutral-800 dark:border-neutral-700"}},"getColorStyle"),Da=a(r=>{switch(r){case "primary":return "text-blue-800 dark:text-blue-500";case "error":return "text-red-800 dark:text-red-500";case "warning":return "text-yellow-800 dark:text-yellow-500";case "success":return "text-teal-800 dark:text-teal-500";case "default":default:return "text-gray-800 dark:text-white"}},"getTextColor"),Ca=a(r=>{switch(r){case "bottom":return "translate-y-4";case "top":default:return "-translate-y-4"}},"getTransitionStarting"),Jr=a(({id:r,color:o="default",message:n,duration:a,transitionDirection:d,cancelable:s=true,onClose:p})=>{let[w,x]=useState(false),[R,E]=useState(false),g=useRef(null),I=useCallback(()=>{x(true),g.current=setTimeout(()=>{p(r);},300);},[r,p]);return useEffect(()=>{if(E(true),a&&a<1/0){let B=setTimeout(()=>{I();},a);return ()=>clearTimeout(B)}},[a,I]),useEffect(()=>()=>{g.current&&clearTimeout(g.current);},[]),jsx("div",{className:`max-w-xs
|
|
277
277
|
border
|
|
278
278
|
w-full
|
|
279
279
|
text-sm
|
|
@@ -281,8 +281,8 @@ self.onmessage = async (e) => {
|
|
|
281
281
|
transition-all
|
|
282
282
|
ease-in-out
|
|
283
283
|
duration-300
|
|
284
|
-
${
|
|
285
|
-
${
|
|
286
|
-
${Sa(o)} ${Da(o)}`,children:jsxs("div",{className:"flex p-4",style:{wordBreak:"break-word"},children:[n,s&&jsx("div",{className:"ms-auto",children:jsx("button",{type:"button",className:"inline-flex shrink-0 justify-center items-center size-5 rounded-lg opacity-50 hover:opacity-100 focus:outline-hidden focus:opacity-100 cursor-pointer","aria-label":"Close",onClick:
|
|
284
|
+
${w||!R?"opacity-0":"opacity-100"}
|
|
285
|
+
${R?"translate-y-0":Ca(d)}
|
|
286
|
+
${Sa(o)} ${Da(o)}`,children:jsxs("div",{className:"flex p-4",style:{wordBreak:"break-word"},children:[n,s&&jsx("div",{className:"ms-auto",children:jsx("button",{type:"button",className:"inline-flex shrink-0 justify-center items-center size-5 rounded-lg opacity-50 hover:opacity-100 focus:outline-hidden focus:opacity-100 cursor-pointer","aria-label":"Close",onClick:I,children:jsxs("svg",{className:"shrink-0 size-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M18 6 6 18"}),jsx("path",{d:"m6 6 12 12"})]})})})]})})},"Toast");var Pa=a((r,o)=>{switch(r){case "top-right":return `top-${o} right-${o}`;case "top-left":return `top-${o} left-${o}`;case "bottom-right":return `bottom-${o} right-${o}`;case "bottom-left":return `bottom-${o} left-${o}`;default:return `top-${o} right-${o}`}},"getPosition"),Ou=a(({items:r,onClose:o,position:n="top-right",offset:a=4})=>{let d=useMemo(()=>n.startsWith("top")?"top":"bottom",[n]);return jsx("div",{className:`fixed flex min-w-0 max-w-xs w-full flex-col z-50 gap-2 ${Pa(n,a)}`,children:r.map(s=>jsx(Jr,{transitionDirection:d,...s,onClose:o},s.id))})},"ToastsList");var Gu=a(({onChange:r,disabled:o,multiple:n,dragText:a$1="Drop file to upload",className:d})=>{let[s,p]=useState(false),[w,x]=useState(false),[R,E]=useState(false);return useEffect(()=>{if(o)return;let g=0,I=a(k=>{k.preventDefault(),g++,g===1&&p(true);},"handleDragEnter"),B=a(k=>{k.preventDefault(),g--,g===0&&p(false);},"handleDragLeave"),t=a(k=>{k.preventDefault();},"handleDragOver"),z=a(async k=>{if(k.preventDefault(),g=0,p(false),!w)try{x(!0);let P=await lb(k.dataTransfer.items);r(n?P:P.length>0?[P[0]]:[]);}catch(P){console.error("\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0447\u0438\u0442\u0430\u043D\u043D\u0456 \u0444\u0430\u0439\u043B\u0456\u0432:",P);}finally{x(false);}},"handleDrop");return document.addEventListener("dragenter",I),document.addEventListener("dragleave",B),document.addEventListener("dragover",t),document.addEventListener("drop",z),()=>{document.removeEventListener("dragenter",I),document.removeEventListener("dragleave",B),document.removeEventListener("dragover",t),document.removeEventListener("drop",z);}},[o,w,n,r]),useEffect(()=>{E(true);},[]),R&&s?createPortal(jsx("div",{className:`fixed top-0 bottom-0 left-0 right-0 flex items-center justify-center bg-[rgba(251,250,250,0.9)] dark:bg-[rgba(12,10,18,0.9)] z-9999 ${d}`,children:jsx(Ya,{variant:"h3",className:"px-3 py-2 bg-white dark:bg-neutral-800 rounded-md border border-gray-200 dark:border-neutral-700",children:a$1})}),document.body):null},"GlobalDropZone");
|
|
287
287
|
export{vc as Container,gu as CopyToClipboard,Pu as DatePicker,Zr as DatePickerCalendar,Xd as FileViewer,tl as FullscreenCard,Gu as GlobalDropZone,Wo as Graph2D,rc as PageContent,Ks as PageLayout,Dc as SplitterLayout,lo as Styled,oo as StyledContainer,io as StyledMain,sc as SubNav,Ou as ToastsList,ru as Typewriter};//# sourceMappingURL=index.mjs.map
|
|
288
288
|
//# sourceMappingURL=index.mjs.map
|