@cyber-harbour/ui 2.0.54 → 2.1.0
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/{PdfDriver-DXBZZSBO.mjs → PdfDriver-B23AQDZV.mjs} +3 -3
- package/dist/{PdfDriver-DXBZZSBO.mjs.map → PdfDriver-B23AQDZV.mjs.map} +1 -1
- package/dist/{PdfDriver-YUAER26N.js → PdfDriver-LHN7B43D.js} +3 -3
- package/dist/{PdfDriver-YUAER26N.js.map → PdfDriver-LHN7B43D.js.map} +1 -1
- package/dist/chunk-FGJLQ56A.mjs +1340 -0
- package/dist/{chunk-NEKSHIKN.mjs.map → chunk-FGJLQ56A.mjs.map} +1 -1
- package/dist/chunk-ZIIDXY3U.js +1340 -0
- package/dist/{chunk-6LI43DVZ.js.map → chunk-ZIIDXY3U.js.map} +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.js +18 -18
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -16
- package/dist/index.mjs.map +1 -1
- package/dist/styles/tailwind.css +1 -1
- package/dist/styles/tailwind.css.map +1 -1
- package/package.json +16 -3
- package/dist/chunk-6LI43DVZ.js +0 -1340
- package/dist/chunk-NEKSHIKN.mjs +0 -1340
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,w,x,u,c,l,z,Pa,ob,ma,Ya,Ab,y,kb,G,ib,H}from'./chunk-
|
|
1
|
+
import {a,w,x,u,c,l,z,Pa,ob,ma,Ya,Ab,y,kb,G,ib,H}from'./chunk-FGJLQ56A.mjs';export{sb as Alert,A as AlertIcon,za as AndroidIcon,B as ApiIcon,C as ArrowCircleTopRightIcon,D as ArrowRightIcon,ia as BallsMenu,ob as Box,q as BreakpointProvider,E as BugReportIcon,Na as BurgerMenuIcon,sa as BusIcon,z as Button,F as CalendarIcon,ta as CarIcon,Ib as ChatField,ja as CheckIcon,ub as Checkbox,ka as ChevronDownIcon,G as ChevronLeftIcon,H as ChevronRightIcon,la as ChevronUpIcon,Oa as ClockIcon,I as CloseCircleIcon,J as ClosedLockIcon,Bb as ContentLoader,fb as ContextMenu,gb as ContextMenuDelimiter,qa as CrossIcon,K as DataSetsIcon,L as DeepSearchIcon,M as DisabledVisibleIcon,N as DocsIcon,O as DownloadIcon,xb as Drawer,zb as DrawerBody,yb as DrawerHeader,P as EditUserIcon,qb as EmptyData,Q as EnableVisibleIcon,R as EnterArrowLeftIcon,Ra as FaceSearchIcon,lb as FileField,xa as FileIcon,S as FiltersIcon,Ia as FlashIcon,mb as FlexContainer,nb as FlexItem,Ba as FolderAlertIcon,Ja as FolderInfoIcon,ab as Header,bb as HeaderDelimeter,cb as HeaderSection,T as HomepageIcon,Qa as ImageIcon,oa as InfoCircleFilledIcon,U as InfoCircleIcon,kb as Input,ya as IosIcon,tb as Label,pb as Line,vb as LinerProgress,Za as ListMenu,_a as ListMenuItem,$a as ListMenuSection,V as MapRadarIcon,ra as MaximizeIcon,Sa as MessageAsteriskIcon,Aa as MicrosoftIcon,Pa as MinusIcon,Db as Modal,Fb as ModalBody,Gb as ModalFooter,Eb as ModalHeader,W as MoonIcon,X as OpenLockIcon,Y as OrganizationIcon,Cb as Overlay,eb as Pagination,Ea as PassportIcon,Z as PasswordFinderIcon,Ga as PencilIcon,_ as PhonebookIcon,va as PlaneIcon,ma as PlusIcon,Fa as PointIcon,$ as PrintIcon,aa as Profiler2Icon,ba as ProfilerIcon,Jb as ProgressLoader,Ca as RelationIcon,Da as RelationPointsIcon,Ka as RotateLeftIcon,La as RotateRightIcon,jb as RowActionsMenu,ca as SandBoxIcon,da as SearchIcon,ib as Select,wa as ShipIcon,Ua as Sidebar,Ta as SidebarContext,Wa as SidebarDelimeter,Va as SidebarItem,Xa as SidebarSection,ea as StatisticIcon,fa as SunIcon,wb as Switch,db as Table,rb as Tag,Hb as TailwindExample,s as ThemeProvider,Ab as Tooltip,Ya as Typography,pa as UnfoldIcon,ga as UpRightArrowCircleIcon,Ma as UploadImageIcon,Ha as UserInCircleIcon,na as UsersIcon,ha as VectorIcon,ua as WayIcon,f as convertPaletteToRem,w as createComponent,x as createStyledComponent,p as darkTheme,o as darkThemePx,t as destructSpaceProps,u as generatePropertySpaceStyle,k as getBreakpoint,h as getButtonSizeStyles,g as getButtonStyles,i as getInputStyles,v as getResponsiveProps,j as getTypographyStyles,l as hexToRgba,n as lightTheme,m as lightThemePx,e as propToRem,c as pxToRem,d as remToPx,b as resolveThemeColor,r as useBreakpoint,hb as useContextMenuControl,y as useTheme}from'./chunk-FGJLQ56A.mjs';import Cr,{styled,useTheme}from'styled-components';export{ServerStyleSheet,StyleSheetManager}from'styled-components';import {jsx,jsxs,Fragment as Fragment$1}from'react/jsx-runtime';import Rt,{useState,useRef,useCallback,useEffect,Fragment,forwardRef,useMemo,useImperativeHandle,useLayoutEffect,memo}from'react';import Br from'lodash.clonedeep';import {scaleOrdinal,schemeCategory10,forceSimulation,forceLink,forceManyBody,forceX,forceY,forceCenter,forceCollide}from'd3';import Mr from'react-content-loader';import {renderAsync}from'docx-preview';import co from'@uiw/react-codemirror';import {vscodeDark}from'@uiw/codemirror-theme-vscode';import {javascript}from'@codemirror/lang-javascript';import {json}from'@codemirror/lang-json';import {html}from'@codemirror/lang-html';import {css}from'@codemirror/lang-css';import {python}from'@codemirror/lang-python';import {java}from'@codemirror/lang-java';import {cpp}from'@codemirror/lang-cpp';import {php}from'@codemirror/lang-php';import {rust}from'@codemirror/lang-rust';import {xml}from'@codemirror/lang-xml';import {yaml}from'@codemirror/lang-yaml';import {markdown}from'@codemirror/lang-markdown';import {sql}from'@codemirror/lang-sql';import Po from'react-markdown';import So from'remark-gfm';import Mo from'copy-to-clipboard';import {parse,isValid,getYear,format,getMonth,startOfWeek,getWeeksInMonth,startOfMonth,previousMonday,differenceInDays}from'date-fns';import {Popover}from'react-tiny-popover';var bi=a(({children:r,className:o})=>jsx(dr,{className:o,children:r}),"PageLayout"),dr=styled.div`
|
|
2
2
|
display: grid;
|
|
3
3
|
min-height: 100dvh;
|
|
4
4
|
position: relative;
|
|
@@ -9,11 +9,11 @@ import {a,w,x,u,c,l,z,Pa,ob,ma,Ya,Ab,y,kb,G,ib,H}from'./chunk-NEKSHIKN.mjs';expo
|
|
|
9
9
|
& > header {
|
|
10
10
|
grid-area: header;
|
|
11
11
|
}
|
|
12
|
-
`;var
|
|
12
|
+
`;var Pi=a(({children:r,className:o})=>jsx(hr,{className:o,children:r}),"PageContent"),hr=styled.main`
|
|
13
13
|
grid-area: content;
|
|
14
14
|
min-width: 0;
|
|
15
15
|
background: ${({theme:r})=>r.colors.backgroundBase};
|
|
16
|
-
`;var
|
|
16
|
+
`;var Ni=a(({children:r,className:o,top:c=0})=>jsx(mr,{className:o,$top:c,onClick:p=>p.stopPropagation(),children:r}),"SubNav"),mr=styled.div(({theme:r,$top:o})=>`
|
|
17
17
|
display: flex;
|
|
18
18
|
flex-direction: column;
|
|
19
19
|
justify-content: space-between;
|
|
@@ -33,37 +33,37 @@ import {a,w,x,u,c,l,z,Pa,ob,ma,Ya,Ab,y,kb,G,ib,H}from'./chunk-NEKSHIKN.mjs';expo
|
|
|
33
33
|
position: sticky;
|
|
34
34
|
border-right: 1px solid ${r.colors.stroke.light};
|
|
35
35
|
}
|
|
36
|
-
`);var
|
|
36
|
+
`);var Oi=w(({maxWidth:r,...o})=>jsx(br,{...o,$maxWidth:r})),br=x(styled.div(({theme:r,$maxWidth:o,px:c$1=20})=>`
|
|
37
37
|
${u(r,"padding-inline",c$1)}
|
|
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
|
|
41
|
+
`),{ignoreStyles:["padding-inline"]});var Pr=20,Sr="splitter_columns_widths",Ct=a((r,o,c)=>{let p=localStorage.getItem(r);if(p)try{let h=JSON.parse(p);if(Array.isArray(h)&&h.length===o)return h}catch{}else if(c.length===o)return c;return Array(o).fill(100/o)},"getSavedWidths"),Gi=a(({columns:r,initialWidths:o,layoutClassname:c="",splitterClassname:p="",minWidth:h=Pr,storageKey:b=Sr})=>{let[f,P]=useState(()=>Ct(b,r.length,o)),L=useRef(null),E=useRef(null),B=useRef(h),M=useRef(f),C=useCallback(R=>{if(E.current===null||!L.current)return;let S=L.current.getBoundingClientRect(),k=S.width,Q=R-S.left,q=[...M.current],de=E.current,Z=de+1,ue=q.slice(0,de).reduce((ye,De)=>ye+De,0),pe=Q/k*100-ue,ke=q[de]+q[Z]-pe;pe>=B.current&&ke>=B.current&&(q[de]=pe,q[Z]=ke,P(q),M.current=q);},[]),$=useCallback(R=>C(R.clientX),[C]),t=useCallback(R=>{R.preventDefault(),C(R.touches[0].clientX);},[C]),O=useCallback(()=>{E.current=null,localStorage.setItem(b,JSON.stringify(M.current)),document.removeEventListener("mousemove",$),document.removeEventListener("mouseup",O),document.removeEventListener("touchmove",t),document.removeEventListener("touchend",O);},[$,t,b]),U=useCallback(R=>S=>{S.preventDefault(),E.current=R,document.addEventListener("mousemove",$,{passive:false}),document.addEventListener("mouseup",O);},[$,O]),x=useCallback(R=>S=>{S.preventDefault(),E.current=R,document.addEventListener("touchmove",t,{passive:false}),document.addEventListener("touchend",O);},[t,O]);return useEffect(()=>{let R=Ct(b,r.length,o);M.current=R,P(R);},[r.length,o,b]),jsx("div",{ref:L,className:`flex select-none ${c}`,children:r.map(({content:R,className:S},k)=>jsxs(Fragment,{children:[jsx("div",{className:S,style:{flex:`${f[k]} 1 0%`},children:R}),k<r.length-1&&jsx("div",{onMouseDown:U(k),onTouchStart:x(k),className:`hidden lg:flex! lg:sticky lg:top-0 border-s border-gray-200 ${p}`,children:jsx("span",{className:"absolute top-1/2 start-1/2 -translate-x-1/2 -translate-y-1/2 block w-4 h-6 flex justify-center items-center bg-white border border-gray-200 text-gray-400 rounded-md cursor-col-resize hover:bg-gray-100",children:jsxs("svg",{className:"shrink-0 size-3.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"})]})})})]},`${k}`))})},"SplitterLayout");var Nr=Cr.div`
|
|
42
42
|
width: 100%;
|
|
43
43
|
height: 100%;
|
|
44
44
|
display: flex;
|
|
45
45
|
align-items: center;
|
|
46
46
|
justify-content: center;
|
|
47
|
-
`,Pr=a(({width:r=280,height:o=280})=>{let c=useTheme();return jsx(Dr,{children:jsxs(wr,{foregroundColor:c.contentLoader.foreground,backgroundColor:c.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"),Ct=Pr;var Ee=typeof window<"u"&&window.devicePixelRatio||1;function Wr(r){return !r||r.length===0?[]:r.map(o=>{let c=new Image;c.src=o.img;let p=new Image;return p.src=o.hoverImg,{...o,normalImg:c,hoverImg:p}})}a(Wr,"prepareButtonImages");var F={fontSize:3,nodeSizeBase:30,nodeAreaFactor:2,textPaddingFactor:.9,gridSpacing:20,dotSize:1,maxZoom:4},Hr=forwardRef(({loading:r,width:o,height:c,graphData:p,buttons:h=[],onNodeClick:b,onBackgroundClick:g,onNodeHover:S,onLinkHover:I,onLinkClick:R},A)=>{let x=useTheme(),[T,V]=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*Ee,height:c*Ee,animation:{id:null,buttonIndex:null},spinnerAngle:0}),{nodes:$,links:U}=useMemo(()=>Ir(p),[p]),[k,E]=useState([]),M=useRef(null),D=useRef(null),K=useRef(null),q=scaleOrdinal(schemeCategory10),de=useCallback(()=>{if(!M.current)return false;try{let e=M.current.getContext("2d");return e?(K.current=e,!0):(console.error("Failed to get 2D context"),!1)}catch(e){return console.error("Error initializing Canvas 2D context:",e),false}},[]),Z=useCallback(()=>D.current?D.current.nodes():null,[]),ue=useCallback(()=>{if(!D.current)return null;let e=D.current.force("link");return e?e.links():null},[]),pe=useCallback(e=>{e.save(),e.setTransform(1,0,0,1,0,0);let{width:a,height:n}=t.current,i=F.gridSpacing,s=F.dotSize;e.fillStyle=x.graph2D.grid.dotColor;for(let u=i/2;u<=a;u+=i)for(let l=i/2;l<=n;l+=i)e.beginPath(),e.arc(u,l,s,0,2*Math.PI),e.fill();e.restore();},[x.graph2D.grid.dotColor,F.gridSpacing,F.dotSize]),ke=useCallback((e,a,n)=>{if(!e)return "";if(n.measureText(e).width<=a)return e;let s=e,u="...";for(;n.measureText(s+u).width>a&&s.length>0;)s=s.slice(0,-1);return s+u},[]),ve=a(e=>{let n=Math.min(e,F.maxZoom)/F.maxZoom;return Math.max(F.fontSize*n,F.fontSize)},"calculateFontSize"),De=useCallback(e=>{let a=ue(),n=Z();!a||a.length===0||!n||n.length===0||(e.lineWidth=.5,e.globalAlpha=1,a.forEach(i=>{let s=typeof i.source=="object"?i.source:n.find(oe=>oe.id===i.source),u=typeof i.target=="object"?i.target:n.find(oe=>oe.id===i.target);if(!s||!u)return;let l={x:s.x||0,y:s.y||0},d={x:u.x||0,y:u.y||0},y=d.x-l.x,v=d.y-l.y,w=Math.sqrt(y*y+v*v),z=y/w,N=v/w,H=F.nodeSizeBase/2,B=F.nodeSizeBase/2,O=4,f={x:l.x+z*H,y:l.y+N*H},C={x:d.x-z*(B+O),y:d.y-N*(B+O)},P={x:d.x-z*(B+1),y:d.y-N*(B+1)},X=t.current.highlightLinks.has(i),W=X?x.graph2D.link.highlighted:x.graph2D.link.normal,Y=X?1.5:.5,J=l.x+(d.x-l.x)/2,ae=l.y+(d.y-l.y)/2,ie=Math.atan2(v,y);if(i.label){let oe=t.current.transform.k,se=ve(oe);e.font=`${se}px Sans-Serif`;let lt=e.measureText(i.label).width,dt=10;e.beginPath(),e.moveTo(f.x,f.y);let ut=w/2-(lt+dt)/2,pt={x:l.x+z*ut,y:l.y+N*ut};e.lineTo(pt.x,pt.y),e.strokeStyle=W,e.lineWidth=Y,e.stroke(),e.beginPath();let ht=w/2+(lt+dt)/2,gt={x:l.x+z*ht,y:l.y+N*ht};e.moveTo(gt.x,gt.y),e.lineTo(C.x,C.y),e.strokeStyle=W,e.lineWidth=Y,e.stroke();}else e.beginPath(),e.moveTo(f.x,f.y),e.lineTo(C.x,C.y),e.strokeStyle=W,e.lineWidth=Y,e.stroke();let be=2;if(e.save(),e.translate(P.x,P.y),e.rotate(ie),e.beginPath(),e.moveTo(0,0),e.lineTo(-4,be),e.lineTo(-4,0),e.lineTo(-4,-2),e.closePath(),e.fillStyle=W,e.fill(),e.restore(),i.label){let oe=t.current.transform.k,se=ve(oe);e.font=`${se}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.save(),e.translate(J,ae),Math.abs(ie)>Math.PI/2?e.rotate(ie+Math.PI):e.rotate(ie),e.fillStyle=X?x.graph2D.link.highlightedTextColor:x.graph2D.link.textColor,e.fillText(i.label,0,0),e.restore();}}));},[F,x.graph2D.link]),et=a((e,a,n,i,s,u,l)=>{try{if(u!=null){let d=s*.8;e.font=`${d}px sans-serif`,e.textBaseline="middle",e.textAlign="left";let y=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1,minimumFractionDigits:0,compactDisplay:"short"}).format(u),v=e.measureText(y).width,w=s*.3,N=(s+w+v)/2;e.drawImage(a,n-N,i-s/2,s,s),e.fillStyle=l||"#99989C",e.fillText(y,n-N+s+w,i);}else e.drawImage(a,n-s/2,i-s/2,s,s);}catch(d){console.warn("Error rendering icon:",d);}},"drawIconWithOptionalCounter"),tt=useCallback((e,a)=>{if(!k||k.length===0||!e||!e.x||!e.y)return;let{x:n,y:i}=e,s=F.nodeSizeBase*F.nodeAreaFactor/2;a.save();let u=Math.min(k.length,8),l$1=Math.min(Math.PI*2/u,Math.PI);for(let d=0;d<u;d++){let y=d*l$1,v=(d+1)*l$1,w=t.current.hoveredButtonIndex===d;a.beginPath(),a.arc(n,i,s,y,v,false),a.lineTo(n,i),a.closePath(),a.lineWidth=1,a.strokeStyle=x.graph2D?.button?.stroke||"#FFFFFF",a.stroke(),a.fillStyle=w?x.graph2D?.button?.hoverFill||"rgba(255, 255, 255, 0.3)":x.graph2D?.button?.normalFill||"rgba(255, 255, 255, 0.1)",a.fill();let z=s*.2,N=(y+v)/2,H=s-F.nodeSizeBase/2+z,B=n+Math.cos(N)*H,O=i+Math.sin(N)*H,f=k[d];if(f.loading){let C=z/2,P=z/12;a.save(),a.translate(B,O),a.rotate(t.current.spinnerAngle);for(let X=0;X<12;X++){let W=Math.PI*2*X/12,Y=X/12,J=Math.cos(W)*C,ae=Math.sin(W)*C;a.beginPath(),a.fillStyle=l(x.graph2D?.button?.spinnerColor,Y),a.arc(J,ae,P,0,Math.PI*2),a.fill();}a.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(G),t.current.animation.buttonIndex=d;}else {t.current.animation.id&&t.current.animation.buttonIndex===d&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null);let C=w?f.hoverImg:f.normalImg,P=f.getCount?f.getCount(e):null;C.complete?et(a,C,B,O,z,P,x.graph2D?.button?.textColor):C.onload=()=>{K.current&&et(a,C,B,O,z,P,x.graph2D?.button?.textColor);};}}a.restore();},[k,x.graph2D?.button]),rt=useCallback(e=>{let a=Z();!a||a.length===0||(e.globalAlpha=1,a.forEach(n=>{let{x:i,y:s,color:u,fontColor:l,label:d}=n,y=t.current.highlightNodes.has(n)||n===t.current.hoveredNode||n===t.current.draggedNode,v=n===t.current.selectedNode,w=F.nodeSizeBase,z=F.nodeSizeBase/2;if(y&&!v){let N=F.nodeSizeBase*F.nodeAreaFactor*.75/2;e.beginPath(),e.arc(i,s,N,0,2*Math.PI,false),e.fillStyle=x.graph2D.ring.highlightFill,e.fill();}if(v)if(h&&h.length>0)tt(n,e);else {let N=F.nodeSizeBase*F.nodeAreaFactor/2;e.beginPath(),e.arc(i,s,N,0,2*Math.PI,false),e.fillStyle=x.graph2D.ring.selectionFill||x.graph2D.ring.highlightFill,e.fill();}if(e.beginPath(),e.arc(i,s,z,0,2*Math.PI),e.fillStyle=u||q(n.group||"0"),e.fill(),d){e.save(),e.translate(i,s);let N=t.current.transform.k,H=ve(N),B=w*F.textPaddingFactor;e.font=`${H}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle=l||"#000";let O=ke(d,B,e);e.fillText(O,0,0),e.restore();}}));},[x.graph2D.ring,h,tt]),G=useCallback(()=>{let e=K.current;e&&(e.clearRect(0,0,t.current.width,t.current.height),pe(e),e.save(),e.setTransform(t.current.transform.k,0,0,t.current.transform.k,t.current.transform.x,t.current.transform.y),De(e),rt(e),e.restore());},[De,rt,pe]),ot=useCallback((e,a=[],n)=>{let i=ue()||[],s=Z()||[];if(!D.current||!e.length)return;let{width:u,height:l}=t.current,d=n?.smoothAppearance??false,y=n?.transitionDuration??1e3,v=new Set(s.map(f=>f.id)),w=e.filter(f=>!v.has(f.id)),z=new Set(i.map(f=>`${typeof f.source=="object"?f.source.id:f.source}-${typeof f.target=="object"?f.target.id:f.target}`)),N=a.filter(f=>{let C=`${typeof f.source=="object"?f.source.id:f.source}-${typeof f.target=="object"?f.target.id:f.target}`;return !z.has(C)});if(w.length===0&&N.length===0)return;let H=[...s,...w],B=[...i,...N];d&&(w.forEach(f=>{let C=N.filter(P=>{let X=typeof P.source=="object"?P.source.id:P.source,W=typeof P.target=="object"?P.target.id:P.target;return X===f.id&&v.has(W)||W===f.id&&v.has(X)});if(C.length>0){let P=C[0],X=typeof P.source=="object"?P.source.id===f.id?P.target:P.source.id:P.source===f.id?P.target:P.source,W=H.find(Y=>Y.id===X);if(W&&W.x!==void 0&&W.y!==void 0){let Y=30+Math.random()*20,J=Math.random()*Math.PI*2;f.x=W.x+Math.cos(J)*Y,f.y=W.y+Math.sin(J)*Y,f.vx=0,f.vy=0;}}else {let P=u/2,X=l/2,W=Math.min(u,l)/4,Y=Math.random()*Math.PI*2;f.x=P+Math.cos(Y)*(W*Math.random()),f.y=X+Math.sin(Y)*(W*Math.random()),f.vx=0,f.vy=0;}}),s.forEach(f=>{f.fx=f.x,f.fy=f.y;})),D.current.nodes(H);let O=D.current.force("link");O&&O.links(B),N.forEach(f=>{let C=typeof f.source=="object"?f.source:H.find(X=>X.id===f.source),P=typeof f.target=="object"?f.target:H.find(X=>X.id===f.target);!C||!P||(!C.neighbors&&(C.neighbors=[]),!P.neighbors&&(P.neighbors=[]),C.neighbors.push(P),P.neighbors.push(C),!C.links&&(C.links=[]),!P.links&&(P.links=[]),C.links.push(f),P.links.push(f));}),d?(D.current.alphaTarget(.3),D.current.alpha(.3),D.current.velocityDecay(.7),D.current.restart(),setTimeout(()=>{s.forEach(f=>{f.fx=void 0,f.fy=void 0;}),D.current?.alphaTarget(0),D.current?.alpha(.1),D.current?.velocityDecay(.6);},y)):D.current.alpha(.1).restart(),G();},[$,G]),nt=useCallback(e=>{let a=Z(),n=ue();if(!D.current||!e.length||!a||a.length===0||!n||n.length===0)return;let i=new Set(e);if(t.current.selectedNode&&t.current.selectedNode.id!==void 0&&i.has(t.current.selectedNode.id)&&(t.current.selectedNode=null),t.current.hoveredNode&&t.current.hoveredNode.id!==void 0&&i.has(t.current.hoveredNode.id)&&(t.current.hoveredNode=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set),t.current.hoveredLink){let d=typeof t.current.hoveredLink.source=="object"?t.current.hoveredLink.source.id:t.current.hoveredLink.source,y=typeof t.current.hoveredLink.target=="object"?t.current.hoveredLink.target.id:t.current.hoveredLink.target;(d!==void 0&&i.has(d)||y!==void 0&&i.has(y))&&(t.current.hoveredLink=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set);}t.current.draggedNode&&t.current.draggedNode.id!==void 0&&i.has(t.current.draggedNode.id)&&(t.current.draggedNode=null);let s=a.filter(d=>d.id!==void 0&&!i.has(d.id)),u=n.filter(d=>{let y=typeof d.source=="object"?d.source.id:d.source,v=typeof d.target=="object"?d.target.id:d.target;return y!==void 0&&!i.has(y)&&v!==void 0&&!i.has(v)});s.forEach(d=>{d.neighbors=[],d.links=[];}),u.forEach(d=>{let y=typeof d.source=="object"?d.source:s.find(w=>w.id===d.source),v=typeof d.target=="object"?d.target:s.find(w=>w.id===d.target);!y||!v||(y.neighbors=y.neighbors||[],v.neighbors=v.neighbors||[],y.neighbors.push(v),v.neighbors.push(y),y.links=y.links||[],v.links=v.links||[],y.links.push(d),v.links.push(d));}),D.current.nodes(s);let l=D.current.force("link");l&&l.links(u),G();},[G]),Pe=useCallback((e=0,a$1=20)=>{let n=Z();if(!K.current||!M.current||!n||!n.length)return;let s=1/0,u=1/0,l=-1/0,d=-1/0;if(n.forEach(y=>{if(y.x===void 0||y.y===void 0)return;let v=y.x,w=y.y;s=Math.min(s,v),u=Math.min(u,w),l=Math.max(l,v),d=Math.max(d,w);}),isFinite(s)&&isFinite(l)&&isFinite(u)&&isFinite(d)){let{width:y,height:v}=t.current;s-=a$1,u-=a$1,l+=a$1,d+=a$1;let w=l-s,z=d-u,N=w>0?y/w:1,H=z>0?v/z:1,B=Math.min(N,H,10),O=s+w/2,f=u+z/2,C={k:B,x:y/2-O*B,y:v/2-f*B};if(e>0){let P={...t.current.transform},X=Date.now(),W=a(()=>{let Y=Math.min(1,(Date.now()-X)/e),J=Y===1?1:1-Math.pow(1-Y,3),ae={k:P.k+(C.k-P.k)*J,x:P.x+(C.x-P.x)*J,y:P.y+(C.y-P.y)*J};t.current.transform=ae,G(),Y<1&&requestAnimationFrame(W);},"animateZoom");requestAnimationFrame(W);}else t.current.transform=C,G();}},[]),Se=useCallback((e,a)=>{let n=Z();if(!n||n.length===0)return null;let i=F.nodeSizeBase/2,s=typeof window<"u"&&window.devicePixelRatio||1,u=(e*s-t.current.transform.x)/t.current.transform.k,l=(a*s-t.current.transform.y)/t.current.transform.k;return n.find(d=>{let y=(d.x||0)-u,v=(d.y||0)-l;return Math.sqrt(y*y+v*v)<=i})||null},[]),Me=useCallback((e,a)=>{let n=ue(),i=Z();if(!n||n.length===0||!i||i.length===0)return null;let s=typeof window<"u"&&window.devicePixelRatio||1,u=(e*s-t.current.transform.x)/t.current.transform.k,l=(a*s-t.current.transform.y)/t.current.transform.k,d=5;return n.find(y=>{let v=typeof y.source=="object"?y.source:i.find(se=>se.id===y.source),w=typeof y.target=="object"?y.target:i.find(se=>se.id===y.target);if(!v||!w)return false;let z=v.x||0,N=v.y||0,H=w.x||0,B=w.y||0,O=u-z,f=l-N,C=H-z,P=B-N,X=O*C+f*P,W=C*C+P*P;if(W===0)return false;let Y=X/W;Y=Math.max(0,Math.min(1,Y));let J=z+Y*C,ae=N+Y*P,ie=u-J,be=l-ae;return Math.sqrt(ie*ie+be*be)<=d})||null},[]),at=useCallback((e,a,n,i,s,u,l)=>{let d=e-n,y=a-i,v=Math.sqrt(d*d+y*y),w=Math.atan2(y,d);w<0&&(w+=2*Math.PI);let H=v>=s*.5&&v<=s*1,B=false;return u===Math.PI&&l===Math.PI*2?B=w>=Math.PI&&w<=Math.PI*2:u===0&&l===Math.PI?B=w>=0&&w<=Math.PI:B=u<=l&&w>=u&&w<=l||u>l&&(w>=u||w<=l),H&&B},[]),Ae=useCallback(e=>{if(e===t.current.hoveredNode)return;let a=new Set,n=new Set;e&&(a.add(e),e.neighbors&&e.neighbors.forEach(i=>a.add(i)),e.links&&e.links.forEach(i=>n.add(i))),t.current.hoveredNode=e,S&&S(e),t.current.highlightNodes=a,t.current.highlightLinks=n;},[S]),$e=useCallback(e=>{if(e===t.current.hoveredLink)return;let a=new Set,n=new Set;if(e){n.add(e);let i=Z();if(i){let s=typeof e.source=="object"?e.source:i.find(l=>l.id===e.source),u=typeof e.target=="object"?e.target:i.find(l=>l.id===e.target);s&&a.add(s),u&&a.add(u);}}t.current.hoveredLink=e,I&&I(e),t.current.highlightNodes=a,t.current.highlightLinks=n;},[I,Z]),it=useCallback(e=>{R&&R(e);},[R]),st=useCallback(e=>{t.current.selectedNode=e,b&&b(e);},[b]),ct=useCallback(()=>{t.current.selectedNode=null,g&&g();},[g]),Oe=useCallback(e=>{if(!M.current||!D.current)return;let a=M.current.getBoundingClientRect(),n=e.clientX-a.left,i=e.clientY-a.top;t.current.mouseStartPos={x:n,y:i},t.current.isDragging=false;let s=Se(n,i);s?(t.current.draggedNode=s,s.fx=s.x,s.fy=s.y):(t.current.isPanning=true,t.current.lastMousePos={x:n,y:i});},[Se]),Ce=useCallback((e,a)=>{let n=null;if(M.current&&t.current&&k.length>0){let i=F.nodeSizeBase*F.nodeAreaFactor/2,s=M.current.getBoundingClientRect(),u=M.current.width/s.width,l=M.current.height/s.height,d=e*u,y=a*l,v=(d-t.current.transform.x)/t.current.transform.k,w=(y-t.current.transform.y)/t.current.transform.k,z=t.current.selectedNode?.x||0,N=t.current.selectedNode?.y||0,H=Math.min(k.length,8),B=Math.min(Math.PI*2/H,Math.PI);for(let O=0;O<H;O++){let f=O*B,C=(O+1)*B;if(at(v,w,z,N,i,f,C)){n=O;break}}}return n},[k]),We=useCallback(e=>{if(!M.current)return;let a=M.current.getBoundingClientRect(),n=e.clientX-a.left,i=e.clientY-a.top;if(t.current.draggedNode&&t.current.mouseStartPos&&D.current){let l=t.current.mouseStartPos.x,d=t.current.mouseStartPos.y,y=n-l,v=i-d;Math.sqrt(y*y+v*v)>3&&(t.current.isDragging=true,D.current.alphaTarget()===0&&D.current.alphaTarget(0).restart());let N=typeof window<"u"&&window.devicePixelRatio||1,H=(n*N-t.current.transform.x)/t.current.transform.k,B=(i*N-t.current.transform.y)/t.current.transform.k;t.current.draggedNode.fx=H,t.current.draggedNode.fy=B;return}if(t.current.isPanning&&t.current.mouseStartPos){let l=n-t.current.lastMousePos.x,d=i-t.current.lastMousePos.y,y=t.current.mouseStartPos.x,v=t.current.mouseStartPos.y;Math.sqrt(Math.pow(n-y,2)+Math.pow(i-v,2))>3&&(t.current.isDragging=true),t.current.transform={...t.current.transform,x:t.current.transform.x+l,y:t.current.transform.y+d},t.current.lastMousePos={x:n,y:i},G();return}let s,u;if(t.current.selectedNode&&M.current&&k.length>0){let l=Ce(n,i);l!==null&&(u=t.current.selectedNode),l!==t.current.hoveredButtonIndex&&(s=true),t.current.hoveredButtonIndex=l;}else t.current.hoveredButtonIndex!==null&&(t.current.hoveredButtonIndex=null);if(!u&&(u=Se(n,i),!u)){let l=Me(n,i),d=l!==t.current.hoveredLink;if(l&&t.current.hoveredNode&&Ae(null),$e(l),M.current&&(M.current.style.cursor=l?"pointer":"default"),d){G();return}}u&&t.current.hoveredLink&&$e(null),u!==t.current.hoveredNode&&(s=true),Ae(u),M.current&&(M.current.style.cursor=u?"pointer":"default"),s&&G();},[k,Se,Me,Ae,$e,G,at,Ce]),er=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.stopPropagation(),e.preventDefault()),t.current.mustBeStoppedPropagation=false;},[]),Te=useCallback(e=>{let a=t.current.isDragging;if(a&&(t.current.mustBeStoppedPropagation=true),!a&&t.current.mouseStartPos){let n=M.current?.getBoundingClientRect();if(n){let i=e.clientX-n.left,s=e.clientY-n.top;k.length>0&&t.current.hoveredButtonIndex===null&&(t.current.hoveredButtonIndex=Ce(i,s));let u=false;if(t.current.selectedNode&&t.current.hoveredButtonIndex!==null&&h[t.current.hoveredButtonIndex]){let l=h[t.current.hoveredButtonIndex];l&&l.onClick&&(l.onClick(t.current.selectedNode),u=true,t.current.hoveredButtonIndex=null);}if(!u&&t.current.draggedNode)st(t.current.draggedNode);else if(!u&&!t.current.draggedNode){let l=Me(i,s);l?it(l):ct();}}}if(t.current.draggedNode&&D.current){if(a){D.current.alphaTarget(0);let n=.05,i=.04,s=.6;D.current.alpha(n).alphaDecay(i),D.current.velocityDecay(s);}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),G();},[h,G,st,ct,Me,it,Ce,k]),He=useCallback(e=>{if(e.stopPropagation(),e.preventDefault(),!M.current)return;let a=M.current.getBoundingClientRect(),n=e.clientX-a.left,i=e.clientY-a.top,u=-e.deltaY>0?1.1:1/1.1,l=t.current.transform,d=l.k*u;if(d<.01||d>10)return;let y=l.k*u,v=n-(n-l.x)*u,w=i-(i-l.y)*u;t.current.transform={k:y,x:v,y:w},G();},[G]),Xe=a((e,a)=>{let n=e.touches[0];if(n){let i={clientX:n.clientX,clientY:n.clientY};a(i);}},"convertTouchToMouseEvent"),tr=useCallback(e=>{Xe(e,Oe);},[Oe]),Ye=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.preventDefault(),e.stopPropagation()),t.current.mustBeStoppedPropagation=false,Xe(e,Te);},[Te]),rr=useCallback(e=>{Xe(e,We);},[We]);return useImperativeHandle(A,()=>({zoomToFit:Pe,addNodes:ot,removeNodes:nt}),[Pe,ot,nt]),useEffect(()=>{let e=M.current,{width:a,height:n}=t.current;if(!e)return;de(),V(true);let i=a/2,s=n/2,u=F.nodeSizeBase,l=u/2,d=u*2.5;D.current&&D.current.stop();let y=D.current=forceSimulation($).force("link",forceLink(U).id(v=>v.id).distance(d).strength(.9)).force("charge",forceManyBody().strength(-u/10*200).theta(.5).distanceMin(u*2)).force("x",forceX().strength(.03)).force("y",forceY().strength(.03)).force("center",forceCenter(i,s).strength(.05)).force("collide",forceCollide().radius(l*2).iterations(2).strength(1)).velocityDecay(.6);return ()=>{y.stop();}},[$,U]),useLayoutEffect(()=>{let e=M.current;e&&(t.current.width=o*Ee,t.current.height=c*Ee,e.width=t.current.width,e.height=t.current.height);},[o,c]),useEffect(()=>{if(D.current){let e=D.current;e.on("tick",()=>{G();}),e.on("end",()=>{T&&(Pe(0,20),setTimeout(()=>{V(false);},200));});}T||G();},[$,U,T,G,Pe]),useEffect(()=>{!$||!U||U.forEach(e=>{let a=typeof e.source=="object"?e.source:$.find(i=>i.id===e.source),n=typeof e.target=="object"?e.target:$.find(i=>i.id===e.target);!a||!n||(!a.neighbors&&(a.neighbors=[]),!n.neighbors&&(n.neighbors=[]),a.neighbors.push(n),n.neighbors.push(a),!a.links&&(a.links=[]),!n.links&&(n.links=[]),a.links.push(e),n.links.push(e));});},[$,U]),useEffect(()=>{h&&h.length>0&&E(Wr(h));},[h]),useEffect(()=>{let e=M.current;if(!(!e||typeof window>"u"))return e.addEventListener("wheel",He,{passive:false}),e.addEventListener("touchend",Ye,{passive:false}),()=>{e.removeEventListener("wheel",He),e.removeEventListener("touchend",Ye);}},[He,Ye]),jsxs(Xr,{children:[(r||T)&&jsx(Ct,{width:o,height:c}),jsx(Yr,{ref:M,style:{width:o,height:c,display:r||T?"none":"block"},onMouseDown:Oe,onMouseMove:We,onMouseUp:Te,onMouseLeave:Te,onClick:er,onTouchStart:tr,onTouchMove:rr})]})}),Xr=styled.div`
|
|
47
|
+
`,Lr=a(({width:r=280,height:o=280})=>{let c=useTheme();return jsx(Nr,{children:jsxs(Mr,{foregroundColor:c.contentLoader.foreground,backgroundColor:c.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"),Nt=Lr;var Re=typeof window<"u"&&window.devicePixelRatio||1;function Vr(r){return !r||r.length===0?[]:r.map(o=>{let c=new Image;c.src=o.img;let p=new Image;return p.src=o.hoverImg,{...o,normalImg:c,hoverImg:p}})}a(Vr,"prepareButtonImages");var A={fontSize:3,nodeSizeBase:30,nodeAreaFactor:2,textPaddingFactor:.9,gridSpacing:20,dotSize:1,maxZoom:4},qr=forwardRef(({loading:r,width:o,height:c,graphData:p,buttons:h=[],onNodeClick:b,onBackgroundClick:f,onNodeHover:P,onLinkHover:L,onLinkClick:E},B)=>{let M=useTheme(),[C,$]=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*Re,height:c*Re,animation:{id:null,buttonIndex:null},spinnerAngle:0}),{nodes:O,links:U}=useMemo(()=>Br(p),[p]),[x,R]=useState([]),S=useRef(null),k=useRef(null),Q=useRef(null),q=scaleOrdinal(schemeCategory10),de=useCallback(()=>{if(!S.current)return false;try{let e=S.current.getContext("2d");return e?(Q.current=e,!0):(console.error("Failed to get 2D context"),!1)}catch(e){return console.error("Error initializing Canvas 2D context:",e),false}},[]),Z=useCallback(()=>k.current?k.current.nodes():null,[]),ue=useCallback(()=>{if(!k.current)return null;let e=k.current.force("link");return e?e.links():null},[]),pe=useCallback(e=>{e.save(),e.setTransform(1,0,0,1,0,0);let{width:a,height:n}=t.current,i=A.gridSpacing,s=A.dotSize;e.fillStyle=M.graph2D.grid.dotColor;for(let u=i/2;u<=a;u+=i)for(let l=i/2;l<=n;l+=i)e.beginPath(),e.arc(u,l,s,0,2*Math.PI),e.fill();e.restore();},[M.graph2D.grid.dotColor,A.gridSpacing,A.dotSize]),ke=useCallback((e,a,n)=>{if(!e)return "";if(n.measureText(e).width<=a)return e;let s=e,u="...";for(;n.measureText(s+u).width>a&&s.length>0;)s=s.slice(0,-1);return s+u},[]),ye=a(e=>{let n=Math.min(e,A.maxZoom)/A.maxZoom;return Math.max(A.fontSize*n,A.fontSize)},"calculateFontSize"),De=useCallback(e=>{let a=ue(),n=Z();!a||a.length===0||!n||n.length===0||(e.lineWidth=.5,e.globalAlpha=1,a.forEach(i=>{let s=typeof i.source=="object"?i.source:n.find(oe=>oe.id===i.source),u=typeof i.target=="object"?i.target:n.find(oe=>oe.id===i.target);if(!s||!u)return;let l={x:s.x||0,y:s.y||0},d={x:u.x||0,y:u.y||0},y=d.x-l.x,v=d.y-l.y,w=Math.sqrt(y*y+v*v),z=y/w,N=v/w,X=A.nodeSizeBase/2,F=A.nodeSizeBase/2,H=4,g={x:l.x+z*X,y:l.y+N*X},T={x:d.x-z*(F+H),y:d.y-N*(F+H)},D={x:d.x-z*(F+1),y:d.y-N*(F+1)},Y=t.current.highlightLinks.has(i),W=Y?M.graph2D.link.highlighted:M.graph2D.link.normal,_=Y?1.5:.5,J=l.x+(d.x-l.x)/2,ae=l.y+(d.y-l.y)/2,ie=Math.atan2(v,y);if(i.label){let oe=t.current.transform.k,se=ye(oe);e.font=`${se}px Sans-Serif`;let ut=e.measureText(i.label).width,pt=10;e.beginPath(),e.moveTo(g.x,g.y);let ht=w/2-(ut+pt)/2,ft={x:l.x+z*ht,y:l.y+N*ht};e.lineTo(ft.x,ft.y),e.strokeStyle=W,e.lineWidth=_,e.stroke(),e.beginPath();let gt=w/2+(ut+pt)/2,mt={x:l.x+z*gt,y:l.y+N*gt};e.moveTo(mt.x,mt.y),e.lineTo(T.x,T.y),e.strokeStyle=W,e.lineWidth=_,e.stroke();}else e.beginPath(),e.moveTo(g.x,g.y),e.lineTo(T.x,T.y),e.strokeStyle=W,e.lineWidth=_,e.stroke();let ve=2;if(e.save(),e.translate(D.x,D.y),e.rotate(ie),e.beginPath(),e.moveTo(0,0),e.lineTo(-4,ve),e.lineTo(-4,0),e.lineTo(-4,-2),e.closePath(),e.fillStyle=W,e.fill(),e.restore(),i.label){let oe=t.current.transform.k,se=ye(oe);e.font=`${se}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.save(),e.translate(J,ae),Math.abs(ie)>Math.PI/2?e.rotate(ie+Math.PI):e.rotate(ie),e.fillStyle=Y?M.graph2D.link.highlightedTextColor:M.graph2D.link.textColor,e.fillText(i.label,0,0),e.restore();}}));},[A,M.graph2D.link]),rt=a((e,a,n,i,s,u,l)=>{try{if(u!=null){let d=s*.8;e.font=`${d}px sans-serif`,e.textBaseline="middle",e.textAlign="left";let y=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1,minimumFractionDigits:0,compactDisplay:"short"}).format(u),v=e.measureText(y).width,w=s*.3,N=(s+w+v)/2;e.drawImage(a,n-N,i-s/2,s,s),e.fillStyle=l||"#99989C",e.fillText(y,n-N+s+w,i);}else e.drawImage(a,n-s/2,i-s/2,s,s);}catch(d){console.warn("Error rendering icon:",d);}},"drawIconWithOptionalCounter"),ot=useCallback((e,a)=>{if(!x||x.length===0||!e||!e.x||!e.y)return;let{x:n,y:i}=e,s=A.nodeSizeBase*A.nodeAreaFactor/2;a.save();let u=Math.min(x.length,8),l$1=Math.min(Math.PI*2/u,Math.PI);for(let d=0;d<u;d++){let y=d*l$1,v=(d+1)*l$1,w=t.current.hoveredButtonIndex===d;a.beginPath(),a.arc(n,i,s,y,v,false),a.lineTo(n,i),a.closePath(),a.lineWidth=1,a.strokeStyle=M.graph2D?.button?.stroke||"#FFFFFF",a.stroke(),a.fillStyle=w?M.graph2D?.button?.hoverFill||"rgba(255, 255, 255, 0.3)":M.graph2D?.button?.normalFill||"rgba(255, 255, 255, 0.1)",a.fill();let z=s*.2,N=(y+v)/2,X=s-A.nodeSizeBase/2+z,F=n+Math.cos(N)*X,H=i+Math.sin(N)*X,g=x[d];if(g.loading){let T=z/2,D=z/12;a.save(),a.translate(F,H),a.rotate(t.current.spinnerAngle);for(let Y=0;Y<12;Y++){let W=Math.PI*2*Y/12,_=Y/12,J=Math.cos(W)*T,ae=Math.sin(W)*T;a.beginPath(),a.fillStyle=l(M.graph2D?.button?.spinnerColor,_),a.arc(J,ae,D,0,Math.PI*2),a.fill();}a.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(V),t.current.animation.buttonIndex=d;}else {t.current.animation.id&&t.current.animation.buttonIndex===d&&(cancelAnimationFrame(t.current.animation.id),t.current.animation.id=null,t.current.animation.buttonIndex=null);let T=w?g.hoverImg:g.normalImg,D=g.getCount?g.getCount(e):null;T.complete?rt(a,T,F,H,z,D,M.graph2D?.button?.textColor):T.onload=()=>{Q.current&&rt(a,T,F,H,z,D,M.graph2D?.button?.textColor);};}}a.restore();},[x,M.graph2D?.button]),nt=useCallback(e=>{let a=Z();!a||a.length===0||(e.globalAlpha=1,a.forEach(n=>{let{x:i,y:s,color:u,fontColor:l,label:d}=n,y=t.current.highlightNodes.has(n)||n===t.current.hoveredNode||n===t.current.draggedNode,v=n===t.current.selectedNode,w=A.nodeSizeBase,z=A.nodeSizeBase/2;if(y&&!v){let N=A.nodeSizeBase*A.nodeAreaFactor*.75/2;e.beginPath(),e.arc(i,s,N,0,2*Math.PI,false),e.fillStyle=M.graph2D.ring.highlightFill,e.fill();}if(v)if(h&&h.length>0)ot(n,e);else {let N=A.nodeSizeBase*A.nodeAreaFactor/2;e.beginPath(),e.arc(i,s,N,0,2*Math.PI,false),e.fillStyle=M.graph2D.ring.selectionFill||M.graph2D.ring.highlightFill,e.fill();}if(e.beginPath(),e.arc(i,s,z,0,2*Math.PI),e.fillStyle=u||q(n.group||"0"),e.fill(),d){e.save(),e.translate(i,s);let N=t.current.transform.k,X=ye(N),F=w*A.textPaddingFactor;e.font=`${X}px Sans-Serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle=l||"#000";let H=ke(d,F,e);e.fillText(H,0,0),e.restore();}}));},[M.graph2D.ring,h,ot]),V=useCallback(()=>{let e=Q.current;e&&(e.clearRect(0,0,t.current.width,t.current.height),pe(e),e.save(),e.setTransform(t.current.transform.k,0,0,t.current.transform.k,t.current.transform.x,t.current.transform.y),De(e),nt(e),e.restore());},[De,nt,pe]),at=useCallback((e,a=[],n)=>{let i=ue()||[],s=Z()||[];if(!k.current||!e.length)return;let{width:u,height:l}=t.current,d=n?.smoothAppearance??false,y=n?.transitionDuration??1e3,v=new Set(s.map(g=>g.id)),w=e.filter(g=>!v.has(g.id)),z=new Set(i.map(g=>`${typeof g.source=="object"?g.source.id:g.source}-${typeof g.target=="object"?g.target.id:g.target}`)),N=a.filter(g=>{let T=`${typeof g.source=="object"?g.source.id:g.source}-${typeof g.target=="object"?g.target.id:g.target}`;return !z.has(T)});if(w.length===0&&N.length===0)return;let X=[...s,...w],F=[...i,...N];d&&(w.forEach(g=>{let T=N.filter(D=>{let Y=typeof D.source=="object"?D.source.id:D.source,W=typeof D.target=="object"?D.target.id:D.target;return Y===g.id&&v.has(W)||W===g.id&&v.has(Y)});if(T.length>0){let D=T[0],Y=typeof D.source=="object"?D.source.id===g.id?D.target:D.source.id:D.source===g.id?D.target:D.source,W=X.find(_=>_.id===Y);if(W&&W.x!==void 0&&W.y!==void 0){let _=30+Math.random()*20,J=Math.random()*Math.PI*2;g.x=W.x+Math.cos(J)*_,g.y=W.y+Math.sin(J)*_,g.vx=0,g.vy=0;}}else {let D=u/2,Y=l/2,W=Math.min(u,l)/4,_=Math.random()*Math.PI*2;g.x=D+Math.cos(_)*(W*Math.random()),g.y=Y+Math.sin(_)*(W*Math.random()),g.vx=0,g.vy=0;}}),s.forEach(g=>{g.fx=g.x,g.fy=g.y;})),k.current.nodes(X);let H=k.current.force("link");H&&H.links(F),N.forEach(g=>{let T=typeof g.source=="object"?g.source:X.find(Y=>Y.id===g.source),D=typeof g.target=="object"?g.target:X.find(Y=>Y.id===g.target);!T||!D||(!T.neighbors&&(T.neighbors=[]),!D.neighbors&&(D.neighbors=[]),T.neighbors.push(D),D.neighbors.push(T),!T.links&&(T.links=[]),!D.links&&(D.links=[]),T.links.push(g),D.links.push(g));}),d?(k.current.alphaTarget(.3),k.current.alpha(.3),k.current.velocityDecay(.7),k.current.restart(),setTimeout(()=>{s.forEach(g=>{g.fx=void 0,g.fy=void 0;}),k.current?.alphaTarget(0),k.current?.alpha(.1),k.current?.velocityDecay(.6);},y)):k.current.alpha(.1).restart(),V();},[O,V]),it=useCallback(e=>{let a=Z(),n=ue();if(!k.current||!e.length||!a||a.length===0||!n||n.length===0)return;let i=new Set(e);if(t.current.selectedNode&&t.current.selectedNode.id!==void 0&&i.has(t.current.selectedNode.id)&&(t.current.selectedNode=null),t.current.hoveredNode&&t.current.hoveredNode.id!==void 0&&i.has(t.current.hoveredNode.id)&&(t.current.hoveredNode=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set),t.current.hoveredLink){let d=typeof t.current.hoveredLink.source=="object"?t.current.hoveredLink.source.id:t.current.hoveredLink.source,y=typeof t.current.hoveredLink.target=="object"?t.current.hoveredLink.target.id:t.current.hoveredLink.target;(d!==void 0&&i.has(d)||y!==void 0&&i.has(y))&&(t.current.hoveredLink=null,t.current.highlightNodes=new Set,t.current.highlightLinks=new Set);}t.current.draggedNode&&t.current.draggedNode.id!==void 0&&i.has(t.current.draggedNode.id)&&(t.current.draggedNode=null);let s=a.filter(d=>d.id!==void 0&&!i.has(d.id)),u=n.filter(d=>{let y=typeof d.source=="object"?d.source.id:d.source,v=typeof d.target=="object"?d.target.id:d.target;return y!==void 0&&!i.has(y)&&v!==void 0&&!i.has(v)});s.forEach(d=>{d.neighbors=[],d.links=[];}),u.forEach(d=>{let y=typeof d.source=="object"?d.source:s.find(w=>w.id===d.source),v=typeof d.target=="object"?d.target:s.find(w=>w.id===d.target);!y||!v||(y.neighbors=y.neighbors||[],v.neighbors=v.neighbors||[],y.neighbors.push(v),v.neighbors.push(y),y.links=y.links||[],v.links=v.links||[],y.links.push(d),v.links.push(d));}),k.current.nodes(s);let l=k.current.force("link");l&&l.links(u),V();},[V]),Pe=useCallback((e=0,a$1=20)=>{let n=Z();if(!Q.current||!S.current||!n||!n.length)return;let s=1/0,u=1/0,l=-1/0,d=-1/0;if(n.forEach(y=>{if(y.x===void 0||y.y===void 0)return;let v=y.x,w=y.y;s=Math.min(s,v),u=Math.min(u,w),l=Math.max(l,v),d=Math.max(d,w);}),isFinite(s)&&isFinite(l)&&isFinite(u)&&isFinite(d)){let{width:y,height:v}=t.current;s-=a$1,u-=a$1,l+=a$1,d+=a$1;let w=l-s,z=d-u,N=w>0?y/w:1,X=z>0?v/z:1,F=Math.min(N,X,10),H=s+w/2,g=u+z/2,T={k:F,x:y/2-H*F,y:v/2-g*F};if(e>0){let D={...t.current.transform},Y=Date.now(),W=a(()=>{let _=Math.min(1,(Date.now()-Y)/e),J=_===1?1:1-Math.pow(1-_,3),ae={k:D.k+(T.k-D.k)*J,x:D.x+(T.x-D.x)*J,y:D.y+(T.y-D.y)*J};t.current.transform=ae,V(),_<1&&requestAnimationFrame(W);},"animateZoom");requestAnimationFrame(W);}else t.current.transform=T,V();}},[]),Se=useCallback((e,a)=>{let n=Z();if(!n||n.length===0)return null;let i=A.nodeSizeBase/2,s=typeof window<"u"&&window.devicePixelRatio||1,u=(e*s-t.current.transform.x)/t.current.transform.k,l=(a*s-t.current.transform.y)/t.current.transform.k;return n.find(d=>{let y=(d.x||0)-u,v=(d.y||0)-l;return Math.sqrt(y*y+v*v)<=i})||null},[]),Me=useCallback((e,a)=>{let n=ue(),i=Z();if(!n||n.length===0||!i||i.length===0)return null;let s=typeof window<"u"&&window.devicePixelRatio||1,u=(e*s-t.current.transform.x)/t.current.transform.k,l=(a*s-t.current.transform.y)/t.current.transform.k,d=5;return n.find(y=>{let v=typeof y.source=="object"?y.source:i.find(se=>se.id===y.source),w=typeof y.target=="object"?y.target:i.find(se=>se.id===y.target);if(!v||!w)return false;let z=v.x||0,N=v.y||0,X=w.x||0,F=w.y||0,H=u-z,g=l-N,T=X-z,D=F-N,Y=H*T+g*D,W=T*T+D*D;if(W===0)return false;let _=Y/W;_=Math.max(0,Math.min(1,_));let J=z+_*T,ae=N+_*D,ie=u-J,ve=l-ae;return Math.sqrt(ie*ie+ve*ve)<=d})||null},[]),st=useCallback((e,a,n,i,s,u,l)=>{let d=e-n,y=a-i,v=Math.sqrt(d*d+y*y),w=Math.atan2(y,d);w<0&&(w+=2*Math.PI);let X=v>=s*.5&&v<=s*1,F=false;return u===Math.PI&&l===Math.PI*2?F=w>=Math.PI&&w<=Math.PI*2:u===0&&l===Math.PI?F=w>=0&&w<=Math.PI:F=u<=l&&w>=u&&w<=l||u>l&&(w>=u||w<=l),X&&F},[]),Oe=useCallback(e=>{if(e===t.current.hoveredNode)return;let a=new Set,n=new Set;e&&(a.add(e),e.neighbors&&e.neighbors.forEach(i=>a.add(i)),e.links&&e.links.forEach(i=>n.add(i))),t.current.hoveredNode=e,P&&P(e),t.current.highlightNodes=a,t.current.highlightLinks=n;},[P]),He=useCallback(e=>{if(e===t.current.hoveredLink)return;let a=new Set,n=new Set;if(e){n.add(e);let i=Z();if(i){let s=typeof e.source=="object"?e.source:i.find(l=>l.id===e.source),u=typeof e.target=="object"?e.target:i.find(l=>l.id===e.target);s&&a.add(s),u&&a.add(u);}}t.current.hoveredLink=e,L&&L(e),t.current.highlightNodes=a,t.current.highlightLinks=n;},[L,Z]),ct=useCallback(e=>{E&&E(e);},[E]),lt=useCallback(e=>{t.current.selectedNode=e,b&&b(e);},[b]),dt=useCallback(()=>{t.current.selectedNode=null,f&&f();},[f]),We=useCallback(e=>{if(!S.current||!k.current)return;let a=S.current.getBoundingClientRect(),n=e.clientX-a.left,i=e.clientY-a.top;t.current.mouseStartPos={x:n,y:i},t.current.isDragging=false;let s=Se(n,i);s?(t.current.draggedNode=s,s.fx=s.x,s.fy=s.y):(t.current.isPanning=true,t.current.lastMousePos={x:n,y:i});},[Se]),Ce=useCallback((e,a)=>{let n=null;if(S.current&&t.current&&x.length>0){let i=A.nodeSizeBase*A.nodeAreaFactor/2,s=S.current.getBoundingClientRect(),u=S.current.width/s.width,l=S.current.height/s.height,d=e*u,y=a*l,v=(d-t.current.transform.x)/t.current.transform.k,w=(y-t.current.transform.y)/t.current.transform.k,z=t.current.selectedNode?.x||0,N=t.current.selectedNode?.y||0,X=Math.min(x.length,8),F=Math.min(Math.PI*2/X,Math.PI);for(let H=0;H<X;H++){let g=H*F,T=(H+1)*F;if(st(v,w,z,N,i,g,T)){n=H;break}}}return n},[x]),Xe=useCallback(e=>{if(!S.current)return;let a=S.current.getBoundingClientRect(),n=e.clientX-a.left,i=e.clientY-a.top;if(t.current.draggedNode&&t.current.mouseStartPos&&k.current){let l=t.current.mouseStartPos.x,d=t.current.mouseStartPos.y,y=n-l,v=i-d;Math.sqrt(y*y+v*v)>3&&(t.current.isDragging=true,k.current.alphaTarget()===0&&k.current.alphaTarget(0).restart());let N=typeof window<"u"&&window.devicePixelRatio||1,X=(n*N-t.current.transform.x)/t.current.transform.k,F=(i*N-t.current.transform.y)/t.current.transform.k;t.current.draggedNode.fx=X,t.current.draggedNode.fy=F;return}if(t.current.isPanning&&t.current.mouseStartPos){let l=n-t.current.lastMousePos.x,d=i-t.current.lastMousePos.y,y=t.current.mouseStartPos.x,v=t.current.mouseStartPos.y;Math.sqrt(Math.pow(n-y,2)+Math.pow(i-v,2))>3&&(t.current.isDragging=true),t.current.transform={...t.current.transform,x:t.current.transform.x+l,y:t.current.transform.y+d},t.current.lastMousePos={x:n,y:i},V();return}let s,u;if(t.current.selectedNode&&S.current&&x.length>0){let l=Ce(n,i);l!==null&&(u=t.current.selectedNode),l!==t.current.hoveredButtonIndex&&(s=true),t.current.hoveredButtonIndex=l;}else t.current.hoveredButtonIndex!==null&&(t.current.hoveredButtonIndex=null);if(!u&&(u=Se(n,i),!u)){let l=Me(n,i),d=l!==t.current.hoveredLink;if(l&&t.current.hoveredNode&&Oe(null),He(l),S.current&&(S.current.style.cursor=l?"pointer":"default"),d){V();return}}u&&t.current.hoveredLink&&He(null),u!==t.current.hoveredNode&&(s=true),Oe(u),S.current&&(S.current.style.cursor=u?"pointer":"default"),s&&V();},[x,Se,Me,Oe,He,V,st,Ce]),ir=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.stopPropagation(),e.preventDefault()),t.current.mustBeStoppedPropagation=false;},[]),Te=useCallback(e=>{let a=t.current.isDragging;if(a&&(t.current.mustBeStoppedPropagation=true),!a&&t.current.mouseStartPos){let n=S.current?.getBoundingClientRect();if(n){let i=e.clientX-n.left,s=e.clientY-n.top;x.length>0&&t.current.hoveredButtonIndex===null&&(t.current.hoveredButtonIndex=Ce(i,s));let u=false;if(t.current.selectedNode&&t.current.hoveredButtonIndex!==null&&h[t.current.hoveredButtonIndex]){let l=h[t.current.hoveredButtonIndex];l&&l.onClick&&(l.onClick(t.current.selectedNode),u=true,t.current.hoveredButtonIndex=null);}if(!u&&t.current.draggedNode)lt(t.current.draggedNode);else if(!u&&!t.current.draggedNode){let l=Me(i,s);l?ct(l):dt();}}}if(t.current.draggedNode&&k.current){if(a){k.current.alphaTarget(0);let n=.05,i=.04,s=.6;k.current.alpha(n).alphaDecay(i),k.current.velocityDecay(s);}else k.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),V();},[h,V,lt,dt,Me,ct,Ce,x]),Ye=useCallback(e=>{if(e.stopPropagation(),e.preventDefault(),!S.current)return;let a=S.current.getBoundingClientRect(),n=e.clientX-a.left,i=e.clientY-a.top,u=-e.deltaY>0?1.1:1/1.1,l=t.current.transform,d=l.k*u;if(d<.01||d>10)return;let y=l.k*u,v=n-(n-l.x)*u,w=i-(i-l.y)*u;t.current.transform={k:y,x:v,y:w},V();},[V]),_e=a((e,a)=>{let n=e.touches[0];if(n){let i={clientX:n.clientX,clientY:n.clientY};a(i);}},"convertTouchToMouseEvent"),sr=useCallback(e=>{_e(e,We);},[We]),Ge=useCallback(e=>{t.current.mustBeStoppedPropagation&&(e.preventDefault(),e.stopPropagation()),t.current.mustBeStoppedPropagation=false,_e(e,Te);},[Te]),cr=useCallback(e=>{_e(e,Xe);},[Xe]);return useImperativeHandle(B,()=>({zoomToFit:Pe,addNodes:at,removeNodes:it}),[Pe,at,it]),useEffect(()=>{let e=S.current,{width:a,height:n}=t.current;if(!e)return;de(),$(true);let i=a/2,s=n/2,u=A.nodeSizeBase,l=u/2,d=u*2.5;k.current&&k.current.stop();let y=k.current=forceSimulation(O).force("link",forceLink(U).id(v=>v.id).distance(d).strength(.9)).force("charge",forceManyBody().strength(-u/10*200).theta(.5).distanceMin(u*2)).force("x",forceX().strength(.03)).force("y",forceY().strength(.03)).force("center",forceCenter(i,s).strength(.05)).force("collide",forceCollide().radius(l*2).iterations(2).strength(1)).velocityDecay(.6);return ()=>{y.stop();}},[O,U]),useLayoutEffect(()=>{let e=S.current;e&&(t.current.width=o*Re,t.current.height=c*Re,e.width=t.current.width,e.height=t.current.height);},[o,c]),useEffect(()=>{if(k.current){let e=k.current;e.on("tick",()=>{V();}),e.on("end",()=>{C&&(Pe(0,20),setTimeout(()=>{$(false);},200));});}C||V();},[O,U,C,V,Pe]),useEffect(()=>{!O||!U||U.forEach(e=>{let a=typeof e.source=="object"?e.source:O.find(i=>i.id===e.source),n=typeof e.target=="object"?e.target:O.find(i=>i.id===e.target);!a||!n||(!a.neighbors&&(a.neighbors=[]),!n.neighbors&&(n.neighbors=[]),a.neighbors.push(n),n.neighbors.push(a),!a.links&&(a.links=[]),!n.links&&(n.links=[]),a.links.push(e),n.links.push(e));});},[O,U]),useEffect(()=>{h&&h.length>0&&R(Vr(h));},[h]),useEffect(()=>{let e=S.current;if(!(!e||typeof window>"u"))return e.addEventListener("wheel",Ye,{passive:false}),e.addEventListener("touchend",Ge,{passive:false}),()=>{e.removeEventListener("wheel",Ye),e.removeEventListener("touchend",Ge);}},[Ye,Ge]),jsxs(Ur,{children:[(r||C)&&jsx(Nt,{width:o,height:c}),jsx(Zr,{ref:S,style:{width:o,height:c,display:r||C?"none":"block"},onMouseDown:We,onMouseMove:Xe,onMouseUp:Te,onMouseLeave:Te,onClick:ir,onTouchStart:sr,onTouchMove:cr})]})}),Ur=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
|
-
`,
|
|
54
|
+
`,Zr=styled.canvas``;qr.displayName="Graph2D";var Ds=w(({isActive:r,position:o,top:c=0,left:p=0,right:h,bottom:b,...f})=>jsx(Qr,{$isActive:r,$position:o,$top:c,$left:p,$right:h,$bottom:b,...f})),Qr=Cr.div(({$isActive:r,$top:o,$left:c$1,$right:p,$bottom:h,$position:b,theme:f})=>`
|
|
55
55
|
${r?`
|
|
56
56
|
position: ${b};
|
|
57
57
|
z-index: 1000;
|
|
58
|
-
${typeof o=="number"?`top: ${c(o,
|
|
59
|
-
${typeof c$1=="number"?`left: ${c(c$1,
|
|
60
|
-
${typeof p=="number"?`right: ${c(p,
|
|
61
|
-
${typeof h=="number"?`bottom: ${c(h,
|
|
58
|
+
${typeof o=="number"?`top: ${c(o,f.baseSize)};`:""}
|
|
59
|
+
${typeof c$1=="number"?`left: ${c(c$1,f.baseSize)};`:""}
|
|
60
|
+
${typeof p=="number"?`right: ${c(p,f.baseSize)};`:""}
|
|
61
|
+
${typeof h=="number"?`bottom: ${c(h,f.baseSize)};`:""}
|
|
62
62
|
|
|
63
63
|
`:""}
|
|
64
64
|
|
|
65
65
|
min-width: 0;
|
|
66
|
-
`);var Et=a(({url:r})=>{let[o,c]=useState(1),[p,h]=useState(),b=Lt.useRef(null),g=Lt.useRef(null),S=a(()=>{c(R=>Math.min(R+.25,4));},"handleZoomIn");return jsxs("div",{ref:g,className:"h-full w-full flex flex-col",children:[jsxs("div",{className:"flex justify-center items-stretch p-5.5 gap-1 border-b border-gray-200 relative ",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"secondary",size:"small",icon:jsx(Pa,{style:{width:20,height:20}}),onClick:a(()=>{c(R=>Math.max(R-.25,.25));},"handleZoomOut"),disabled:o<=.25,p:5}),jsxs(ob,{py:5,px:8,children:[o*100,"%"]}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"secondary",icon:jsx(ma,{style:{width:14,height:14}}),onClick:S,disabled:o>=4,p:8})]}),jsx("div",{className:"h-full w-full overflow-auto",children:jsx("img",{src:r,ref:b,alt:"image",className:"block w-auto max-w-none object-contain",style:{transition:"all 0.2s ease-in-out",marginInline:"auto",marginBlock:10,flexShrink:0,...p==="width"&&{width:`calc(${o*100}% - 20px)`},...p==="height"&&{height:`calc(${o*100}% - 20px)`}},onLoad:()=>{if(b.current&&g.current){let R=b.current.width,A=b.current.height,x=R<A?"height":"width";h(x);}}})})]})},"ImageDriver");var jt=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full p-5.5",children:jsx("audio",{controls:true,src:r,className:"w-full"})}),"AudioDriver");var Ve=a(({url:r})=>{let[o,c]=useState(null),[p,h]=useState(false),[b,g]=useState(true),[S,I]=useState(null);return useEffect(()=>{h(true);},[]),useEffect(()=>{if(!p)return;a(async()=>{try{let A=await import('./PdfDriver-DXBZZSBO.mjs');c(()=>A.PdfDriver),g(!1);}catch(A){console.error("Failed to load PDF driver:",A),I("Failed to load PDF viewer"),g(false);}},"loadPdfDriver")();},[p]),p?b?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500",children:"Loading PDF viewer..."})}):S||!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:S||"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",children:"Loading PDF viewer..."})})},"PdfDriverWrapper");var At=50,Qr=1e4,$t=a(({url:r,blob:o})=>{let c=useRef(null),[p,h]=useState(null),[b,g]=useState(true);return useEffect(()=>{a(async()=>{if(c.current)try{if(g(!0),h(null),!o&&r&&(o=await(await fetch(r)).blob()),!o){h("\u041D\u0435 \u043D\u0430\u0434\u0430\u043D\u043E \u0434\u043B\u044F DOCX \u0444\u0430\u0439\u043B\u0443");return}if(o.size/(1024*1024)>At){h(`\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439 (> ${At} \u041C\u0411)`);return}c.current.innerHTML="";let R=renderAsync(o,c.current,void 0,{debug:!0,experimental:!0,hideWrapperOnPrint:!0}),A=new Promise((x,T)=>setTimeout(()=>T(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")),Qr));await Promise.race([R,A]),g(!1);}catch(I){h(I?.message||"\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438 DOCX \u0444\u0430\u0439\u043B"),g(false);}},"renderDocument")();},[r,o]),jsxs(Fragment$1,{children:[!!p&&!b&&jsx("div",{className:"text-red-500 p-5",children:p}),b&&jsx("div",{className:"flex items-center justify-center p-5",children:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F..."}),jsx("div",{ref:c,className:"w-full h-full overflow-auto [&_table]:max-w-full! [&>div.docx-wrapper]:w-fit",style:{boxSizing:"border-box"}})]})},"DocxDriver");var no=a(r=>({js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",json:"json",html:"html",css:"css",scss:"scss",py:"python",java:"java",cpp:"cpp",c:"c",cs:"csharp",php:"php",rb:"ruby",go:"go",rs:"rust",swift:"swift",kt:"kotlin",xml:"xml",yaml:"yaml",yml:"yaml",md:"markdown",sql:"sql",sh:"bash",bash:"bash",txt:"text"})[r]||"text","getLanguageFromExtension"),Ot=a(({url:r,extension:o})=>{let[c,p]=useState(""),[h,b]=useState(true),[g,S]=useState(null);if(useEffect(()=>{a(async()=>{try{b(!0),S(null);let x=await fetch(r);if(!x.ok)throw new Error(`Failed to load file: ${x.statusText}`);let T=await x.text();p(T);}catch(x){S(x instanceof Error?x.message:"Failed to load text content");}finally{b(false);}},"loadTextContent")();},[r]),h)return jsx("div",{className:"flex items-center justify-center p-8",children:jsx("div",{className:"text-gray-500",children:"Loading text content..."})});if(g)return jsx("div",{className:"flex items-center justify-center p-8",children:jsxs("div",{className:"text-red-500",children:["Error: ",g]})});let I=no(o);return jsx("div",{className:"h-full w-full overflow-auto",children:I!=="text"?jsx(Prism,{className:"min-h-full! m-0! py-0!",language:I,style:darcula,showLineNumbers:true,wrapLines:true,children:c}):jsx("pre",{className:"whitespace-pre-wrap p-4 text-sm font-mono bg-gray-50 min-h-full",children:c})})},"TextDriver");var Ht=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full",children:jsx("video",{controls:true,src:r,className:"w-full max-h-full"})}),"VideoDriver");var Xt=memo(a(function({extension:o,blob:c,path:p,buffer:h,not_supported_message:b=" Sorry, this file type isn\u2019t supported yet."}){console.log("Driver props:",{extension:o,blob:c,path:p,buffer:h});let g=o.toLocaleLowerCase().trim(),S;if(p?S=p:c&&(S=URL.createObjectURL(c)),S){if(["jpeg","jpg","png","gif","bmp","webp"].includes(g))return jsx(Et,{url:S});if(["mp3","wav","ogg","flac"].includes(g))return jsx(jt,{url:S});if(["mp4","webm"].includes(g))return jsx(Ht,{url:S});if(o==="pdf")return jsx(Ve,{url:S});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"].includes(g))return jsx(Ot,{url:S,extension:g})}return g==="docx"?jsx($t,{url:S,blob:c}):jsx("div",{className:"h-full flex flex-col justify-center items-center",children:jsx(ob,{className:"mx-5",children:jsx(Ya,{variant:"h2",color:"text.light",weight:500,className:"text-center",children:b})})})},"Driver"));var rc=a(r=>jsx("div",{className:"h-full w-full",children:jsx(Xt,{...r})}),"FileViewer");var Gt=250,gc=a(({text:r,speed:o=50,onDone:c,markdown:p=false,markdownComponents:h={},className:b,...g})=>{let[S,I]=useState(""),R=useRef(null),A=useRef(null);return useEffect(()=>{let x=false;if(o>0){I(""),R.current=performance.now();let T=a(V=>{if(x||!R.current)return;let t=V-R.current,$=t/o>Gt?o/2:o,U=t/o>Gt?1.5:1,k=Math.floor(t/$*U);if(k>=r.length){I(r),x=true,c?.();return}I(r.slice(0,k)),A.current=requestAnimationFrame(T);},"tick");A.current=requestAnimationFrame(T);}else I(r),c?.();return ()=>{A.current&&cancelAnimationFrame(A.current);}},[r,o,c]),p?jsx("div",{className:b,children:jsx(lo,{remarkPlugins:[uo],components:h,...g,children:S})}):jsx(Ya,{className:b,...g,children:S})},"Typewriter");var mo={timeout:2e3,message:"Copied!"},Pc=a(({text:r,children:o,format:c="text/plain",tooltip:p})=>{let[h,b]=useState(false),g=useRef(null),S={...mo,...p},I=a(async()=>{"clipboard"in navigator?await navigator.clipboard.writeText(r):po(r,{format:c}),b(true),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>b(false),S.timeout);},"handleCopy");return useEffect(()=>()=>{g.current&&clearTimeout(g.current);},[]),jsx(Ab,{onMouseLeave:()=>b(false),className:h?"visible":"hidden",content:S.message,children:o({copy:I})})},"CopyToClipboard");var Vt=a(r=>new Date(r?Array.isArray(r)?r[1]||r[0]||new Date:r:new Date),"getInitValue"),Fe=a((r,o)=>{let c;if(o){let h=parse(r||"",o,new Date);if(isValid(h)&&getYear(h)>=1970)return h}let p=new Date(r||"");return isNaN(p.getTime())?c:p},"parseDate"),So=a((r,o)=>{let c=r?Fe(r,o):void 0;return c&&o?format(c,o):r},"renderDate"),Fc=a(({value:r,range:o,inline:c=false,minDate:p=new Date(getYear(new Date)-5,0,1),maxDate:h=new Date(getYear(new Date)+5,11,31),format:b="dd.MM.yyyy",onChange:g,...S})=>{let[I,R]=useState(getMonth(Vt(r))),[A,x]=useState(getYear(Vt(r))),T=useMemo(()=>{if(r){if(Array.isArray(r)){let t=Fe(r[0],b),$=Fe(r[1],b);return [t,$]}return Fe(r,b)}},[r]),V=useCallback(t=>{if(o){let $=!!(T&&Array.isArray(T)&&T[0]),U=!!(T&&Array.isArray(T)&&T[1]);!$||$&&U?g?.([t.toString(),""]):$&&!U&&(t<T[0]?g?.([t.toString(),T[0].toString()]):g?.([T[0].toString(),t.toString()]));}else g?.(t.toString());},[o,T,g]);return c?jsx(qt,{month:I,year:A,minDate:p,maxDate:h,selectedDate:T,onSelectDate:V,onChangeMonth:R,onChangeYear:x}):o?jsx(Mo,{range:true,value:r,onChange:g,...S}):jsx(Co,{value:r,onChange:g,minDate:p,maxDate:h,month:I,year:A,selectedDate:T,onChangeMonth:R,onChangeYear:x,onSelectDate:V,formatStr:b,...S})},"DatePicker"),Mo=a(({minDate:r,maxDate:o,value:c,onChange:p})=>null,"DatePickerGroupInput"),Co=a(({placeholder:r,value:o,onChange:c,inputProps:p,...h})=>{let[b,g]=useState(false),S=y();return jsx(Popover,{positions:["bottom","top","right","left"],align:"start",isOpen:b,onClickOutside:()=>g(false),content:jsx(ob,{children:jsx(qt,{...h})}),containerStyle:{zIndex:`${S.zIndex.popover}`},children:jsx("div",{onClick:()=>g(true),children:jsx(kb,{...p,placeholder:r,value:So(o,h.formatStr),onChange:I=>c?.(I.target.value)})})})},"DatePickerInput"),qt=a(({month:r,year:o,selectedDate:c,minDate:p,maxDate:h,onSelectDate:b,onChangeMonth:g,onChangeYear:S})=>{let I=useMemo(()=>new Array(12).fill(null).map((k,E)=>{let M=new Date(0,E);return {value:E+1,inputDisplay:format(M,"MMMM")}}),[]),R=useMemo(()=>{let k=getYear(p),M=getYear(h)-k+1;return new Array(M).fill(null).map((D,K)=>{let q=k+K;return {value:q,inputDisplay:q.toString()}})},[p,h]),A=useMemo(()=>new Array(7).fill(null).map((k,E)=>{let M=startOfWeek(new Date,{weekStartsOn:E});return format(M,"EEE")}),[]),x=useMemo(()=>{let k=getWeeksInMonth(new Date(o,r)),E=startOfMonth(new Date(o,r)),M=previousMonday(E),D=differenceInDays(E,M);return new Array(k*7).fill(null).map((K,q)=>new Date(o,r,q-D+1))},[r,o]),T=useCallback(()=>{r===0?(S(o-1),g(11)):g(r-1);},[r,o]),V=useCallback(()=>{r===11?(S(o+1),g(0)):g(r+1);},[r,o]),t=useMemo(()=>p?!(o<getYear(p)||o===getYear(p)&&r<=getMonth(p)):true,[r,o,p]),$=useMemo(()=>h?!(o>getYear(h)||o===getYear(h)&&r>=getMonth(h)):true,[r,o,h]),U=useCallback(k=>{k.stopPropagation();},[]);return jsxs("div",{className:"flex flex-col date-picker-calendar",onClick:U,children:[jsxs("div",{className:"flex justify-center items-center gap-2 pb-3",children:[t&&jsx(z,{size:"small",variant:"empty",icon:jsx(G,{}),onClick:T}),jsxs("div",{className:"flex-1 flex justify-center gap-1",children:[jsx(ib,{placeholder:"",hasBorder:false,selected:r+1,options:I,onSelect:k=>g(k-1),maxWidth:150,maxHeight:300}),jsx(ib,{placeholder:"",hasBorder:false,selected:o,options:R,onSelect:k=>S(k),maxWidth:100,maxHeight:300})]}),$&&jsx(z,{size:"small",variant:"empty",icon:jsx(H,{}),onClick:V})]}),jsx("div",{className:"grid grid-cols-7 gap-2",children:A.map(k=>jsx("div",{className:"text-center",children:k},k))}),jsx("div",{className:"grid grid-cols-7 gap-2 mt-2",children:x.map(k=>{let E=getMonth(k)===r,M=format(k,"yyyy-MM-dd")===format(new Date,"yyyy-MM-dd"),D=c&&(Array.isArray(c)&&(c[0]&&format(k,"yyyy-MM-dd")===format(c[0],"yyyy-MM-dd")||c[1]&&format(k,"yyyy-MM-dd")===format(c[1],"yyyy-MM-dd"))||!Array.isArray(c)&&format(k,"yyyy-MM-dd")===format(c,"yyyy-MM-dd")),K=c&&Array.isArray(c)&&c[0]&&c[1]&&k>c[0]&&k<c[1],q=p&&differenceInDays(k,p)<0||h&&differenceInDays(k,h)>0||!E;return jsx(To,{date:k,isCurrentMonth:E,isCurrentDay:M,isSelected:!!D,isInRange:!!K,isDisabled:!!q,onSelectDate:b},k.toISOString())})})]})},"DatePickerCalendar"),To=a(({date:r,isCurrentMonth:o,isCurrentDay:c,isSelected:p,isInRange:h,isDisabled:b,onSelectDate:g})=>jsx("div",{className:`text-center p-2 cursor-pointer rounded ${b?"text-gray-400 cursor-not-allowed":p?"bg-blue-500 text-white":h?"bg-blue-100":c?"text-blue-500":o?"text-black":"text-gray-400"} ${b?"":p?"hover:bg-blue-600":"hover:bg-gray-100"}`,onClick:a(I=>{b||g(r);},"handleClick"),children:format(r,"d")}),"CalendarDay");var Lo=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"),Ro=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"),Eo=a(r=>{switch(r){case "bottom":return "translate-y-4";case "top":default:return "-translate-y-4"}},"getTransitionStarting"),Qt=a(({id:r,color:o="default",message:c,duration:p,transitionDirection:h,cancelable:b=true,onClose:g})=>{let[S,I]=useState(false),[R,A]=useState(false),x=useRef(null),T=useCallback(()=>{I(true),x.current=setTimeout(()=>{g(r);},300);},[r,g]);return useEffect(()=>{if(A(true),p&&p<1/0){let V=setTimeout(()=>{T();},p);return ()=>clearTimeout(V)}},[p,T]),useEffect(()=>()=>{x.current&&clearTimeout(x.current);},[]),jsx("div",{className:`max-w-xs
|
|
66
|
+
`);var jt=a(({url:r})=>{let[o,c]=useState(1),[p,h]=useState(),b=Rt.useRef(null),f=Rt.useRef(null),P=a(()=>{c(E=>Math.min(E+.25,4));},"handleZoomIn");return jsxs("div",{ref:f,className:"h-full w-full flex flex-col",children:[jsxs("div",{className:"flex justify-center items-stretch p-5.5 gap-1 border-b border-gray-200 relative ",children:[jsx(z,{variant:"outlined","aria-label":"zoom-out",color:"secondary",size:"small",icon:jsx(Pa,{style:{width:20,height:20}}),onClick:a(()=>{c(E=>Math.max(E-.25,.25));},"handleZoomOut"),disabled:o<=.25,p:5}),jsxs(ob,{py:5,px:8,children:[o*100,"%"]}),jsx(z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"secondary",icon:jsx(ma,{style:{width:14,height:14}}),onClick:P,disabled:o>=4,p:8})]}),jsx("div",{className:"h-full w-full overflow-auto",children:jsx("img",{src:r,ref:b,alt:"image",className:"block w-auto max-w-none object-contain",style:{transition:"all 0.2s ease-in-out",marginInline:"auto",marginBlock:10,flexShrink:0,...p==="width"&&{width:`calc(${o*100}% - 20px)`},...p==="height"&&{height:`calc(${o*100}% - 20px)`}},onLoad:()=>{if(b.current&&f.current){let E=b.current.width,B=b.current.height,M=E<B?"height":"width";h(M);}}})})]})},"ImageDriver");var Ft=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full p-5.5",children:jsx("audio",{controls:true,src:r,className:"w-full"})}),"AudioDriver");var Ue=a(({url:r})=>{let[o,c]=useState(null),[p,h]=useState(false),[b,f]=useState(true),[P,L]=useState(null);return useEffect(()=>{h(true);},[]),useEffect(()=>{if(!p)return;a(async()=>{try{let B=await import('./PdfDriver-B23AQDZV.mjs');c(()=>B.PdfDriver),f(!1);}catch(B){console.error("Failed to load PDF driver:",B),L("Failed to load PDF viewer"),f(false);}},"loadPdfDriver")();},[p]),p?b?jsx("div",{className:"flex items-center justify-center h-full w-full",children:jsx("div",{className:"text-gray-500",children:"Loading PDF viewer..."})}):P||!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:P||"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",children:"Loading PDF viewer..."})})},"PdfDriverWrapper");var Ot=50,no=1e4,Ht=a(({url:r,blob:o})=>{let c=useRef(null),[p,h]=useState(null),[b,f]=useState(true);return useEffect(()=>{a(async()=>{if(c.current)try{if(f(!0),h(null),!o&&r&&(o=await(await fetch(r)).blob()),!o){h("\u041D\u0435 \u043D\u0430\u0434\u0430\u043D\u043E \u0434\u043B\u044F DOCX \u0444\u0430\u0439\u043B\u0443");return}if(o.size/(1024*1024)>Ot){h(`\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439 (> ${Ot} \u041C\u0411)`);return}c.current.innerHTML="";let E=renderAsync(o,c.current,void 0,{debug:!0,experimental:!0,hideWrapperOnPrint:!0}),B=new Promise((M,C)=>setTimeout(()=>C(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")),no));await Promise.race([E,B]),f(!1);}catch(L){h(L?.message||"\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0456\u0434\u043A\u0440\u0438\u0442\u0438 DOCX \u0444\u0430\u0439\u043B"),f(false);}},"renderDocument")();},[r,o]),jsxs(Fragment$1,{children:[!!p&&!b&&jsx("div",{className:"text-red-500 p-5",children:p}),b&&jsx("div",{className:"flex items-center justify-center p-5",children:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F..."}),jsx("div",{ref:c,className:"w-full h-full overflow-auto [&_table]:max-w-full! [&>div.docx-wrapper]:w-fit",style:{boxSizing:"border-box"}})]})},"DocxDriver");var bo=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"),Gt=a(({url:r,extension:o})=>{let[c,p]=useState(""),[h,b]=useState(true),[f,P]=useState(null),[L,E]=useState(0),B=useRef(null);if(useEffect(()=>{a(async()=>{try{b(!0),P(null);let $=await fetch(r);if(!$.ok)throw new Error(`Failed to load file: ${$.statusText}`);let t=await $.text();p(t);}catch($){P($ instanceof Error?$.message:"Failed to load text content");}finally{b(false);}},"loadTextContent")();},[r]),useEffect(()=>{let C=a(()=>{if(B.current){let $=B.current.clientHeight;E($);}},"updateHeight");return C(),window.addEventListener("resize",C),()=>{window.removeEventListener("resize",C);}},[h]),h)return jsx("div",{className:"flex items-center justify-center p-8",children:jsx("div",{className:"text-gray-500",children:"Loading text content..."})});if(f)return jsx("div",{className:"flex items-center justify-center p-8",children:jsxs("div",{className:"text-red-500",children:["Error: ",f]})});let M=bo(o);return jsx("div",{ref:B,className:"h-full w-full",children:L>0&&jsx(co,{value:c,theme:vscodeDark,extensions:M,editable:false,height:`${L}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 qt=a(({url:r})=>jsx("div",{className:"flex flex-col justify-center items-center w-full h-full",children:jsx("video",{controls:true,src:r,className:"w-full max-h-full"})}),"VideoDriver");var Ut=memo(a(function({extension:o,blob:c,path:p,buffer:h,not_supported_message:b=" Sorry, this file type isn\u2019t supported yet."}){console.log("Driver props:",{extension:o,blob:c,path:p,buffer:h});let f=o.toLocaleLowerCase().trim(),P;if(p?P=p:c&&(P=URL.createObjectURL(c)),P){if(["jpeg","jpg","png","gif","bmp","webp"].includes(f))return jsx(jt,{url:P});if(["mp3","wav","ogg","flac"].includes(f))return jsx(Ft,{url:P});if(["mp4","webm"].includes(f))return jsx(qt,{url:P});if(o==="pdf")return jsx(Ue,{url:P});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"].includes(f))return jsx(Gt,{url:P,extension:f})}return f==="docx"?jsx(Ht,{url:P,blob:c}):jsx("div",{className:"h-full flex flex-col justify-center items-center",children:jsx(ob,{className:"mx-5",children:jsx(Ya,{variant:"h2",color:"text.light",weight:500,className:"text-center",children:b})})})},"Driver"));var Nc=a(r=>jsx("div",{className:"h-full w-full",children:jsx(Ut,{...r})}),"FileViewer");var Kt=250,Hc=a(({text:r,speed:o=50,onDone:c,markdown:p=false,markdownComponents:h={},className:b,...f})=>{let[P,L]=useState(""),E=useRef(null),B=useRef(null);return useEffect(()=>{let M=false;if(o>0){L(""),E.current=performance.now();let C=a($=>{if(M||!E.current)return;let t=$-E.current,O=t/o>Kt?o/2:o,U=t/o>Kt?1.5:1,x=Math.floor(t/O*U);if(x>=r.length){L(r),M=true,c?.();return}L(r.slice(0,x)),B.current=requestAnimationFrame(C);},"tick");B.current=requestAnimationFrame(C);}else L(r),c?.();return ()=>{B.current&&cancelAnimationFrame(B.current);}},[r,o,c]),p?jsx("div",{className:b,children:jsx(Po,{remarkPlugins:[So],components:h,...f,children:P})}):jsx(Ya,{className:b,...f,children:P})},"Typewriter");var Lo={timeout:2e3,message:"Copied!"},Jc=a(({text:r,children:o,format:c="text/plain",tooltip:p})=>{let[h,b]=useState(false),f=useRef(null),P={...Lo,...p},L=a(async()=>{"clipboard"in navigator?await navigator.clipboard.writeText(r):Mo(r,{format:c}),b(true),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>b(false),P.timeout);},"handleCopy");return useEffect(()=>()=>{f.current&&clearTimeout(f.current);},[]),jsx(Ab,{onMouseLeave:()=>b(false),className:h?"visible":"hidden",content:P.message,children:o({copy:L})})},"CopyToClipboard");var Qt=a(r=>new Date(r?Array.isArray(r)?r[1]||r[0]||new Date:r:new Date),"getInitValue"),$e=a((r,o)=>{let c;if(o){let h=parse(r||"",o,new Date);if(isValid(h)&&getYear(h)>=1970)return h}let p=new Date(r||"");return isNaN(p.getTime())?c:p},"parseDate"),$o=a((r,o)=>{let c=r?$e(r,o):void 0;return c&&o?format(c,o):r},"renderDate"),dl=a(({value:r,range:o,inline:c=false,minDate:p=new Date(getYear(new Date)-5,0,1),maxDate:h=new Date(getYear(new Date)+5,11,31),format:b="dd.MM.yyyy",onChange:f,...P})=>{let[L,E]=useState(getMonth(Qt(r))),[B,M]=useState(getYear(Qt(r))),C=useMemo(()=>{if(r){if(Array.isArray(r)){let t=$e(r[0],b),O=$e(r[1],b);return [t,O]}return $e(r,b)}},[r]),$=useCallback(t=>{if(o){let O=!!(C&&Array.isArray(C)&&C[0]),U=!!(C&&Array.isArray(C)&&C[1]);!O||O&&U?f?.([t.toString(),""]):O&&!U&&(t<C[0]?f?.([t.toString(),C[0].toString()]):f?.([C[0].toString(),t.toString()]));}else f?.(t.toString());},[o,C,f]);return c?jsx(er,{month:L,year:B,minDate:p,maxDate:h,selectedDate:C,onSelectDate:$,onChangeMonth:E,onChangeYear:M}):o?jsx(Oo,{range:true,value:r,onChange:f,...P}):jsx(Ho,{value:r,onChange:f,minDate:p,maxDate:h,month:L,year:B,selectedDate:C,onChangeMonth:E,onChangeYear:M,onSelectDate:$,formatStr:b,...P})},"DatePicker"),Oo=a(({minDate:r,maxDate:o,value:c,onChange:p})=>null,"DatePickerGroupInput"),Ho=a(({placeholder:r,value:o,onChange:c,inputProps:p,...h})=>{let[b,f]=useState(false),P=y();return jsx(Popover,{positions:["bottom","top","right","left"],align:"start",isOpen:b,onClickOutside:()=>f(false),content:jsx(ob,{children:jsx(er,{...h})}),containerStyle:{zIndex:`${P.zIndex.popover}`},children:jsx("div",{onClick:()=>f(true),children:jsx(kb,{...p,placeholder:r,value:$o(o,h.formatStr),onChange:L=>c?.(L.target.value)})})})},"DatePickerInput"),er=a(({month:r,year:o,selectedDate:c,minDate:p,maxDate:h,onSelectDate:b,onChangeMonth:f,onChangeYear:P})=>{let L=useMemo(()=>new Array(12).fill(null).map((x,R)=>{let S=new Date(0,R);return {value:R+1,inputDisplay:format(S,"MMMM")}}),[]),E=useMemo(()=>{let x=getYear(p),S=getYear(h)-x+1;return new Array(S).fill(null).map((k,Q)=>{let q=x+Q;return {value:q,inputDisplay:q.toString()}})},[p,h]),B=useMemo(()=>new Array(7).fill(null).map((x,R)=>{let S=startOfWeek(new Date,{weekStartsOn:R});return format(S,"EEE")}),[]),M=useMemo(()=>{let x=getWeeksInMonth(new Date(o,r)),R=startOfMonth(new Date(o,r)),S=previousMonday(R),k=differenceInDays(R,S);return new Array(x*7).fill(null).map((Q,q)=>new Date(o,r,q-k+1))},[r,o]),C=useCallback(()=>{r===0?(P(o-1),f(11)):f(r-1);},[r,o]),$=useCallback(()=>{r===11?(P(o+1),f(0)):f(r+1);},[r,o]),t=useMemo(()=>p?!(o<getYear(p)||o===getYear(p)&&r<=getMonth(p)):true,[r,o,p]),O=useMemo(()=>h?!(o>getYear(h)||o===getYear(h)&&r>=getMonth(h)):true,[r,o,h]),U=useCallback(x=>{x.stopPropagation();},[]);return jsxs("div",{className:"flex flex-col date-picker-calendar",onClick:U,children:[jsxs("div",{className:"flex justify-center items-center gap-2 pb-3",children:[t&&jsx(z,{size:"small",variant:"empty",icon:jsx(G,{}),onClick:C}),jsxs("div",{className:"flex-1 flex justify-center gap-1",children:[jsx(ib,{placeholder:"",hasBorder:false,selected:r+1,options:L,onSelect:x=>f(x-1),maxWidth:150,maxHeight:300}),jsx(ib,{placeholder:"",hasBorder:false,selected:o,options:E,onSelect:x=>P(x),maxWidth:100,maxHeight:300})]}),O&&jsx(z,{size:"small",variant:"empty",icon:jsx(H,{}),onClick:$})]}),jsx("div",{className:"grid grid-cols-7 gap-2",children:B.map(x=>jsx("div",{className:"text-center",children:x},x))}),jsx("div",{className:"grid grid-cols-7 gap-2 mt-2",children:M.map(x=>{let R=getMonth(x)===r,S=format(x,"yyyy-MM-dd")===format(new Date,"yyyy-MM-dd"),k=c&&(Array.isArray(c)&&(c[0]&&format(x,"yyyy-MM-dd")===format(c[0],"yyyy-MM-dd")||c[1]&&format(x,"yyyy-MM-dd")===format(c[1],"yyyy-MM-dd"))||!Array.isArray(c)&&format(x,"yyyy-MM-dd")===format(c,"yyyy-MM-dd")),Q=c&&Array.isArray(c)&&c[0]&&c[1]&&x>c[0]&&x<c[1],q=p&&differenceInDays(x,p)<0||h&&differenceInDays(x,h)>0||!R;return jsx(Wo,{date:x,isCurrentMonth:R,isCurrentDay:S,isSelected:!!k,isInRange:!!Q,isDisabled:!!q,onSelectDate:b},x.toISOString())})})]})},"DatePickerCalendar"),Wo=a(({date:r,isCurrentMonth:o,isCurrentDay:c,isSelected:p,isInRange:h,isDisabled:b,onSelectDate:f})=>jsx("div",{className:`text-center p-2 cursor-pointer rounded ${b?"text-gray-400 cursor-not-allowed":p?"bg-blue-500 text-white":h?"bg-blue-100":c?"text-blue-500":o?"text-black":"text-gray-400"} ${b?"":p?"hover:bg-blue-600":"hover:bg-gray-100"}`,onClick:a(L=>{b||f(r);},"handleClick"),children:format(r,"d")}),"CalendarDay");var _o=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"),Go=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"),Vo=a(r=>{switch(r){case "bottom":return "translate-y-4";case "top":default:return "-translate-y-4"}},"getTransitionStarting"),nr=a(({id:r,color:o="default",message:c,duration:p,transitionDirection:h,cancelable:b=true,onClose:f})=>{let[P,L]=useState(false),[E,B]=useState(false),M=useRef(null),C=useCallback(()=>{L(true),M.current=setTimeout(()=>{f(r);},300);},[r,f]);return useEffect(()=>{if(B(true),p&&p<1/0){let $=setTimeout(()=>{C();},p);return ()=>clearTimeout($)}},[p,C]),useEffect(()=>()=>{M.current&&clearTimeout(M.current);},[]),jsx("div",{className:`max-w-xs
|
|
67
67
|
border
|
|
68
68
|
w-full
|
|
69
69
|
text-sm
|
|
@@ -71,8 +71,8 @@ ${r?`
|
|
|
71
71
|
transition-all
|
|
72
72
|
ease-in-out
|
|
73
73
|
duration-300
|
|
74
|
-
${
|
|
75
|
-
${
|
|
76
|
-
${
|
|
77
|
-
export{
|
|
74
|
+
${P||!E?"opacity-0":"opacity-100"}
|
|
75
|
+
${E?"translate-y-0":Vo(h)}
|
|
76
|
+
${_o(o)} ${Go(o)}`,children:jsxs("div",{className:"flex p-4 ",children:[c,b&&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:C,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 Uo=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"),Dl=a(({items:r,onClose:o,position:c="top-right",offset:p=4})=>{let h=useMemo(()=>c.startsWith("top")?"top":"bottom",[c]);return jsx("div",{className:`fixed flex min-w-0 max-w-xs w-full flex-col z-50 gap-2 ${Uo(c,p)}`,children:r.map(b=>jsx(nr,{transitionDirection:h,...b,onClose:o},b.id))})},"ToastsList");
|
|
77
|
+
export{Oi as Container,Jc as CopyToClipboard,dl as DatePicker,er as DatePickerCalendar,Nc as FileViewer,Ds as FullscreenCard,qr as Graph2D,Pi as PageContent,bi as PageLayout,Gi as SplitterLayout,mr as Styled,dr as StyledContainer,hr as StyledMain,Ni as SubNav,Dl as ToastsList,Hc as Typewriter};//# sourceMappingURL=index.mjs.map
|
|
78
78
|
//# sourceMappingURL=index.mjs.map
|