import { QuartzComponentConstructor } from "./types" // @ts-ignore import script from "./scripts/graph.inline" import style from "./styles/graph.scss" export interface D3Config { drag: boolean, zoom: boolean, depth: number, scale: number, repelForce: number, centerForce: number, linkDistance: number, fontSize: number, opacityScale: number } interface GraphOptions { localGraph: Partial, globalGraph: Partial | undefined } const defaultOptions: GraphOptions = { localGraph: { drag: true, zoom: true, depth: 1, scale: 1.1, repelForce: 0.5, centerForce: 0.3, linkDistance: 30, fontSize: 0.6, opacityScale: 1 }, globalGraph: { drag: true, zoom: true, depth: -1, scale: 0.9, repelForce: 0.5, centerForce: 0.3, linkDistance: 30, fontSize: 0.6, opacityScale: 1 } } export default ((opts?: GraphOptions) => { function Graph() { const localGraph = { ...opts?.localGraph, ...defaultOptions.localGraph } const globalGraph = { ...opts?.globalGraph, ...defaultOptions.globalGraph } return

Interactive Graph

} Graph.css = style Graph.afterDOMLoaded = script return Graph }) satisfies QuartzComponentConstructor