|
|
@ -16,9 +16,8 @@ async function drawGraph(
|
|
|
|
...new Set(links.flatMap((link) => [link.source, link.target])),
|
|
|
|
...new Set(links.flatMap((link) => [link.source, link.target])),
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
// links is mutated by d3
|
|
|
|
// Links is mutated by d3. We want to use links later on, so we make a copy and pass that one to d3
|
|
|
|
// we want to use links later on, so we make a copy and pass
|
|
|
|
// Note: shallow cloning does not work because it copies over references from the original array
|
|
|
|
// that one to d3
|
|
|
|
|
|
|
|
const copyLinks = JSON.parse(JSON.stringify(links));
|
|
|
|
const copyLinks = JSON.parse(JSON.stringify(links));
|
|
|
|
|
|
|
|
|
|
|
|
const neighbours = new Set();
|
|
|
|
const neighbours = new Set();
|
|
|
@ -176,6 +175,7 @@ async function drawGraph(
|
|
|
|
.attr('fill', color)
|
|
|
|
.attr('fill', color)
|
|
|
|
.style('cursor', 'pointer')
|
|
|
|
.style('cursor', 'pointer')
|
|
|
|
.on('click', (_, d) => {
|
|
|
|
.on('click', (_, d) => {
|
|
|
|
|
|
|
|
// SPA navigation
|
|
|
|
window.navigate(
|
|
|
|
window.navigate(
|
|
|
|
new URL(`${baseUrl}${decodeURI(d.id).replace(/\s+/g, '-')}/`),
|
|
|
|
new URL(`${baseUrl}${decodeURI(d.id).replace(/\s+/g, '-')}/`),
|
|
|
|
'.singlePage'
|
|
|
|
'.singlePage'
|
|
|
|