summaryrefslogtreecommitdiff
path: root/themes/blowfish/assets/lib/mermaid/classDiagram-ef563e47.js
diff options
context:
space:
mode:
Diffstat (limited to 'themes/blowfish/assets/lib/mermaid/classDiagram-ef563e47.js')
-rw-r--r--themes/blowfish/assets/lib/mermaid/classDiagram-ef563e47.js149
1 files changed, 149 insertions, 0 deletions
diff --git a/themes/blowfish/assets/lib/mermaid/classDiagram-ef563e47.js b/themes/blowfish/assets/lib/mermaid/classDiagram-ef563e47.js
new file mode 100644
index 0000000..ac2f595
--- /dev/null
+++ b/themes/blowfish/assets/lib/mermaid/classDiagram-ef563e47.js
@@ -0,0 +1,149 @@
+import { p as parser, d as db, s as styles } from "./styles-b8bd0053.js";
+import { select } from "d3";
+import { layout } from "dagre-d3-es/src/dagre/index.js";
+import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
+import { g as getConfig, l as log } from "./config-389b86ff.js";
+import { s as svgDraw } from "./svgDraw-6a237a99.js";
+import { c as configureSvgSize } from "./setupGraphViewbox-e35e4124.js";
+import "./utils-d5eeff82.js";
+import "@braintree/sanitize-url";
+import "./commonDb-2ace122b.js";
+import "lodash-es/memoize.js";
+import "./mermaidAPI-b17c596d.js";
+import "stylis";
+import "./errorRenderer-d05351b9.js";
+import "dompurify";
+import "lodash-es/isEmpty.js";
+import "dayjs";
+import "khroma";
+let idCache = {};
+const padding = 20;
+const getGraphId = function(label) {
+ const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);
+ if (foundEntry) {
+ return foundEntry[0];
+ }
+};
+const insertMarkers = function(elem) {
+ elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
+ elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
+ elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
+ elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
+};
+const draw = function(text, id, _version, diagObj) {
+ const conf = getConfig().class;
+ idCache = {};
+ log.info("Rendering diagram " + text);
+ const securityLevel = getConfig().securityLevel;
+ let sandboxElement;
+ if (securityLevel === "sandbox") {
+ sandboxElement = select("#i" + id);
+ }
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
+ const diagram2 = root.select(`[id='${id}']`);
+ insertMarkers(diagram2);
+ const g = new graphlib.Graph({
+ multigraph: true
+ });
+ g.setGraph({
+ isMultiGraph: true
+ });
+ g.setDefaultEdgeLabel(function() {
+ return {};
+ });
+ const classes = diagObj.db.getClasses();
+ const keys = Object.keys(classes);
+ for (const key of keys) {
+ const classDef = classes[key];
+ const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj);
+ idCache[node.id] = node;
+ g.setNode(node.id, node);
+ log.info("Org height: " + node.height);
+ }
+ const relations = diagObj.db.getRelations();
+ relations.forEach(function(relation) {
+ log.info(
+ "tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)
+ );
+ g.setEdge(
+ getGraphId(relation.id1),
+ getGraphId(relation.id2),
+ {
+ relation
+ },
+ relation.title || "DEFAULT"
+ );
+ });
+ const notes = diagObj.db.getNotes();
+ notes.forEach(function(note) {
+ log.debug(`Adding note: ${JSON.stringify(note)}`);
+ const node = svgDraw.drawNote(diagram2, note, conf, diagObj);
+ idCache[node.id] = node;
+ g.setNode(node.id, node);
+ if (note.class && note.class in classes) {
+ g.setEdge(
+ note.id,
+ getGraphId(note.class),
+ {
+ relation: {
+ id1: note.id,
+ id2: note.class,
+ relation: {
+ type1: "none",
+ type2: "none",
+ lineType: 10
+ }
+ }
+ },
+ "DEFAULT"
+ );
+ }
+ });
+ layout(g);
+ g.nodes().forEach(function(v) {
+ if (v !== void 0 && g.node(v) !== void 0) {
+ log.debug("Node " + v + ": " + JSON.stringify(g.node(v)));
+ root.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr(
+ "transform",
+ "translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )"
+ );
+ }
+ });
+ g.edges().forEach(function(e) {
+ if (e !== void 0 && g.edge(e) !== void 0) {
+ log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)));
+ svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj);
+ }
+ });
+ const svgBounds = diagram2.node().getBBox();
+ const width = svgBounds.width + padding * 2;
+ const height = svgBounds.height + padding * 2;
+ configureSvgSize(diagram2, height, width, conf.useMaxWidth);
+ const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;
+ log.debug(`viewBox ${vBox}`);
+ diagram2.attr("viewBox", vBox);
+};
+const renderer = {
+ draw
+};
+const diagram = {
+ parser,
+ db,
+ renderer,
+ styles,
+ init: (cnf) => {
+ if (!cnf.class) {
+ cnf.class = {};
+ }
+ cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
+ db.clear();
+ }
+};
+export {
+ diagram
+};
+//# sourceMappingURL=classDiagram-ef563e47.js.map