mermaid
Version:
Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.
102 lines (101 loc) • 2.66 kB
JavaScript
import { e as sanitizeUrl_1 } from "./mermaid-a918c5c0.js";
const drawRect = function(elem, rectData) {
const rectElem = elem.append("rect");
rectElem.attr("x", rectData.x);
rectElem.attr("y", rectData.y);
rectElem.attr("fill", rectData.fill);
rectElem.attr("stroke", rectData.stroke);
rectElem.attr("width", rectData.width);
rectElem.attr("height", rectData.height);
rectElem.attr("rx", rectData.rx);
rectElem.attr("ry", rectData.ry);
if (rectData.attrs !== "undefined" && rectData.attrs !== null) {
for (let attrKey in rectData.attrs) {
rectElem.attr(attrKey, rectData.attrs[attrKey]);
}
}
if (rectData.class !== "undefined") {
rectElem.attr("class", rectData.class);
}
return rectElem;
};
const drawBackgroundRect = function(elem, bounds) {
const rectElem = drawRect(elem, {
x: bounds.startx,
y: bounds.starty,
width: bounds.stopx - bounds.startx,
height: bounds.stopy - bounds.starty,
fill: bounds.fill,
stroke: bounds.stroke,
class: "rect"
});
rectElem.lower();
};
const drawText = function(elem, textData) {
const nText = textData.text.replace(/<br\s*\/?>/gi, " ");
const textElem = elem.append("text");
textElem.attr("x", textData.x);
textElem.attr("y", textData.y);
textElem.attr("class", "legend");
textElem.style("text-anchor", textData.anchor);
if (textData.class !== void 0) {
textElem.attr("class", textData.class);
}
const span = textElem.append("tspan");
span.attr("x", textData.x + textData.textMargin * 2);
span.text(nText);
return textElem;
};
const drawImage = function(elem, x, y, link) {
const imageElem = elem.append("image");
imageElem.attr("x", x);
imageElem.attr("y", y);
var sanitizedLink = sanitizeUrl_1(link);
imageElem.attr("xlink:href", sanitizedLink);
};
const drawEmbeddedImage = function(elem, x, y, link) {
const imageElem = elem.append("use");
imageElem.attr("x", x);
imageElem.attr("y", y);
const sanitizedLink = sanitizeUrl_1(link);
imageElem.attr("xlink:href", "#" + sanitizedLink);
};
const getNoteRect = function() {
return {
x: 0,
y: 0,
width: 100,
height: 100,
fill: "#EDF2AE",
stroke: "#666",
anchor: "start",
rx: 0,
ry: 0
};
};
const getTextObj = function() {
return {
x: 0,
y: 0,
width: 100,
height: 100,
fill: void 0,
anchor: void 0,
"text-anchor": "start",
style: "#666",
textMargin: 0,
rx: 0,
ry: 0,
tspan: true,
valign: void 0
};
};
export {
drawBackgroundRect as a,
drawEmbeddedImage as b,
drawImage as c,
drawRect as d,
getTextObj as e,
drawText as f,
getNoteRect as g
};