UNPKG

mermaid

Version:

Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.

45 lines (41 loc) 1.57 kB
import { __name, configureSvgSize, log } from "./chunk-BMRFU3JQ.mjs"; // src/rendering-util/insertElementsForSize.js import { select } from "d3"; var getDiagramElement = /* @__PURE__ */ __name((id, securityLevel) => { let sandboxElement; if (securityLevel === "sandbox") { sandboxElement = select("#i" + id); } const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body"); const svg = root.select(`[id="${id}"]`); return svg; }, "getDiagramElement"); // src/rendering-util/setupViewPortForSVG.ts var setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding, cssDiagram, useMaxWidth) => { svg.attr("class", cssDiagram); const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding); configureSvgSize(svg, height, width, useMaxWidth); const viewBox = createViewBox(x, y, width, height, padding); svg.attr("viewBox", viewBox); log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`); }, "setupViewPortForSVG"); var calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding) => { const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 }; return { width: bounds.width + padding * 2, height: bounds.height + padding * 2, x: bounds.x, y: bounds.y }; }, "calculateDimensionsWithPadding"); var createViewBox = /* @__PURE__ */ __name((x, y, width, height, padding) => { return `${x - padding} ${y - padding} ${width} ${height}`; }, "createViewBox"); export { getDiagramElement, setupViewPortForSVG };