import { insertEdge, insertEdgeLabel, markers_default, positionEdgeLabel } from "./chunk-TRQY2T3P.mjs"; import { insertCluster, insertNode, labelHelper } from "./chunk-HQMLCRZ6.mjs"; import { interpolateToCurve } from "./chunk-BSZA5ISF.mjs"; import { common_default, getConfig } from "./chunk-Q52JI7PB.mjs"; import { log } from "./chunk-V7P66DNM.mjs"; import { __name } from "./chunk-PTVI3W5X.mjs"; // src/internals.ts var internalHelpers = { common: common_default, getConfig, insertCluster, insertEdge, insertEdgeLabel, insertMarkers: markers_default, insertNode, interpolateToCurve, labelHelper, log, positionEdgeLabel }; // src/rendering-util/render.ts var layoutAlgorithms = {}; var registerLayoutLoaders = /* @__PURE__ */ __name((loaders) => { for (const loader of loaders) { layoutAlgorithms[loader.name] = loader; } }, "registerLayoutLoaders"); var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => { registerLayoutLoaders([ { name: "dagre", loader: /* @__PURE__ */ __name(async () => await import("./dagre-ZXKKJJHT.mjs"), "loader") }, ...true ? [ { name: "cose-bilkent", loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-WZ3F43K2.mjs"), "loader") } ] : [] ]); }, "registerDefaultLayoutLoaders"); registerDefaultLayoutLoaders(); var render = /* @__PURE__ */ __name(async (data4Layout, svg) => { if (!(data4Layout.layoutAlgorithm in layoutAlgorithms)) { throw new Error(`Unknown layout algorithm: ${data4Layout.layoutAlgorithm}`); } if (data4Layout.diagramId) { for (const node of data4Layout.nodes) { const originalDomId = node.domId || node.id; node.domId = `${data4Layout.diagramId}-${originalDomId}`; } } const layoutDefinition = layoutAlgorithms[data4Layout.layoutAlgorithm]; const layoutRenderer = await layoutDefinition.loader(); const { theme, themeVariables } = data4Layout.config; const { useGradient, gradientStart, gradientStop } = themeVariables; const svgId = svg.attr("id"); svg.append("defs").append("filter").attr("id", `${svgId}-drop-shadow`).attr("height", "130%").attr("width", "130%").append("feDropShadow").attr("dx", "4").attr("dy", "4").attr("stdDeviation", 0).attr("flood-opacity", "0.06").attr("flood-color", `${theme?.includes("dark") ? "#FFFFFF" : "#000000"}`); svg.append("defs").append("filter").attr("id", `${svgId}-drop-shadow-small`).attr("height", "150%").attr("width", "150%").append("feDropShadow").attr("dx", "2").attr("dy", "2").attr("stdDeviation", 0).attr("flood-opacity", "0.06").attr("flood-color", `${theme?.includes("dark") ? "#FFFFFF" : "#000000"}`); if (useGradient) { const gradient = svg.append("linearGradient").attr("id", svg.attr("id") + "-gradient").attr("gradientUnits", "objectBoundingBox").attr("x1", "0%").attr("y1", "0%").attr("x2", "100%").attr("y2", "0%"); gradient.append("svg:stop").attr("offset", "0%").attr("stop-color", gradientStart).attr("stop-opacity", 1); gradient.append("svg:stop").attr("offset", "100%").attr("stop-color", gradientStop).attr("stop-opacity", 1); } return layoutRenderer.render(data4Layout, svg, internalHelpers, { algorithm: layoutDefinition.algorithm }); }, "render"); var getRegisteredLayoutAlgorithm = /* @__PURE__ */ __name((algorithm = "", { fallback = "dagre" } = {}) => { if (algorithm in layoutAlgorithms) { return algorithm; } if (fallback in layoutAlgorithms) { log.warn(`Layout algorithm ${algorithm} is not registered. Using ${fallback} as fallback.`); return fallback; } throw new Error(`Both layout algorithms ${algorithm} and ${fallback} are not registered.`); }, "getRegisteredLayoutAlgorithm"); export { registerLayoutLoaders, render, getRegisteredLayoutAlgorithm };