diff options
author | Christoph Cullmann <christoph@cullmann.io> | 2024-07-15 22:27:55 +0200 |
---|---|---|
committer | Christoph Cullmann <christoph@cullmann.io> | 2024-07-15 22:27:55 +0200 |
commit | 3be5285488090ab70254b3080e33e64e6c702d2c (patch) | |
tree | 1e54462f560fd759b5be13d5ecfe1fa5c2c832ed /themes/blowfish/assets/lib/mermaid/svgDraw-9e97e6db.js | |
parent | 69075c6fb15ae660fc3d78eb2a4dfcde1c5fba1c (diff) |
sync theme
Diffstat (limited to 'themes/blowfish/assets/lib/mermaid/svgDraw-9e97e6db.js')
-rw-r--r-- | themes/blowfish/assets/lib/mermaid/svgDraw-9e97e6db.js | 309 |
1 files changed, 0 insertions, 309 deletions
diff --git a/themes/blowfish/assets/lib/mermaid/svgDraw-9e97e6db.js b/themes/blowfish/assets/lib/mermaid/svgDraw-9e97e6db.js deleted file mode 100644 index 6dc02a9..0000000 --- a/themes/blowfish/assets/lib/mermaid/svgDraw-9e97e6db.js +++ /dev/null @@ -1,309 +0,0 @@ -import { l as log, v as parseGenericTypes } from "./config-b4fa35bb.js"; -import { E as curveBasis, u as utils } from "./utils-872dfc50.js"; -import { l as line } from "./isPlainObject-91dd8bc9.js"; -let edgeCount = 0; -const drawEdge = function(elem, path, relation, conf, diagObj) { - const getRelationType = function(type) { - switch (type) { - case diagObj.db.relationType.AGGREGATION: - return "aggregation"; - case diagObj.db.relationType.EXTENSION: - return "extension"; - case diagObj.db.relationType.COMPOSITION: - return "composition"; - case diagObj.db.relationType.DEPENDENCY: - return "dependency"; - case diagObj.db.relationType.LOLLIPOP: - return "lollipop"; - } - }; - path.points = path.points.filter((p) => !Number.isNaN(p.y)); - const lineData = path.points; - const lineFunction = line().x(function(d) { - return d.x; - }).y(function(d) { - return d.y; - }).curve(curveBasis); - const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "relation"); - let url = ""; - if (conf.arrowMarkerAbsolute) { - url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, "\\("); - url = url.replace(/\)/g, "\\)"); - } - if (relation.relation.lineType == 1) { - svgPath.attr("class", "relation dashed-line"); - } - if (relation.relation.lineType == 10) { - svgPath.attr("class", "relation dotted-line"); - } - if (relation.relation.type1 !== "none") { - svgPath.attr( - "marker-start", - "url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)" - ); - } - if (relation.relation.type2 !== "none") { - svgPath.attr( - "marker-end", - "url(" + url + "#" + getRelationType(relation.relation.type2) + "End)" - ); - } - let x, y; - const l = path.points.length; - let labelPosition = utils.calcLabelPosition(path.points); - x = labelPosition.x; - y = labelPosition.y; - let p1_card_x, p1_card_y; - let p2_card_x, p2_card_y; - if (l % 2 !== 0 && l > 1) { - let cardinality_1_point = utils.calcCardinalityPosition( - relation.relation.type1 !== "none", - path.points, - path.points[0] - ); - let cardinality_2_point = utils.calcCardinalityPosition( - relation.relation.type2 !== "none", - path.points, - path.points[l - 1] - ); - log.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point)); - log.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point)); - p1_card_x = cardinality_1_point.x; - p1_card_y = cardinality_1_point.y; - p2_card_x = cardinality_2_point.x; - p2_card_y = cardinality_2_point.y; - } - if (relation.title !== void 0) { - const g = elem.append("g").attr("class", "classLabel"); - const label = g.append("text").attr("class", "label").attr("x", x).attr("y", y).attr("fill", "red").attr("text-anchor", "middle").text(relation.title); - window.label = label; - const bounds = label.node().getBBox(); - g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds.x - conf.padding / 2).attr("y", bounds.y - conf.padding / 2).attr("width", bounds.width + conf.padding).attr("height", bounds.height + conf.padding); - } - log.info("Rendering relation " + JSON.stringify(relation)); - if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") { - const g = elem.append("g").attr("class", "cardinality"); - g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1); - } - if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") { - const g = elem.append("g").attr("class", "cardinality"); - g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2); - } - edgeCount++; -}; -const drawClass = function(elem, classDef, conf, diagObj) { - log.debug("Rendering class ", classDef, conf); - const id = classDef.id; - const classInfo = { - id, - label: classDef.id, - width: 0, - height: 0 - }; - const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id)).attr("class", "classGroup"); - let title; - if (classDef.link) { - title = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); - } else { - title = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); - } - let isFirst = true; - classDef.annotations.forEach(function(member) { - const titleText2 = title.append("tspan").text("«" + member + "»"); - if (!isFirst) { - titleText2.attr("dy", conf.textHeight); - } - isFirst = false; - }); - let classTitleString = classDef.id; - if (classDef.type !== void 0 && classDef.type !== "") { - classTitleString += "<" + classDef.type + ">"; - } - const classTitle = title.append("tspan").text(classTitleString).attr("class", "title"); - if (!isFirst) { - classTitle.attr("dy", conf.textHeight); - } - const titleHeight = title.node().getBBox().height; - const membersLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2).attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2); - const members = g.append("text").attr("x", conf.padding).attr("y", titleHeight + conf.dividerMargin + conf.textHeight).attr("fill", "white").attr("class", "classText"); - isFirst = true; - classDef.members.forEach(function(member) { - addTspan(members, member, isFirst, conf); - isFirst = false; - }); - const membersBox = members.node().getBBox(); - const methodsLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr("y2", conf.padding + titleHeight + conf.dividerMargin + membersBox.height); - const methods = g.append("text").attr("x", conf.padding).attr("y", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr("fill", "white").attr("class", "classText"); - isFirst = true; - classDef.methods.forEach(function(method) { - addTspan(methods, method, isFirst, conf); - isFirst = false; - }); - const classBox = g.node().getBBox(); - var cssClassStr = " "; - if (classDef.cssClasses.length > 0) { - cssClassStr = cssClassStr + classDef.cssClasses.join(" "); - } - const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf.padding).attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr("class", cssClassStr); - const rectWidth = rect.node().getBBox().width; - title.node().childNodes.forEach(function(x) { - x.setAttribute("x", (rectWidth - x.getBBox().width) / 2); - }); - if (classDef.tooltip) { - title.insert("title").text(classDef.tooltip); - } - membersLine.attr("x2", rectWidth); - methodsLine.attr("x2", rectWidth); - classInfo.width = rectWidth; - classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin; - return classInfo; -}; -const drawNote = function(elem, note, conf, diagObj) { - log.debug("Rendering note ", note, conf); - const id = note.id; - const noteInfo = { - id, - text: note.text, - width: 0, - height: 0 - }; - const g = elem.append("g").attr("id", id).attr("class", "classGroup"); - let text = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); - const lines = JSON.parse(`"${note.text}"`).split("\n"); - lines.forEach(function(line2) { - log.debug(`Adding line: ${line2}`); - text.append("tspan").text(line2).attr("class", "title").attr("dy", conf.textHeight); - }); - const noteBox = g.node().getBBox(); - const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf.padding).attr( - "height", - noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin - ); - const rectWidth = rect.node().getBBox().width; - text.node().childNodes.forEach(function(x) { - x.setAttribute("x", (rectWidth - x.getBBox().width) / 2); - }); - noteInfo.width = rectWidth; - noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin; - return noteInfo; -}; -const parseMember = function(text) { - const fieldRegEx = /^([#+~-])?(\w+)(~\w+~|\[])?\s+(\w+) *([$*])?$/; - const methodRegEx = /^([#+|~-])?(\w+) *\( *(.*)\) *([$*])? *(\w*[[\]|~]*\s*\w*~?)$/; - let fieldMatch = text.match(fieldRegEx); - let methodMatch = text.match(methodRegEx); - if (fieldMatch && !methodMatch) { - return buildFieldDisplay(fieldMatch); - } else if (methodMatch) { - return buildMethodDisplay(methodMatch); - } else { - return buildLegacyDisplay(text); - } -}; -const buildFieldDisplay = function(parsedText) { - let cssStyle = ""; - let displayText = ""; - try { - let visibility = parsedText[1] ? parsedText[1].trim() : ""; - let fieldType = parsedText[2] ? parsedText[2].trim() : ""; - let genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : ""; - let fieldName = parsedText[4] ? parsedText[4].trim() : ""; - let classifier = parsedText[5] ? parsedText[5].trim() : ""; - displayText = visibility + fieldType + genericType + " " + fieldName; - cssStyle = parseClassifier(classifier); - } catch (err) { - displayText = parsedText; - } - return { - displayText, - cssStyle - }; -}; -const buildMethodDisplay = function(parsedText) { - let cssStyle = ""; - let displayText = ""; - try { - let visibility = parsedText[1] ? parsedText[1].trim() : ""; - let methodName = parsedText[2] ? parsedText[2].trim() : ""; - let parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : ""; - let classifier = parsedText[4] ? parsedText[4].trim() : ""; - let returnType = parsedText[5] ? " : " + parseGenericTypes(parsedText[5]).trim() : ""; - displayText = visibility + methodName + "(" + parameters + ")" + returnType; - cssStyle = parseClassifier(classifier); - } catch (err) { - displayText = parsedText; - } - return { - displayText, - cssStyle - }; -}; -const buildLegacyDisplay = function(text) { - let displayText = ""; - let cssStyle = ""; - let returnType = ""; - let methodStart = text.indexOf("("); - let methodEnd = text.indexOf(")"); - if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) { - let visibility = ""; - let methodName = ""; - let firstChar = text.substring(0, 1); - if (firstChar.match(/\w/)) { - methodName = text.substring(0, methodStart).trim(); - } else { - if (firstChar.match(/[#+~-]/)) { - visibility = firstChar; - } - methodName = text.substring(1, methodStart).trim(); - } - const parameters = text.substring(methodStart + 1, methodEnd); - text.substring(methodEnd + 1, 1); - cssStyle = parseClassifier(text.substring(methodEnd + 1, methodEnd + 2)); - displayText = visibility + methodName + "(" + parseGenericTypes(parameters.trim()) + ")"; - if (methodEnd < text.length) { - returnType = text.substring(methodEnd + 2).trim(); - if (returnType !== "") { - returnType = " : " + parseGenericTypes(returnType); - displayText += returnType; - } - } - } else { - displayText = parseGenericTypes(text); - } - return { - displayText, - cssStyle - }; -}; -const addTspan = function(textEl, txt, isFirst, conf) { - let member = parseMember(txt); - const tSpan = textEl.append("tspan").attr("x", conf.padding).text(member.displayText); - if (member.cssStyle !== "") { - tSpan.attr("style", member.cssStyle); - } - if (!isFirst) { - tSpan.attr("dy", conf.textHeight); - } -}; -const parseClassifier = function(classifier) { - switch (classifier) { - case "*": - return "font-style:italic;"; - case "$": - return "text-decoration:underline;"; - default: - return ""; - } -}; -const svgDraw = { - drawClass, - drawEdge, - drawNote, - parseMember -}; -export { - parseMember as p, - svgDraw as s -}; -//# sourceMappingURL=svgDraw-9e97e6db.js.map |