99 lines
2.7 KiB
JavaScript
99 lines
2.7 KiB
JavaScript
import { sanitizeUrl } from "@braintree/sanitize-url";
|
|
import { H as lineBreakRegex } from "./mermaid-0d192ec3.js";
|
|
const drawRect = (element, rectData) => {
|
|
const rectElement = element.append("rect");
|
|
rectElement.attr("x", rectData.x);
|
|
rectElement.attr("y", rectData.y);
|
|
rectElement.attr("fill", rectData.fill);
|
|
rectElement.attr("stroke", rectData.stroke);
|
|
rectElement.attr("width", rectData.width);
|
|
rectElement.attr("height", rectData.height);
|
|
rectData.rx !== void 0 && rectElement.attr("rx", rectData.rx);
|
|
rectData.ry !== void 0 && rectElement.attr("ry", rectData.ry);
|
|
if (rectData.attrs !== void 0) {
|
|
for (const attrKey in rectData.attrs) {
|
|
rectElement.attr(attrKey, rectData.attrs[attrKey]);
|
|
}
|
|
}
|
|
rectData.class !== void 0 && rectElement.attr("class", rectData.class);
|
|
return rectElement;
|
|
};
|
|
const drawBackgroundRect = (element, bounds) => {
|
|
const rectData = {
|
|
x: bounds.startx,
|
|
y: bounds.starty,
|
|
width: bounds.stopx - bounds.startx,
|
|
height: bounds.stopy - bounds.starty,
|
|
fill: bounds.fill,
|
|
stroke: bounds.stroke,
|
|
class: "rect"
|
|
};
|
|
const rectElement = drawRect(element, rectData);
|
|
rectElement.lower();
|
|
};
|
|
const drawText = (element, textData) => {
|
|
const nText = textData.text.replace(lineBreakRegex, " ");
|
|
const textElem = element.append("text");
|
|
textElem.attr("x", textData.x);
|
|
textElem.attr("y", textData.y);
|
|
textElem.attr("class", "legend");
|
|
textElem.style("text-anchor", textData.anchor);
|
|
textData.class !== void 0 && textElem.attr("class", textData.class);
|
|
const tspan = textElem.append("tspan");
|
|
tspan.attr("x", textData.x + textData.textMargin * 2);
|
|
tspan.text(nText);
|
|
return textElem;
|
|
};
|
|
const drawImage = (elem, x, y, link) => {
|
|
const imageElement = elem.append("image");
|
|
imageElement.attr("x", x);
|
|
imageElement.attr("y", y);
|
|
const sanitizedLink = sanitizeUrl(link);
|
|
imageElement.attr("xlink:href", sanitizedLink);
|
|
};
|
|
const drawEmbeddedImage = (element, x, y, link) => {
|
|
const imageElement = element.append("use");
|
|
imageElement.attr("x", x);
|
|
imageElement.attr("y", y);
|
|
const sanitizedLink = sanitizeUrl(link);
|
|
imageElement.attr("xlink:href", `#${sanitizedLink}`);
|
|
};
|
|
const getNoteRect = () => {
|
|
const noteRectData = {
|
|
x: 0,
|
|
y: 0,
|
|
width: 100,
|
|
height: 100,
|
|
fill: "#EDF2AE",
|
|
stroke: "#666",
|
|
anchor: "start",
|
|
rx: 0,
|
|
ry: 0
|
|
};
|
|
return noteRectData;
|
|
};
|
|
const getTextObj = () => {
|
|
const testObject = {
|
|
x: 0,
|
|
y: 0,
|
|
width: 100,
|
|
height: 100,
|
|
"text-anchor": "start",
|
|
style: "#666",
|
|
textMargin: 0,
|
|
rx: 0,
|
|
ry: 0,
|
|
tspan: true
|
|
};
|
|
return testObject;
|
|
};
|
|
export {
|
|
drawBackgroundRect as a,
|
|
drawEmbeddedImage as b,
|
|
drawImage as c,
|
|
drawRect as d,
|
|
getTextObj as e,
|
|
drawText as f,
|
|
getNoteRect as g
|
|
};
|