diff options
author | Thomas F. K. Jorna <[email protected]> | 2021-08-02 14:08:13 +0200 |
---|---|---|
committer | Thomas F. K. Jorna <[email protected]> | 2021-08-02 14:08:13 +0200 |
commit | 66dc7f3477ee250e8fb4a66902d2f2423df84664 (patch) | |
tree | a48d9a649afbdbfe1d403dc2bb61b7520481d095 | |
parent | b684e5dd7f076f54bc041e96f21ced754a4e7432 (diff) | |
parent | ab3ec40a1ea8a21eb7a0468f841ad617e0b0155b (diff) |
build: citelinks
-rw-r--r-- | api.d.ts | 3 | ||||
-rw-r--r-- | components/config.ts | 5 | ||||
-rw-r--r-- | components/tweaks.tsx | 533 | ||||
-rw-r--r-- | org-roam-ui.el | 20 | ||||
-rw-r--r-- | out/404.html | 6 | ||||
-rw-r--r-- | out/_next/static/ESBp6icvgUIL3DPl5IapM/_buildManifest.js | 12 | ||||
-rw-r--r-- | out/_next/static/ESBp6icvgUIL3DPl5IapM/_ssgManifest.js | 1 | ||||
-rw-r--r-- | out/_next/static/NjgmQd_TDFyofQkcfOvWb/_buildManifest.js | 1 | ||||
-rw-r--r-- | out/_next/static/NjgmQd_TDFyofQkcfOvWb/_ssgManifest.js | 1 | ||||
-rw-r--r-- | out/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.js (renamed from out/_next/static/chunks/pages/index-93fd2943e8087c9e1de7.js) | 2322 | ||||
-rw-r--r-- | out/index.html | 8 | ||||
-rw-r--r-- | pages/index.tsx | 32 |
12 files changed, 1179 insertions, 1765 deletions
@@ -8,6 +8,9 @@ export type OrgRoamNode = { file: string title: string level: number + properties: { + [key: string]: string | number + } } export type OrgRoamLink = { diff --git a/components/config.ts b/components/config.ts index ac4f9c8..1181f65 100644 --- a/components/config.ts +++ b/components/config.ts @@ -81,6 +81,11 @@ export const initialVisuals = { labelTextColor: 'black', labelBackgroundColor: 'white', labelBackgroundOpacity: 0.7, + citeDashes: true, + citeDashLength: 35, + citeGapLength: 15, + citeLinkColor: 'gray.600', + citeNodeColor: 'black', } export const initialBehavior = { diff --git a/components/tweaks.tsx b/components/tweaks.tsx index 0568c7d..3c9ee00 100644 --- a/components/tweaks.tsx +++ b/components/tweaks.tsx @@ -96,10 +96,6 @@ export const Tweaks = (props: TweakProps) => { 'gray.500', 'gray.600', 'white', - 'black', - ] - const grays = [ - 'black', 'gray.100', 'gray.200', 'gray.300', @@ -109,7 +105,7 @@ export const Tweaks = (props: TweakProps) => { 'gray.700', 'gray.800', 'gray.900', - 'white', + 'black', ] return ( <> @@ -540,7 +536,7 @@ export const Tweaks = (props: TweakProps) => { ))} </Flex> </MenuItem> - {grays.map((color) => ( + {colorList.map((color) => ( <MenuItem key={color} onClick={() => @@ -606,211 +602,38 @@ export const Tweaks = (props: TweakProps) => { </Portal> </Menu> </Flex> - <Flex alignItems="center" justifyContent="space-between"> - <Text>Link Highlight</Text> - <Menu placement="right"> - <MenuButton - as={Button} - colorScheme="" - color="black" - rightIcon={<ChevronDownIcon />} - > - { - <Box - bgColor={visuals.linkHighlight} - borderRadius="sm" - height={6} - width={6} - ></Box> - } - </MenuButton> - <Portal> - {' '} - <MenuList minW={10} zIndex="popover" bgColor="gray.200"> - <MenuItem - key={'none'} - onClick={() => - setVisuals({ ...visuals, linkHighlight: '' }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box borderRadius="sm" height={6} width={6}></Box> - </MenuItem> - {colorList.map((color) => ( - <MenuItem - key={color} - onClick={() => - setVisuals({ ...visuals, linkHighlight: color }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box - bgColor={color} - borderRadius="sm" - height={6} - width={6} - ></Box> - </MenuItem> - ))} - </MenuList> - </Portal> - </Menu> - </Flex> - <Flex alignItems="center" justifyContent="space-between"> - <Text>Node Highlight</Text> - <Menu placement="right"> - <MenuButton - as={Button} - colorScheme="" - color="black" - rightIcon={<ChevronDownIcon />} - > - { - <Box - bgColor={visuals.nodeHighlight} - borderRadius="sm" - height={6} - width={6} - ></Box> - } - </MenuButton> - <Portal> - {' '} - <MenuList minW={10} zIndex="popover" bgColor="gray.200"> - <MenuItem - key={'none'} - onClick={() => - setVisuals({ ...visuals, nodeHighlight: '' }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box borderRadius="sm" height={6} width={6}></Box> - </MenuItem> - {colorList.map((color) => ( - <MenuItem - key={color} - onClick={() => - setVisuals({ ...visuals, nodeHighlight: color }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box - bgColor={color} - borderRadius="sm" - height={6} - width={6} - ></Box> - </MenuItem> - ))} - </MenuList> - </Portal> - </Menu> - </Flex> - <Flex alignItems="center" justifyContent="space-between"> - <Text>Background</Text> - <Menu placement="right"> - <MenuButton - as={Button} - colorScheme="" - color="black" - rightIcon={<ChevronDownIcon />} - > - { - <Box - bgColor={visuals.backgroundColor} - borderRadius="sm" - height={6} - width={6} - ></Box> - } - </MenuButton> - <Portal> - {' '} - <MenuList minWidth={10} zIndex="popover" bgColor="gray.200"> - {grays.map((color) => ( - <MenuItem - key={color} - onClick={() => - setVisuals({ ...visuals, backgroundColor: color }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box - bgColor={color} - borderRadius="sm" - height={6} - width={6} - ></Box> - </MenuItem> - ))} - </MenuList> - </Portal> - </Menu> - </Flex> - <Flex alignItems="center" justifyContent="space-between"> - <Text>Emacs Node</Text> - <Menu placement="right"> - <MenuButton - as={Button} - colorScheme="" - color="black" - rightIcon={<ChevronDownIcon />} - > - { - <Box - bgColor={visuals.emacsNodeColor} - borderRadius="sm" - height={6} - width={6} - ></Box> - } - </MenuButton> - <Portal> - {' '} - <MenuList minWidth={10} zIndex="popover" bgColor="gray.200"> - <MenuItem - key={'none'} - onClick={() => - setVisuals({ ...visuals, emacsNodeColor: '' }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box borderRadius="sm" height={6} width={6}></Box> - </MenuItem> - {colorList.map((color) => ( - <MenuItem - key={color} - onClick={() => - setVisuals({ ...visuals, emacsNodeColor: color }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box - bgColor={color} - borderRadius="sm" - height={6} - width={6} - ></Box> - </MenuItem> - ))} - </MenuList> - </Portal> - </Menu> - </Flex> + <ColorMenu + colorList={colorList} + label="Link highlight" + visuals={visuals} + setVisuals={setVisuals} + value="linkHighlight" + visValue={visuals.linkHighlight} + /> + <ColorMenu + colorList={colorList} + label="Node highlight" + visuals={visuals} + setVisuals={setVisuals} + value="nodeHighlight" + visValue={visuals.nodeHighlight} + /> + <ColorMenu + colorList={colorList} + label="Background" + visuals={visuals} + setVisuals={setVisuals} + value="backgroundColor" + visValue={visuals.backgroundColor} + /> + <ColorMenu + colorList={colorList} + label="Emacs node" + visuals={visuals} + setVisuals={setVisuals} + value="emacsNodeColor" + visValue={visuals.emacsNodeColor} + /> </Box> </VStack> </AccordionPanel> @@ -862,6 +685,41 @@ export const Tweaks = (props: TweakProps) => { onChange={(value) => setVisuals({ ...visuals, linkOpacity: value })} /> )} + <EnableSection + label="Dash cite links" + infoText="Add dashes to citation links made with org-roam-bibtex" + value={visuals.citeDashes} + onChange={() => setVisuals({ ...visuals, citeDashes: !visuals.citeDashes })} + > + <SliderWithInfo + label="Dash length" + value={visuals.citeDashLength / 10} + onChange={(value) => + setVisuals({ ...visuals, citeDashLength: value * 10 }) + } + /> + <SliderWithInfo + label="Gap length" + value={visuals.citeGapLength / 5} + onChange={(value) => setVisuals({ ...visuals, citeGapLength: value * 5 })} + /> + </EnableSection> + <ColorMenu + colorList={colorList} + label="Citation node color" + visuals={visuals} + setVisuals={setVisuals} + value={'citeNodeColor'} + visValue={visuals.citeNodeColor} + /> + <ColorMenu + colorList={colorList} + label="Citationlink color" + visuals={visuals} + setVisuals={setVisuals} + value={'citeLinkColor'} + visValue={visuals.citeLinkColor} + /> <Box> <Flex alignItems="center" justifyContent="space-between"> <Text>Labels</Text> @@ -906,108 +764,22 @@ export const Tweaks = (props: TweakProps) => { paddingLeft={2} color="gray.800" > - <Flex alignItems="center" justifyContent="space-between"> - <Text>Text</Text> - <Menu matchWidth> - <MenuButton - as={Button} - rightIcon={<ChevronDownIcon />} - color="black" - colorScheme="" - > - { - <Box - bgColor={visuals.labelTextColor} - borderRadius="sm" - height={6} - width={6} - ></Box> - } - </MenuButton> - <Portal> - {' '} - <MenuList minW={10} zIndex="popover" bg="gray.200"> - {grays.map((color) => ( - <MenuItem - key={color} - onClick={() => - setVisuals({ - ...visuals, - labelTextColor: color, - }) - } - > - <Box - bgColor={color} - borderRadius="sm" - height={6} - width={6} - ></Box> - </MenuItem> - ))} - </MenuList> - </Portal> - </Menu> - </Flex> - <Flex alignItems="center" justifyContent="space-between"> - <Text>Background</Text> - <Menu placement="right"> - <MenuButton - as={Button} - rightIcon={<ChevronDownIcon />} - color="black" - colorScheme="" - > - { - <Box - bgColor={visuals.labelBackgroundColor} - borderRadius="sm" - height={6} - width={6} - ></Box> - } - </MenuButton> - <Portal> - {' '} - <MenuList minW={10} zIndex="popover" bg="gray.200"> - <MenuItem - onClick={() => - setVisuals({ - ...visuals, - labelBackgroundColor: '', - }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - None - </MenuItem> - {grays.map((color) => ( - <MenuItem - key={color} - onClick={() => - setVisuals({ - ...visuals, - labelBackgroundColor: color, - }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box - bgColor={color} - borderRadius="sm" - height={6} - width={6} - ></Box> - </MenuItem> - ))} - </MenuList> - </Portal> - </Menu> - </Flex> + <ColorMenu + colorList={colorList} + label="Text" + visuals={visuals} + setVisuals={setVisuals} + value="labelTextColor" + visValue={visuals.labelTextColor} + /> + <ColorMenu + colorList={colorList} + label="Text" + visuals={visuals} + setVisuals={setVisuals} + value="labelBackgroundColor" + visValue={visuals.labelBackgroundColor} + /> <Collapse in={!!visuals.labelBackgroundColor} animateOpacity> <Box paddingTop={2}> <SliderWithInfo @@ -1055,81 +827,14 @@ export const Tweaks = (props: TweakProps) => { step={0.01} onChange={(value) => setVisuals({ ...visuals, arrowsPos: value })} /> - <Flex alignItems="center" justifyContent="space-between"> - <Text>Arrow Color</Text> - <Menu placement="right"> - <MenuButton - as={Button} - colorScheme="" - color="black" - rightIcon={<ChevronDownIcon />} - > - { - <Box - bgColor={visuals.arrowsColor} - borderRadius="sm" - height={6} - width={6} - ></Box> - } - </MenuButton> - <Portal> - {' '} - <MenuList minW={10} zIndex="popover" bgColor="gray.200"> - <MenuItem - onClick={() => setVisuals({ ...visuals, arrowsColor: '' })} - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box height={6} width={6}></Box> - </MenuItem> - {colorList.map((color) => ( - <MenuItem - key={color} - onClick={() => - setVisuals({ - ...visuals, - arrowsColor: color, - }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box - bgColor={color} - borderRadius="sm" - height={6} - width={6} - ></Box> - </MenuItem> - ))} - {grays.map((color) => ( - <MenuItem - key={color} - onClick={() => - setVisuals({ - ...visuals, - arrowsColor: color, - }) - } - justifyContent="space-between" - alignItems="center" - display="flex" - > - <Box - bgColor={color} - borderRadius="sm" - height={6} - width={6} - ></Box> - </MenuItem> - ))} - </MenuList> - </Portal> - </Menu> - </Flex> + <ColorMenu + colorList={colorList} + label="Arrow Color" + visuals={visuals} + setVisuals={setVisuals} + value="arrowsColor" + visValue={visuals.arrowsColor} + /> </EnableSection> <EnableSection label="Directional Particles" @@ -1485,3 +1190,55 @@ export const DropDownMenu = (props: DropDownMenuProps) => { </Menu> ) } + +export interface ColorMenuProps { + label: string + colorList: string[] + value: string + visuals: typeof initialVisuals + visValue: string + setVisuals?: any +} + +export const ColorMenu = (props: ColorMenuProps) => { + const { label, colorList, value, visuals, visValue, setVisuals } = props + return ( + <Flex alignItems="center" justifyContent="space-between"> + <Text>{label}</Text> + <Menu placement="right"> + <MenuButton as={Button} colorScheme="" color="black" rightIcon={<ChevronDownIcon />}> + {<Box bgColor={visValue} borderRadius="sm" height={6} width={6}></Box>} + </MenuButton> + <Portal> + {' '} + <MenuList minW={10} zIndex="popover" bgColor="gray.200"> + <MenuItem + onClick={() => setVisuals({ ...visuals, [value]: '' })} + justifyContent="space-between" + alignItems="center" + display="flex" + > + <Box height={6} width={6}></Box> + </MenuItem> + {colorList.map((color: string) => ( + <MenuItem + key={color} + onClick={() => + setVisuals({ + ...visuals, + [value]: color, + }) + } + justifyContent="space-between" + alignItems="center" + display="flex" + > + <Box bgColor={color} borderRadius="sm" height={6} width={6}></Box> + </MenuItem> + ))} + </MenuList> + </Portal> + </Menu> + </Flex> + ) +} diff --git a/org-roam-ui.el b/org-roam-ui.el index 17952c8..098e99e 100644 --- a/org-roam-ui.el +++ b/org-roam-ui.el @@ -159,10 +159,24 @@ This serves the web-build and API over HTTP." (defun org-roam-ui--send-graphdata () "Get roam data, make JSON, send through websocket to org-roam-ui." - (let* ((nodes-columns [id file title level]) - (links-columns [source dest type]) + (let* ((nodes-columns [id file title level properties]) + (links-columns [links:source links:dest links:type refs:node-id]) (nodes-db-rows (org-roam-db-query `[:select ,nodes-columns :from nodes])) - (links-db-rows (org-roam-db-query `[:select ,links-columns :from links :where (or (= type "id") (= type "cite"))])) + ;; Left outer join on refs means any id link (or cite link without a + ;; corresponding node) will have 'nil for the `refs:node-id' value. Any + ;; cite link where a node has that `:ROAM_REFS:' will have a value. + (links-db-rows (org-roam-db-query `[:select ,links-columns + :from links + :left :outer :join refs :on (= links:dest refs:ref) + :where (or (= links:type "id") (= links:type "cite"))])) + ;; Convert any cite links that have nodes with associated refs to a + ;; standard id link while removing the 'nil `refs:node-id' from all + ;; other links + (links-db-rows (seq-map (lambda (l) + (pcase-let ((`(,source ,dest ,type ,node-id) l)) + (if node-id + (list source node-id "cite") + (list source dest type)))) links-db-rows)) (response `((nodes . ,(mapcar (apply-partially #'org-roam-ui-sql-to-alist (append nodes-columns nil)) nodes-db-rows)) (links . ,(mapcar (apply-partially #'org-roam-ui-sql-to-alist '(source target type)) links-db-rows))))) (websocket-send-text oru-ws (json-encode `((type . "graphdata") (data . ,response)))))) diff --git a/out/404.html b/out/404.html index 124f234..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/ESBp6icvgUIL3DPl5IapM/_buildManifest.js" defer=""></script> - <script src="/_next/static/ESBp6icvgUIL3DPl5IapM/_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": "ESBp6icvgUIL3DPl5IapM", + "buildId": "NjgmQd_TDFyofQkcfOvWb", "nextExport": true, "isFallback": false, "gip": true, diff --git a/out/_next/static/ESBp6icvgUIL3DPl5IapM/_buildManifest.js b/out/_next/static/ESBp6icvgUIL3DPl5IapM/_buildManifest.js deleted file mode 100644 index 7a2a021..0000000 --- a/out/_next/static/ESBp6icvgUIL3DPl5IapM/_buildManifest.js +++ /dev/null @@ -1,12 +0,0 @@ -;(self.__BUILD_MANIFEST = { - __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] }, - '/': [ - 'static/chunks/fb7d5399-0d6001c72a29ebec41eb.js', - 'static/chunks/d25bd147-65fcc4c92edba8b370fb.js', - 'static/chunks/906-7b9696c9b17c64b94384.js', - 'static/chunks/pages/index-93fd2943e8087c9e1de7.js', - ], - '/_error': ['static/chunks/pages/_error-a0e21b9b223f827fe1f2.js'], - sortedPages: ['/', '/_app', '/_error'], -}), - self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() diff --git a/out/_next/static/ESBp6icvgUIL3DPl5IapM/_ssgManifest.js b/out/_next/static/ESBp6icvgUIL3DPl5IapM/_ssgManifest.js deleted file mode 100644 index 82bedd6..0000000 --- a/out/_next/static/ESBp6icvgUIL3DPl5IapM/_ssgManifest.js +++ /dev/null @@ -1 +0,0 @@ -;(self.__SSG_MANIFEST = new Set()), self.__SSG_MANIFEST_CB && self.__SSG_MANIFEST_CB() diff --git a/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_buildManifest.js b/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_buildManifest.js new file mode 100644 index 0000000..647fb11 --- /dev/null +++ b/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_buildManifest.js @@ -0,0 +1 @@ +self.__BUILD_MANIFEST={__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static/chunks/fb7d5399-0d6001c72a29ebec41eb.js","static/chunks/d25bd147-65fcc4c92edba8b370fb.js","static/chunks/906-7b9696c9b17c64b94384.js","static/chunks/pages/index-f890b75b51bc215c1bc3.js"],"/_error":["static/chunks/pages/_error-a0e21b9b223f827fe1f2.js"],sortedPages:["/","/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
\ No newline at end of file diff --git a/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_ssgManifest.js b/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_ssgManifest.js new file mode 100644 index 0000000..0511aa8 --- /dev/null +++ b/out/_next/static/NjgmQd_TDFyofQkcfOvWb/_ssgManifest.js @@ -0,0 +1 @@ +self.__SSG_MANIFEST=new Set,self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB();
\ No newline at end of file diff --git a/out/_next/static/chunks/pages/index-93fd2943e8087c9e1de7.js b/out/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.js index 7ad1d15..fa79c8f 100644 --- a/out/_next/static/chunks/pages/index-93fd2943e8087c9e1de7.js +++ b/out/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.js @@ -1,82 +1,82 @@ ;(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([ [405], { - 374: function (e, n, r) { + 374: function (e, n, t) { 'use strict' - r.r(n), - r.d(n, { + t.r(n), + t.d(n, { Graph: function () { return je }, GraphPage: function () { - return fe + return pe }, default: function () { - return xe + return fe }, }) - var t = r(7757), - i = r.n(t), - o = r(2137), - l = r(5893), - s = r(7329), - c = r(6156), - a = r(4699), - d = r(7294) - function u(e, n) { - var r, - t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, - i = h(e, null !== (r = t.storage) && void 0 !== r ? r : localStorage), + 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 s = (0, d.useState)(l), - c = s[0], - a = s[1] - ;(0, d.useEffect)( + var a = (0, u.useState)(l), + s = a[0], + c = a[1] + ;(0, u.useEffect)( function () { - c !== l && a(l) + s !== l && c(l) }, [e], ) - var u = function (e) { + var d = function (e) { e instanceof Function - ? a(function (n) { - var r = e(n) - return i.update(r), r + ? c(function (n) { + var t = e(n) + return i.update(t), t }) - : (a(e), i.update(e)) + : (c(e), i.update(e)) } - return [c, u] + return [s, d] } function h(e, n) { return { get: function () { - var r = n.getItem(e) - if (r && 'undefined' !== r) return JSON.parse(r) + var t = n.getItem(e) + if (t && 'undefined' !== t) return JSON.parse(t) }, - update: function (r) { - n.setItem(e, JSON.stringify(r)) + update: function (t) { + n.setItem(e, JSON.stringify(t)) }, remove: function () { n.removeItem(e) }, } } - var g = r(4533), - x = r(4309), - f = r(2351), - j = r(980), - p = r(8017), - m = r(6194), - b = [], - C = {} - for (var v in m.oY) - for (var y in m.oY[v]) { - var k = v + y - 'LinearNone' === k && (k = 'Linear'), b.push(k), (C[k] = m.oY[v][y]) + 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 = C, + var w = b, S = { enabled: !0, charge: -700, @@ -93,7 +93,7 @@ gravity: 0.3, gravityOn: !0, }, - I = { orphans: !1, parents: !0, tags: [], nodes: [], links: [], date: [] }, + O = { orphans: !1, parents: !0, tags: [], nodes: [], links: [], date: [] }, N = { particles: !1, particlesNumber: 0, @@ -114,7 +114,7 @@ highlightLinkSize: 2, highlightAnim: !0, animationSpeed: 700, - algorithmOptions: b, + algorithmOptions: v, algorithmName: 'BackOut', linkColorScheme: 'gray.500', nodeColorScheme: [ @@ -135,80 +135,85 @@ labelTextColor: 'black', labelBackgroundColor: 'white', labelBackgroundOpacity: 0.7, + citeDashes: !0, + citeDashLength: 35, + citeGapLength: 15, + citeLinkColor: 'gray.600', + citeNodeColor: 'black', }, - O = { follow: 'zoom', localSame: 'add', zoomPadding: 200, zoomSpeed: 2e3 }, + I = { follow: 'zoom', localSame: 'add', zoomPadding: 200, zoomSpeed: 2e3 }, z = { highlight: 'hover', local: 'click', follow: 'double' }, - R = r(7375), - T = r(3924), - D = r(3986), - P = r(9641), - H = r(7546), - E = r(3441), - L = r(6569), - Z = r(4189), - B = r(454), - F = r(8420), - A = r(6699), - M = r(155), - W = r(6769), - X = r(336), - _ = r(2026), - q = r(4096), - U = r(4115), - Q = r(8134), - V = r(8235), - K = r(7273), - J = r(5267), - Y = r(6049), - G = r(3014), - $ = r(6658), - ee = r(9356) + 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 r = Object.keys(e) + var t = Object.keys(e) if (Object.getOwnPropertySymbols) { - var t = Object.getOwnPropertySymbols(e) + var r = Object.getOwnPropertySymbols(e) n && - (t = t.filter(function (n) { + (r = r.filter(function (n) { return Object.getOwnPropertyDescriptor(e, n).enumerable })), - r.push.apply(r, t) + t.push.apply(t, r) } - return r + return t } - function re(e) { + function te(e) { for (var n = 1; n < arguments.length; n++) { - var r = null != arguments[n] ? arguments[n] : {} + var t = null != arguments[n] ? arguments[n] : {} n % 2 - ? ne(Object(r), !0).forEach(function (n) { - ;(0, c.Z)(e, n, r[n]) + ? ne(Object(t), !0).forEach(function (n) { + ;(0, s.Z)(e, n, t[n]) }) : Object.getOwnPropertyDescriptors - ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) - : ne(Object(r)).forEach(function (n) { - Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(r, n)) + ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) + : ne(Object(t)).forEach(function (n) { + Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n)) }) } return e } - var te = function (e) { + var re = function (e) { var n = e.physics, - r = e.setPhysics, - t = e.threeDim, + t = e.setPhysics, + r = e.threeDim, i = e.setThreeDim, o = e.filter, - c = e.setFilter, - u = e.visuals, + s = e.setFilter, + d = e.visuals, h = e.setVisuals, g = e.mouse, x = e.setMouse, f = e.behavior, - j = e.setBehavior, - m = (0, d.useState)(!0), - b = m[0], - C = m[1], - v = (0, d.useContext)(ee.N), - y = v.highlightColor, - k = v.setHighlightColor, + 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', @@ -222,10 +227,6 @@ 'gray.500', 'gray.600', 'white', - 'black', - ], - Z = [ - 'black', 'gray.100', 'gray.200', 'gray.300', @@ -235,30 +236,30 @@ 'gray.700', 'gray.800', 'gray.900', - 'white', + 'black', ] return (0, l.jsxs)(l.Fragment, { children: [ - (0, l.jsx)(B.R, { - in: !b, - children: (0, l.jsx)(p.xu, { + (0, l.jsx)(F.R, { + in: !v, + children: (0, l.jsx)(j.xu, { position: 'absolute', zIndex: 'overlay', marginTop: 10, marginLeft: 10, - display: b ? 'none' : 'block', - children: (0, l.jsx)(F.h, { + display: v ? 'none' : 'block', + children: (0, l.jsx)(A.h, { 'aria-label': 'Settings', - icon: (0, l.jsx)(T.e, {}), + icon: (0, l.jsx)(D.e, {}), onClick: function () { - return C(!0) + return b(!0) }, }), }), }), - (0, l.jsx)(B.R, { - in: b, - children: (0, l.jsxs)(p.xu, { + (0, l.jsx)(F.R, { + in: v, + children: (0, l.jsxs)(j.xu, { bg: 'alt.100', w: 'xs', marginTop: 10, @@ -270,47 +271,47 @@ position: 'relative', boxShadow: 'xl', children: [ - (0, l.jsxs)(p.xu, { + (0, l.jsxs)(j.xu, { display: 'flex', justifyContent: 'space-between', alignItems: 'center', paddingRight: 2, paddingTop: 1, children: [ - (0, l.jsx)(A.u, { + (0, l.jsx)(B.u, { label: '2D', - children: (0, l.jsx)(M.z, { + children: (0, l.jsx)(V.z, { onClick: function () { - return i(!t) + return i(!r) }, variant: 'ghost', zIndex: 'overlay', - children: t ? '3D' : '2D', + children: r ? '3D' : '2D', }), }), - (0, l.jsxs)(p.xu, { + (0, l.jsxs)(j.xu, { display: 'flex', alignItems: 'center', children: [ - (0, l.jsx)(A.u, { + (0, l.jsx)(B.u, { label: 'Reset settings to defaults', - children: (0, l.jsx)(F.h, { + children: (0, l.jsx)(A.h, { 'aria-label': 'Reset Defaults', - icon: (0, l.jsx)(D.A, {}), + icon: (0, l.jsx)(R.A, {}), onClick: function () { - h(N), c(I), x(z), r(S), j(O) + h(N), s(O), x(z), t(S), p(I) }, variant: 'none', size: 'sm', }), }), - (0, l.jsx)(F.h, { + (0, l.jsx)(A.h, { size: 'sm', - icon: (0, l.jsx)(P.T, {}), + icon: (0, l.jsx)(T.T, {}), 'aria-label': 'Close Tweak Panel', variant: 'ghost', onClick: function () { - return C(!1) + return b(!1) }, }), ], @@ -323,51 +324,51 @@ autoHide: !0, renderThumbVertical: function (e) { var n = e.style, - r = (0, R.Z)(e, ['style']) + t = (0, L.Z)(e, ['style']) return (0, l.jsx)( - p.xu, - re( - re({}, r), + j.xu, + te( + te({}, t), {}, - { style: re(re({}, n), {}, { borderRadius: 10 }), bg: y }, + { style: te(te({}, n), {}, { borderRadius: 10 }), bg: y }, ), ) }, - children: (0, l.jsxs)(W.UQ, { + children: (0, l.jsxs)(M.UQ, { allowMultiple: !0, allowToggle: !0, color: 'black', children: [ - (0, l.jsxs)(W.Qd, { + (0, l.jsxs)(M.Qd, { children: [ - (0, l.jsxs)(W.KF, { + (0, l.jsxs)(M.KF, { children: [ - (0, l.jsx)(W.XE, { marginRight: 2 }), + (0, l.jsx)(M.XE, { marginRight: 2 }), (0, l.jsx)(X.X, { size: 'sm', children: 'Filter' }), ], }), - (0, l.jsx)(W.Hk, { - children: (0, l.jsxs)(_.gC, { + (0, l.jsx)(M.Hk, { + children: (0, l.jsxs)(W.gC, { spacing: 2, justifyContent: 'flex-start', - divider: (0, l.jsx)(_.cX, { borderColor: 'gray.500' }), + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.500' }), align: 'stretch', paddingLeft: 7, color: 'gray.800', children: [ - (0, l.jsxs)(q.k, { + (0, l.jsxs)(_.k, { justifyContent: 'space-between', children: [ (0, l.jsx)(U.x, { children: 'Orphans' }), (0, l.jsx)(Q.r, { onChange: function () { - c(re(re({}, o), {}, { orphans: !o.orphans })) + s(te(te({}, o), {}, { orphans: !o.orphans })) }, isChecked: o.orphans, }), ], }), - (0, l.jsxs)(q.k, { + (0, l.jsxs)(_.k, { justifyContent: 'space-between', children: [ (0, l.jsx)(U.x, { @@ -375,7 +376,7 @@ }), (0, l.jsx)(Q.r, { onChange: function () { - c(re(re({}, o), {}, { parents: !o.parents })) + s(te(te({}, o), {}, { parents: !o.parents })) }, isChecked: o.parents, }), @@ -386,25 +387,25 @@ }), ], }), - (0, l.jsxs)(W.Qd, { + (0, l.jsxs)(M.Qd, { children: [ - (0, l.jsx)(W.KF, { + (0, l.jsx)(M.KF, { display: 'flex', justifyContent: 'space-between', - children: (0, l.jsxs)(p.xu, { + children: (0, l.jsxs)(j.xu, { display: 'flex', children: [ - (0, l.jsx)(W.XE, { marginRight: 2 }), + (0, l.jsx)(M.XE, { marginRight: 2 }), (0, l.jsx)(X.X, { size: 'sm', children: 'Physics' }), ], }), }), - (0, l.jsxs)(W.Hk, { + (0, l.jsxs)(M.Hk, { children: [ - (0, l.jsxs)(_.gC, { + (0, l.jsxs)(W.gC, { spacing: 2, justifyContent: 'flex-start', - divider: (0, l.jsx)(_.cX, { borderColor: 'gray.500' }), + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.500' }), align: 'stretch', paddingLeft: 7, color: 'gray.800', @@ -413,20 +414,20 @@ label: 'Gravity', value: n.gravityOn, onChange: function () { - return r(re(re({}, n), {}, { gravityOn: !n.gravityOn })) + return t(te(te({}, n), {}, { gravityOn: !n.gravityOn })) }, children: (0, l.jsx)(oe, { label: 'Strength', value: 10 * n.gravity, onChange: function (e) { - return r(re(re({}, n), {}, { gravity: e / 10 })) + return t(te(te({}, n), {}, { gravity: e / 10 })) }, }), }), (0, l.jsx)(oe, { value: -n.charge / 100, onChange: function (e) { - return r(re(re({}, n), {}, { charge: -100 * e })) + return t(te(te({}, n), {}, { charge: -100 * e })) }, label: 'Repulsive Force', }), @@ -435,13 +436,13 @@ infoText: 'Perfomance sap, disable if slow', value: n.collision, onChange: function () { - return r(re(re({}, n), {}, { collision: !n.collision })) + return t(te(te({}, n), {}, { collision: !n.collision })) }, children: (0, l.jsx)(oe, { value: n.collisionStrength / 5, onChange: function (e) { - return r( - re(re({}, n), {}, { collisionStrength: 5 * e }), + return t( + te(te({}, n), {}, { collisionStrength: 5 * e }), ) }, label: 'Collision Radius', @@ -452,7 +453,7 @@ (0, l.jsx)(oe, { value: 5 * n.linkStrength, onChange: function (e) { - return r(re(re({}, n), {}, { linkStrength: e / 5 })) + return t(te(te({}, n), {}, { linkStrength: e / 5 })) }, label: 'Link Force', }), @@ -460,7 +461,7 @@ label: 'Link Iterations', value: n.linkIts, onChange: function (e) { - return r(re(re({}, n), {}, { linkIts: e })) + return t(te(te({}, n), {}, { linkIts: e })) }, min: 0, max: 6, @@ -472,28 +473,28 @@ label: 'Viscosity', value: 10 * n.velocityDecay, onChange: function (e) { - return r(re(re({}, n), {}, { velocityDecay: e / 10 })) + return t(te(te({}, n), {}, { velocityDecay: e / 10 })) }, }), ], }), - (0, l.jsx)(p.xu, { - children: (0, l.jsx)(W.UQ, { + (0, l.jsx)(j.xu, { + children: (0, l.jsx)(M.UQ, { paddingLeft: 3, allowToggle: !0, - children: (0, l.jsxs)(W.Qd, { + children: (0, l.jsxs)(M.Qd, { children: [ - (0, l.jsxs)(W.KF, { + (0, l.jsxs)(M.KF, { children: [ (0, l.jsx)(U.x, { children: 'Advanced' }), - (0, l.jsx)(W.XE, { marginRight: 2 }), + (0, l.jsx)(M.XE, { marginRight: 2 }), ], }), - (0, l.jsx)(W.Hk, { - children: (0, l.jsxs)(_.gC, { + (0, l.jsx)(M.Hk, { + children: (0, l.jsxs)(W.gC, { spacing: 2, justifyContent: 'flex-start', - divider: (0, l.jsx)(_.cX, { + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.500', }), align: 'stretch', @@ -504,8 +505,8 @@ label: 'Stabilization rate', value: 50 * n.alphaDecay, onChange: function (e) { - return r( - re(re({}, n), {}, { alphaDecay: e / 50 }), + return t( + te(te({}, n), {}, { alphaDecay: e / 50 }), ) }, }), @@ -513,9 +514,9 @@ label: 'Center nodes', value: n.centering, onChange: function () { - return r( - re( - re({}, n), + return t( + te( + te({}, n), {}, { centering: !n.centering }, ), @@ -529,8 +530,8 @@ max: 2, step: 0.01, onChange: function (e) { - return r( - re(re({}, n), {}, { centeringStrength: e }), + return t( + te(te({}, n), {}, { centeringStrength: e }), ) }, }), @@ -546,68 +547,68 @@ }), ], }), - (0, l.jsxs)(W.Qd, { + (0, l.jsxs)(M.Qd, { children: [ - (0, l.jsxs)(W.KF, { + (0, l.jsxs)(M.KF, { children: [ - (0, l.jsx)(W.XE, { marginRight: 2 }), + (0, l.jsx)(M.XE, { marginRight: 2 }), (0, l.jsx)(X.X, { size: 'sm', children: 'Visual' }), ], }), - (0, l.jsx)(W.Hk, { - children: (0, l.jsxs)(_.gC, { + (0, l.jsx)(M.Hk, { + children: (0, l.jsxs)(W.gC, { justifyContent: 'flex-start', align: 'stretch', children: [ - (0, l.jsx)(W.UQ, { + (0, l.jsx)(M.UQ, { allowToggle: !0, defaultIndex: [0], paddingLeft: 3, - children: (0, l.jsxs)(W.Qd, { + children: (0, l.jsxs)(M.Qd, { children: [ - (0, l.jsx)(W.KF, { - children: (0, l.jsxs)(q.k, { + (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)(W.XE, { marginRight: 2 }), + (0, l.jsx)(M.XE, { marginRight: 2 }), ], }), }), - (0, l.jsx)(W.Hk, { - children: (0, l.jsx)(_.gC, { + (0, l.jsx)(M.Hk, { + children: (0, l.jsx)(W.gC, { spacing: 2, justifyContent: 'flex-start', - divider: (0, l.jsx)(_.cX, { + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.500', }), align: 'stretch', color: 'gray.800', - children: (0, l.jsxs)(p.xu, { + children: (0, l.jsxs)(j.xu, { children: [ - (0, l.jsxs)(q.k, { + (0, l.jsxs)(_.k, { alignItems: 'center', justifyContent: 'space-between', children: [ (0, l.jsx)(U.x, { children: 'Nodes' }), - (0, l.jsx)(A.u, { + (0, l.jsx)(B.u, { label: 'Shuffle node colors', - children: (0, l.jsx)(F.h, { + children: (0, l.jsx)(A.h, { 'aria-label': 'Shuffle node colors', size: 'sm', - icon: (0, l.jsx)(H.n, {}), + icon: (0, l.jsx)(P.n, {}), variant: 'ghost', onClick: function () { var e, n = - null !== (e = u.nodeColorScheme) && + null !== (e = d.nodeColorScheme) && void 0 !== e ? e : [] h( - re( - re({}, u), + te( + te({}, d), {}, { nodeColorScheme: n @@ -616,12 +617,12 @@ }) .sort(function (e, n) { return ( - (0, a.Z)(e, 1)[0] - - (0, a.Z)(n, 1)[0] + (0, c.Z)(e, 1)[0] - + (0, c.Z)(n, 1)[0] ) }) .map(function (e) { - var n = (0, a.Z)(e, 2) + var n = (0, c.Z)(e, 2) n[0] return n[1] }), @@ -631,27 +632,27 @@ }, }), }), - (0, l.jsx)(A.u, { + (0, l.jsx)(B.u, { label: 'Cycle node colors', - children: (0, l.jsx)(F.h, { + children: (0, l.jsx)(A.h, { 'aria-label': 'Shift node colors', - icon: (0, l.jsx)(E.L, {}), + icon: (0, l.jsx)(Z.L, {}), size: 'sm', variant: 'ghost', onClick: function () { var e, n = - null !== (e = u.nodeColorScheme) && + null !== (e = d.nodeColorScheme) && void 0 !== e ? e : [] h( - re( - re({}, u), + te( + te({}, d), {}, { nodeColorScheme: [].concat( - (0, s.Z)(n.slice(1, n.length)), + (0, a.Z)(n.slice(1, n.length)), [n[0]], ), }, @@ -660,26 +661,26 @@ }, }), }), - (0, l.jsxs)(V.v2, { + (0, l.jsxs)(q.v2, { placement: 'right', closeOnSelect: !1, matchWidth: !0, children: [ - (0, l.jsx)(V.j2, { + (0, l.jsx)(q.j2, { width: 20, - as: M.z, + as: V.z, colorScheme: '', color: 'black', - rightIcon: (0, l.jsx)(L.v, {}), - children: (0, l.jsx)(q.k, { + rightIcon: (0, l.jsx)(E.v, {}), + children: (0, l.jsx)(_.k, { height: 6, width: 6, flexDirection: 'column', flexWrap: 'wrap', - children: u.nodeColorScheme.map( + children: d.nodeColorScheme.map( function (e) { return (0, l.jsx)( - p.xu, + j.xu, { bgColor: e, flex: '1 1 8px', @@ -691,22 +692,22 @@ ), }), }), - (0, l.jsxs)(K.h, { + (0, l.jsxs)(G.h, { children: [ ' ', - (0, l.jsx)(V.qy, { + (0, l.jsx)(q.qy, { minW: 10, zIndex: 'popover', bgColor: 'gray.200', - children: (0, l.jsx)(V.__, { + children: (0, l.jsx)(q.__, { width: 500, type: 'checkbox', - defaultValue: u.nodeColorScheme, + defaultValue: d.nodeColorScheme, onChange: function (e) { e.length && h( - re( - re({}, u), + te( + te({}, d), {}, { nodeColorScheme: e }, ), @@ -714,10 +715,10 @@ }, children: w.map(function (e) { return (0, l.jsx)( - V.ii, + q.ii, { isChecked: - u.nodeColorScheme.some( + d.nodeColorScheme.some( function (n) { return n === e }, @@ -725,17 +726,17 @@ value: e, isDisabled: 1 === - u.nodeColorScheme + d.nodeColorScheme .length && - u.nodeColorScheme[0] === + d.nodeColorScheme[0] === e, - children: (0, l.jsx)(p.xu, { + children: (0, l.jsx)(j.xu, { justifyContent: 'space-between', alignItems: 'center', display: 'flex', children: (0, l.jsx)( - p.xu, + j.xu, { bgColor: e, borderRadius: 'sm', @@ -756,36 +757,36 @@ }), ], }), - (0, l.jsxs)(q.k, { + (0, l.jsxs)(_.k, { alignItems: 'center', justifyContent: 'space-between', children: [ (0, l.jsx)(U.x, { children: 'Links' }), - (0, l.jsxs)(V.v2, { + (0, l.jsxs)(q.v2, { placement: 'right', children: [ - (0, l.jsx)(V.j2, { - as: M.z, + (0, l.jsx)(q.j2, { + as: V.z, colorScheme: '', color: 'black', - rightIcon: (0, l.jsx)(L.v, {}), - children: (0, l.jsx)(p.xu, { - children: u.linkColorScheme - ? (0, l.jsx)(p.xu, { - bgColor: u.linkColorScheme, + 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)(q.k, { + : (0, l.jsx)(_.k, { height: 6, width: 6, flexDirection: 'column', flexWrap: 'wrap', - children: u.nodeColorScheme.map( + children: d.nodeColorScheme.map( function (e) { return (0, l.jsx)( - p.xu, + j.xu, { bgColor: e, flex: '1 1 8px', @@ -798,19 +799,19 @@ }), }), }), - (0, l.jsxs)(K.h, { + (0, l.jsxs)(G.h, { children: [ ' ', - (0, l.jsxs)(V.qy, { + (0, l.jsxs)(q.qy, { minW: 10, zIndex: 'popover', bgColor: 'gray.200', children: [ - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return h( - re( - re({}, u), + te( + te({}, d), {}, { linkColorScheme: '' }, ), @@ -819,16 +820,16 @@ justifyContent: 'space-between', alignItems: 'center', display: 'flex', - children: (0, l.jsx)(q.k, { + children: (0, l.jsx)(_.k, { height: 6, width: 6, flexDirection: 'column', flexWrap: 'wrap', children: - u.nodeColorScheme.map( + d.nodeColorScheme.map( function (e) { return (0, l.jsx)( - p.xu, + j.xu, { bgColor: e, flex: '1 1 8px', @@ -840,14 +841,14 @@ ), }), }), - Z.map(function (e) { + w.map(function (e) { return (0, l.jsx)( - V.sN, + q.sN, { onClick: function () { return h( - re( - re({}, u), + te( + te({}, d), {}, { linkColorScheme: e, @@ -859,7 +860,7 @@ 'space-between', alignItems: 'center', display: 'flex', - children: (0, l.jsx)(p.xu, { + children: (0, l.jsx)(j.xu, { bgColor: e, borderRadius: 'sm', height: 6, @@ -877,36 +878,36 @@ }), ], }), - (0, l.jsxs)(q.k, { + (0, l.jsxs)(_.k, { alignItems: 'center', justifyContent: 'space-between', children: [ (0, l.jsx)(U.x, { children: 'Accent' }), - (0, l.jsxs)(V.v2, { + (0, l.jsxs)(q.v2, { placement: 'right', children: [ - (0, l.jsx)(V.j2, { - as: M.z, + (0, l.jsx)(q.j2, { + as: V.z, colorScheme: '', color: 'black', - rightIcon: (0, l.jsx)(L.v, {}), - children: (0, l.jsx)(p.xu, { + rightIcon: (0, l.jsx)(E.v, {}), + children: (0, l.jsx)(j.xu, { bgColor: y, borderRadius: 'sm', height: 6, width: 6, }), }), - (0, l.jsxs)(K.h, { + (0, l.jsxs)(G.h, { children: [ ' ', - (0, l.jsx)(V.qy, { + (0, l.jsx)(q.qy, { minW: 10, zIndex: 'popover', bgColor: 'gray.200', children: w.map(function (e) { return (0, l.jsx)( - V.sN, + q.sN, { onClick: function () { return k(e) @@ -915,7 +916,7 @@ 'space-between', alignItems: 'center', display: 'flex', - children: (0, l.jsx)(p.xu, { + children: (0, l.jsx)(j.xu, { bgColor: e, borderRadius: 'sm', height: 6, @@ -932,331 +933,37 @@ }), ], }), - (0, l.jsxs)(q.k, { - alignItems: 'center', - justifyContent: 'space-between', - children: [ - (0, l.jsx)(U.x, { - children: 'Link Highlight', - }), - (0, l.jsxs)(V.v2, { - placement: 'right', - children: [ - (0, l.jsx)(V.j2, { - as: M.z, - colorScheme: '', - color: 'black', - rightIcon: (0, l.jsx)(L.v, {}), - children: (0, l.jsx)(p.xu, { - bgColor: u.linkHighlight, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }), - (0, l.jsxs)(K.h, { - children: [ - ' ', - (0, l.jsxs)(V.qy, { - minW: 10, - zIndex: 'popover', - bgColor: 'gray.200', - children: [ - (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { linkHighlight: '' }, - ), - ) - }, - justifyContent: - 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - 'none', - ), - w.map(function (e) { - return (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { linkHighlight: e }, - ), - ) - }, - justifyContent: - 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.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.jsxs)(q.k, { - alignItems: 'center', - justifyContent: 'space-between', - children: [ - (0, l.jsx)(U.x, { - children: 'Node Highlight', - }), - (0, l.jsxs)(V.v2, { - placement: 'right', - children: [ - (0, l.jsx)(V.j2, { - as: M.z, - colorScheme: '', - color: 'black', - rightIcon: (0, l.jsx)(L.v, {}), - children: (0, l.jsx)(p.xu, { - bgColor: u.nodeHighlight, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }), - (0, l.jsxs)(K.h, { - children: [ - ' ', - (0, l.jsxs)(V.qy, { - minW: 10, - zIndex: 'popover', - bgColor: 'gray.200', - children: [ - (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { nodeHighlight: '' }, - ), - ) - }, - justifyContent: - 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - 'none', - ), - w.map(function (e) { - return (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { nodeHighlight: e }, - ), - ) - }, - justifyContent: - 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - bgColor: e, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - e, - ) - }), - ], - }), - ], - }), - ], - }), - ], + (0, l.jsx)(ae, { + colorList: w, + label: 'Node highlight', + visuals: d, + setVisuals: h, + value: 'nodeHighlight', + visValue: d.nodeHighlight, }), - (0, l.jsxs)(q.k, { - alignItems: 'center', - justifyContent: 'space-between', - children: [ - (0, l.jsx)(U.x, { children: 'Background' }), - (0, l.jsxs)(V.v2, { - placement: 'right', - children: [ - (0, l.jsx)(V.j2, { - as: M.z, - colorScheme: '', - color: 'black', - rightIcon: (0, l.jsx)(L.v, {}), - children: (0, l.jsx)(p.xu, { - bgColor: u.backgroundColor, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }), - (0, l.jsxs)(K.h, { - children: [ - ' ', - (0, l.jsx)(V.qy, { - minWidth: 10, - zIndex: 'popover', - bgColor: 'gray.200', - children: Z.map(function (e) { - return (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { backgroundColor: e }, - ), - ) - }, - justifyContent: - 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - bgColor: e, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - e, - ) - }), - }), - ], - }), - ], - }), - ], + (0, l.jsx)(ae, { + colorList: w, + label: 'Background', + visuals: d, + setVisuals: h, + value: 'backgroundColor', + visValue: d.backgroundColor, }), - (0, l.jsxs)(q.k, { - alignItems: 'center', - justifyContent: 'space-between', - children: [ - (0, l.jsx)(U.x, { children: 'Emacs Node' }), - (0, l.jsxs)(V.v2, { - placement: 'right', - children: [ - (0, l.jsx)(V.j2, { - as: M.z, - colorScheme: '', - color: 'black', - rightIcon: (0, l.jsx)(L.v, {}), - children: (0, l.jsx)(p.xu, { - bgColor: u.emacsNodeColor, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }), - (0, l.jsxs)(K.h, { - children: [ - ' ', - (0, l.jsxs)(V.qy, { - minWidth: 10, - zIndex: 'popover', - bgColor: 'gray.200', - children: [ - (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { emacsNodeColor: '' }, - ), - ) - }, - justifyContent: - 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - 'none', - ), - w.map(function (e) { - return (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { emacsNodeColor: e }, - ), - ) - }, - justifyContent: - 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - bgColor: e, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - e, - ) - }), - ], - }), - ], - }), - ], - }), - ], + (0, l.jsx)(ae, { + colorList: w, + label: 'Emacs node', + visuals: d, + setVisuals: h, + value: 'emacsNodeColor', + visValue: d.emacsNodeColor, }), ], }), @@ -1265,118 +972,165 @@ ], }), }), - (0, l.jsxs)(_.gC, { + (0, l.jsxs)(W.gC, { spacing: 2, justifyContent: 'flex-start', - divider: (0, l.jsx)(_.cX, { borderColor: 'gray.500' }), + 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: u.nodeRel, + value: d.nodeRel, onChange: function (e) { - return h(re(re({}, u), {}, { nodeRel: e })) + return h(te(te({}, d), {}, { nodeRel: e })) }, }), - t && + r && (0, l.jsxs)(l.Fragment, { children: [ (0, l.jsx)(oe, { label: 'Node opacity', - value: u.nodeOpacity, + value: d.nodeOpacity, min: 0, max: 1, onChange: function (e) { - return h(re(re({}, u), {}, { nodeOpacity: e })) + return h(te(te({}, d), {}, { nodeOpacity: e })) }, }), (0, l.jsx)(oe, { label: 'Node resolution', - value: u.nodeResolution, + value: d.nodeResolution, min: 5, max: 32, step: 1, onChange: function (e) { - return h(re(re({}, u), {}, { nodeResolution: e })) + return h(te(te({}, d), {}, { nodeResolution: e })) }, }), ], }), (0, l.jsx)(oe, { label: 'Link width', - value: u.linkWidth, + value: d.linkWidth, onChange: function (e) { - return h(re(re({}, u), {}, { linkWidth: e })) + return h(te(te({}, d), {}, { linkWidth: e })) }, }), - t && + r && (0, l.jsx)(oe, { label: 'Link opacity', min: 0, max: 1, - value: u.linkOpacity, + value: d.linkOpacity, onChange: function (e) { - return h(re(re({}, u), {}, { linkOpacity: e })) + return h(te(te({}, d), {}, { linkOpacity: e })) }, }), - (0, l.jsxs)(p.xu, { + (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)(q.k, { + (0, l.jsxs)(_.k, { alignItems: 'center', justifyContent: 'space-between', children: [ (0, l.jsx)(U.x, { children: 'Labels' }), - (0, l.jsxs)(V.v2, { + (0, l.jsxs)(q.v2, { placement: 'right', children: [ - (0, l.jsx)(V.j2, { - as: M.z, + (0, l.jsx)(q.j2, { + as: V.z, colorScheme: '', color: 'black', - rightIcon: (0, l.jsx)(L.v, {}), - children: u.labels - ? u.labels < 2 + rightIcon: (0, l.jsx)(E.v, {}), + children: d.labels + ? d.labels < 2 ? 'On Highlight' : 'Always' : 'Never', }), - (0, l.jsxs)(K.h, { + (0, l.jsxs)(G.h, { children: [ ' ', - (0, l.jsxs)(V.qy, { + (0, l.jsxs)(q.qy, { zIndex: 'popover', bgColor: 'gray.200', children: [ - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return h( - re(re({}, u), {}, { labels: 0 }), + te(te({}, d), {}, { labels: 0 }), ) }, children: 'Never', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return h( - re(re({}, u), {}, { labels: 1 }), + te(te({}, d), {}, { labels: 1 }), ) }, children: 'On Highlight', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return h( - re(re({}, u), {}, { labels: 2 }), + te(te({}, d), {}, { labels: 2 }), ) }, children: 'Always', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return h( - re(re({}, u), {}, { labels: 3 }), + te(te({}, d), {}, { labels: 3 }), ) }, children: 'Always (even in 3D)', @@ -1389,173 +1143,48 @@ }), ], }), - (0, l.jsx)(J.U, { - in: u.labels > 0, + (0, l.jsx)(K.U, { + in: d.labels > 0, animateOpacity: !0, - children: (0, l.jsxs)(_.gC, { + children: (0, l.jsxs)(W.gC, { spacing: 1, justifyContent: 'flex-start', - divider: (0, l.jsx)(_.cX, { + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.400', }), align: 'stretch', paddingLeft: 2, color: 'gray.800', children: [ - (0, l.jsxs)(q.k, { - alignItems: 'center', - justifyContent: 'space-between', - children: [ - (0, l.jsx)(U.x, { children: 'Text' }), - (0, l.jsxs)(V.v2, { - matchWidth: !0, - children: [ - (0, l.jsx)(V.j2, { - as: M.z, - rightIcon: (0, l.jsx)(L.v, {}), - color: 'black', - colorScheme: '', - children: (0, l.jsx)(p.xu, { - bgColor: u.labelTextColor, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }), - (0, l.jsxs)(K.h, { - children: [ - ' ', - (0, l.jsx)(V.qy, { - minW: 10, - zIndex: 'popover', - bg: 'gray.200', - children: Z.map(function (e) { - return (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { labelTextColor: e }, - ), - ) - }, - children: (0, l.jsx)(p.xu, { - bgColor: e, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - e, - ) - }), - }), - ], - }), - ], - }), - ], + (0, l.jsx)(ae, { + colorList: w, + label: 'Text', + visuals: d, + setVisuals: h, + value: 'labelTextColor', + visValue: d.labelTextColor, }), - (0, l.jsxs)(q.k, { - alignItems: 'center', - justifyContent: 'space-between', - children: [ - (0, l.jsx)(U.x, { children: 'Background' }), - (0, l.jsxs)(V.v2, { - placement: 'right', - children: [ - (0, l.jsx)(V.j2, { - as: M.z, - rightIcon: (0, l.jsx)(L.v, {}), - color: 'black', - colorScheme: '', - children: (0, l.jsx)(p.xu, { - bgColor: u.labelBackgroundColor, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }), - (0, l.jsxs)(K.h, { - children: [ - ' ', - (0, l.jsxs)(V.qy, { - minW: 10, - zIndex: 'popover', - bg: 'gray.200', - children: [ - (0, l.jsx)(V.sN, { - onClick: function () { - return h( - re( - re({}, u), - {}, - { - labelBackgroundColor: - '', - }, - ), - ) - }, - justifyContent: 'space-between', - alignItems: 'center', - display: 'flex', - children: 'None', - }), - Z.map(function (e) { - return (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { - labelBackgroundColor: - e, - }, - ), - ) - }, - justifyContent: - 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - bgColor: e, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - e, - ) - }), - ], - }), - ], - }), - ], - }), - ], + (0, l.jsx)(ae, { + colorList: w, + label: 'Text', + visuals: d, + setVisuals: h, + value: 'labelBackgroundColor', + visValue: d.labelBackgroundColor, }), - (0, l.jsx)(J.U, { - in: !!u.labelBackgroundColor, + (0, l.jsx)(K.U, { + in: !!d.labelBackgroundColor, animateOpacity: !0, - children: (0, l.jsx)(p.xu, { + children: (0, l.jsx)(j.xu, { paddingTop: 2, children: (0, l.jsx)(oe, { label: 'Background opacity', - value: u.labelBackgroundOpacity, + value: d.labelBackgroundOpacity, onChange: function (e) { - console.log(u.labelBackgroundOpacity), + console.log(d.labelBackgroundOpacity), h( - re( - re({}, u), + te( + te({}, d), {}, { labelBackgroundOpacity: e }, ), @@ -1567,18 +1196,18 @@ }), }), }), - (0, l.jsx)(J.U, { - in: u.labels > 1, + (0, l.jsx)(K.U, { + in: d.labels > 1, animateOpacity: !0, - children: (0, l.jsx)(p.xu, { + children: (0, l.jsx)(j.xu, { paddingTop: 2, children: (0, l.jsx)(oe, { label: 'Label Appearance Scale', - value: 5 * u.labelScale, + value: 5 * d.labelScale, onChange: function (e) { return h( - re( - re({}, u), + te( + te({}, d), {}, { labelScale: e / 5 }, ), @@ -1594,159 +1223,61 @@ }), (0, l.jsxs)(le, { label: 'Link arrows', - value: u.arrows, + value: d.arrows, onChange: function () { - return h(re(re({}, u), {}, { arrows: !u.arrows })) + return h(te(te({}, d), {}, { arrows: !d.arrows })) }, children: [ (0, l.jsx)(oe, { label: 'Arrow size', - value: u.arrowsLength / 10, + value: d.arrowsLength / 10, onChange: function (e) { return h( - re(re({}, u), {}, { arrowsLength: 10 * e }), + te(te({}, d), {}, { arrowsLength: 10 * e }), ) }, }), (0, l.jsx)(oe, { label: 'Arrow Position', - value: u.arrowsPos, + value: d.arrowsPos, min: 0, max: 1, step: 0.01, onChange: function (e) { - return h(re(re({}, u), {}, { arrowsPos: e })) + return h(te(te({}, d), {}, { arrowsPos: e })) }, }), - (0, l.jsxs)(q.k, { - alignItems: 'center', - justifyContent: 'space-between', - children: [ - (0, l.jsx)(U.x, { children: 'Arrow Color' }), - (0, l.jsxs)(V.v2, { - placement: 'right', - children: [ - (0, l.jsx)(V.j2, { - as: M.z, - colorScheme: '', - color: 'black', - rightIcon: (0, l.jsx)(L.v, {}), - children: (0, l.jsx)(p.xu, { - bgColor: u.arrowsColor, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }), - (0, l.jsxs)(K.h, { - children: [ - ' ', - (0, l.jsxs)(V.qy, { - minW: 10, - zIndex: 'popover', - bgColor: 'gray.200', - children: [ - (0, l.jsx)(V.sN, { - onClick: function () { - return h( - re( - re({}, u), - {}, - { arrowsColor: '' }, - ), - ) - }, - justifyContent: 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - height: 6, - width: 6, - }), - }), - w.map(function (e) { - return (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { arrowsColor: e }, - ), - ) - }, - justifyContent: 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - bgColor: e, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - e, - ) - }), - Z.map(function (e) { - return (0, l.jsx)( - V.sN, - { - onClick: function () { - return h( - re( - re({}, u), - {}, - { arrowsColor: e }, - ), - ) - }, - justifyContent: 'space-between', - alignItems: 'center', - display: 'flex', - children: (0, l.jsx)(p.xu, { - bgColor: e, - borderRadius: 'sm', - height: 6, - width: 6, - }), - }, - 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: u.particles, + value: d.particles, onChange: function () { - return h(re(re({}, u), {}, { particles: !u.particles })) + return h(te(te({}, d), {}, { particles: !d.particles })) }, children: [ (0, l.jsx)(oe, { label: 'Particle Number', - value: u.particlesNumber, + value: d.particlesNumber, max: 5, step: 1, onChange: function (e) { - return h(re(re({}, u), {}, { particlesNumber: e })) + return h(te(te({}, d), {}, { particlesNumber: e })) }, }), (0, l.jsx)(oe, { label: 'Particle Size', - value: u.particlesWidth, + value: d.particlesWidth, onChange: function (e) { - return h(re(re({}, u), {}, { particlesWidth: e })) + return h(te(te({}, d), {}, { particlesWidth: e })) }, }), ], @@ -1754,31 +1285,31 @@ (0, l.jsx)(le, { label: 'Highlight', onChange: function () { - return h(re(re({}, u), {}, { highlight: !u.highlight })) + return h(te(te({}, d), {}, { highlight: !d.highlight })) }, - value: u.highlight, - children: (0, l.jsxs)(_.gC, { + value: d.highlight, + children: (0, l.jsxs)(W.gC, { spacing: 1, justifyContent: 'flex-start', - divider: (0, l.jsx)(_.cX, { borderColor: 'gray.400' }), + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.400' }), align: 'stretch', paddingLeft: 0, children: [ (0, l.jsx)(oe, { label: 'Highlight Link Thickness', - value: u.highlightLinkSize, + value: d.highlightLinkSize, onChange: function (e) { return h( - re(re({}, u), {}, { highlightLinkSize: e }), + te(te({}, d), {}, { highlightLinkSize: e }), ) }, }), (0, l.jsx)(oe, { label: 'Highlight Node Size', - value: u.highlightNodeSize, + value: d.highlightNodeSize, onChange: function (e) { return h( - re(re({}, u), {}, { highlightNodeSize: e }), + te(te({}, d), {}, { highlightNodeSize: e }), ) }, }), @@ -1786,41 +1317,41 @@ label: 'Highlight Animation', onChange: function () { h( - re( - re({}, u), + te( + te({}, d), {}, - { highlightAnim: !u.highlightAnim }, + { highlightAnim: !d.highlightAnim }, ), ) }, - value: u.highlightAnim, + value: d.highlightAnim, children: [ (0, l.jsx)(oe, { label: 'Animation speed', onChange: function (e) { return h( - re(re({}, u), {}, { animationSpeed: e }), + te(te({}, d), {}, { animationSpeed: e }), ) }, - value: u.animationSpeed, + value: d.animationSpeed, infoText: 'Slower speed has a chance of being buggy', min: 50, max: 1e3, step: 10, }), - (0, l.jsx)(Y.Ph, { - placeholder: u.algorithmName, + (0, l.jsx)(J.Ph, { + placeholder: d.algorithmName, onChange: function (e) { h( - re( - re({}, u), + te( + te({}, d), {}, { algorithmName: e.target.value }, ), ) }, - children: u.algorithmOptions.map(function (e) { + children: d.algorithmOptions.map(function (e) { return (0, l.jsx)('option', { value: e, children: e }, e) }), @@ -1837,28 +1368,28 @@ }), ], }), - (0, l.jsxs)(W.Qd, { + (0, l.jsxs)(M.Qd, { children: [ - (0, l.jsxs)(W.KF, { + (0, l.jsxs)(M.KF, { children: [ - (0, l.jsx)(W.XE, { marginRight: 2 }), + (0, l.jsx)(M.XE, { marginRight: 2 }), (0, l.jsx)(X.X, { size: 'sm', children: 'Behavior' }), ], }), - (0, l.jsx)(W.Hk, { - children: (0, l.jsxs)(_.gC, { + (0, l.jsx)(M.Hk, { + children: (0, l.jsxs)(W.gC, { spacing: 2, justifyContent: 'flex-start', - divider: (0, l.jsx)(_.cX, { borderColor: 'gray.500' }), + divider: (0, l.jsx)(W.cX, { borderColor: 'gray.500' }), align: 'stretch', paddingLeft: 7, color: 'gray.800', children: [ - (0, l.jsxs)(q.k, { + (0, l.jsxs)(_.k, { alignItems: 'center', justifyContent: 'space-between', children: [ - (0, l.jsxs)(q.k, { + (0, l.jsxs)(_.k, { children: [ (0, l.jsx)(U.x, { children: 'Expand Node' }), (0, l.jsx)(ie, { @@ -1867,12 +1398,12 @@ }), ], }), - (0, l.jsxs)(V.v2, { + (0, l.jsxs)(q.v2, { placement: 'right', children: [ - (0, l.jsx)(V.j2, { - as: M.z, - rightIcon: (0, l.jsx)(L.v, {}), + (0, l.jsx)(q.j2, { + as: V.z, + rightIcon: (0, l.jsx)(E.v, {}), colorScheme: '', color: 'black', children: (0, l.jsx)(U.x, { @@ -1881,39 +1412,39 @@ : 'Never', }), }), - (0, l.jsxs)(K.h, { + (0, l.jsxs)(G.h, { children: [ ' ', - (0, l.jsxs)(V.qy, { + (0, l.jsxs)(q.qy, { zIndex: 'popover', bgColor: 'gray.200', children: [ - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { - return x(re(re({}, g), {}, { local: '' })) + return x(te(te({}, g), {}, { local: '' })) }, children: 'Never', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return x( - re(re({}, g), {}, { local: 'click' }), + te(te({}, g), {}, { local: 'click' }), ) }, children: 'Click', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return x( - re(re({}, g), {}, { local: 'double' }), + te(te({}, g), {}, { local: 'double' }), ) }, children: 'Double Click', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return x( - re(re({}, g), {}, { local: 'right' }), + te(te({}, g), {}, { local: 'right' }), ) }, children: 'Right Click', @@ -1926,17 +1457,17 @@ }), ], }), - (0, l.jsxs)(q.k, { + (0, l.jsxs)(_.k, { alignItems: 'center', justifyContent: 'space-between', children: [ (0, l.jsx)(U.x, { children: 'Open in Emacs' }), - (0, l.jsxs)(V.v2, { + (0, l.jsxs)(q.v2, { placement: 'right', children: [ - (0, l.jsx)(V.j2, { - as: M.z, - rightIcon: (0, l.jsx)(L.v, {}), + (0, l.jsx)(q.j2, { + as: V.z, + rightIcon: (0, l.jsx)(E.v, {}), colorScheme: '', color: 'black', children: (0, l.jsx)(U.x, { @@ -1945,39 +1476,39 @@ : 'Never', }), }), - (0, l.jsxs)(K.h, { + (0, l.jsxs)(G.h, { children: [ ' ', - (0, l.jsxs)(V.qy, { + (0, l.jsxs)(q.qy, { bgColor: 'gray.200', zIndex: 'popover', children: [ - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { - return x(re(re({}, g), {}, { follow: '' })) + return x(te(te({}, g), {}, { follow: '' })) }, children: 'Never', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return x( - re(re({}, g), {}, { follow: 'click' }), + te(te({}, g), {}, { follow: 'click' }), ) }, children: 'Click', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return x( - re(re({}, g), {}, { follow: 'double' }), + te(te({}, g), {}, { follow: 'double' }), ) }, children: 'Double Click', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { return x( - re(re({}, g), {}, { follow: 'right' }), + te(te({}, g), {}, { follow: 'right' }), ) }, children: 'Right Click', @@ -1990,17 +1521,17 @@ }), ], }), - (0, l.jsxs)(q.k, { + (0, l.jsxs)(_.k, { alignItems: 'center', justifyContent: 'space-between', children: [ (0, l.jsx)(U.x, { children: 'Follow Emacs by...' }), - (0, l.jsxs)(V.v2, { + (0, l.jsxs)(q.v2, { placement: 'right', children: [ - (0, l.jsx)(V.j2, { - as: M.z, - rightIcon: (0, l.jsx)(L.v, {}), + (0, l.jsx)(q.j2, { + as: V.z, + rightIcon: (0, l.jsx)(E.v, {}), colorScheme: '', color: 'black', children: (0, l.jsx)(U.x, { @@ -2008,25 +1539,25 @@ f.follow[0].toUpperCase() + f.follow.slice(1), }), }), - (0, l.jsxs)(K.h, { + (0, l.jsxs)(G.h, { children: [ ' ', - (0, l.jsxs)(V.qy, { + (0, l.jsxs)(q.qy, { bgColor: 'gray.200', zIndex: 'popover', children: [ - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { - return j( - re(re({}, f), {}, { follow: 'local' }), + return p( + te(te({}, f), {}, { follow: 'local' }), ) }, children: 'Opening the local graph', }), - (0, l.jsx)(V.sN, { + (0, l.jsx)(q.sN, { onClick: function () { - return j( - re(re({}, f), {}, { follow: 'zoom' }), + return p( + te(te({}, f), {}, { follow: 'zoom' }), ) }, children: 'Zooming to the current node', @@ -2046,7 +1577,7 @@ max: 4e3, step: 100, onChange: function (e) { - return j(re(re({}, f), {}, { zoomSpeed: e })) + return p(te(te({}, f), {}, { zoomSpeed: e })) }, }), (0, l.jsx)(oe, { @@ -2056,7 +1587,7 @@ max: 400, step: 1, onChange: function (e) { - return j(re(re({}, f), {}, { zoomPadding: e })) + return p(te(te({}, f), {}, { zoomPadding: e })) }, infoText: 'How much to zoom out to accomodate all nodes when changing the view.', @@ -2077,51 +1608,51 @@ }, ie = function (e) { var n = e.infoText - return (0, l.jsx)(p.xu, { + return (0, l.jsx)(j.xu, { paddingLeft: '1', - children: (0, l.jsx)(A.u, { + children: (0, l.jsx)(B.u, { label: n, placement: 'top', color: 'gray.100', bg: 'gray.800', hasArrow: !0, - children: (0, l.jsx)(Z.h, {}), + children: (0, l.jsx)(H.h, {}), }), }) }, oe = function (e) { var n = e.min, - r = void 0 === n ? 0 : n, - t = e.max, - i = void 0 === t ? 10 : t, + t = void 0 === n ? 0 : n, + r = e.max, + i = void 0 === r ? 10 : r, o = e.step, - s = void 0 === o ? 0.1 : o, - c = e.value, - a = void 0 === c ? 1 : c, - u = (0, R.Z)(e, ['min', 'max', 'step', 'value']), - h = u.onChange, - g = u.label, - x = u.infoText, - f = (0, d.useContext)(ee.N).highlightColor - return (0, l.jsxs)(p.xu, { + 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)(p.xu, { + (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)(G.iR, { - value: a, + (0, l.jsxs)(Y.iR, { + value: c, onChange: h, - min: r, + min: t, max: i, - step: s, + step: a, children: [ - (0, l.jsx)(G.Uj, { children: (0, l.jsx)(G.Ms, {}) }), - (0, l.jsx)(A.u, { + (0, l.jsx)(Y.Uj, { children: (0, l.jsx)(Y.Ms, {}) }), + (0, l.jsx)(B.u, { bg: f, - label: a.toFixed(1), - children: (0, l.jsx)(G.gs, { bg: 'white' }), + label: c.toFixed(1), + children: (0, l.jsx)(Y.gs, { bg: 'white' }), }), ], }), @@ -2130,33 +1661,33 @@ }, le = function (e) { var n = e.value, - r = e.onChange, - t = e.label, + t = e.onChange, + r = e.label, i = e.infoText, o = e.children - return (0, l.jsxs)(p.xu, { + return (0, l.jsxs)(j.xu, { paddingTop: 2, children: [ - (0, l.jsxs)(p.xu, { + (0, l.jsxs)(j.xu, { display: 'flex', justifyContent: 'space-between', paddingBottom: 2, children: [ - (0, l.jsxs)(p.xu, { + (0, l.jsxs)(j.xu, { display: 'flex', alignItems: 'center', children: [ - (0, l.jsx)(U.x, { children: t }), + (0, l.jsx)(U.x, { children: r }), i && (0, l.jsx)(ie, { infoText: i }), ], }), - (0, l.jsx)(Q.r, { isChecked: !!n, onChange: r }), + (0, l.jsx)(Q.r, { isChecked: !!n, onChange: t }), ], }), - (0, l.jsx)(J.U, { + (0, l.jsx)(K.U, { in: !!n, animateOpacity: !0, - children: (0, l.jsx)(p.xu, { + children: (0, l.jsx)(j.xu, { paddingLeft: 4, paddingTop: 2, paddingBottom: 2, @@ -2166,104 +1697,177 @@ ], }) }, - se = r(1122), - ce = r(2003) - function ae(e, n) { - var r = Object.keys(e) + 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 t = Object.getOwnPropertySymbols(e) + var r = Object.getOwnPropertySymbols(e) n && - (t = t.filter(function (n) { + (r = r.filter(function (n) { return Object.getOwnPropertyDescriptor(e, n).enumerable })), - r.push.apply(r, t) + t.push.apply(t, r) } - return r + return t } function de(e) { for (var n = 1; n < arguments.length; n++) { - var r = null != arguments[n] ? arguments[n] : {} + var t = null != arguments[n] ? arguments[n] : {} n % 2 - ? ae(Object(r), !0).forEach(function (n) { - ;(0, c.Z)(e, n, r[n]) + ? ue(Object(t), !0).forEach(function (n) { + ;(0, s.Z)(e, n, t[n]) }) : Object.getOwnPropertyDescriptors - ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) - : ae(Object(r)).forEach(function (n) { - Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(r, n)) + ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) + : ue(Object(t)).forEach(function (n) { + Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n)) }) } return e } - var ue = r.e(4).then(r.bind(r, 7004)), - he = r.g.window ? r(1957).f$ : null, - ge = r.g.window ? r(1957).s6 : null - function xe() { - var e = (0, d.useState)(!1), + 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], - r = e[1] + t = e[1] return ( - (0, d.useEffect)(function () { - r(!0) + (0, u.useEffect)(function () { + t(!0) }, []), - n ? (0, l.jsx)(fe, {}) : null + n ? (0, l.jsx)(pe, {}) : null ) } - function fe() { - var e = u('physics', S), - n = (0, a.Z)(e, 2), - r = n[0], - t = n[1], - i = u('filter', I), - o = (0, a.Z)(i, 2), + 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 = u('visuals', N), - f = (0, a.Z)(x, 2), - j = f[0], + x = d('visuals', N), + f = (0, c.Z)(x, 2), + p = f[0], m = f[1], - b = (0, d.useState)(null), - C = b[0], - v = b[1], - y = (0, d.useState)(null), + v = (0, u.useState)(null), + b = v[0], + C = v[1], + y = (0, u.useState)(null), k = y[0], w = y[1], - R = u('behavior', O), - T = (0, a.Z)(R, 2), - D = T[0], - P = T[1], - H = u('mouse', z), - E = (0, a.Z)(H, 2), - L = E[0], - Z = E[1], - B = (0, d.useRef)({}), - F = (0, d.useRef)({}), - A = (0, d.useContext)(ee.N).setEmacsTheme, - M = (0, d.useState)(!1), - W = M[0], - X = M[1], - _ = (0, d.useState)({ nodeIds: [] }), - q = _[0], - U = _[1], - Q = (0, d.useRef)({ nodeIds: [] }), - V = (0, d.useRef)(O) - V.current = D - var K = (0, d.useRef)(null), - J = (0, d.useRef)(null) - Q.current = q - var Y = function (e, n) { - var r, - t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 2e3, + 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 = K.current, + o = G.current, l = Q.current, - c = V.current, - a = null !== (r = F.current[n]) && void 0 !== r ? r : [], - d = Object.fromEntries( + s = q.current, + c = null !== (t = A.current[n]) && void 0 !== t ? t : [], + u = Object.fromEntries( [n] .concat( - (0, s.Z)( - a.flatMap(function (e) { + (0, a.Z)( + c.flatMap(function (e) { return [e.source, e.target] }), ), @@ -2277,72 +1881,72 @@ l.nodeIds.length && (console.log('emptying'), console.log('scope ' + l.nodeIds), U({ nodeIds: [] })), void setTimeout(function () { - return o.zoomToFit(t, i, function (e) { - return d[e.id] + return o.zoomToFit(r, i, function (e) { + return u[e.id] }) }, 50)) : l.nodeIds.length - ? 'add' !== c.localSame + ? 'add' !== s.localSame ? (U({ nodeIds: [n] }), void setTimeout(function () { - o.centerAt(0, 0, t) + o.centerAt(0, 0, r) }, 50)) : l.nodeIds.includes(n) && l.nodeIds.some(function (e) { - return d[e] + return u[e] }) ? (U(function (e) { - return de(de({}, e), {}, { nodeIds: [].concat((0, s.Z)(e.nodeIds), [n]) }) + return de(de({}, e), {}, { nodeIds: [].concat((0, a.Z)(e.nodeIds), [n]) }) }), void setTimeout(function () { - return o.zoomToFit(t, i, function (e) { - return d[e.id] + return o.zoomToFit(r, i, function (e) { + return u[e.id] }) }, 50)) : (U({ nodeIds: [n] }), void setTimeout(function () { - o.centerAt(0, 0, t) + o.centerAt(0, 0, r) }, 50)) : (U({ nodeIds: [n] }), void setTimeout(function () { - o.centerAt(0, 0, t) + o.centerAt(0, 0, r) }, 50)) } return ( - (0, d.useEffect)(function () { - ;(J.current = new ce.Z('ws://localhost:35903')), - J.current.addEventListener('open', function (e) { + (0, u.useEffect)(function () { + ;(K.current = new ce.Z('ws://localhost:35903')), + K.current.addEventListener('open', function (e) { console.log('Connection with Emacs established') }), - J.current.addEventListener('message', function (e) { - K.current - var n = V.current, - r = JSON.parse(e.data) - switch (r.type) { + 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 r + var t return de( de({}, e), {}, - (0, c.Z)( + (0, s.Z)( {}, n.file, [].concat( - (0, s.Z)(null !== (r = e[n.file]) && void 0 !== r ? r : []), + (0, a.Z)(null !== (t = e[n.file]) && void 0 !== t ? t : []), [n], ), ), ) }, {}), - r = Object.keys(n).flatMap(function (e) { - var r, - t = null !== (r = n[e]) && void 0 !== r ? r : [], - i = t.find(function (e) { + 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 = t.filter(function (e) { + o = r.filter(function (e) { return 0 !== e.level }) return i @@ -2351,125 +1955,125 @@ }) : [] }) - B.current = Object.fromEntries( + F.current = Object.fromEntries( e.nodes.map(function (e) { return [e.id, e] }), ) - var t = [].concat((0, s.Z)(e.links), (0, s.Z)(r)).filter(function (e) { + var r = [].concat((0, a.Z)(e.links), (0, a.Z)(t)).filter(function (e) { var n = e.source, - r = e.target - return B.current[n] && B.current[r] + t = e.target + return F.current[n] && F.current[t] }) - F.current = t.reduce(function (e, n) { - var r, t, i + A.current = r.reduce(function (e, n) { + var t, r, i return de( de({}, e), {}, ((i = {}), - (0, c.Z)( + (0, s.Z)( i, n.source, [].concat( - (0, s.Z)(null !== (r = e[n.source]) && void 0 !== r ? r : []), + (0, a.Z)(null !== (t = e[n.source]) && void 0 !== t ? t : []), [n], ), ), - (0, c.Z)( + (0, s.Z)( i, n.target, [].concat( - (0, s.Z)(null !== (t = e[n.target]) && void 0 !== t ? t : []), + (0, a.Z)(null !== (r = e[n.target]) && void 0 !== r ? r : []), [n], ), ), i), ) }, {}) - var i = de(de({}, e), {}, { links: t }), + var i = de(de({}, e), {}, { links: r }), o = JSON.parse(JSON.stringify(i)) - v(o) - })(r.data) + C(o) + })(t.data) case 'theme': - return A(r.data) + return B(t.data) case 'command': - switch (r.data.commandName) { + switch (t.data.commandName) { case 'local': - var t = D.zoomSpeed, - i = D.zoomPadding - Y('local', r.data.id, t, i), w(r.data.id) + var r = R.zoomSpeed, + i = R.zoomPadding + J('local', t.data.id, r, i), w(t.data.id) break case 'zoom': var o, l, - a = - (null === r || void 0 === r || null === (o = r.data) || void 0 === o + c = + (null === t || void 0 === t || null === (o = t.data) || void 0 === o ? void 0 : o.speed) || n.zoomSpeed, - d = - (null === r || void 0 === r || null === (l = r.data) || void 0 === l + u = + (null === t || void 0 === t || null === (l = t.data) || void 0 === l ? void 0 : l.padding) || n.zoomPadding - Y('zoom', r.data.id, a, d), w(r.data.id) + J('zoom', t.data.id, c, u), w(t.data.id) break case 'follow': - Y(n.follow, r.data.id, n.zoomSpeed, n.zoomPadding), w(r.data.id) + J(n.follow, t.data.id, n.zoomSpeed, n.zoomPadding), w(t.data.id) break default: - return console.error('unknown message type', r.type) + return console.error('unknown message type', t.type) } } }) }, []), - C - ? (0, l.jsxs)(p.xu, { + b + ? (0, l.jsxs)(j.xu, { display: 'flex', alignItems: 'flex-start', flexDirection: 'row', height: '100%', children: [ (0, l.jsx)( - te, + re, de( {}, { - physics: r, - setPhysics: t, - threeDim: W, + physics: t, + setPhysics: r, + threeDim: M, setThreeDim: X, filter: h, setFilter: g, - visuals: j, + visuals: p, setVisuals: m, - mouse: L, - setMouse: Z, - behavior: D, - setBehavior: P, + mouse: E, + setMouse: H, + behavior: R, + setBehavior: T, }, ), ), - (0, l.jsx)(p.xu, { + (0, l.jsx)(j.xu, { position: 'absolute', alignItems: 'top', children: (0, l.jsx)( je, de( { - ref: K, - nodeById: B.current, - linksByNodeId: F.current, - webSocket: J.current, + ref: G, + nodeById: F.current, + linksByNodeId: A.current, + webSocket: K.current, }, { - physics: r, - graphData: C, - threeDim: W, + physics: t, + graphData: b, + threeDim: M, emacsNodeId: k, filter: h, - visuals: j, - behavior: D, - mouse: L, - scope: q, + visuals: p, + behavior: R, + mouse: E, + scope: _, setScope: U, }, ), @@ -2480,57 +2084,57 @@ : null ) } - var je = (0, d.forwardRef)(function (e, n) { - var r = e.physics, - t = e.graphData, - c = e.threeDim, - u = e.linksByNodeId, + var je = (0, u.forwardRef)(function (e, n) { + var t = e.physics, + r = e.graphData, + s = e.threeDim, + d = e.linksByNodeId, h = e.filter, - p = e.emacsNodeId, + j = e.emacsNodeId, m = e.nodeById, - b = e.visuals, - C = (e.behavior, e.mouse), - v = e.scope, + v = e.visuals, + b = (e.behavior, e.mouse), + C = e.scope, y = e.setScope, k = e.webSocket, S = (0, x.iP)(), - I = (0, a.Z)(S, 2), - N = I[0], - O = I[1], - z = (0, d.useState)(null), - R = z[0], - T = z[1], - D = (0, j.useTheme)(), - P = (0, d.useContext)(ee.N).emacsTheme, - H = function (e, n) { + 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 C.local: - if (v.nodeIds.includes(n.id)) break + case b.local: + if (C.nodeIds.includes(n.id)) break y(function (e) { - return de(de({}, e), {}, { nodeIds: [].concat((0, s.Z)(e.nodeIds), [n.id]) }) + return de(de({}, e), {}, { nodeIds: [].concat((0, a.Z)(e.nodeIds), [n.id]) }) }) break - case C.follow: + case b.follow: k.send(n.id) } }, - E = (0, d.useRef)(null) - ;(0, d.useEffect)( + Z = (0, u.useRef)(null) + ;(0, u.useEffect)( function () { - p && T(m[p]) + j && D(m[j]) }, - [p], + [j], ), - (E.current = R) - var L = (0, d.useMemo)( + (Z.current = L) + var E = (0, u.useMemo)( function () { - if (!E.current) return {} - var e = u[E.current.id] + if (!Z.current) return {} + var e = d[Z.current.id] return e ? Object.fromEntries( - [E.current.id] + [Z.current.id] .concat( - (0, s.Z)( + (0, a.Z)( e.flatMap(function (e) { return [e.source, e.target] }), @@ -2542,20 +2146,20 @@ ) : {} }, - [E.current, u], + [Z.current, d], ), - Z = (0, d.useMemo)( + H = (0, u.useMemo)( function () { - var e = t.nodes.filter(function (e) { + var e = r.nodes.filter(function (e) { var n, - r = null !== (n = u[e.id]) && void 0 !== n ? n : [] + t = null !== (n = d[e.id]) && void 0 !== n ? n : [] return ( !h.orphans || (h.parents - ? 0 !== r.length - : 0 !== r.length && - r.some(function (e) { - return !['parent', 'cite', 'ref'].includes(e.type) + ? 0 !== t.length + : 0 !== t.length && + t.some(function (e) { + return !['parent', 'ref'].includes(e.type) })) ) }), @@ -2563,57 +2167,57 @@ (e.map(function (e) { return e.id }), - t.links.filter(function (e) { + r.links.filter(function (e) { var n = e - return 'cite' !== n.type && (h.parents || 'parent' !== n.type) + return h.parents || 'parent' !== n.type })), - r = e.filter(function (e) { + t = e.filter(function (e) { var n, - r = null !== (n = u[e.id]) && void 0 !== n ? n : [] + t = null !== (n = d[e.id]) && void 0 !== n ? n : [] return ( - v.nodeIds.includes(e.id) || - r.some(function (e) { - return v.nodeIds.includes(e.source) || v.nodeIds.includes(e.target) + C.nodeIds.includes(e.id) || + t.some(function (e) { + return C.nodeIds.includes(e.source) || C.nodeIds.includes(e.target) }) ) }), - i = r.map(function (e) { + i = t.map(function (e) { return e.id }), o = n.filter(function (e) { var n = 'object' === typeof e.source ? e.source.id : e.source, - r = 'object' === typeof e.target ? e.target.id : e.target - return i.includes(n) && i.includes(r) + t = 'object' === typeof e.target ? e.target.id : e.target + return i.includes(n) && i.includes(t) }) - return 0 === v.nodeIds.length ? { nodes: e, links: n } : { nodes: r, links: o } + return 0 === C.nodeIds.length ? { nodes: e, links: n } : { nodes: t, links: o } }, - [h, v, t], + [h, C, r], ) - ;(0, d.useEffect)(function () { + ;(0, u.useEffect)(function () { ;(0, o.Z)( i().mark(function e() { - var t, o + var r, o return i().wrap(function (e) { for (;;) switch ((e.prev = e.next)) { case 0: - return (t = n.current), (e.next = 3), ue + return (r = n.current), (e.next = 3), he case 3: ;(o = e.sent), - r.gravityOn - ? (t.d3Force('x', o.forceX().strength(r.gravity)), - t.d3Force('y', o.forceY().strength(r.gravity)), - c && t.d3Force('z', o.forceZ().strength(r.gravity))) - : (t.d3Force('x', null), t.d3Force('y', null), c && t.d3Force('z', null)), - r.centering - ? t.d3Force('center', o.forceCenter().strength(r.centeringStrength)) - : t.d3Force('center', null), - r.linkStrength && t.d3Force('link').strength(r.linkStrength), - r.linkIts && t.d3Force('link').iterations(r.linkIts), - r.charge && t.d3Force('charge').strength(r.charge), - t.d3Force( + 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', - r.collision ? o.forceCollide().radius(r.collisionStrength) : null, + t.collision ? o.forceCollide().radius(t.collisionStrength) : null, ) case 10: case 'end': @@ -2623,83 +2227,85 @@ }), )() }), - (0, d.useEffect)( + (0, u.useEffect)( function () { var e null === (e = n.current) || void 0 === e || e.d3ReheatSimulation() }, - [r], + [t], ) - var B = (0, d.useRef)(0), - F = (0, d.useState)(1), - A = F[0], - M = F[1], - W = (0, f._7)( + var F = (0, u.useRef)(0), + A = (0, u.useState)(1), + B = A[0], + V = A[1], + M = (0, f._7)( function (e) { - return M(e) + return V(e) }, - { duration: b.animationSpeed, algorithm: w[b.algorithmName] }, + { duration: v.animationSpeed, algorithm: w[v.algorithmName] }, ), - X = (0, a.Z)(W, 2), - _ = X[0], - q = X[1], + X = (0, c.Z)(M, 2), + W = X[0], + _ = X[1], U = (0, f._7)( function (e) { - return M(Math.min(A, -1 * (e - 1))) + return V(Math.min(B, -1 * (e - 1))) }, - { duration: b.animationSpeed, algorithm: w[b.algorithmName] }, + { duration: v.animationSpeed, algorithm: w[v.algorithmName] }, ), - Q = (0, a.Z)(U, 2), - V = Q[0], - K = Q[1], - J = (0, d.useRef)(null) - ;(0, d.useEffect)( + Q = (0, c.Z)(U, 2), + q = Q[0], + G = Q[1], + K = (0, u.useRef)(null) + ;(0, u.useEffect)( function () { - if ((R && (J.current = R), !b.highlightAnim)) return M(R ? 1 : 0) - R ? _() : (q(), A > 0.5 ? V() : M(0)) + if ((L && (K.current = L), !v.highlightAnim)) return V(L ? 1 : 0) + L ? W() : (_(), B > 0.5 ? q() : V(0)) }, - [R], + [L], ) - var Y = function (e) { - if (D) + var J = function (e) { + if (R) return e.split('.').reduce(function (e, n) { return e[n] - }, D.colors) + }, R.colors) }, - G = (0, d.useMemo)( + Y = (0, u.useMemo)( function () { - var e = b.nodeColorScheme.concat( - b.linkColorScheme || [], - b.linkHighlight || [], - b.nodeHighlight || [], + var e = v.nodeColorScheme.concat( + v.linkColorScheme || [], + v.linkHighlight || [], + v.nodeHighlight || [], + v.citeNodeColor || [], + v.citeLinkColor || [], ) return Object.fromEntries( e.map(function (n) { - var r = Y(n), - t = e.map(function (e) { - return [e, g.Z(r, Y(e))] + var t = J(n), + r = e.map(function (e) { + return [e, g.Z(t, J(e))] }) - return [n, Object.fromEntries(t)] + return [n, Object.fromEntries(r)] }), ) }, - [b.nodeColorScheme, b.linkHighlight, b.nodeHighlight, b.linkColorScheme, P], + [v.nodeColorScheme, v.linkHighlight, v.nodeHighlight, v.linkColorScheme, T], ), - $ = (0, d.useMemo)( + $ = (0, u.useMemo)( function () { var e, n, - r, - t = - null !== (e = u[null === (n = J.current) || void 0 === n ? void 0 : n.id]) && + t, + r = + null !== (e = d[null === (n = K.current) || void 0 === n ? void 0 : n.id]) && void 0 !== e ? e : [] return Object.fromEntries( - [null === (r = J.current) || void 0 === r ? void 0 : r.id] + [null === (t = K.current) || void 0 === t ? void 0 : t.id] .concat( - (0, s.Z)( - t.flatMap(function (e) { + (0, a.Z)( + r.flatMap(function (e) { return [e.source, e.target] }), ), @@ -2709,36 +2315,36 @@ }), ) }, - [JSON.stringify(R), J.current], + [JSON.stringify(L), K.current], ), ne = function (e) { var n, - r, t, + r, i, o, l, - s = - null !== (n = null === (r = u[e]) || void 0 === r ? void 0 : r.length) && + a = + null !== (n = null === (t = d[e]) || void 0 === t ? void 0 : t.length) && void 0 !== n ? n : 0, - c = s - ? null === (t = u[e]) || void 0 === t + s = a + ? null === (r = d[e]) || void 0 === r ? void 0 - : t.filter(function (e) { + : r.filter(function (e) { return 'parent' === e.type || 'cite' === e.type }).length : 0, - a = h.parents ? s : s - c - return b.nodeColorScheme[ - ((i = a), (o = 0), (l = b.nodeColorScheme.length - 1), Math.min(Math.max(i, o), l)) + 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)) ] }, - re = function (e, n) { - return u[e] > u[n] ? ne(e) : ne(n) - }, te = function (e, n) { + return d[e] > d[n] ? ne(e) : ne(n) + }, + re = function (e, n) { return ( 'rgba(' + (e = e.replace('#', '')) @@ -2751,77 +2357,79 @@ ')' ) }, - ie = (0, d.useMemo)( + ie = (0, u.useMemo)( function () { - return Y(b.labelTextColor) + return J(v.labelTextColor) }, - [b.labelTextColor, P], + [v.labelTextColor, T], ), - oe = (0, d.useMemo)( + oe = (0, u.useMemo)( function () { - return Y(b.labelBackgroundColor) + return J(v.labelBackgroundColor) }, - [b.labelBackgroundColor, P], + [v.labelBackgroundColor, T], ), le = { - graphData: Z, + graphData: H, width: N, - height: O, - backgroundColor: D.colors.gray[b.backgroundColor], + height: I, + backgroundColor: R.colors.gray[v.backgroundColor], nodeLabel: function (e) { return e.title }, nodeColor: function (e) { return (function (e) { - var n = L[e.id] || $[e.id] - return b.emacsNodeColor && e.id === p - ? Y(b.emacsNodeColor) - : n && b.nodeHighlight - ? G[ne(e.id)][b.nodeHighlight](A) - : Y(ne(e.id)) + 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: b.nodeRel, + nodeRelSize: v.nodeRel, nodeVal: function (e) { var n, - r = null !== (n = u[e.id]) && void 0 !== n ? n : [], - t = r.length - ? r.filter(function (e) { + 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 + r.length - (h.parents ? 0 : t)) * - (L[e.id] || $[e.id] ? 1 + A * (b.highlightNodeSize - 1) : 1) + (3 + t.length - (h.parents ? 0 : r)) * + (E[e.id] || $[e.id] ? 1 + B * (v.highlightNodeSize - 1) : 1) ) }, - nodeCanvasObject: function (e, n, r) { - if (e && b.labels) { - var t = $[e.id] - if (!(r <= b.labelScale || 1 === b.labels) || L[e.id] || t) { + 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 / r, - c = [1.1 * n.measureText(o).width, l].map(function (e) { + l = 12 / t, + s = [1.1 * n.measureText(o).width, l].map(function (e) { return e + 0.5 * l }), - a = Math.min((3 * (r - b.labelScale)) / b.labelScale, 1), - d = function () { - return 1 === b.labels || r <= b.labelScale - ? A - : L[e.id] || $[e.id] - ? Math.max(a, A) - : 1 * a * (-1 * (0.5 * A - 1)) + 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 (b.labelBackgroundColor && b.labelBackgroundOpacity) { - var u = d() * b.labelBackgroundOpacity, - h = te(oe, u) + if (v.labelBackgroundColor && v.labelBackgroundOpacity) { + var d = u() * v.labelBackgroundOpacity, + h = re(oe, d) ;(n.fillStyle = h), - n.fillRect.apply(n, [e.x - c[0] / 2, e.y - c[1] / 2].concat((0, s.Z)(c))) + n.fillRect.apply(n, [e.x - s[0] / 2, e.y - s[1] / 2].concat((0, a.Z)(s))) } - var g = d() + var g = u() ;(n.textAlign = 'center'), (n.textBaseline = 'middle') - var x = te(ie, g) + var x = re(ie, g) ;(n.fillStyle = x), (n.font = ''.concat(l, 'px Sans-Serif')), n.fillText(o, e.x, e.y) @@ -2831,86 +2439,90 @@ nodeCanvasObjectMode: function () { return 'after' }, - linkDirectionalParticles: b.particles ? b.particlesNumber : void 0, - linkDirectionalArrowLength: b.arrows ? b.arrowsLength : void 0, - linkDirectionalArrowRelPos: b.arrowsPos, - linkDirectionalArrowColor: b.arrowsColor + linkDirectionalParticles: v.particles ? v.particlesNumber : void 0, + linkDirectionalArrowLength: v.arrows ? v.arrowsLength : void 0, + linkDirectionalArrowRelPos: v.arrowsPos, + linkDirectionalArrowColor: v.arrowsColor ? function (e) { - return Y(b.arrowsColor) + return J(v.arrowsColor) } : void 0, linkColor: function (e) { var n = 'object' === typeof e.source ? e.source.id : e.source, - r = 'object' === typeof e.target ? e.target.id : e.target, - t = pe(e, E.current), - i = pe(e, J.current) - return (function (e, n, r) { - if (!b.linkHighlight && !b.linkColorScheme && !r) { - var t = re(e, n) - return Y(t) - } - if (!r && !b.linkColorScheme) { - var i = re(e, n) - return Y(i) - } - if (!r) return Y(b.linkColorScheme) - if (!b.linkHighlight && !b.linkColorScheme) { - var o = re(e, n) - return Y(o) - } - return b.linkHighlight - ? b.linkColorScheme - ? G[b.linkColorScheme][b.linkHighlight](A) - : G[re(e, n)][b.linkHighlight](A) - : Y(b.linkColorScheme) - })(n, r, t || i) + 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 = pe(e, E.current), - r = pe(e, J.current) - return n || r ? b.linkWidth * (1 + A * (b.highlightLinkSize - 1)) : b.linkWidth + var n = me(e, Z.current), + t = me(e, K.current) + return n || t ? v.linkWidth * (1 + B * (v.highlightLinkSize - 1)) : v.linkWidth }, - linkDirectionalParticleWidth: b.particlesWidth, - d3AlphaDecay: r.alphaDecay, - d3AlphaMin: r.alphaMin, - d3VelocityDecay: r.velocityDecay, + linkDirectionalParticleWidth: v.particlesWidth, + d3AlphaDecay: t.alphaDecay, + d3AlphaMin: t.alphaMin, + d3VelocityDecay: t.velocityDecay, onNodeClick: function (e, n) { - var r = n.timeStamp - B.current < 400 - return (B.current = n.timeStamp), H(r ? 'double' : 'click', e) + var t = n.timeStamp - F.current < 400 + return (F.current = n.timeStamp), P(t ? 'double' : 'click', e) }, onBackgroundClick: function () { - T(null), - 0 !== v.nodeIds.length && + D(null), + 0 !== C.nodeIds.length && y(function (e) { return de(de({}, e), {}, { nodeIds: [] }) }) }, onNodeHover: function (e) { - b.highlight && (R || (K(), M(0)), T(e)) + v.highlight && (L || (G(), V(0)), D(e)) }, onNodeRightClick: function (e) { - H('right', e) + P('right', e) }, } return (0, l.jsx)('div', { - children: c + children: s ? (0, l.jsx)( - ge, + xe, de( de({ ref: n }, le), {}, { nodeThreeObjectExtend: !0, - backgroundColor: D.colors.white, - nodeOpacity: b.nodeOpacity, - nodeResolution: b.nodeResolution, - linkOpacity: b.linkOpacity, + backgroundColor: R.colors.white, + nodeOpacity: v.nodeOpacity, + nodeResolution: v.nodeResolution, + linkOpacity: v.linkOpacity, nodeThreeObject: function (e) { - if (b.labels && (!(b.labels < 3) || L[e.id])) { + if (v.labels && (!(v.labels < 3) || E[e.id])) { var n = new se.Z(e.title.substring(0, 40)) return ( - (n.color = Y(b.labelTextColor)), - (n.backgroundColor = Y(b.labelBackgroundColor)), + (n.color = J(v.labelTextColor)), + (n.backgroundColor = J(v.labelBackgroundColor)), (n.padding = 2), (n.textHeight = 8), n @@ -2920,21 +2532,35 @@ }, ), ) - : (0, l.jsx)(he, de({ ref: n }, le)), + : (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 pe(e, n) { + 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, r) { + 5301: function (e, n, t) { ;(window.__NEXT_P = window.__NEXT_P || []).push([ '/', function () { - return r(374) + return t(374) }, ]) }, diff --git a/out/index.html b/out/index.html index c8af985..3e59254 100644 --- a/out/index.html +++ b/out/index.html @@ -19,9 +19,9 @@ <script src="/_next/static/chunks/fb7d5399-0d6001c72a29ebec41eb.js" defer=""></script> <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-93fd2943e8087c9e1de7.js" defer=""></script> - <script src="/_next/static/ESBp6icvgUIL3DPl5IapM/_buildManifest.js" defer=""></script> - <script src="/_next/static/ESBp6icvgUIL3DPl5IapM/_ssgManifest.js" defer=""></script> + <script src="/_next/static/chunks/pages/index-f890b75b51bc215c1bc3.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": "ESBp6icvgUIL3DPl5IapM", + "buildId": "NjgmQd_TDFyofQkcfOvWb", "nextExport": true, "autoExport": true, "isFallback": false, diff --git a/pages/index.tsx b/pages/index.tsx index 7789a38..57924b8 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -413,13 +413,13 @@ export const Graph = forwardRef(function (props: GraphProps, graphRef: any) { return false } - return links.some((link) => !['parent', 'cite', 'ref'].includes(link.type)) + return links.some((link) => !['parent', 'ref'].includes(link.type)) }) const filteredNodeIds = filteredNodes.map((node) => node.id as string) const filteredLinks = graphData.links.filter((linkArg) => { const link = linkArg as OrgRoamLink - return link.type !== 'cite' && (filter.parents || link.type !== 'parent') + return filter.parents || link.type !== 'parent' }) const scopedNodes = filteredNodes.filter((node) => { @@ -530,6 +530,8 @@ export const Graph = forwardRef(function (props: GraphProps, graphRef: any) { visuals.linkColorScheme || [], visuals.linkHighlight || [], visuals.nodeHighlight || [], + visuals.citeNodeColor || [], + visuals.citeLinkColor || [], ) return Object.fromEntries( @@ -618,13 +620,16 @@ export const Graph = forwardRef(function (props: GraphProps, graphRef: any) { if (visuals.emacsNodeColor && node.id === emacsNodeId) { return getThemeColor(visuals.emacsNodeColor) } + if (visuals.citeNodeColor && node.properties.ROAM_REFS) { + return getThemeColor(visuals.citeNodeColor) + } if (!needsHighlighting) { - return getThemeColor(getNodeColorById(node.id)) + return getThemeColor(getNodeColorById(node.id as string)) } if (!visuals.nodeHighlight) { - return getThemeColor(getNodeColorById(node.id)) + return getThemeColor(getNodeColorById(node.id as string)) } - return highlightColors[getNodeColorById(node.id)][visuals.nodeHighlight](opacity) + return highlightColors[getNodeColorById(node.id as string)][visuals.nodeHighlight](opacity) } const hexToRGBA = (hex: string, opacity: number) => @@ -746,6 +751,11 @@ export const Graph = forwardRef(function (props: GraphProps, graphRef: any) { const linkIsHighlighted = isLinkRelatedToNode(link, centralHighlightedNode.current) const linkWasHighlighted = isLinkRelatedToNode(link, lastHoverNode.current) const needsHighlighting = linkIsHighlighted || linkWasHighlighted + const roamLink = link as OrgRoamLink + if (visuals.citeLinkColor && roamLink.type === 'cite') { + return getThemeColor(visuals.citeLinkColor) + } + return getLinkColor(sourceId as string, targetId as string, needsHighlighting) }, linkWidth: (link) => { @@ -824,7 +834,17 @@ export const Graph = forwardRef(function (props: GraphProps, graphRef: any) { }} /> ) : ( - <ForceGraph2D ref={graphRef} {...graphCommonProps} /> + <ForceGraph2D + ref={graphRef} + {...graphCommonProps} + linkLineDash={(link) => { + const linkArg = link as OrgRoamLink + if (!visuals.citeDashes || linkArg.type !== 'cite') { + return null + } + return [visuals.citeDashLength, visuals.citeGapLength] + }} + /> )} </div> ) |