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 | undefined 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 = { ...defaultOptions.localGraph, ...opts?.localGraph } const globalGraph = { ...defaultOptions.globalGraph, ...opts?.globalGraph } return (

Graph View

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