diff options
-rw-r--r-- | README.md | 37 | ||||
-rw-r--r-- | org-roam-ui.el | 7 | ||||
-rw-r--r-- | out/404.html | 6 | ||||
-rw-r--r-- | out/_next/static/NjgmQd_TDFyofQkcfOvWb/_buildManifest.js (renamed from out/_next/static/JLF-L6aVAhEgW_PO7mbbH/_buildManifest.js) | 0 | ||||
-rw-r--r-- | out/_next/static/NjgmQd_TDFyofQkcfOvWb/_ssgManifest.js (renamed from out/_next/static/JLF-L6aVAhEgW_PO7mbbH/_ssgManifest.js) | 0 | ||||
-rw-r--r-- | out/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.js | 2577 | ||||
-rw-r--r-- | out/index.html | 6 |
7 files changed, 2618 insertions, 15 deletions
@@ -53,9 +53,16 @@ Then something along the following to your `config.el` (use-package! org-roam-ui :after org-roam ;; or :after org - :hook (org-roam . org-roam-ui-mode) + :hook +;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have +;; a hookable mode anymore, you're advised to pick something yourself +;; if you don't care about startup time, use +;; :hook (after-init . org-roam-ui-mode) :config -) + (setq org-roam-ui-sync-theme t + org-roam-ui-follow t + org-roam-ui-update-on-save t + org-roam-ui-open-on-start t)) ``` @@ -68,11 +75,18 @@ We recommend only loading org-roam-ui after loading org(-roam) as starting the s :straight (:host github :repo "org-roam/org-roam-ui" :branch "main" :files ("*.el" "out")) :after org-roam - :hook (org-roam . org-roam-ui-mode)) -``` + :hook +;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have +;; a hookable mode anymore, you're advised to pick something yourself +;; if you don't care about startup time, use +;; :hook (after-init . org-roam-ui-mode) + :config + (setq org-roam-ui-sync-theme t + org-roam-ui-follow t + org-roam-ui-update-on-save t + org-roam-ui-open-on-start t)) -TODO -You probably know how to do this +``` ## Usage @@ -142,8 +156,7 @@ You can also provide your own theme if you do not like syncing nor like the defa ```emacs-lisp (setq org-roam-ui-custom-theme - (list - (bg . "#1E2029") + '((bg . "#1E2029") (bg-alt . "#282a36") (fg . "#f8f8f2") (fg-alt . "#6272a4") @@ -159,6 +172,14 @@ You can also provide your own theme if you do not like syncing nor like the defa You can optionally provide `(base1 . "#XXXXXX")` arguments after the last one to also set the background shades, otherwise ORUI will guess based on the provides bg and fg. +### Open on start + +By default, org-roam-ui will try to open itself in your default browser. To disable this, set + +```emacs-lisp +(setq org-roam-ui-open-on-start nil) +``` + ## Disclaimers ‼ - We only support [org-roam v2](https://blog.jethro.dev/posts/org_roam_v2/); v1 will never be supported. diff --git a/org-roam-ui.el b/org-roam-ui.el index e4bcd82..098e99e 100644 --- a/org-roam-ui.el +++ b/org-roam-ui.el @@ -97,6 +97,11 @@ This can lead to some jank." :group 'org-roam-ui :type 'boolean) +(defcustom org-roam-ui-open-on-start t + "Whether to open your default browser when org-roam-ui-mode launces." + :group 'org-roam-ui + :type 'boolean) + (defvar org-roam-ui--ws-current-node nil "Var to keep track of which node you are looking at.") (defvar oru-ws nil @@ -116,6 +121,8 @@ This serves the web-build and API over HTTP." (setq-local httpd-port org-roam-ui-port) (setq httpd-root org-roam-ui/app-build-dir) (httpd-start) + (when org-roam-ui-open-on-start + (browse-url "http://localhost:35901")) (setq org-roam-ui-ws (websocket-server 35903 diff --git a/out/404.html b/out/404.html index 24f5e52..f02f3d6 100644 --- a/out/404.html +++ b/out/404.html @@ -18,8 +18,8 @@ <script src="/_next/static/chunks/main-1b0f1fd287f08bad6012.js" defer=""></script> <script src="/_next/static/chunks/pages/_app-6ba3a11e93bdf6a85175.js" defer=""></script> <script src="/_next/static/chunks/pages/_error-a0e21b9b223f827fe1f2.js" defer=""></script> - <script src="/_next/static/JLF-L6aVAhEgW_PO7mbbH/_buildManifest.js" defer=""></script> - <script src="/_next/static/JLF-L6aVAhEgW_PO7mbbH/_ssgManifest.js" defer=""></script> + <script src="/_next/static/NjgmQd_TDFyofQkcfOvWb/_buildManifest.js" defer=""></script> + <script src="/_next/static/NjgmQd_TDFyofQkcfOvWb/_ssgManifest.js" defer=""></script> </head> <body> <div id="__next"> @@ -753,7 +753,7 @@ "props": { "pageProps": { "statusCode": 404 } }, "page": "/_error", "query": {}, - "buildId": "JLF-L6aVAhEgW_PO7mbbH", + "buildId": "NjgmQd_TDFyofQkcfOvWb", "nextExport": true, "isFallback": false, "gip": true, diff --git a/out/_next/static/JLF-L6aVAhEgW_PO7mbbH/_buildManifest.js b/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_buildManifest.js index 647fb11..647fb11 100644 --- a/out/_next/static/JLF-L6aVAhEgW_PO7mbbH/_buildManifest.js +++ b/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_buildManifest.js diff --git a/out/_next/static/JLF-L6aVAhEgW_PO7mbbH/_ssgManifest.js b/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_ssgManifest.js index 0511aa8..0511aa8 100644 --- a/out/_next/static/JLF-L6aVAhEgW_PO7mbbH/_ssgManifest.js +++ b/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_ssgManifest.js diff --git a/out/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.js b/out/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.js index 791e4d6..fa79c8f 100644 --- a/out/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.js +++ b/out/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.js @@ -1 +1,2576 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{374:function(e,n,t){"use strict";t.r(n),t.d(n,{Graph:function(){return je},GraphPage:function(){return pe},default:function(){return fe}});var r=t(7757),i=t.n(r),o=t(2137),l=t(5893),a=t(7329),s=t(6156),c=t(4699),u=t(7294);function d(e,n){var t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=h(e,null!==(t=r.storage)&&void 0!==t?t:localStorage),o=i.get(),l=void 0!==o?o:n;l!==o&&i.update(l);var a=(0,u.useState)(l),s=a[0],c=a[1];(0,u.useEffect)((function(){s!==l&&c(l)}),[e]);var d=function(e){e instanceof Function?c((function(n){var t=e(n);return i.update(t),t})):(c(e),i.update(e))};return[s,d]}function h(e,n){return{get:function(){var t=n.getItem(e);if(t&&"undefined"!==t)return JSON.parse(t)},update:function(t){n.setItem(e,JSON.stringify(t))},remove:function(){n.removeItem(e)}}}var g=t(4533),x=t(4309),f=t(2351),p=t(980),j=t(8017),m=t(6194),v=[],b={};for(var C in m.oY)for(var y in m.oY[C]){var k=C+y;"LinearNone"===k&&(k="Linear"),v.push(k),b[k]=m.oY[C][y]}var w=b,S={enabled:!0,charge:-700,collision:!0,collisionStrength:20,centering:!0,centeringStrength:.05,linkStrength:.1,linkIts:1,alphaDecay:.02,alphaTarget:0,alphaMin:0,velocityDecay:.25,gravity:.3,gravityOn:!0},O={orphans:!1,parents:!0,tags:[],nodes:[],links:[],date:[]},N={particles:!1,particlesNumber:0,particlesWidth:4,arrows:!1,arrowsLength:1,arrowsPos:.5,arrowsColor:"",linkOpacity:.8,linkWidth:1,nodeRel:4,nodeOpacity:1,nodeResolution:12,labels:2,labelScale:1.5,highlight:!0,highlightNodeSize:2,highlightLinkSize:2,highlightAnim:!0,animationSpeed:700,algorithmOptions:v,algorithmName:"BackOut",linkColorScheme:"gray.500",nodeColorScheme:["red.500","gray.600","yellow.500","green.500","cyan.500","blue.500","pink.500","purple.500","orange.500"],nodeHighlight:"",linkHighlight:"purple.500",backgroundColor:"white",emacsNodeColor:"gray.800",labelTextColor:"black",labelBackgroundColor:"white",labelBackgroundOpacity:.7,citeDashes:!0,citeDashLength:35,citeGapLength:15,citeLinkColor:"gray.600",citeNodeColor:"black"},I={follow:"zoom",localSame:"add",zoomPadding:200,zoomSpeed:2e3},z={highlight:"hover",local:"click",follow:"double"},L=t(7375),D=t(3924),R=t(3986),T=t(9641),P=t(7546),Z=t(3441),E=t(6569),H=t(4189),F=t(454),A=t(8420),B=t(6699),V=t(155),M=t(6769),X=t(336),W=t(2026),_=t(4096),U=t(4115),Q=t(8134),q=t(8235),G=t(7273),K=t(5267),J=t(6049),Y=t(3014),$=t(6658),ee=t(9356);function ne(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function te(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?ne(Object(t),!0).forEach((function(n){(0,s.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ne(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var re=function(e){var n=e.physics,t=e.setPhysics,r=e.threeDim,i=e.setThreeDim,o=e.filter,s=e.setFilter,d=e.visuals,h=e.setVisuals,g=e.mouse,x=e.setMouse,f=e.behavior,p=e.setBehavior,m=(0,u.useState)(!0),v=m[0],b=m[1],C=(0,u.useContext)(ee.N),y=C.highlightColor,k=C.setHighlightColor,w=["red.500","orange.500","yellow.500","green.500","cyan.500","blue.500","pink.500","purple.500","gray.400","gray.500","gray.600","white","gray.100","gray.200","gray.300","gray.400","gray.500","gray.600","gray.700","gray.800","gray.900","black"];return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(F.R,{in:!v,children:(0,l.jsx)(j.xu,{position:"absolute",zIndex:"overlay",marginTop:10,marginLeft:10,display:v?"none":"block",children:(0,l.jsx)(A.h,{"aria-label":"Settings",icon:(0,l.jsx)(D.e,{}),onClick:function(){return b(!0)}})})}),(0,l.jsx)(F.R,{in:v,children:(0,l.jsxs)(j.xu,{bg:"alt.100",w:"xs",marginTop:10,marginLeft:10,borderRadius:"xl",maxH:650,paddingBottom:5,zIndex:300,position:"relative",boxShadow:"xl",children:[(0,l.jsxs)(j.xu,{display:"flex",justifyContent:"space-between",alignItems:"center",paddingRight:2,paddingTop:1,children:[(0,l.jsx)(B.u,{label:"2D",children:(0,l.jsx)(V.z,{onClick:function(){return i(!r)},variant:"ghost",zIndex:"overlay",children:r?"3D":"2D"})}),(0,l.jsxs)(j.xu,{display:"flex",alignItems:"center",children:[(0,l.jsx)(B.u,{label:"Reset settings to defaults",children:(0,l.jsx)(A.h,{"aria-label":"Reset Defaults",icon:(0,l.jsx)(R.A,{}),onClick:function(){h(N),s(O),x(z),t(S),p(I)},variant:"none",size:"sm"})}),(0,l.jsx)(A.h,{size:"sm",icon:(0,l.jsx)(T.T,{}),"aria-label":"Close Tweak Panel",variant:"ghost",onClick:function(){return b(!1)}})]})]}),(0,l.jsx)($.ZP,{autoHeight:!0,autoHeightMax:600,autoHide:!0,renderThumbVertical:function(e){var n=e.style,t=(0,L.Z)(e,["style"]);return(0,l.jsx)(j.xu,te(te({},t),{},{style:te(te({},n),{},{borderRadius:10}),bg:y}))},children:(0,l.jsxs)(M.UQ,{allowMultiple:!0,allowToggle:!0,color:"black",children:[(0,l.jsxs)(M.Qd,{children:[(0,l.jsxs)(M.KF,{children:[(0,l.jsx)(M.XE,{marginRight:2}),(0,l.jsx)(X.X,{size:"sm",children:"Filter"})]}),(0,l.jsx)(M.Hk,{children:(0,l.jsxs)(W.gC,{spacing:2,justifyContent:"flex-start",divider:(0,l.jsx)(W.cX,{borderColor:"gray.500"}),align:"stretch",paddingLeft:7,color:"gray.800",children:[(0,l.jsxs)(_.k,{justifyContent:"space-between",children:[(0,l.jsx)(U.x,{children:"Orphans"}),(0,l.jsx)(Q.r,{onChange:function(){s(te(te({},o),{},{orphans:!o.orphans}))},isChecked:o.orphans})]}),(0,l.jsxs)(_.k,{justifyContent:"space-between",children:[(0,l.jsx)(U.x,{children:"Link nodes with parent file"}),(0,l.jsx)(Q.r,{onChange:function(){s(te(te({},o),{},{parents:!o.parents}))},isChecked:o.parents})]})]})})]}),(0,l.jsxs)(M.Qd,{children:[(0,l.jsx)(M.KF,{display:"flex",justifyContent:"space-between",children:(0,l.jsxs)(j.xu,{display:"flex",children:[(0,l.jsx)(M.XE,{marginRight:2}),(0,l.jsx)(X.X,{size:"sm",children:"Physics"})]})}),(0,l.jsxs)(M.Hk,{children:[(0,l.jsxs)(W.gC,{spacing:2,justifyContent:"flex-start",divider:(0,l.jsx)(W.cX,{borderColor:"gray.500"}),align:"stretch",paddingLeft:7,color:"gray.800",children:[(0,l.jsx)(le,{label:"Gravity",value:n.gravityOn,onChange:function(){return t(te(te({},n),{},{gravityOn:!n.gravityOn}))},children:(0,l.jsx)(oe,{label:"Strength",value:10*n.gravity,onChange:function(e){return t(te(te({},n),{},{gravity:e/10}))}})}),(0,l.jsx)(oe,{value:-n.charge/100,onChange:function(e){return t(te(te({},n),{},{charge:-100*e}))},label:"Repulsive Force"}),(0,l.jsx)(le,{label:"Collision",infoText:"Perfomance sap, disable if slow",value:n.collision,onChange:function(){return t(te(te({},n),{},{collision:!n.collision}))},children:(0,l.jsx)(oe,{value:n.collisionStrength/5,onChange:function(e){return t(te(te({},n),{},{collisionStrength:5*e}))},label:"Collision Radius",infoText:"Easy with this one, high values can lead to a real jiggly mess"})}),(0,l.jsx)(oe,{value:5*n.linkStrength,onChange:function(e){return t(te(te({},n),{},{linkStrength:e/5}))},label:"Link Force"}),(0,l.jsx)(oe,{label:"Link Iterations",value:n.linkIts,onChange:function(e){return t(te(te({},n),{},{linkIts:e}))},min:0,max:6,step:1,infoText:"How many links down the line the physics of a single node affects (Slow)"}),(0,l.jsx)(oe,{label:"Viscosity",value:10*n.velocityDecay,onChange:function(e){return t(te(te({},n),{},{velocityDecay:e/10}))}})]}),(0,l.jsx)(j.xu,{children:(0,l.jsx)(M.UQ,{paddingLeft:3,allowToggle:!0,children:(0,l.jsxs)(M.Qd,{children:[(0,l.jsxs)(M.KF,{children:[(0,l.jsx)(U.x,{children:"Advanced"}),(0,l.jsx)(M.XE,{marginRight:2})]}),(0,l.jsx)(M.Hk,{children:(0,l.jsxs)(W.gC,{spacing:2,justifyContent:"flex-start",divider:(0,l.jsx)(W.cX,{borderColor:"gray.500"}),align:"stretch",paddingLeft:3,color:"gray.800",children:[(0,l.jsx)(oe,{label:"Stabilization rate",value:50*n.alphaDecay,onChange:function(e){return t(te(te({},n),{},{alphaDecay:e/50}))}}),(0,l.jsx)(le,{label:"Center nodes",value:n.centering,onChange:function(){return t(te(te({},n),{},{centering:!n.centering}))},infoText:"Keeps the nodes in the center of the viewport. If disabled you can drag the nodes anywhere you want.",children:(0,l.jsx)(oe,{label:"Centering Strength",value:n.centeringStrength,max:2,step:.01,onChange:function(e){return t(te(te({},n),{},{centeringStrength:e}))}})})]})})]})})})]})]}),(0,l.jsxs)(M.Qd,{children:[(0,l.jsxs)(M.KF,{children:[(0,l.jsx)(M.XE,{marginRight:2}),(0,l.jsx)(X.X,{size:"sm",children:"Visual"})]}),(0,l.jsx)(M.Hk,{children:(0,l.jsxs)(W.gC,{justifyContent:"flex-start",align:"stretch",children:[(0,l.jsx)(M.UQ,{allowToggle:!0,defaultIndex:[0],paddingLeft:3,children:(0,l.jsxs)(M.Qd,{children:[(0,l.jsx)(M.KF,{children:(0,l.jsxs)(_.k,{justifyContent:"space-between",w:"100%",children:[(0,l.jsx)(U.x,{children:"Colors"}),(0,l.jsx)(M.XE,{marginRight:2})]})}),(0,l.jsx)(M.Hk,{children:(0,l.jsx)(W.gC,{spacing:2,justifyContent:"flex-start",divider:(0,l.jsx)(W.cX,{borderColor:"gray.500"}),align:"stretch",color:"gray.800",children:(0,l.jsxs)(j.xu,{children:[(0,l.jsxs)(_.k,{alignItems:"center",justifyContent:"space-between",children:[(0,l.jsx)(U.x,{children:"Nodes"}),(0,l.jsx)(B.u,{label:"Shuffle node colors",children:(0,l.jsx)(A.h,{"aria-label":"Shuffle node colors",size:"sm",icon:(0,l.jsx)(P.n,{}),variant:"ghost",onClick:function(){var e,n=null!==(e=d.nodeColorScheme)&&void 0!==e?e:[];h(te(te({},d),{},{nodeColorScheme:n.map((function(e){return[Math.random(),e]})).sort((function(e,n){return(0,c.Z)(e,1)[0]-(0,c.Z)(n,1)[0]})).map((function(e){var n=(0,c.Z)(e,2);n[0];return n[1]}))}))}})}),(0,l.jsx)(B.u,{label:"Cycle node colors",children:(0,l.jsx)(A.h,{"aria-label":"Shift node colors",icon:(0,l.jsx)(Z.L,{}),size:"sm",variant:"ghost",onClick:function(){var e,n=null!==(e=d.nodeColorScheme)&&void 0!==e?e:[];h(te(te({},d),{},{nodeColorScheme:[].concat((0,a.Z)(n.slice(1,n.length)),[n[0]])}))}})}),(0,l.jsxs)(q.v2,{placement:"right",closeOnSelect:!1,matchWidth:!0,children:[(0,l.jsx)(q.j2,{width:20,as:V.z,colorScheme:"",color:"black",rightIcon:(0,l.jsx)(E.v,{}),children:(0,l.jsx)(_.k,{height:6,width:6,flexDirection:"column",flexWrap:"wrap",children:d.nodeColorScheme.map((function(e){return(0,l.jsx)(j.xu,{bgColor:e,flex:"1 1 8px",borderRadius:"2xl"},e)}))})}),(0,l.jsxs)(G.h,{children:[" ",(0,l.jsx)(q.qy,{minW:10,zIndex:"popover",bgColor:"gray.200",children:(0,l.jsx)(q.__,{width:500,type:"checkbox",defaultValue:d.nodeColorScheme,onChange:function(e){e.length&&h(te(te({},d),{},{nodeColorScheme:e}))},children:w.map((function(e){return(0,l.jsx)(q.ii,{isChecked:d.nodeColorScheme.some((function(n){return n===e})),value:e,isDisabled:1===d.nodeColorScheme.length&&d.nodeColorScheme[0]===e,children:(0,l.jsx)(j.xu,{justifyContent:"space-between",alignItems:"center",display:"flex",children:(0,l.jsx)(j.xu,{bgColor:e,borderRadius:"sm",height:6,width:6})})},e)}))})})]})]})]}),(0,l.jsxs)(_.k,{alignItems:"center",justifyContent:"space-between",children:[(0,l.jsx)(U.x,{children:"Links"}),(0,l.jsxs)(q.v2,{placement:"right",children:[(0,l.jsx)(q.j2,{as:V.z,colorScheme:"",color:"black",rightIcon:(0,l.jsx)(E.v,{}),children:(0,l.jsx)(j.xu,{children:d.linkColorScheme?(0,l.jsx)(j.xu,{bgColor:d.linkColorScheme,borderRadius:"sm",height:6,width:6}):(0,l.jsx)(_.k,{height:6,width:6,flexDirection:"column",flexWrap:"wrap",children:d.nodeColorScheme.map((function(e){return(0,l.jsx)(j.xu,{bgColor:e,flex:"1 1 8px",borderRadius:"2xl"},e)}))})})}),(0,l.jsxs)(G.h,{children:[" ",(0,l.jsxs)(q.qy,{minW:10,zIndex:"popover",bgColor:"gray.200",children:[(0,l.jsx)(q.sN,{onClick:function(){return h(te(te({},d),{},{linkColorScheme:""}))},justifyContent:"space-between",alignItems:"center",display:"flex",children:(0,l.jsx)(_.k,{height:6,width:6,flexDirection:"column",flexWrap:"wrap",children:d.nodeColorScheme.map((function(e){return(0,l.jsx)(j.xu,{bgColor:e,flex:"1 1 8px",borderRadius:"2xl"},e)}))})}),w.map((function(e){return(0,l.jsx)(q.sN,{onClick:function(){return h(te(te({},d),{},{linkColorScheme:e}))},justifyContent:"space-between",alignItems:"center",display:"flex",children:(0,l.jsx)(j.xu,{bgColor:e,borderRadius:"sm",height:6,width:6})},e)}))]})]})]})]}),(0,l.jsxs)(_.k,{alignItems:"center",justifyContent:"space-between",children:[(0,l.jsx)(U.x,{children:"Accent"}),(0,l.jsxs)(q.v2,{placement:"right",children:[(0,l.jsx)(q.j2,{as:V.z,colorScheme:"",color:"black",rightIcon:(0,l.jsx)(E.v,{}),children:(0,l.jsx)(j.xu,{bgColor:y,borderRadius:"sm",height:6,width:6})}),(0,l.jsxs)(G.h,{children:[" ",(0,l.jsx)(q.qy,{minW:10,zIndex:"popover",bgColor:"gray.200",children:w.map((function(e){return(0,l.jsx)(q.sN,{onClick:function(){return k(e)},justifyContent:"space-between",alignItems:"center",display:"flex",children:(0,l.jsx)(j.xu,{bgColor:e,borderRadius:"sm",height:6,width:6})},e)}))})]})]})]}),(0,l.jsx)(ae,{colorList:w,label:"Link highlight",visuals:d,setVisuals:h,value:"linkHighlight",visValue:d.linkHighlight}),(0,l.jsx)(ae,{colorList:w,label:"Node highlight",visuals:d,setVisuals:h,value:"nodeHighlight",visValue:d.nodeHighlight}),(0,l.jsx)(ae,{colorList:w,label:"Background",visuals:d,setVisuals:h,value:"backgroundColor",visValue:d.backgroundColor}),(0,l.jsx)(ae,{colorList:w,label:"Emacs node",visuals:d,setVisuals:h,value:"emacsNodeColor",visValue:d.emacsNodeColor})]})})})]})}),(0,l.jsxs)(W.gC,{spacing:2,justifyContent:"flex-start",divider:(0,l.jsx)(W.cX,{borderColor:"gray.500"}),align:"stretch",paddingLeft:7,color:"gray.800",children:[(0,l.jsx)(oe,{label:"Node size",value:d.nodeRel,onChange:function(e){return h(te(te({},d),{},{nodeRel:e}))}}),r&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(oe,{label:"Node opacity",value:d.nodeOpacity,min:0,max:1,onChange:function(e){return h(te(te({},d),{},{nodeOpacity:e}))}}),(0,l.jsx)(oe,{label:"Node resolution",value:d.nodeResolution,min:5,max:32,step:1,onChange:function(e){return h(te(te({},d),{},{nodeResolution:e}))}})]}),(0,l.jsx)(oe,{label:"Link width",value:d.linkWidth,onChange:function(e){return h(te(te({},d),{},{linkWidth:e}))}}),r&&(0,l.jsx)(oe,{label:"Link opacity",min:0,max:1,value:d.linkOpacity,onChange:function(e){return h(te(te({},d),{},{linkOpacity:e}))}}),(0,l.jsxs)(le,{label:"Dash cite links",infoText:"Add dashes to citation links made with org-roam-bibtex",value:d.citeDashes,onChange:function(){return h(te(te({},d),{},{citeDashes:!d.citeDashes}))},children:[(0,l.jsx)(oe,{label:"Dash length",value:d.citeDashLength/10,onChange:function(e){return h(te(te({},d),{},{citeDashLength:10*e}))}}),(0,l.jsx)(oe,{label:"Gap length",value:d.citeGapLength/5,onChange:function(e){return h(te(te({},d),{},{citeGapLength:5*e}))}})]}),(0,l.jsx)(ae,{colorList:w,label:"Citation node color",visuals:d,setVisuals:h,value:"citeNodeColor",visValue:d.citeNodeColor}),(0,l.jsx)(ae,{colorList:w,label:"Citationlink color",visuals:d,setVisuals:h,value:"citeLinkColor",visValue:d.citeLinkColor}),(0,l.jsxs)(j.xu,{children:[(0,l.jsxs)(_.k,{alignItems:"center",justifyContent:"space-between",children:[(0,l.jsx)(U.x,{children:"Labels"}),(0,l.jsxs)(q.v2,{placement:"right",children:[(0,l.jsx)(q.j2,{as:V.z,colorScheme:"",color:"black",rightIcon:(0,l.jsx)(E.v,{}),children:d.labels?d.labels<2?"On Highlight":"Always":"Never"}),(0,l.jsxs)(G.h,{children:[" ",(0,l.jsxs)(q.qy,{zIndex:"popover",bgColor:"gray.200",children:[(0,l.jsx)(q.sN,{onClick:function(){return h(te(te({},d),{},{labels:0}))},children:"Never"}),(0,l.jsx)(q.sN,{onClick:function(){return h(te(te({},d),{},{labels:1}))},children:"On Highlight"}),(0,l.jsx)(q.sN,{onClick:function(){return h(te(te({},d),{},{labels:2}))},children:"Always"}),(0,l.jsx)(q.sN,{onClick:function(){return h(te(te({},d),{},{labels:3}))},children:"Always (even in 3D)"})]})]})]})]}),(0,l.jsx)(K.U,{in:d.labels>0,animateOpacity:!0,children:(0,l.jsxs)(W.gC,{spacing:1,justifyContent:"flex-start",divider:(0,l.jsx)(W.cX,{borderColor:"gray.400"}),align:"stretch",paddingLeft:2,color:"gray.800",children:[(0,l.jsx)(ae,{colorList:w,label:"Text",visuals:d,setVisuals:h,value:"labelTextColor",visValue:d.labelTextColor}),(0,l.jsx)(ae,{colorList:w,label:"Text",visuals:d,setVisuals:h,value:"labelBackgroundColor",visValue:d.labelBackgroundColor}),(0,l.jsx)(K.U,{in:!!d.labelBackgroundColor,animateOpacity:!0,children:(0,l.jsx)(j.xu,{paddingTop:2,children:(0,l.jsx)(oe,{label:"Background opacity",value:d.labelBackgroundOpacity,onChange:function(e){console.log(d.labelBackgroundOpacity),h(te(te({},d),{},{labelBackgroundOpacity:e}))},min:0,max:1,step:.01})})}),(0,l.jsx)(K.U,{in:d.labels>1,animateOpacity:!0,children:(0,l.jsx)(j.xu,{paddingTop:2,children:(0,l.jsx)(oe,{label:"Label Appearance Scale",value:5*d.labelScale,onChange:function(e){return h(te(te({},d),{},{labelScale:e/5}))}})})})]})})]}),(0,l.jsxs)(le,{label:"Link arrows",value:d.arrows,onChange:function(){return h(te(te({},d),{},{arrows:!d.arrows}))},children:[(0,l.jsx)(oe,{label:"Arrow size",value:d.arrowsLength/10,onChange:function(e){return h(te(te({},d),{},{arrowsLength:10*e}))}}),(0,l.jsx)(oe,{label:"Arrow Position",value:d.arrowsPos,min:0,max:1,step:.01,onChange:function(e){return h(te(te({},d),{},{arrowsPos:e}))}}),(0,l.jsx)(ae,{colorList:w,label:"Arrow Color",visuals:d,setVisuals:h,value:"arrowsColor",visValue:d.arrowsColor})]}),(0,l.jsxs)(le,{label:"Directional Particles",value:d.particles,onChange:function(){return h(te(te({},d),{},{particles:!d.particles}))},children:[(0,l.jsx)(oe,{label:"Particle Number",value:d.particlesNumber,max:5,step:1,onChange:function(e){return h(te(te({},d),{},{particlesNumber:e}))}}),(0,l.jsx)(oe,{label:"Particle Size",value:d.particlesWidth,onChange:function(e){return h(te(te({},d),{},{particlesWidth:e}))}})]}),(0,l.jsx)(le,{label:"Highlight",onChange:function(){return h(te(te({},d),{},{highlight:!d.highlight}))},value:d.highlight,children:(0,l.jsxs)(W.gC,{spacing:1,justifyContent:"flex-start",divider:(0,l.jsx)(W.cX,{borderColor:"gray.400"}),align:"stretch",paddingLeft:0,children:[(0,l.jsx)(oe,{label:"Highlight Link Thickness",value:d.highlightLinkSize,onChange:function(e){return h(te(te({},d),{},{highlightLinkSize:e}))}}),(0,l.jsx)(oe,{label:"Highlight Node Size",value:d.highlightNodeSize,onChange:function(e){return h(te(te({},d),{},{highlightNodeSize:e}))}}),(0,l.jsxs)(le,{label:"Highlight Animation",onChange:function(){h(te(te({},d),{},{highlightAnim:!d.highlightAnim}))},value:d.highlightAnim,children:[(0,l.jsx)(oe,{label:"Animation speed",onChange:function(e){return h(te(te({},d),{},{animationSpeed:e}))},value:d.animationSpeed,infoText:"Slower speed has a chance of being buggy",min:50,max:1e3,step:10}),(0,l.jsx)(J.Ph,{placeholder:d.algorithmName,onChange:function(e){h(te(te({},d),{},{algorithmName:e.target.value}))},children:d.algorithmOptions.map((function(e){return(0,l.jsx)("option",{value:e,children:e},e)}))})]})]})})]})]})})]}),(0,l.jsxs)(M.Qd,{children:[(0,l.jsxs)(M.KF,{children:[(0,l.jsx)(M.XE,{marginRight:2}),(0,l.jsx)(X.X,{size:"sm",children:"Behavior"})]}),(0,l.jsx)(M.Hk,{children:(0,l.jsxs)(W.gC,{spacing:2,justifyContent:"flex-start",divider:(0,l.jsx)(W.cX,{borderColor:"gray.500"}),align:"stretch",paddingLeft:7,color:"gray.800",children:[(0,l.jsxs)(_.k,{alignItems:"center",justifyContent:"space-between",children:[(0,l.jsxs)(_.k,{children:[(0,l.jsx)(U.x,{children:"Expand Node"}),(0,l.jsx)(ie,{infoText:"View only the node and its direct neighbors"})]}),(0,l.jsxs)(q.v2,{placement:"right",children:[(0,l.jsx)(q.j2,{as:V.z,rightIcon:(0,l.jsx)(E.v,{}),colorScheme:"",color:"black",children:(0,l.jsx)(U.x,{children:g.local?g.local[0].toUpperCase()+g.local.slice(1):"Never"})}),(0,l.jsxs)(G.h,{children:[" ",(0,l.jsxs)(q.qy,{zIndex:"popover",bgColor:"gray.200",children:[(0,l.jsx)(q.sN,{onClick:function(){return x(te(te({},g),{},{local:""}))},children:"Never"}),(0,l.jsx)(q.sN,{onClick:function(){return x(te(te({},g),{},{local:"click"}))},children:"Click"}),(0,l.jsx)(q.sN,{onClick:function(){return x(te(te({},g),{},{local:"double"}))},children:"Double Click"}),(0,l.jsx)(q.sN,{onClick:function(){return x(te(te({},g),{},{local:"right"}))},children:"Right Click"})]})]})]})]}),(0,l.jsxs)(_.k,{alignItems:"center",justifyContent:"space-between",children:[(0,l.jsx)(U.x,{children:"Open in Emacs"}),(0,l.jsxs)(q.v2,{placement:"right",children:[(0,l.jsx)(q.j2,{as:V.z,rightIcon:(0,l.jsx)(E.v,{}),colorScheme:"",color:"black",children:(0,l.jsx)(U.x,{children:g.follow?g.follow[0].toUpperCase()+g.follow.slice(1):"Never"})}),(0,l.jsxs)(G.h,{children:[" ",(0,l.jsxs)(q.qy,{bgColor:"gray.200",zIndex:"popover",children:[(0,l.jsx)(q.sN,{onClick:function(){return x(te(te({},g),{},{follow:""}))},children:"Never"}),(0,l.jsx)(q.sN,{onClick:function(){return x(te(te({},g),{},{follow:"click"}))},children:"Click"}),(0,l.jsx)(q.sN,{onClick:function(){return x(te(te({},g),{},{follow:"double"}))},children:"Double Click"}),(0,l.jsx)(q.sN,{onClick:function(){return x(te(te({},g),{},{follow:"right"}))},children:"Right Click"})]})]})]})]}),(0,l.jsxs)(_.k,{alignItems:"center",justifyContent:"space-between",children:[(0,l.jsx)(U.x,{children:"Follow Emacs by..."}),(0,l.jsxs)(q.v2,{placement:"right",children:[(0,l.jsx)(q.j2,{as:V.z,rightIcon:(0,l.jsx)(E.v,{}),colorScheme:"",color:"black",children:(0,l.jsx)(U.x,{children:f.follow[0].toUpperCase()+f.follow.slice(1)})}),(0,l.jsxs)(G.h,{children:[" ",(0,l.jsxs)(q.qy,{bgColor:"gray.200",zIndex:"popover",children:[(0,l.jsx)(q.sN,{onClick:function(){return p(te(te({},f),{},{follow:"local"}))},children:"Opening the local graph"}),(0,l.jsx)(q.sN,{onClick:function(){return p(te(te({},f),{},{follow:"zoom"}))},children:"Zooming to the current node"})]})]})]})]}),(0,l.jsx)(oe,{label:"Zoom speed",value:f.zoomSpeed,min:0,max:4e3,step:100,onChange:function(e){return p(te(te({},f),{},{zoomSpeed:e}))}}),(0,l.jsx)(oe,{label:"Zoom padding",value:f.zoomPadding,min:0,max:400,step:1,onChange:function(e){return p(te(te({},f),{},{zoomPadding:e}))},infoText:"How much to zoom out to accomodate all nodes when changing the view."})]})})]})]})})]})})]})},ie=function(e){var n=e.infoText;return(0,l.jsx)(j.xu,{paddingLeft:"1",children:(0,l.jsx)(B.u,{label:n,placement:"top",color:"gray.100",bg:"gray.800",hasArrow:!0,children:(0,l.jsx)(H.h,{})})})},oe=function(e){var n=e.min,t=void 0===n?0:n,r=e.max,i=void 0===r?10:r,o=e.step,a=void 0===o?.1:o,s=e.value,c=void 0===s?1:s,d=(0,L.Z)(e,["min","max","step","value"]),h=d.onChange,g=d.label,x=d.infoText,f=(0,u.useContext)(ee.N).highlightColor;return(0,l.jsxs)(j.xu,{children:[(0,l.jsxs)(j.xu,{display:"flex",alignItems:"flex-end",children:[(0,l.jsx)(U.x,{children:g}),x&&(0,l.jsx)(ie,{infoText:x})]}),(0,l.jsxs)(Y.iR,{value:c,onChange:h,min:t,max:i,step:a,children:[(0,l.jsx)(Y.Uj,{children:(0,l.jsx)(Y.Ms,{})}),(0,l.jsx)(B.u,{bg:f,label:c.toFixed(1),children:(0,l.jsx)(Y.gs,{bg:"white"})})]})]})},le=function(e){var n=e.value,t=e.onChange,r=e.label,i=e.infoText,o=e.children;return(0,l.jsxs)(j.xu,{paddingTop:2,children:[(0,l.jsxs)(j.xu,{display:"flex",justifyContent:"space-between",paddingBottom:2,children:[(0,l.jsxs)(j.xu,{display:"flex",alignItems:"center",children:[(0,l.jsx)(U.x,{children:r}),i&&(0,l.jsx)(ie,{infoText:i})]}),(0,l.jsx)(Q.r,{isChecked:!!n,onChange:t})]}),(0,l.jsx)(K.U,{in:!!n,animateOpacity:!0,children:(0,l.jsx)(j.xu,{paddingLeft:4,paddingTop:2,paddingBottom:2,children:o})})]})},ae=function(e){var n=e.label,t=e.colorList,r=e.value,i=e.visuals,o=e.visValue,a=e.setVisuals;return(0,l.jsxs)(_.k,{alignItems:"center",justifyContent:"space-between",children:[(0,l.jsx)(U.x,{children:n}),(0,l.jsxs)(q.v2,{placement:"right",children:[(0,l.jsx)(q.j2,{as:V.z,colorScheme:"",color:"black",rightIcon:(0,l.jsx)(E.v,{}),children:(0,l.jsx)(j.xu,{bgColor:o,borderRadius:"sm",height:6,width:6})}),(0,l.jsxs)(G.h,{children:[" ",(0,l.jsxs)(q.qy,{minW:10,zIndex:"popover",bgColor:"gray.200",children:[(0,l.jsx)(q.sN,{onClick:function(){return a(te(te({},i),{},(0,s.Z)({},r,"")))},justifyContent:"space-between",alignItems:"center",display:"flex",children:(0,l.jsx)(j.xu,{height:6,width:6})}),t.map((function(e){return(0,l.jsx)(q.sN,{onClick:function(){return a(te(te({},i),{},(0,s.Z)({},r,e)))},justifyContent:"space-between",alignItems:"center",display:"flex",children:(0,l.jsx)(j.xu,{bgColor:e,borderRadius:"sm",height:6,width:6})},e)}))]})]})]})]})},se=t(1122),ce=t(2003);function ue(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function de(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?ue(Object(t),!0).forEach((function(n){(0,s.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ue(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var he=t.e(4).then(t.bind(t,7004)),ge=t.g.window?t(1957).f$:null,xe=t.g.window?t(1957).s6:null;function fe(){var e=(0,u.useState)(!1),n=e[0],t=e[1];return(0,u.useEffect)((function(){t(!0)}),[]),n?(0,l.jsx)(pe,{}):null}function pe(){var e=d("physics",S),n=(0,c.Z)(e,2),t=n[0],r=n[1],i=d("filter",O),o=(0,c.Z)(i,2),h=o[0],g=o[1],x=d("visuals",N),f=(0,c.Z)(x,2),p=f[0],m=f[1],v=(0,u.useState)(null),b=v[0],C=v[1],y=(0,u.useState)(null),k=y[0],w=y[1],L=d("behavior",I),D=(0,c.Z)(L,2),R=D[0],T=D[1],P=d("mouse",z),Z=(0,c.Z)(P,2),E=Z[0],H=Z[1],F=(0,u.useRef)({}),A=(0,u.useRef)({}),B=(0,u.useContext)(ee.N).setEmacsTheme,V=(0,u.useState)(!1),M=V[0],X=V[1],W=(0,u.useState)({nodeIds:[]}),_=W[0],U=W[1],Q=(0,u.useRef)({nodeIds:[]}),q=(0,u.useRef)(I);q.current=R;var G=(0,u.useRef)(null),K=(0,u.useRef)(null);Q.current=_;var J=function(e,n){var t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2e3,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:200,o=G.current,l=Q.current,s=q.current,c=null!==(t=A.current[n])&&void 0!==t?t:[],u=Object.fromEntries([n].concat((0,a.Z)(c.flatMap((function(e){return[e.source,e.target]})))).map((function(e){return[e,{}]})));return"zoom"===e?(console.log(l),l.nodeIds.length&&(console.log("emptying"),console.log("scope "+l.nodeIds),U({nodeIds:[]})),void setTimeout((function(){return o.zoomToFit(r,i,(function(e){return u[e.id]}))}),50)):l.nodeIds.length?"add"!==s.localSame?(U({nodeIds:[n]}),void setTimeout((function(){o.centerAt(0,0,r)}),50)):l.nodeIds.includes(n)&&l.nodeIds.some((function(e){return u[e]}))?(U((function(e){return de(de({},e),{},{nodeIds:[].concat((0,a.Z)(e.nodeIds),[n])})})),void setTimeout((function(){return o.zoomToFit(r,i,(function(e){return u[e.id]}))}),50)):(U({nodeIds:[n]}),void setTimeout((function(){o.centerAt(0,0,r)}),50)):(U({nodeIds:[n]}),void setTimeout((function(){o.centerAt(0,0,r)}),50))};return(0,u.useEffect)((function(){K.current=new ce.Z("ws://localhost:35903"),K.current.addEventListener("open",(function(e){console.log("Connection with Emacs established")})),K.current.addEventListener("message",(function(e){G.current;var n=q.current,t=JSON.parse(e.data);switch(t.type){case"graphdata":return function(e){var n=e.nodes.reduce((function(e,n){var t;return de(de({},e),{},(0,s.Z)({},n.file,[].concat((0,a.Z)(null!==(t=e[n.file])&&void 0!==t?t:[]),[n])))}),{}),t=Object.keys(n).flatMap((function(e){var t,r=null!==(t=n[e])&&void 0!==t?t:[],i=r.find((function(e){return 0===e.level})),o=r.filter((function(e){return 0!==e.level}));return i?o.map((function(e){return{source:e.id,target:i.id,type:"parent"}})):[]}));F.current=Object.fromEntries(e.nodes.map((function(e){return[e.id,e]})));var r=[].concat((0,a.Z)(e.links),(0,a.Z)(t)).filter((function(e){var n=e.source,t=e.target;return F.current[n]&&F.current[t]}));A.current=r.reduce((function(e,n){var t,r,i;return de(de({},e),{},(i={},(0,s.Z)(i,n.source,[].concat((0,a.Z)(null!==(t=e[n.source])&&void 0!==t?t:[]),[n])),(0,s.Z)(i,n.target,[].concat((0,a.Z)(null!==(r=e[n.target])&&void 0!==r?r:[]),[n])),i))}),{});var i=de(de({},e),{},{links:r}),o=JSON.parse(JSON.stringify(i));C(o)}(t.data);case"theme":return B(t.data);case"command":switch(t.data.commandName){case"local":var r=R.zoomSpeed,i=R.zoomPadding;J("local",t.data.id,r,i),w(t.data.id);break;case"zoom":var o,l,c=(null===t||void 0===t||null===(o=t.data)||void 0===o?void 0:o.speed)||n.zoomSpeed,u=(null===t||void 0===t||null===(l=t.data)||void 0===l?void 0:l.padding)||n.zoomPadding;J("zoom",t.data.id,c,u),w(t.data.id);break;case"follow":J(n.follow,t.data.id,n.zoomSpeed,n.zoomPadding),w(t.data.id);break;default:return console.error("unknown message type",t.type)}}}))}),[]),b?(0,l.jsxs)(j.xu,{display:"flex",alignItems:"flex-start",flexDirection:"row",height:"100%",children:[(0,l.jsx)(re,de({},{physics:t,setPhysics:r,threeDim:M,setThreeDim:X,filter:h,setFilter:g,visuals:p,setVisuals:m,mouse:E,setMouse:H,behavior:R,setBehavior:T})),(0,l.jsx)(j.xu,{position:"absolute",alignItems:"top",children:(0,l.jsx)(je,de({ref:G,nodeById:F.current,linksByNodeId:A.current,webSocket:K.current},{physics:t,graphData:b,threeDim:M,emacsNodeId:k,filter:h,visuals:p,behavior:R,mouse:E,scope:_,setScope:U}))})]}):null}var je=(0,u.forwardRef)((function(e,n){var t=e.physics,r=e.graphData,s=e.threeDim,d=e.linksByNodeId,h=e.filter,j=e.emacsNodeId,m=e.nodeById,v=e.visuals,b=(e.behavior,e.mouse),C=e.scope,y=e.setScope,k=e.webSocket,S=(0,x.iP)(),O=(0,c.Z)(S,2),N=O[0],I=O[1],z=(0,u.useState)(null),L=z[0],D=z[1],R=(0,p.useTheme)(),T=(0,u.useContext)(ee.N).emacsTheme,P=function(e,n){switch(e){case b.local:if(C.nodeIds.includes(n.id))break;y((function(e){return de(de({},e),{},{nodeIds:[].concat((0,a.Z)(e.nodeIds),[n.id])})}));break;case b.follow:k.send(n.id)}},Z=(0,u.useRef)(null);(0,u.useEffect)((function(){j&&D(m[j])}),[j]),Z.current=L;var E=(0,u.useMemo)((function(){if(!Z.current)return{};var e=d[Z.current.id];return e?Object.fromEntries([Z.current.id].concat((0,a.Z)(e.flatMap((function(e){return[e.source,e.target]})))).map((function(e){return[e,{}]}))):{}}),[Z.current,d]),H=(0,u.useMemo)((function(){var e=r.nodes.filter((function(e){var n,t=null!==(n=d[e.id])&&void 0!==n?n:[];return!h.orphans||(h.parents?0!==t.length:0!==t.length&&t.some((function(e){return!["parent","ref"].includes(e.type)})))})),n=(e.map((function(e){return e.id})),r.links.filter((function(e){var n=e;return h.parents||"parent"!==n.type}))),t=e.filter((function(e){var n,t=null!==(n=d[e.id])&&void 0!==n?n:[];return C.nodeIds.includes(e.id)||t.some((function(e){return C.nodeIds.includes(e.source)||C.nodeIds.includes(e.target)}))})),i=t.map((function(e){return e.id})),o=n.filter((function(e){var n="object"===typeof e.source?e.source.id:e.source,t="object"===typeof e.target?e.target.id:e.target;return i.includes(n)&&i.includes(t)}));return 0===C.nodeIds.length?{nodes:e,links:n}:{nodes:t,links:o}}),[h,C,r]);(0,u.useEffect)((function(){(0,o.Z)(i().mark((function e(){var r,o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.current,e.next=3,he;case 3:o=e.sent,t.gravityOn?(r.d3Force("x",o.forceX().strength(t.gravity)),r.d3Force("y",o.forceY().strength(t.gravity)),s&&r.d3Force("z",o.forceZ().strength(t.gravity))):(r.d3Force("x",null),r.d3Force("y",null),s&&r.d3Force("z",null)),t.centering?r.d3Force("center",o.forceCenter().strength(t.centeringStrength)):r.d3Force("center",null),t.linkStrength&&r.d3Force("link").strength(t.linkStrength),t.linkIts&&r.d3Force("link").iterations(t.linkIts),t.charge&&r.d3Force("charge").strength(t.charge),r.d3Force("collide",t.collision?o.forceCollide().radius(t.collisionStrength):null);case 10:case"end":return e.stop()}}),e)})))()})),(0,u.useEffect)((function(){var e;null===(e=n.current)||void 0===e||e.d3ReheatSimulation()}),[t]);var F=(0,u.useRef)(0),A=(0,u.useState)(1),B=A[0],V=A[1],M=(0,f._7)((function(e){return V(e)}),{duration:v.animationSpeed,algorithm:w[v.algorithmName]}),X=(0,c.Z)(M,2),W=X[0],_=X[1],U=(0,f._7)((function(e){return V(Math.min(B,-1*(e-1)))}),{duration:v.animationSpeed,algorithm:w[v.algorithmName]}),Q=(0,c.Z)(U,2),q=Q[0],G=Q[1],K=(0,u.useRef)(null);(0,u.useEffect)((function(){if(L&&(K.current=L),!v.highlightAnim)return V(L?1:0);L?W():(_(),B>.5?q():V(0))}),[L]);var J=function(e){if(R)return e.split(".").reduce((function(e,n){return e[n]}),R.colors)},Y=(0,u.useMemo)((function(){var e=v.nodeColorScheme.concat(v.linkColorScheme||[],v.linkHighlight||[],v.nodeHighlight||[],v.citeNodeColor||[],v.citeLinkColor||[]);return Object.fromEntries(e.map((function(n){var t=J(n),r=e.map((function(e){return[e,g.Z(t,J(e))]}));return[n,Object.fromEntries(r)]})))}),[v.nodeColorScheme,v.linkHighlight,v.nodeHighlight,v.linkColorScheme,T]),$=(0,u.useMemo)((function(){var e,n,t,r=null!==(e=d[null===(n=K.current)||void 0===n?void 0:n.id])&&void 0!==e?e:[];return Object.fromEntries([null===(t=K.current)||void 0===t?void 0:t.id].concat((0,a.Z)(r.flatMap((function(e){return[e.source,e.target]})))).map((function(e){return[e,{}]})))}),[JSON.stringify(L),K.current]),ne=function(e){var n,t,r,i,o,l,a=null!==(n=null===(t=d[e])||void 0===t?void 0:t.length)&&void 0!==n?n:0,s=a?null===(r=d[e])||void 0===r?void 0:r.filter((function(e){return"parent"===e.type||"cite"===e.type})).length:0,c=h.parents?a:a-s;return v.nodeColorScheme[(i=c,o=0,l=v.nodeColorScheme.length-1,Math.min(Math.max(i,o),l))]},te=function(e,n){return d[e]>d[n]?ne(e):ne(n)},re=function(e,n){return"rgba("+(e=e.replace("#","")).match(new RegExp("(.{"+e.length/3+"})","g")).map((function(n){return parseInt(e.length%2?n+n:n,16)})).concat(isFinite(n)?n:1).join(",")+")"},ie=(0,u.useMemo)((function(){return J(v.labelTextColor)}),[v.labelTextColor,T]),oe=(0,u.useMemo)((function(){return J(v.labelBackgroundColor)}),[v.labelBackgroundColor,T]),le={graphData:H,width:N,height:I,backgroundColor:R.colors.gray[v.backgroundColor],nodeLabel:function(e){return e.title},nodeColor:function(e){return function(e){var n=E[e.id]||$[e.id];return v.emacsNodeColor&&e.id===j?J(v.emacsNodeColor):v.citeNodeColor&&e.properties.ROAM_REFS?J(v.citeNodeColor):n&&v.nodeHighlight?Y[ne(e.id)][v.nodeHighlight](B):J(ne(e.id))}(e)},nodeRelSize:v.nodeRel,nodeVal:function(e){var n,t=null!==(n=d[e.id])&&void 0!==n?n:[],r=t.length?t.filter((function(e){return"parent"===e.type||"cite"===e.type})).length:0;return(3+t.length-(h.parents?0:r))*(E[e.id]||$[e.id]?1+B*(v.highlightNodeSize-1):1)},nodeCanvasObject:function(e,n,t){if(e&&v.labels){var r=$[e.id];if(!(t<=v.labelScale||1===v.labels)||E[e.id]||r){var i=e.title,o=i.substring(0,Math.min(i.length,40)),l=12/t,s=[1.1*n.measureText(o).width,l].map((function(e){return e+.5*l})),c=Math.min(3*(t-v.labelScale)/v.labelScale,1),u=function(){return 1===v.labels||t<=v.labelScale?B:E[e.id]||$[e.id]?Math.max(c,B):1*c*(-1*(.5*B-1))};if(v.labelBackgroundColor&&v.labelBackgroundOpacity){var d=u()*v.labelBackgroundOpacity,h=re(oe,d);n.fillStyle=h,n.fillRect.apply(n,[e.x-s[0]/2,e.y-s[1]/2].concat((0,a.Z)(s)))}var g=u();n.textAlign="center",n.textBaseline="middle";var x=re(ie,g);n.fillStyle=x,n.font="".concat(l,"px Sans-Serif"),n.fillText(o,e.x,e.y)}}},nodeCanvasObjectMode:function(){return"after"},linkDirectionalParticles:v.particles?v.particlesNumber:void 0,linkDirectionalArrowLength:v.arrows?v.arrowsLength:void 0,linkDirectionalArrowRelPos:v.arrowsPos,linkDirectionalArrowColor:v.arrowsColor?function(e){return J(v.arrowsColor)}:void 0,linkColor:function(e){var n="object"===typeof e.source?e.source.id:e.source,t="object"===typeof e.target?e.target.id:e.target,r=me(e,Z.current),i=me(e,K.current),o=r||i,l=e;return v.citeLinkColor&&"cite"===l.type?J(v.citeLinkColor):function(e,n,t){if(!v.linkHighlight&&!v.linkColorScheme&&!t){var r=te(e,n);return J(r)}if(!t&&!v.linkColorScheme){var i=te(e,n);return J(i)}if(!t)return J(v.linkColorScheme);if(!v.linkHighlight&&!v.linkColorScheme){var o=te(e,n);return J(o)}return v.linkHighlight?v.linkColorScheme?Y[v.linkColorScheme][v.linkHighlight](B):Y[te(e,n)][v.linkHighlight](B):J(v.linkColorScheme)}(n,t,o)},linkWidth:function(e){var n=me(e,Z.current),t=me(e,K.current);return n||t?v.linkWidth*(1+B*(v.highlightLinkSize-1)):v.linkWidth},linkDirectionalParticleWidth:v.particlesWidth,d3AlphaDecay:t.alphaDecay,d3AlphaMin:t.alphaMin,d3VelocityDecay:t.velocityDecay,onNodeClick:function(e,n){var t=n.timeStamp-F.current<400;return F.current=n.timeStamp,P(t?"double":"click",e)},onBackgroundClick:function(){D(null),0!==C.nodeIds.length&&y((function(e){return de(de({},e),{},{nodeIds:[]})}))},onNodeHover:function(e){v.highlight&&(L||(G(),V(0)),D(e))},onNodeRightClick:function(e){P("right",e)}};return(0,l.jsx)("div",{children:s?(0,l.jsx)(xe,de(de({ref:n},le),{},{nodeThreeObjectExtend:!0,backgroundColor:R.colors.white,nodeOpacity:v.nodeOpacity,nodeResolution:v.nodeResolution,linkOpacity:v.linkOpacity,nodeThreeObject:function(e){if(v.labels&&(!(v.labels<3)||E[e.id])){var n=new se.Z(e.title.substring(0,40));return n.color=J(v.labelTextColor),n.backgroundColor=J(v.labelBackgroundColor),n.padding=2,n.textHeight=8,n}}})):(0,l.jsx)(ge,de(de({ref:n},le),{},{linkLineDash:function(e){var n=e;return v.citeDashes&&"cite"===n.type?[v.citeDashLength,v.citeGapLength]:null}}))})}));function me(e,n){return e.source.id===(null===n||void 0===n?void 0:n.id)||e.target.id===(null===n||void 0===n?void 0:n.id)}},5301:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return t(374)}])}},function(e){e.O(0,[774,737,446,906,888,179],(function(){return n=5301,e(e.s=n);var n}));var n=e.O();_N_E=n}]);
\ No newline at end of file +;(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([ + [405], + { + 374: function (e, n, t) { + 'use strict' + t.r(n), + t.d(n, { + Graph: function () { + return je + }, + GraphPage: function () { + return pe + }, + default: function () { + return fe + }, + }) + var r = t(7757), + i = t.n(r), + o = t(2137), + l = t(5893), + a = t(7329), + s = t(6156), + c = t(4699), + u = t(7294) + function d(e, n) { + var t, + r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, + i = h(e, null !== (t = r.storage) && void 0 !== t ? t : localStorage), + o = i.get(), + l = void 0 !== o ? o : n + l !== o && i.update(l) + var a = (0, u.useState)(l), + s = a[0], + c = a[1] + ;(0, u.useEffect)( + function () { + s !== l && c(l) + }, + [e], + ) + var d = function (e) { + e instanceof Function + ? c(function (n) { + var t = e(n) + return i.update(t), t + }) + : (c(e), i.update(e)) + } + return [s, d] + } + function h(e, n) { + return { + get: function () { + var t = n.getItem(e) + if (t && 'undefined' !== t) return JSON.parse(t) + }, + update: function (t) { + n.setItem(e, JSON.stringify(t)) + }, + remove: function () { + n.removeItem(e) + }, + } + } + var g = t(4533), + x = t(4309), + f = t(2351), + p = t(980), + j = t(8017), + m = t(6194), + v = [], + b = {} + for (var C in m.oY) + for (var y in m.oY[C]) { + var k = C + y + 'LinearNone' === k && (k = 'Linear'), v.push(k), (b[k] = m.oY[C][y]) + } + var w = b, + S = { + enabled: !0, + charge: -700, + collision: !0, + collisionStrength: 20, + centering: !0, + centeringStrength: 0.05, + linkStrength: 0.1, + linkIts: 1, + alphaDecay: 0.02, + alphaTarget: 0, + alphaMin: 0, + velocityDecay: 0.25, + gravity: 0.3, + gravityOn: !0, + }, + O = { orphans: !1, parents: !0, tags: [], nodes: [], links: [], date: [] }, + N = { + particles: !1, + particlesNumber: 0, + particlesWidth: 4, + arrows: !1, + arrowsLength: 1, + arrowsPos: 0.5, + arrowsColor: '', + linkOpacity: 0.8, + linkWidth: 1, + nodeRel: 4, + nodeOpacity: 1, + nodeResolution: 12, + labels: 2, + labelScale: 1.5, + highlight: !0, + highlightNodeSize: 2, + highlightLinkSize: 2, + highlightAnim: !0, + animationSpeed: 700, + algorithmOptions: v, + algorithmName: 'BackOut', + linkColorScheme: 'gray.500', + nodeColorScheme: [ + 'red.500', + 'gray.600', + 'yellow.500', + 'green.500', + 'cyan.500', + 'blue.500', + 'pink.500', + 'purple.500', + 'orange.500', + ], + nodeHighlight: '', + linkHighlight: 'purple.500', + backgroundColor: 'white', + emacsNodeColor: 'gray.800', + labelTextColor: 'black', + labelBackgroundColor: 'white', + labelBackgroundOpacity: 0.7, + citeDashes: !0, + citeDashLength: 35, + citeGapLength: 15, + citeLinkColor: 'gray.600', + citeNodeColor: 'black', + }, + I = { follow: 'zoom', localSame: 'add', zoomPadding: 200, zoomSpeed: 2e3 }, + z = { highlight: 'hover', local: 'click', follow: 'double' }, + L = t(7375), + D = t(3924), + R = t(3986), + T = t(9641), + P = t(7546), + Z = t(3441), + E = t(6569), + H = t(4189), + F = t(454), + A = t(8420), + B = t(6699), + V = t(155), + M = t(6769), + X = t(336), + W = t(2026), + _ = t(4096), + U = t(4115), + Q = t(8134), + q = t(8235), + G = t(7273), + K = t(5267), + J = t(6049), + Y = t(3014), + $ = t(6658), + ee = t(9356) + function ne(e, n) { + var t = Object.keys(e) + if (Object.getOwnPropertySymbols) { + var r = Object.getOwnPropertySymbols(e) + n && + (r = r.filter(function (n) { + return Object.getOwnPropertyDescriptor(e, n).enumerable + })), + t.push.apply(t, r) + } + return t + } + function te(e) { + for (var n = 1; n < arguments.length; n++) { + var t = null != arguments[n] ? arguments[n] : {} + n % 2 + ? ne(Object(t), !0).forEach(function (n) { + ;(0, s.Z)(e, n, t[n]) + }) + : Object.getOwnPropertyDescriptors + ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) + : ne(Object(t)).forEach(function (n) { + Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n)) + }) + } + return e + } + var re = function (e) { + var n = e.physics, + t = e.setPhysics, + r = e.threeDim, + i = e.setThreeDim, + o = e.filter, + s = e.setFilter, + d = e.visuals, + h = e.setVisuals, + g = e.mouse, + x = e.setMouse, + f = e.behavior, + p = e.setBehavior, + m = (0, u.useState)(!0), + v = m[0], + b = m[1], + C = (0, u.useContext)(ee.N), + y = C.highlightColor, + k = C.setHighlightColor, + w = [ + 'red.500', + 'orange.500', + 'yellow.500', + 'green.500', + 'cyan.500', + 'blue.500', + 'pink.500', + 'purple.500', + 'gray.400', + 'gray.500', + 'gray.600', + 'white', + 'gray.100', + 'gray.200', + 'gray.300', + 'gray.400', + 'gray.500', + 'gray.600', + 'gray.700', + 'gray.800', + 'gray.900', + 'black', + ] + return (0, l.jsxs)(l.Fragment, { + children: [ + (0, l.jsx)(F.R, { + in: !v, + children: (0, l.jsx)(j.xu, { + position: 'absolute', + zIndex: 'overlay', + marginTop: 10, + marginLeft: 10, + display: v ? 'none' : 'block', + children: (0, l.jsx)(A.h, { + 'aria-label': 'Settings', + icon: (0, l.jsx)(D.e, {}), + onClick: function () { + return b(!0) + }, + }), + }), + }), + (0, l.jsx)(F.R, { + in: v, + children: (0, l.jsxs)(j.xu, { + bg: 'alt.100', + w: 'xs', + marginTop: 10, + marginLeft: 10, + borderRadius: 'xl', + maxH: 650, + paddingBottom: 5, + zIndex: 300, + position: 'relative', + boxShadow: 'xl', + children: [ + (0, l.jsxs)(j.xu, { + display: 'flex', + justifyContent: 'space-between', + alignItems: 'center', + paddingRight: 2, + paddingTop: 1, + children: [ + (0, l.jsx)(B.u, { + label: '2D', + children: (0, l.jsx)(V.z, { + onClick: function () { + return i(!r) + }, + variant: 'ghost', + zIndex: 'overlay', + children: r ? '3D' : '2D', + }), + }), + (0, l.jsxs)(j.xu, { + display: 'flex', + alignItems: 'center', + children: [ + (0, l.jsx)(B.u, { + label: 'Reset settings to defaults', + children: (0, l.jsx)(A.h, { + 'aria-label': 'Reset Defaults', + icon: (0, l.jsx)(R.A, {}), + onClick: function () { + h(N), s(O), x(z), t(S), p(I) + }, + variant: 'none', + size: 'sm', + }), + }), + (0, l.jsx)(A.h, { + size: 'sm', + icon: (0, l.jsx)(T.T, {}), + 'aria-label': 'Close Tweak Panel', + variant: 'ghost', + onClick: function () { + return b(!1) + }, + }), + ], + }), + ], + }), + (0, l.jsx)($.ZP, { + autoHeight: !0, + autoHeightMax: 600, + autoHide: !0, + renderThumbVertical: function (e) { + var n = e.style, + t = (0, L.Z)(e, ['style']) + return (0, l.jsx)( + j.xu, + te( + te({}, t), + {}, + { style: te(te({}, n), {}, { borderRadius: 10 }), bg: y }, + ), + ) + }, + children: (0, l.jsxs)(M.UQ, { + allowMultiple: !0, + allowToggle: !0, + color: 'black', + children: [ + (0, l.jsxs)(M.Qd, { + children: [ + (0, l.jsxs)(M.KF, { + children: [ + (0, l.jsx)(M.XE, { marginRight: 2 }), + (0, l.jsx)(X.X, { size: 'sm', children: 'Filter' }), + ], + }), + (0, l.jsx)(M.Hk, { + children: (0, l.jsxs)(W.gC, { + spacing: 2, + justifyContent: 'flex-start', + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.500' }), + align: 'stretch', + paddingLeft: 7, + color: 'gray.800', + children: [ + (0, l.jsxs)(_.k, { + justifyContent: 'space-between', + children: [ + (0, l.jsx)(U.x, { children: 'Orphans' }), + (0, l.jsx)(Q.r, { + onChange: function () { + s(te(te({}, o), {}, { orphans: !o.orphans })) + }, + isChecked: o.orphans, + }), + ], + }), + (0, l.jsxs)(_.k, { + justifyContent: 'space-between', + children: [ + (0, l.jsx)(U.x, { + children: 'Link nodes with parent file', + }), + (0, l.jsx)(Q.r, { + onChange: function () { + s(te(te({}, o), {}, { parents: !o.parents })) + }, + isChecked: o.parents, + }), + ], + }), + ], + }), + }), + ], + }), + (0, l.jsxs)(M.Qd, { + children: [ + (0, l.jsx)(M.KF, { + display: 'flex', + justifyContent: 'space-between', + children: (0, l.jsxs)(j.xu, { + display: 'flex', + children: [ + (0, l.jsx)(M.XE, { marginRight: 2 }), + (0, l.jsx)(X.X, { size: 'sm', children: 'Physics' }), + ], + }), + }), + (0, l.jsxs)(M.Hk, { + children: [ + (0, l.jsxs)(W.gC, { + spacing: 2, + justifyContent: 'flex-start', + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.500' }), + align: 'stretch', + paddingLeft: 7, + color: 'gray.800', + children: [ + (0, l.jsx)(le, { + label: 'Gravity', + value: n.gravityOn, + onChange: function () { + return t(te(te({}, n), {}, { gravityOn: !n.gravityOn })) + }, + children: (0, l.jsx)(oe, { + label: 'Strength', + value: 10 * n.gravity, + onChange: function (e) { + return t(te(te({}, n), {}, { gravity: e / 10 })) + }, + }), + }), + (0, l.jsx)(oe, { + value: -n.charge / 100, + onChange: function (e) { + return t(te(te({}, n), {}, { charge: -100 * e })) + }, + label: 'Repulsive Force', + }), + (0, l.jsx)(le, { + label: 'Collision', + infoText: 'Perfomance sap, disable if slow', + value: n.collision, + onChange: function () { + return t(te(te({}, n), {}, { collision: !n.collision })) + }, + children: (0, l.jsx)(oe, { + value: n.collisionStrength / 5, + onChange: function (e) { + return t( + te(te({}, n), {}, { collisionStrength: 5 * e }), + ) + }, + label: 'Collision Radius', + infoText: + 'Easy with this one, high values can lead to a real jiggly mess', + }), + }), + (0, l.jsx)(oe, { + value: 5 * n.linkStrength, + onChange: function (e) { + return t(te(te({}, n), {}, { linkStrength: e / 5 })) + }, + label: 'Link Force', + }), + (0, l.jsx)(oe, { + label: 'Link Iterations', + value: n.linkIts, + onChange: function (e) { + return t(te(te({}, n), {}, { linkIts: e })) + }, + min: 0, + max: 6, + step: 1, + infoText: + 'How many links down the line the physics of a single node affects (Slow)', + }), + (0, l.jsx)(oe, { + label: 'Viscosity', + value: 10 * n.velocityDecay, + onChange: function (e) { + return t(te(te({}, n), {}, { velocityDecay: e / 10 })) + }, + }), + ], + }), + (0, l.jsx)(j.xu, { + children: (0, l.jsx)(M.UQ, { + paddingLeft: 3, + allowToggle: !0, + children: (0, l.jsxs)(M.Qd, { + children: [ + (0, l.jsxs)(M.KF, { + children: [ + (0, l.jsx)(U.x, { children: 'Advanced' }), + (0, l.jsx)(M.XE, { marginRight: 2 }), + ], + }), + (0, l.jsx)(M.Hk, { + children: (0, l.jsxs)(W.gC, { + spacing: 2, + justifyContent: 'flex-start', + divider: (0, l.jsx)(W.cX, { + borderColor: 'gray.500', + }), + align: 'stretch', + paddingLeft: 3, + color: 'gray.800', + children: [ + (0, l.jsx)(oe, { + label: 'Stabilization rate', + value: 50 * n.alphaDecay, + onChange: function (e) { + return t( + te(te({}, n), {}, { alphaDecay: e / 50 }), + ) + }, + }), + (0, l.jsx)(le, { + label: 'Center nodes', + value: n.centering, + onChange: function () { + return t( + te( + te({}, n), + {}, + { centering: !n.centering }, + ), + ) + }, + infoText: + 'Keeps the nodes in the center of the viewport. If disabled you can drag the nodes anywhere you want.', + children: (0, l.jsx)(oe, { + label: 'Centering Strength', + value: n.centeringStrength, + max: 2, + step: 0.01, + onChange: function (e) { + return t( + te(te({}, n), {}, { centeringStrength: e }), + ) + }, + }), + }), + ], + }), + }), + ], + }), + }), + }), + ], + }), + ], + }), + (0, l.jsxs)(M.Qd, { + children: [ + (0, l.jsxs)(M.KF, { + children: [ + (0, l.jsx)(M.XE, { marginRight: 2 }), + (0, l.jsx)(X.X, { size: 'sm', children: 'Visual' }), + ], + }), + (0, l.jsx)(M.Hk, { + children: (0, l.jsxs)(W.gC, { + justifyContent: 'flex-start', + align: 'stretch', + children: [ + (0, l.jsx)(M.UQ, { + allowToggle: !0, + defaultIndex: [0], + paddingLeft: 3, + children: (0, l.jsxs)(M.Qd, { + children: [ + (0, l.jsx)(M.KF, { + children: (0, l.jsxs)(_.k, { + justifyContent: 'space-between', + w: '100%', + children: [ + (0, l.jsx)(U.x, { children: 'Colors' }), + (0, l.jsx)(M.XE, { marginRight: 2 }), + ], + }), + }), + (0, l.jsx)(M.Hk, { + children: (0, l.jsx)(W.gC, { + spacing: 2, + justifyContent: 'flex-start', + divider: (0, l.jsx)(W.cX, { + borderColor: 'gray.500', + }), + align: 'stretch', + color: 'gray.800', + children: (0, l.jsxs)(j.xu, { + children: [ + (0, l.jsxs)(_.k, { + alignItems: 'center', + justifyContent: 'space-between', + children: [ + (0, l.jsx)(U.x, { children: 'Nodes' }), + (0, l.jsx)(B.u, { + label: 'Shuffle node colors', + children: (0, l.jsx)(A.h, { + 'aria-label': 'Shuffle node colors', + size: 'sm', + icon: (0, l.jsx)(P.n, {}), + variant: 'ghost', + onClick: function () { + var e, + n = + null !== (e = d.nodeColorScheme) && + void 0 !== e + ? e + : [] + h( + te( + te({}, d), + {}, + { + nodeColorScheme: n + .map(function (e) { + return [Math.random(), e] + }) + .sort(function (e, n) { + return ( + (0, c.Z)(e, 1)[0] - + (0, c.Z)(n, 1)[0] + ) + }) + .map(function (e) { + var n = (0, c.Z)(e, 2) + n[0] + return n[1] + }), + }, + ), + ) + }, + }), + }), + (0, l.jsx)(B.u, { + label: 'Cycle node colors', + children: (0, l.jsx)(A.h, { + 'aria-label': 'Shift node colors', + icon: (0, l.jsx)(Z.L, {}), + size: 'sm', + variant: 'ghost', + onClick: function () { + var e, + n = + null !== (e = d.nodeColorScheme) && + void 0 !== e + ? e + : [] + h( + te( + te({}, d), + {}, + { + nodeColorScheme: [].concat( + (0, a.Z)(n.slice(1, n.length)), + [n[0]], + ), + }, + ), + ) + }, + }), + }), + (0, l.jsxs)(q.v2, { + placement: 'right', + closeOnSelect: !1, + matchWidth: !0, + children: [ + (0, l.jsx)(q.j2, { + width: 20, + as: V.z, + colorScheme: '', + color: 'black', + rightIcon: (0, l.jsx)(E.v, {}), + children: (0, l.jsx)(_.k, { + height: 6, + width: 6, + flexDirection: 'column', + flexWrap: 'wrap', + children: d.nodeColorScheme.map( + function (e) { + return (0, l.jsx)( + j.xu, + { + bgColor: e, + flex: '1 1 8px', + borderRadius: '2xl', + }, + e, + ) + }, + ), + }), + }), + (0, l.jsxs)(G.h, { + children: [ + ' ', + (0, l.jsx)(q.qy, { + minW: 10, + zIndex: 'popover', + bgColor: 'gray.200', + children: (0, l.jsx)(q.__, { + width: 500, + type: 'checkbox', + defaultValue: d.nodeColorScheme, + onChange: function (e) { + e.length && + h( + te( + te({}, d), + {}, + { nodeColorScheme: e }, + ), + ) + }, + children: w.map(function (e) { + return (0, l.jsx)( + q.ii, + { + isChecked: + d.nodeColorScheme.some( + function (n) { + return n === e + }, + ), + value: e, + isDisabled: + 1 === + d.nodeColorScheme + .length && + d.nodeColorScheme[0] === + e, + children: (0, l.jsx)(j.xu, { + justifyContent: + 'space-between', + alignItems: 'center', + display: 'flex', + children: (0, l.jsx)( + j.xu, + { + bgColor: e, + borderRadius: 'sm', + height: 6, + width: 6, + }, + ), + }), + }, + e, + ) + }), + }), + }), + ], + }), + ], + }), + ], + }), + (0, l.jsxs)(_.k, { + alignItems: 'center', + justifyContent: 'space-between', + children: [ + (0, l.jsx)(U.x, { children: 'Links' }), + (0, l.jsxs)(q.v2, { + placement: 'right', + children: [ + (0, l.jsx)(q.j2, { + as: V.z, + colorScheme: '', + color: 'black', + rightIcon: (0, l.jsx)(E.v, {}), + children: (0, l.jsx)(j.xu, { + children: d.linkColorScheme + ? (0, l.jsx)(j.xu, { + bgColor: d.linkColorScheme, + borderRadius: 'sm', + height: 6, + width: 6, + }) + : (0, l.jsx)(_.k, { + height: 6, + width: 6, + flexDirection: 'column', + flexWrap: 'wrap', + children: d.nodeColorScheme.map( + function (e) { + return (0, l.jsx)( + j.xu, + { + bgColor: e, + flex: '1 1 8px', + borderRadius: '2xl', + }, + e, + ) + }, + ), + }), + }), + }), + (0, l.jsxs)(G.h, { + children: [ + ' ', + (0, l.jsxs)(q.qy, { + minW: 10, + zIndex: 'popover', + bgColor: 'gray.200', + children: [ + (0, l.jsx)(q.sN, { + onClick: function () { + return h( + te( + te({}, d), + {}, + { linkColorScheme: '' }, + ), + ) + }, + justifyContent: 'space-between', + alignItems: 'center', + display: 'flex', + children: (0, l.jsx)(_.k, { + height: 6, + width: 6, + flexDirection: 'column', + flexWrap: 'wrap', + children: + d.nodeColorScheme.map( + function (e) { + return (0, l.jsx)( + j.xu, + { + bgColor: e, + flex: '1 1 8px', + borderRadius: '2xl', + }, + e, + ) + }, + ), + }), + }), + w.map(function (e) { + return (0, l.jsx)( + q.sN, + { + onClick: function () { + return h( + te( + te({}, d), + {}, + { + linkColorScheme: e, + }, + ), + ) + }, + justifyContent: + 'space-between', + alignItems: 'center', + display: 'flex', + children: (0, l.jsx)(j.xu, { + bgColor: e, + borderRadius: 'sm', + height: 6, + width: 6, + }), + }, + e, + ) + }), + ], + }), + ], + }), + ], + }), + ], + }), + (0, l.jsxs)(_.k, { + alignItems: 'center', + justifyContent: 'space-between', + children: [ + (0, l.jsx)(U.x, { children: 'Accent' }), + (0, l.jsxs)(q.v2, { + placement: 'right', + children: [ + (0, l.jsx)(q.j2, { + as: V.z, + colorScheme: '', + color: 'black', + rightIcon: (0, l.jsx)(E.v, {}), + children: (0, l.jsx)(j.xu, { + bgColor: y, + borderRadius: 'sm', + height: 6, + width: 6, + }), + }), + (0, l.jsxs)(G.h, { + children: [ + ' ', + (0, l.jsx)(q.qy, { + minW: 10, + zIndex: 'popover', + bgColor: 'gray.200', + children: w.map(function (e) { + return (0, l.jsx)( + q.sN, + { + onClick: function () { + return k(e) + }, + justifyContent: + 'space-between', + alignItems: 'center', + display: 'flex', + children: (0, l.jsx)(j.xu, { + bgColor: e, + borderRadius: 'sm', + height: 6, + width: 6, + }), + }, + e, + ) + }), + }), + ], + }), + ], + }), + ], + }), + (0, l.jsx)(ae, { + colorList: w, + label: 'Link highlight', + visuals: d, + setVisuals: h, + value: 'linkHighlight', + visValue: d.linkHighlight, + }), + (0, l.jsx)(ae, { + colorList: w, + label: 'Node highlight', + visuals: d, + setVisuals: h, + value: 'nodeHighlight', + visValue: d.nodeHighlight, + }), + (0, l.jsx)(ae, { + colorList: w, + label: 'Background', + visuals: d, + setVisuals: h, + value: 'backgroundColor', + visValue: d.backgroundColor, + }), + (0, l.jsx)(ae, { + colorList: w, + label: 'Emacs node', + visuals: d, + setVisuals: h, + value: 'emacsNodeColor', + visValue: d.emacsNodeColor, + }), + ], + }), + }), + }), + ], + }), + }), + (0, l.jsxs)(W.gC, { + spacing: 2, + justifyContent: 'flex-start', + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.500' }), + align: 'stretch', + paddingLeft: 7, + color: 'gray.800', + children: [ + (0, l.jsx)(oe, { + label: 'Node size', + value: d.nodeRel, + onChange: function (e) { + return h(te(te({}, d), {}, { nodeRel: e })) + }, + }), + r && + (0, l.jsxs)(l.Fragment, { + children: [ + (0, l.jsx)(oe, { + label: 'Node opacity', + value: d.nodeOpacity, + min: 0, + max: 1, + onChange: function (e) { + return h(te(te({}, d), {}, { nodeOpacity: e })) + }, + }), + (0, l.jsx)(oe, { + label: 'Node resolution', + value: d.nodeResolution, + min: 5, + max: 32, + step: 1, + onChange: function (e) { + return h(te(te({}, d), {}, { nodeResolution: e })) + }, + }), + ], + }), + (0, l.jsx)(oe, { + label: 'Link width', + value: d.linkWidth, + onChange: function (e) { + return h(te(te({}, d), {}, { linkWidth: e })) + }, + }), + r && + (0, l.jsx)(oe, { + label: 'Link opacity', + min: 0, + max: 1, + value: d.linkOpacity, + onChange: function (e) { + return h(te(te({}, d), {}, { linkOpacity: e })) + }, + }), + (0, l.jsxs)(le, { + label: 'Dash cite links', + infoText: + 'Add dashes to citation links made with org-roam-bibtex', + value: d.citeDashes, + onChange: function () { + return h( + te(te({}, d), {}, { citeDashes: !d.citeDashes }), + ) + }, + children: [ + (0, l.jsx)(oe, { + label: 'Dash length', + value: d.citeDashLength / 10, + onChange: function (e) { + return h( + te(te({}, d), {}, { citeDashLength: 10 * e }), + ) + }, + }), + (0, l.jsx)(oe, { + label: 'Gap length', + value: d.citeGapLength / 5, + onChange: function (e) { + return h( + te(te({}, d), {}, { citeGapLength: 5 * e }), + ) + }, + }), + ], + }), + (0, l.jsx)(ae, { + colorList: w, + label: 'Citation node color', + visuals: d, + setVisuals: h, + value: 'citeNodeColor', + visValue: d.citeNodeColor, + }), + (0, l.jsx)(ae, { + colorList: w, + label: 'Citationlink color', + visuals: d, + setVisuals: h, + value: 'citeLinkColor', + visValue: d.citeLinkColor, + }), + (0, l.jsxs)(j.xu, { + children: [ + (0, l.jsxs)(_.k, { + alignItems: 'center', + justifyContent: 'space-between', + children: [ + (0, l.jsx)(U.x, { children: 'Labels' }), + (0, l.jsxs)(q.v2, { + placement: 'right', + children: [ + (0, l.jsx)(q.j2, { + as: V.z, + colorScheme: '', + color: 'black', + rightIcon: (0, l.jsx)(E.v, {}), + children: d.labels + ? d.labels < 2 + ? 'On Highlight' + : 'Always' + : 'Never', + }), + (0, l.jsxs)(G.h, { + children: [ + ' ', + (0, l.jsxs)(q.qy, { + zIndex: 'popover', + bgColor: 'gray.200', + children: [ + (0, l.jsx)(q.sN, { + onClick: function () { + return h( + te(te({}, d), {}, { labels: 0 }), + ) + }, + children: 'Never', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return h( + te(te({}, d), {}, { labels: 1 }), + ) + }, + children: 'On Highlight', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return h( + te(te({}, d), {}, { labels: 2 }), + ) + }, + children: 'Always', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return h( + te(te({}, d), {}, { labels: 3 }), + ) + }, + children: 'Always (even in 3D)', + }), + ], + }), + ], + }), + ], + }), + ], + }), + (0, l.jsx)(K.U, { + in: d.labels > 0, + animateOpacity: !0, + children: (0, l.jsxs)(W.gC, { + spacing: 1, + justifyContent: 'flex-start', + divider: (0, l.jsx)(W.cX, { + borderColor: 'gray.400', + }), + align: 'stretch', + paddingLeft: 2, + color: 'gray.800', + children: [ + (0, l.jsx)(ae, { + colorList: w, + label: 'Text', + visuals: d, + setVisuals: h, + value: 'labelTextColor', + visValue: d.labelTextColor, + }), + (0, l.jsx)(ae, { + colorList: w, + label: 'Text', + visuals: d, + setVisuals: h, + value: 'labelBackgroundColor', + visValue: d.labelBackgroundColor, + }), + (0, l.jsx)(K.U, { + in: !!d.labelBackgroundColor, + animateOpacity: !0, + children: (0, l.jsx)(j.xu, { + paddingTop: 2, + children: (0, l.jsx)(oe, { + label: 'Background opacity', + value: d.labelBackgroundOpacity, + onChange: function (e) { + console.log(d.labelBackgroundOpacity), + h( + te( + te({}, d), + {}, + { labelBackgroundOpacity: e }, + ), + ) + }, + min: 0, + max: 1, + step: 0.01, + }), + }), + }), + (0, l.jsx)(K.U, { + in: d.labels > 1, + animateOpacity: !0, + children: (0, l.jsx)(j.xu, { + paddingTop: 2, + children: (0, l.jsx)(oe, { + label: 'Label Appearance Scale', + value: 5 * d.labelScale, + onChange: function (e) { + return h( + te( + te({}, d), + {}, + { labelScale: e / 5 }, + ), + ) + }, + }), + }), + }), + ], + }), + }), + ], + }), + (0, l.jsxs)(le, { + label: 'Link arrows', + value: d.arrows, + onChange: function () { + return h(te(te({}, d), {}, { arrows: !d.arrows })) + }, + children: [ + (0, l.jsx)(oe, { + label: 'Arrow size', + value: d.arrowsLength / 10, + onChange: function (e) { + return h( + te(te({}, d), {}, { arrowsLength: 10 * e }), + ) + }, + }), + (0, l.jsx)(oe, { + label: 'Arrow Position', + value: d.arrowsPos, + min: 0, + max: 1, + step: 0.01, + onChange: function (e) { + return h(te(te({}, d), {}, { arrowsPos: e })) + }, + }), + (0, l.jsx)(ae, { + colorList: w, + label: 'Arrow Color', + visuals: d, + setVisuals: h, + value: 'arrowsColor', + visValue: d.arrowsColor, + }), + ], + }), + (0, l.jsxs)(le, { + label: 'Directional Particles', + value: d.particles, + onChange: function () { + return h(te(te({}, d), {}, { particles: !d.particles })) + }, + children: [ + (0, l.jsx)(oe, { + label: 'Particle Number', + value: d.particlesNumber, + max: 5, + step: 1, + onChange: function (e) { + return h(te(te({}, d), {}, { particlesNumber: e })) + }, + }), + (0, l.jsx)(oe, { + label: 'Particle Size', + value: d.particlesWidth, + onChange: function (e) { + return h(te(te({}, d), {}, { particlesWidth: e })) + }, + }), + ], + }), + (0, l.jsx)(le, { + label: 'Highlight', + onChange: function () { + return h(te(te({}, d), {}, { highlight: !d.highlight })) + }, + value: d.highlight, + children: (0, l.jsxs)(W.gC, { + spacing: 1, + justifyContent: 'flex-start', + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.400' }), + align: 'stretch', + paddingLeft: 0, + children: [ + (0, l.jsx)(oe, { + label: 'Highlight Link Thickness', + value: d.highlightLinkSize, + onChange: function (e) { + return h( + te(te({}, d), {}, { highlightLinkSize: e }), + ) + }, + }), + (0, l.jsx)(oe, { + label: 'Highlight Node Size', + value: d.highlightNodeSize, + onChange: function (e) { + return h( + te(te({}, d), {}, { highlightNodeSize: e }), + ) + }, + }), + (0, l.jsxs)(le, { + label: 'Highlight Animation', + onChange: function () { + h( + te( + te({}, d), + {}, + { highlightAnim: !d.highlightAnim }, + ), + ) + }, + value: d.highlightAnim, + children: [ + (0, l.jsx)(oe, { + label: 'Animation speed', + onChange: function (e) { + return h( + te(te({}, d), {}, { animationSpeed: e }), + ) + }, + value: d.animationSpeed, + infoText: + 'Slower speed has a chance of being buggy', + min: 50, + max: 1e3, + step: 10, + }), + (0, l.jsx)(J.Ph, { + placeholder: d.algorithmName, + onChange: function (e) { + h( + te( + te({}, d), + {}, + { algorithmName: e.target.value }, + ), + ) + }, + children: d.algorithmOptions.map(function (e) { + return (0, + l.jsx)('option', { value: e, children: e }, e) + }), + }), + ], + }), + ], + }), + }), + ], + }), + ], + }), + }), + ], + }), + (0, l.jsxs)(M.Qd, { + children: [ + (0, l.jsxs)(M.KF, { + children: [ + (0, l.jsx)(M.XE, { marginRight: 2 }), + (0, l.jsx)(X.X, { size: 'sm', children: 'Behavior' }), + ], + }), + (0, l.jsx)(M.Hk, { + children: (0, l.jsxs)(W.gC, { + spacing: 2, + justifyContent: 'flex-start', + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.500' }), + align: 'stretch', + paddingLeft: 7, + color: 'gray.800', + children: [ + (0, l.jsxs)(_.k, { + alignItems: 'center', + justifyContent: 'space-between', + children: [ + (0, l.jsxs)(_.k, { + children: [ + (0, l.jsx)(U.x, { children: 'Expand Node' }), + (0, l.jsx)(ie, { + infoText: + 'View only the node and its direct neighbors', + }), + ], + }), + (0, l.jsxs)(q.v2, { + placement: 'right', + children: [ + (0, l.jsx)(q.j2, { + as: V.z, + rightIcon: (0, l.jsx)(E.v, {}), + colorScheme: '', + color: 'black', + children: (0, l.jsx)(U.x, { + children: g.local + ? g.local[0].toUpperCase() + g.local.slice(1) + : 'Never', + }), + }), + (0, l.jsxs)(G.h, { + children: [ + ' ', + (0, l.jsxs)(q.qy, { + zIndex: 'popover', + bgColor: 'gray.200', + children: [ + (0, l.jsx)(q.sN, { + onClick: function () { + return x(te(te({}, g), {}, { local: '' })) + }, + children: 'Never', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return x( + te(te({}, g), {}, { local: 'click' }), + ) + }, + children: 'Click', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return x( + te(te({}, g), {}, { local: 'double' }), + ) + }, + children: 'Double Click', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return x( + te(te({}, g), {}, { local: 'right' }), + ) + }, + children: 'Right Click', + }), + ], + }), + ], + }), + ], + }), + ], + }), + (0, l.jsxs)(_.k, { + alignItems: 'center', + justifyContent: 'space-between', + children: [ + (0, l.jsx)(U.x, { children: 'Open in Emacs' }), + (0, l.jsxs)(q.v2, { + placement: 'right', + children: [ + (0, l.jsx)(q.j2, { + as: V.z, + rightIcon: (0, l.jsx)(E.v, {}), + colorScheme: '', + color: 'black', + children: (0, l.jsx)(U.x, { + children: g.follow + ? g.follow[0].toUpperCase() + g.follow.slice(1) + : 'Never', + }), + }), + (0, l.jsxs)(G.h, { + children: [ + ' ', + (0, l.jsxs)(q.qy, { + bgColor: 'gray.200', + zIndex: 'popover', + children: [ + (0, l.jsx)(q.sN, { + onClick: function () { + return x(te(te({}, g), {}, { follow: '' })) + }, + children: 'Never', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return x( + te(te({}, g), {}, { follow: 'click' }), + ) + }, + children: 'Click', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return x( + te(te({}, g), {}, { follow: 'double' }), + ) + }, + children: 'Double Click', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return x( + te(te({}, g), {}, { follow: 'right' }), + ) + }, + children: 'Right Click', + }), + ], + }), + ], + }), + ], + }), + ], + }), + (0, l.jsxs)(_.k, { + alignItems: 'center', + justifyContent: 'space-between', + children: [ + (0, l.jsx)(U.x, { children: 'Follow Emacs by...' }), + (0, l.jsxs)(q.v2, { + placement: 'right', + children: [ + (0, l.jsx)(q.j2, { + as: V.z, + rightIcon: (0, l.jsx)(E.v, {}), + colorScheme: '', + color: 'black', + children: (0, l.jsx)(U.x, { + children: + f.follow[0].toUpperCase() + f.follow.slice(1), + }), + }), + (0, l.jsxs)(G.h, { + children: [ + ' ', + (0, l.jsxs)(q.qy, { + bgColor: 'gray.200', + zIndex: 'popover', + children: [ + (0, l.jsx)(q.sN, { + onClick: function () { + return p( + te(te({}, f), {}, { follow: 'local' }), + ) + }, + children: 'Opening the local graph', + }), + (0, l.jsx)(q.sN, { + onClick: function () { + return p( + te(te({}, f), {}, { follow: 'zoom' }), + ) + }, + children: 'Zooming to the current node', + }), + ], + }), + ], + }), + ], + }), + ], + }), + (0, l.jsx)(oe, { + label: 'Zoom speed', + value: f.zoomSpeed, + min: 0, + max: 4e3, + step: 100, + onChange: function (e) { + return p(te(te({}, f), {}, { zoomSpeed: e })) + }, + }), + (0, l.jsx)(oe, { + label: 'Zoom padding', + value: f.zoomPadding, + min: 0, + max: 400, + step: 1, + onChange: function (e) { + return p(te(te({}, f), {}, { zoomPadding: e })) + }, + infoText: + 'How much to zoom out to accomodate all nodes when changing the view.', + }), + ], + }), + }), + ], + }), + ], + }), + }), + ], + }), + }), + ], + }) + }, + ie = function (e) { + var n = e.infoText + return (0, l.jsx)(j.xu, { + paddingLeft: '1', + children: (0, l.jsx)(B.u, { + label: n, + placement: 'top', + color: 'gray.100', + bg: 'gray.800', + hasArrow: !0, + children: (0, l.jsx)(H.h, {}), + }), + }) + }, + oe = function (e) { + var n = e.min, + t = void 0 === n ? 0 : n, + r = e.max, + i = void 0 === r ? 10 : r, + o = e.step, + a = void 0 === o ? 0.1 : o, + s = e.value, + c = void 0 === s ? 1 : s, + d = (0, L.Z)(e, ['min', 'max', 'step', 'value']), + h = d.onChange, + g = d.label, + x = d.infoText, + f = (0, u.useContext)(ee.N).highlightColor + return (0, l.jsxs)(j.xu, { + children: [ + (0, l.jsxs)(j.xu, { + display: 'flex', + alignItems: 'flex-end', + children: [(0, l.jsx)(U.x, { children: g }), x && (0, l.jsx)(ie, { infoText: x })], + }), + (0, l.jsxs)(Y.iR, { + value: c, + onChange: h, + min: t, + max: i, + step: a, + children: [ + (0, l.jsx)(Y.Uj, { children: (0, l.jsx)(Y.Ms, {}) }), + (0, l.jsx)(B.u, { + bg: f, + label: c.toFixed(1), + children: (0, l.jsx)(Y.gs, { bg: 'white' }), + }), + ], + }), + ], + }) + }, + le = function (e) { + var n = e.value, + t = e.onChange, + r = e.label, + i = e.infoText, + o = e.children + return (0, l.jsxs)(j.xu, { + paddingTop: 2, + children: [ + (0, l.jsxs)(j.xu, { + display: 'flex', + justifyContent: 'space-between', + paddingBottom: 2, + children: [ + (0, l.jsxs)(j.xu, { + display: 'flex', + alignItems: 'center', + children: [ + (0, l.jsx)(U.x, { children: r }), + i && (0, l.jsx)(ie, { infoText: i }), + ], + }), + (0, l.jsx)(Q.r, { isChecked: !!n, onChange: t }), + ], + }), + (0, l.jsx)(K.U, { + in: !!n, + animateOpacity: !0, + children: (0, l.jsx)(j.xu, { + paddingLeft: 4, + paddingTop: 2, + paddingBottom: 2, + children: o, + }), + }), + ], + }) + }, + ae = function (e) { + var n = e.label, + t = e.colorList, + r = e.value, + i = e.visuals, + o = e.visValue, + a = e.setVisuals + return (0, l.jsxs)(_.k, { + alignItems: 'center', + justifyContent: 'space-between', + children: [ + (0, l.jsx)(U.x, { children: n }), + (0, l.jsxs)(q.v2, { + placement: 'right', + children: [ + (0, l.jsx)(q.j2, { + as: V.z, + colorScheme: '', + color: 'black', + rightIcon: (0, l.jsx)(E.v, {}), + children: (0, l.jsx)(j.xu, { + bgColor: o, + borderRadius: 'sm', + height: 6, + width: 6, + }), + }), + (0, l.jsxs)(G.h, { + children: [ + ' ', + (0, l.jsxs)(q.qy, { + minW: 10, + zIndex: 'popover', + bgColor: 'gray.200', + children: [ + (0, l.jsx)(q.sN, { + onClick: function () { + return a(te(te({}, i), {}, (0, s.Z)({}, r, ''))) + }, + justifyContent: 'space-between', + alignItems: 'center', + display: 'flex', + children: (0, l.jsx)(j.xu, { height: 6, width: 6 }), + }), + t.map(function (e) { + return (0, l.jsx)( + q.sN, + { + onClick: function () { + return a(te(te({}, i), {}, (0, s.Z)({}, r, e))) + }, + justifyContent: 'space-between', + alignItems: 'center', + display: 'flex', + children: (0, l.jsx)(j.xu, { + bgColor: e, + borderRadius: 'sm', + height: 6, + width: 6, + }), + }, + e, + ) + }), + ], + }), + ], + }), + ], + }), + ], + }) + }, + se = t(1122), + ce = t(2003) + function ue(e, n) { + var t = Object.keys(e) + if (Object.getOwnPropertySymbols) { + var r = Object.getOwnPropertySymbols(e) + n && + (r = r.filter(function (n) { + return Object.getOwnPropertyDescriptor(e, n).enumerable + })), + t.push.apply(t, r) + } + return t + } + function de(e) { + for (var n = 1; n < arguments.length; n++) { + var t = null != arguments[n] ? arguments[n] : {} + n % 2 + ? ue(Object(t), !0).forEach(function (n) { + ;(0, s.Z)(e, n, t[n]) + }) + : Object.getOwnPropertyDescriptors + ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) + : ue(Object(t)).forEach(function (n) { + Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n)) + }) + } + return e + } + var he = t.e(4).then(t.bind(t, 7004)), + ge = t.g.window ? t(1957).f$ : null, + xe = t.g.window ? t(1957).s6 : null + function fe() { + var e = (0, u.useState)(!1), + n = e[0], + t = e[1] + return ( + (0, u.useEffect)(function () { + t(!0) + }, []), + n ? (0, l.jsx)(pe, {}) : null + ) + } + function pe() { + var e = d('physics', S), + n = (0, c.Z)(e, 2), + t = n[0], + r = n[1], + i = d('filter', O), + o = (0, c.Z)(i, 2), + h = o[0], + g = o[1], + x = d('visuals', N), + f = (0, c.Z)(x, 2), + p = f[0], + m = f[1], + v = (0, u.useState)(null), + b = v[0], + C = v[1], + y = (0, u.useState)(null), + k = y[0], + w = y[1], + L = d('behavior', I), + D = (0, c.Z)(L, 2), + R = D[0], + T = D[1], + P = d('mouse', z), + Z = (0, c.Z)(P, 2), + E = Z[0], + H = Z[1], + F = (0, u.useRef)({}), + A = (0, u.useRef)({}), + B = (0, u.useContext)(ee.N).setEmacsTheme, + V = (0, u.useState)(!1), + M = V[0], + X = V[1], + W = (0, u.useState)({ nodeIds: [] }), + _ = W[0], + U = W[1], + Q = (0, u.useRef)({ nodeIds: [] }), + q = (0, u.useRef)(I) + q.current = R + var G = (0, u.useRef)(null), + K = (0, u.useRef)(null) + Q.current = _ + var J = function (e, n) { + var t, + r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 2e3, + i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 200, + o = G.current, + l = Q.current, + s = q.current, + c = null !== (t = A.current[n]) && void 0 !== t ? t : [], + u = Object.fromEntries( + [n] + .concat( + (0, a.Z)( + c.flatMap(function (e) { + return [e.source, e.target] + }), + ), + ) + .map(function (e) { + return [e, {}] + }), + ) + return 'zoom' === e + ? (console.log(l), + l.nodeIds.length && + (console.log('emptying'), console.log('scope ' + l.nodeIds), U({ nodeIds: [] })), + void setTimeout(function () { + return o.zoomToFit(r, i, function (e) { + return u[e.id] + }) + }, 50)) + : l.nodeIds.length + ? 'add' !== s.localSame + ? (U({ nodeIds: [n] }), + void setTimeout(function () { + o.centerAt(0, 0, r) + }, 50)) + : l.nodeIds.includes(n) && + l.nodeIds.some(function (e) { + return u[e] + }) + ? (U(function (e) { + return de(de({}, e), {}, { nodeIds: [].concat((0, a.Z)(e.nodeIds), [n]) }) + }), + void setTimeout(function () { + return o.zoomToFit(r, i, function (e) { + return u[e.id] + }) + }, 50)) + : (U({ nodeIds: [n] }), + void setTimeout(function () { + o.centerAt(0, 0, r) + }, 50)) + : (U({ nodeIds: [n] }), + void setTimeout(function () { + o.centerAt(0, 0, r) + }, 50)) + } + return ( + (0, u.useEffect)(function () { + ;(K.current = new ce.Z('ws://localhost:35903')), + K.current.addEventListener('open', function (e) { + console.log('Connection with Emacs established') + }), + K.current.addEventListener('message', function (e) { + G.current + var n = q.current, + t = JSON.parse(e.data) + switch (t.type) { + case 'graphdata': + return (function (e) { + var n = e.nodes.reduce(function (e, n) { + var t + return de( + de({}, e), + {}, + (0, s.Z)( + {}, + n.file, + [].concat( + (0, a.Z)(null !== (t = e[n.file]) && void 0 !== t ? t : []), + [n], + ), + ), + ) + }, {}), + t = Object.keys(n).flatMap(function (e) { + var t, + r = null !== (t = n[e]) && void 0 !== t ? t : [], + i = r.find(function (e) { + return 0 === e.level + }), + o = r.filter(function (e) { + return 0 !== e.level + }) + return i + ? o.map(function (e) { + return { source: e.id, target: i.id, type: 'parent' } + }) + : [] + }) + F.current = Object.fromEntries( + e.nodes.map(function (e) { + return [e.id, e] + }), + ) + var r = [].concat((0, a.Z)(e.links), (0, a.Z)(t)).filter(function (e) { + var n = e.source, + t = e.target + return F.current[n] && F.current[t] + }) + A.current = r.reduce(function (e, n) { + var t, r, i + return de( + de({}, e), + {}, + ((i = {}), + (0, s.Z)( + i, + n.source, + [].concat( + (0, a.Z)(null !== (t = e[n.source]) && void 0 !== t ? t : []), + [n], + ), + ), + (0, s.Z)( + i, + n.target, + [].concat( + (0, a.Z)(null !== (r = e[n.target]) && void 0 !== r ? r : []), + [n], + ), + ), + i), + ) + }, {}) + var i = de(de({}, e), {}, { links: r }), + o = JSON.parse(JSON.stringify(i)) + C(o) + })(t.data) + case 'theme': + return B(t.data) + case 'command': + switch (t.data.commandName) { + case 'local': + var r = R.zoomSpeed, + i = R.zoomPadding + J('local', t.data.id, r, i), w(t.data.id) + break + case 'zoom': + var o, + l, + c = + (null === t || void 0 === t || null === (o = t.data) || void 0 === o + ? void 0 + : o.speed) || n.zoomSpeed, + u = + (null === t || void 0 === t || null === (l = t.data) || void 0 === l + ? void 0 + : l.padding) || n.zoomPadding + J('zoom', t.data.id, c, u), w(t.data.id) + break + case 'follow': + J(n.follow, t.data.id, n.zoomSpeed, n.zoomPadding), w(t.data.id) + break + default: + return console.error('unknown message type', t.type) + } + } + }) + }, []), + b + ? (0, l.jsxs)(j.xu, { + display: 'flex', + alignItems: 'flex-start', + flexDirection: 'row', + height: '100%', + children: [ + (0, l.jsx)( + re, + de( + {}, + { + physics: t, + setPhysics: r, + threeDim: M, + setThreeDim: X, + filter: h, + setFilter: g, + visuals: p, + setVisuals: m, + mouse: E, + setMouse: H, + behavior: R, + setBehavior: T, + }, + ), + ), + (0, l.jsx)(j.xu, { + position: 'absolute', + alignItems: 'top', + children: (0, l.jsx)( + je, + de( + { + ref: G, + nodeById: F.current, + linksByNodeId: A.current, + webSocket: K.current, + }, + { + physics: t, + graphData: b, + threeDim: M, + emacsNodeId: k, + filter: h, + visuals: p, + behavior: R, + mouse: E, + scope: _, + setScope: U, + }, + ), + ), + }), + ], + }) + : null + ) + } + var je = (0, u.forwardRef)(function (e, n) { + var t = e.physics, + r = e.graphData, + s = e.threeDim, + d = e.linksByNodeId, + h = e.filter, + j = e.emacsNodeId, + m = e.nodeById, + v = e.visuals, + b = (e.behavior, e.mouse), + C = e.scope, + y = e.setScope, + k = e.webSocket, + S = (0, x.iP)(), + O = (0, c.Z)(S, 2), + N = O[0], + I = O[1], + z = (0, u.useState)(null), + L = z[0], + D = z[1], + R = (0, p.useTheme)(), + T = (0, u.useContext)(ee.N).emacsTheme, + P = function (e, n) { + switch (e) { + case b.local: + if (C.nodeIds.includes(n.id)) break + y(function (e) { + return de(de({}, e), {}, { nodeIds: [].concat((0, a.Z)(e.nodeIds), [n.id]) }) + }) + break + case b.follow: + k.send(n.id) + } + }, + Z = (0, u.useRef)(null) + ;(0, u.useEffect)( + function () { + j && D(m[j]) + }, + [j], + ), + (Z.current = L) + var E = (0, u.useMemo)( + function () { + if (!Z.current) return {} + var e = d[Z.current.id] + return e + ? Object.fromEntries( + [Z.current.id] + .concat( + (0, a.Z)( + e.flatMap(function (e) { + return [e.source, e.target] + }), + ), + ) + .map(function (e) { + return [e, {}] + }), + ) + : {} + }, + [Z.current, d], + ), + H = (0, u.useMemo)( + function () { + var e = r.nodes.filter(function (e) { + var n, + t = null !== (n = d[e.id]) && void 0 !== n ? n : [] + return ( + !h.orphans || + (h.parents + ? 0 !== t.length + : 0 !== t.length && + t.some(function (e) { + return !['parent', 'ref'].includes(e.type) + })) + ) + }), + n = + (e.map(function (e) { + return e.id + }), + r.links.filter(function (e) { + var n = e + return h.parents || 'parent' !== n.type + })), + t = e.filter(function (e) { + var n, + t = null !== (n = d[e.id]) && void 0 !== n ? n : [] + return ( + C.nodeIds.includes(e.id) || + t.some(function (e) { + return C.nodeIds.includes(e.source) || C.nodeIds.includes(e.target) + }) + ) + }), + i = t.map(function (e) { + return e.id + }), + o = n.filter(function (e) { + var n = 'object' === typeof e.source ? e.source.id : e.source, + t = 'object' === typeof e.target ? e.target.id : e.target + return i.includes(n) && i.includes(t) + }) + return 0 === C.nodeIds.length ? { nodes: e, links: n } : { nodes: t, links: o } + }, + [h, C, r], + ) + ;(0, u.useEffect)(function () { + ;(0, o.Z)( + i().mark(function e() { + var r, o + return i().wrap(function (e) { + for (;;) + switch ((e.prev = e.next)) { + case 0: + return (r = n.current), (e.next = 3), he + case 3: + ;(o = e.sent), + t.gravityOn + ? (r.d3Force('x', o.forceX().strength(t.gravity)), + r.d3Force('y', o.forceY().strength(t.gravity)), + s && r.d3Force('z', o.forceZ().strength(t.gravity))) + : (r.d3Force('x', null), r.d3Force('y', null), s && r.d3Force('z', null)), + t.centering + ? r.d3Force('center', o.forceCenter().strength(t.centeringStrength)) + : r.d3Force('center', null), + t.linkStrength && r.d3Force('link').strength(t.linkStrength), + t.linkIts && r.d3Force('link').iterations(t.linkIts), + t.charge && r.d3Force('charge').strength(t.charge), + r.d3Force( + 'collide', + t.collision ? o.forceCollide().radius(t.collisionStrength) : null, + ) + case 10: + case 'end': + return e.stop() + } + }, e) + }), + )() + }), + (0, u.useEffect)( + function () { + var e + null === (e = n.current) || void 0 === e || e.d3ReheatSimulation() + }, + [t], + ) + var F = (0, u.useRef)(0), + A = (0, u.useState)(1), + B = A[0], + V = A[1], + M = (0, f._7)( + function (e) { + return V(e) + }, + { duration: v.animationSpeed, algorithm: w[v.algorithmName] }, + ), + X = (0, c.Z)(M, 2), + W = X[0], + _ = X[1], + U = (0, f._7)( + function (e) { + return V(Math.min(B, -1 * (e - 1))) + }, + { duration: v.animationSpeed, algorithm: w[v.algorithmName] }, + ), + Q = (0, c.Z)(U, 2), + q = Q[0], + G = Q[1], + K = (0, u.useRef)(null) + ;(0, u.useEffect)( + function () { + if ((L && (K.current = L), !v.highlightAnim)) return V(L ? 1 : 0) + L ? W() : (_(), B > 0.5 ? q() : V(0)) + }, + [L], + ) + var J = function (e) { + if (R) + return e.split('.').reduce(function (e, n) { + return e[n] + }, R.colors) + }, + Y = (0, u.useMemo)( + function () { + var e = v.nodeColorScheme.concat( + v.linkColorScheme || [], + v.linkHighlight || [], + v.nodeHighlight || [], + v.citeNodeColor || [], + v.citeLinkColor || [], + ) + return Object.fromEntries( + e.map(function (n) { + var t = J(n), + r = e.map(function (e) { + return [e, g.Z(t, J(e))] + }) + return [n, Object.fromEntries(r)] + }), + ) + }, + [v.nodeColorScheme, v.linkHighlight, v.nodeHighlight, v.linkColorScheme, T], + ), + $ = (0, u.useMemo)( + function () { + var e, + n, + t, + r = + null !== (e = d[null === (n = K.current) || void 0 === n ? void 0 : n.id]) && + void 0 !== e + ? e + : [] + return Object.fromEntries( + [null === (t = K.current) || void 0 === t ? void 0 : t.id] + .concat( + (0, a.Z)( + r.flatMap(function (e) { + return [e.source, e.target] + }), + ), + ) + .map(function (e) { + return [e, {}] + }), + ) + }, + [JSON.stringify(L), K.current], + ), + ne = function (e) { + var n, + t, + r, + i, + o, + l, + a = + null !== (n = null === (t = d[e]) || void 0 === t ? void 0 : t.length) && + void 0 !== n + ? n + : 0, + s = a + ? null === (r = d[e]) || void 0 === r + ? void 0 + : r.filter(function (e) { + return 'parent' === e.type || 'cite' === e.type + }).length + : 0, + c = h.parents ? a : a - s + return v.nodeColorScheme[ + ((i = c), (o = 0), (l = v.nodeColorScheme.length - 1), Math.min(Math.max(i, o), l)) + ] + }, + te = function (e, n) { + return d[e] > d[n] ? ne(e) : ne(n) + }, + re = function (e, n) { + return ( + 'rgba(' + + (e = e.replace('#', '')) + .match(new RegExp('(.{' + e.length / 3 + '})', 'g')) + .map(function (n) { + return parseInt(e.length % 2 ? n + n : n, 16) + }) + .concat(isFinite(n) ? n : 1) + .join(',') + + ')' + ) + }, + ie = (0, u.useMemo)( + function () { + return J(v.labelTextColor) + }, + [v.labelTextColor, T], + ), + oe = (0, u.useMemo)( + function () { + return J(v.labelBackgroundColor) + }, + [v.labelBackgroundColor, T], + ), + le = { + graphData: H, + width: N, + height: I, + backgroundColor: R.colors.gray[v.backgroundColor], + nodeLabel: function (e) { + return e.title + }, + nodeColor: function (e) { + return (function (e) { + var n = E[e.id] || $[e.id] + return v.emacsNodeColor && e.id === j + ? J(v.emacsNodeColor) + : v.citeNodeColor && e.properties.ROAM_REFS + ? J(v.citeNodeColor) + : n && v.nodeHighlight + ? Y[ne(e.id)][v.nodeHighlight](B) + : J(ne(e.id)) + })(e) + }, + nodeRelSize: v.nodeRel, + nodeVal: function (e) { + var n, + t = null !== (n = d[e.id]) && void 0 !== n ? n : [], + r = t.length + ? t.filter(function (e) { + return 'parent' === e.type || 'cite' === e.type + }).length + : 0 + return ( + (3 + t.length - (h.parents ? 0 : r)) * + (E[e.id] || $[e.id] ? 1 + B * (v.highlightNodeSize - 1) : 1) + ) + }, + nodeCanvasObject: function (e, n, t) { + if (e && v.labels) { + var r = $[e.id] + if (!(t <= v.labelScale || 1 === v.labels) || E[e.id] || r) { + var i = e.title, + o = i.substring(0, Math.min(i.length, 40)), + l = 12 / t, + s = [1.1 * n.measureText(o).width, l].map(function (e) { + return e + 0.5 * l + }), + c = Math.min((3 * (t - v.labelScale)) / v.labelScale, 1), + u = function () { + return 1 === v.labels || t <= v.labelScale + ? B + : E[e.id] || $[e.id] + ? Math.max(c, B) + : 1 * c * (-1 * (0.5 * B - 1)) + } + if (v.labelBackgroundColor && v.labelBackgroundOpacity) { + var d = u() * v.labelBackgroundOpacity, + h = re(oe, d) + ;(n.fillStyle = h), + n.fillRect.apply(n, [e.x - s[0] / 2, e.y - s[1] / 2].concat((0, a.Z)(s))) + } + var g = u() + ;(n.textAlign = 'center'), (n.textBaseline = 'middle') + var x = re(ie, g) + ;(n.fillStyle = x), + (n.font = ''.concat(l, 'px Sans-Serif')), + n.fillText(o, e.x, e.y) + } + } + }, + nodeCanvasObjectMode: function () { + return 'after' + }, + linkDirectionalParticles: v.particles ? v.particlesNumber : void 0, + linkDirectionalArrowLength: v.arrows ? v.arrowsLength : void 0, + linkDirectionalArrowRelPos: v.arrowsPos, + linkDirectionalArrowColor: v.arrowsColor + ? function (e) { + return J(v.arrowsColor) + } + : void 0, + linkColor: function (e) { + var n = 'object' === typeof e.source ? e.source.id : e.source, + t = 'object' === typeof e.target ? e.target.id : e.target, + r = me(e, Z.current), + i = me(e, K.current), + o = r || i, + l = e + return v.citeLinkColor && 'cite' === l.type + ? J(v.citeLinkColor) + : (function (e, n, t) { + if (!v.linkHighlight && !v.linkColorScheme && !t) { + var r = te(e, n) + return J(r) + } + if (!t && !v.linkColorScheme) { + var i = te(e, n) + return J(i) + } + if (!t) return J(v.linkColorScheme) + if (!v.linkHighlight && !v.linkColorScheme) { + var o = te(e, n) + return J(o) + } + return v.linkHighlight + ? v.linkColorScheme + ? Y[v.linkColorScheme][v.linkHighlight](B) + : Y[te(e, n)][v.linkHighlight](B) + : J(v.linkColorScheme) + })(n, t, o) + }, + linkWidth: function (e) { + var n = me(e, Z.current), + t = me(e, K.current) + return n || t ? v.linkWidth * (1 + B * (v.highlightLinkSize - 1)) : v.linkWidth + }, + linkDirectionalParticleWidth: v.particlesWidth, + d3AlphaDecay: t.alphaDecay, + d3AlphaMin: t.alphaMin, + d3VelocityDecay: t.velocityDecay, + onNodeClick: function (e, n) { + var t = n.timeStamp - F.current < 400 + return (F.current = n.timeStamp), P(t ? 'double' : 'click', e) + }, + onBackgroundClick: function () { + D(null), + 0 !== C.nodeIds.length && + y(function (e) { + return de(de({}, e), {}, { nodeIds: [] }) + }) + }, + onNodeHover: function (e) { + v.highlight && (L || (G(), V(0)), D(e)) + }, + onNodeRightClick: function (e) { + P('right', e) + }, + } + return (0, l.jsx)('div', { + children: s + ? (0, l.jsx)( + xe, + de( + de({ ref: n }, le), + {}, + { + nodeThreeObjectExtend: !0, + backgroundColor: R.colors.white, + nodeOpacity: v.nodeOpacity, + nodeResolution: v.nodeResolution, + linkOpacity: v.linkOpacity, + nodeThreeObject: function (e) { + if (v.labels && (!(v.labels < 3) || E[e.id])) { + var n = new se.Z(e.title.substring(0, 40)) + return ( + (n.color = J(v.labelTextColor)), + (n.backgroundColor = J(v.labelBackgroundColor)), + (n.padding = 2), + (n.textHeight = 8), + n + ) + } + }, + }, + ), + ) + : (0, l.jsx)( + ge, + de( + de({ ref: n }, le), + {}, + { + linkLineDash: function (e) { + var n = e + return v.citeDashes && 'cite' === n.type + ? [v.citeDashLength, v.citeGapLength] + : null + }, + }, + ), + ), + }) + }) + function me(e, n) { + return ( + e.source.id === (null === n || void 0 === n ? void 0 : n.id) || + e.target.id === (null === n || void 0 === n ? void 0 : n.id) + ) + } + }, + 5301: function (e, n, t) { + ;(window.__NEXT_P = window.__NEXT_P || []).push([ + '/', + function () { + return t(374) + }, + ]) + }, + }, + function (e) { + e.O(0, [774, 737, 446, 906, 888, 179], function () { + return (n = 5301), e((e.s = n)) + var n + }) + var n = e.O() + _N_E = n + }, +]) diff --git a/out/index.html b/out/index.html index 460b147..3e59254 100644 --- a/out/index.html +++ b/out/index.html @@ -20,8 +20,8 @@ <script src="/_next/static/chunks/d25bd147-65fcc4c92edba8b370fb.js" defer=""></script> <script src="/_next/static/chunks/906-7b9696c9b17c64b94384.js" defer=""></script> <script src="/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.js" defer=""></script> - <script src="/_next/static/JLF-L6aVAhEgW_PO7mbbH/_buildManifest.js" defer=""></script> - <script src="/_next/static/JLF-L6aVAhEgW_PO7mbbH/_ssgManifest.js" defer=""></script> + <script src="/_next/static/NjgmQd_TDFyofQkcfOvWb/_buildManifest.js" defer=""></script> + <script src="/_next/static/NjgmQd_TDFyofQkcfOvWb/_ssgManifest.js" defer=""></script> </head> <body> <div id="__next"> @@ -697,7 +697,7 @@ "props": { "pageProps": {} }, "page": "/", "query": {}, - "buildId": "JLF-L6aVAhEgW_PO7mbbH", + "buildId": "NjgmQd_TDFyofQkcfOvWb", "nextExport": true, "autoExport": true, "isFallback": false, |