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/stateDiagram-v2-3a9af217.js | |
parent | 69075c6fb15ae660fc3d78eb2a4dfcde1c5fba1c (diff) |
sync theme
Diffstat (limited to 'themes/blowfish/assets/lib/mermaid/stateDiagram-v2-3a9af217.js')
-rw-r--r-- | themes/blowfish/assets/lib/mermaid/stateDiagram-v2-3a9af217.js | 337 |
1 files changed, 0 insertions, 337 deletions
diff --git a/themes/blowfish/assets/lib/mermaid/stateDiagram-v2-3a9af217.js b/themes/blowfish/assets/lib/mermaid/stateDiagram-v2-3a9af217.js deleted file mode 100644 index 0d3fd66..0000000 --- a/themes/blowfish/assets/lib/mermaid/stateDiagram-v2-3a9af217.js +++ /dev/null @@ -1,337 +0,0 @@ -import { D as DEFAULT_DIAGRAM_DIRECTION, a as DEFAULT_STATE_TYPE, b as DIVIDER_TYPE, S as STMT_RELATION, c as STMT_STATE, e as DEFAULT_NESTED_DOC_DIR, p as parser, d as db, s as styles } from "./styles-4b120b8d.js"; -import { G as Graph } from "./layout-47a4d1ce.js"; -import { l as log, g as getConfig, f as select, e as common } from "./config-b4fa35bb.js"; -import { r as render } from "./index-70db0a05.js"; -import { c as configureSvgSize } from "./setupGraphViewbox-16a0ba81.js"; -import { u as utils } from "./utils-872dfc50.js"; -import "./mermaidAPI-a31c2c80.js"; -import "./errorRenderer-ebf63d74.js"; -import "./commonDb-7f40ab5a.js"; -import "./isPlainObject-53794b96.js"; -import "./array-b7dcf730.js"; -import "./constant-b644328d.js"; -import "./edges-3b4dbffd.js"; -import "./svgDraw-aae20718.js"; -const SHAPE_STATE = "rect"; -const SHAPE_STATE_WITH_DESC = "rectWithTitle"; -const SHAPE_START = "start"; -const SHAPE_END = "end"; -const SHAPE_DIVIDER = "divider"; -const SHAPE_GROUP = "roundedWithTitle"; -const SHAPE_NOTE = "note"; -const SHAPE_NOTEGROUP = "noteGroup"; -const CSS_DIAGRAM = "statediagram"; -const CSS_STATE = "state"; -const CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`; -const CSS_EDGE = "transition"; -const CSS_NOTE = "note"; -const CSS_NOTE_EDGE = "note-edge"; -const CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`; -const CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`; -const CSS_CLUSTER = "cluster"; -const CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`; -const CSS_CLUSTER_ALT = "cluster-alt"; -const CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`; -const PARENT = "parent"; -const NOTE = "note"; -const DOMID_STATE = "state"; -const DOMID_TYPE_SPACER = "----"; -const NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`; -const PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`; -const G_EDGE_STYLE = "fill:none"; -const G_EDGE_ARROWHEADSTYLE = "fill: #333"; -const G_EDGE_LABELPOS = "c"; -const G_EDGE_LABELTYPE = "text"; -const G_EDGE_THICKNESS = "normal"; -let nodeDb = {}; -let graphItemCount = 0; -const setConf = function(cnf) { - const keys = Object.keys(cnf); - for (const key of keys) { - cnf[key]; - } -}; -const getClasses = function(text, diagramObj) { - log.trace("Extracting classes"); - diagramObj.db.clear(); - try { - diagramObj.parser.parse(text); - diagramObj.db.extract(diagramObj.db.getRootDocV2()); - return diagramObj.db.getClasses(); - } catch (e) { - return e; - } -}; -function getClassesFromDbInfo(dbInfoItem) { - if (dbInfoItem === void 0 || dbInfoItem === null) { - return ""; - } else { - if (dbInfoItem.classes) { - return dbInfoItem.classes.join(" "); - } else { - return ""; - } - } -} -function stateDomId(itemId = "", counter = 0, type = "", typeSpacer = DOMID_TYPE_SPACER) { - const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : ""; - return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`; -} -const setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => { - const itemId = parsedItem.id; - const classStr = getClassesFromDbInfo(diagramStates[itemId]); - if (itemId !== "root") { - let shape = SHAPE_STATE; - if (parsedItem.start === true) { - shape = SHAPE_START; - } - if (parsedItem.start === false) { - shape = SHAPE_END; - } - if (parsedItem.type !== DEFAULT_STATE_TYPE) { - shape = parsedItem.type; - } - if (!nodeDb[itemId]) { - nodeDb[itemId] = { - id: itemId, - shape, - description: common.sanitizeText(itemId, getConfig()), - classes: `${classStr} ${CSS_DIAGRAM_STATE}` - }; - } - const newNode = nodeDb[itemId]; - if (parsedItem.description) { - if (Array.isArray(newNode.description)) { - newNode.shape = SHAPE_STATE_WITH_DESC; - newNode.description.push(parsedItem.description); - } else { - if (newNode.description.length > 0) { - newNode.shape = SHAPE_STATE_WITH_DESC; - if (newNode.description === itemId) { - newNode.description = [parsedItem.description]; - } else { - newNode.description = [newNode.description, parsedItem.description]; - } - } else { - newNode.shape = SHAPE_STATE; - newNode.description = parsedItem.description; - } - } - newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig()); - } - if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) { - newNode.shape = SHAPE_STATE; - } - if (!newNode.type && parsedItem.doc) { - log.info("Setting cluster for ", itemId, getDir(parsedItem)); - newNode.type = "group"; - newNode.dir = getDir(parsedItem); - newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP; - newNode.classes = newNode.classes + " " + CSS_DIAGRAM_CLUSTER + " " + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : ""); - } - const nodeData = { - labelStyle: "", - shape: newNode.shape, - labelText: newNode.description, - // typeof newNode.description === 'object' - // ? newNode.description[0] - // : newNode.description, - classes: newNode.classes, - style: "", - //styles.style, - id: itemId, - dir: newNode.dir, - domId: stateDomId(itemId, graphItemCount), - type: newNode.type, - padding: 15 - //getConfig().flowchart.padding - }; - if (parsedItem.note) { - const noteData = { - labelStyle: "", - shape: SHAPE_NOTE, - labelText: parsedItem.note.text, - classes: CSS_DIAGRAM_NOTE, - style: "", - // styles.style, - id: itemId + NOTE_ID + "-" + graphItemCount, - domId: stateDomId(itemId, graphItemCount, NOTE), - type: newNode.type, - padding: 15 - //getConfig().flowchart.padding - }; - const groupData = { - labelStyle: "", - shape: SHAPE_NOTEGROUP, - labelText: parsedItem.note.text, - classes: newNode.classes, - style: "", - // styles.style, - id: itemId + PARENT_ID, - domId: stateDomId(itemId, graphItemCount, PARENT), - type: "group", - padding: 0 - //getConfig().flowchart.padding - }; - graphItemCount++; - const parentNodeId = itemId + PARENT_ID; - g.setNode(parentNodeId, groupData); - g.setNode(noteData.id, noteData); - g.setNode(itemId, nodeData); - g.setParent(itemId, parentNodeId); - g.setParent(noteData.id, parentNodeId); - let from = itemId; - let to = noteData.id; - if (parsedItem.note.position === "left of") { - from = noteData.id; - to = itemId; - } - g.setEdge(from, to, { - arrowhead: "none", - arrowType: "", - style: G_EDGE_STYLE, - labelStyle: "", - classes: CSS_EDGE_NOTE_EDGE, - arrowheadStyle: G_EDGE_ARROWHEADSTYLE, - labelpos: G_EDGE_LABELPOS, - labelType: G_EDGE_LABELTYPE, - thickness: G_EDGE_THICKNESS - }); - } else { - g.setNode(itemId, nodeData); - } - } - if (parent && parent.id !== "root") { - log.trace("Setting node ", itemId, " to be child of its parent ", parent.id); - g.setParent(itemId, parent.id); - } - if (parsedItem.doc) { - log.trace("Adding nodes children "); - setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag); - } -}; -const setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => { - log.trace("items", doc); - doc.forEach((item) => { - switch (item.stmt) { - case STMT_STATE: - setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag); - break; - case DEFAULT_STATE_TYPE: - setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag); - break; - case STMT_RELATION: - { - setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag); - setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag); - const edgeData = { - id: "edge" + graphItemCount, - arrowhead: "normal", - arrowTypeEnd: "arrow_barb", - style: G_EDGE_STYLE, - labelStyle: "", - label: common.sanitizeText(item.description, getConfig()), - arrowheadStyle: G_EDGE_ARROWHEADSTYLE, - labelpos: G_EDGE_LABELPOS, - labelType: G_EDGE_LABELTYPE, - thickness: G_EDGE_THICKNESS, - classes: CSS_EDGE - }; - g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount); - graphItemCount++; - } - break; - } - }); -}; -const getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => { - let dir = defaultDir; - if (parsedItem.doc) { - for (let i = 0; i < parsedItem.doc.length; i++) { - const parsedItemDoc = parsedItem.doc[i]; - if (parsedItemDoc.stmt === "dir") { - dir = parsedItemDoc.value; - } - } - } - return dir; -}; -const draw = function(text, id, _version, diag) { - log.info("Drawing state diagram (v2)", id); - nodeDb = {}; - let dir = diag.db.getDirection(); - if (dir === void 0) { - dir = DEFAULT_DIAGRAM_DIRECTION; - } - const { securityLevel, state: conf } = getConfig(); - const nodeSpacing = conf.nodeSpacing || 50; - const rankSpacing = conf.rankSpacing || 50; - log.info(diag.db.getRootDocV2()); - diag.db.extract(diag.db.getRootDocV2()); - log.info(diag.db.getRootDocV2()); - const diagramStates = diag.db.getStates(); - const g = new Graph({ - multigraph: true, - compound: true - }).setGraph({ - rankdir: getDir(diag.db.getRootDocV2()), - nodesep: nodeSpacing, - ranksep: rankSpacing, - marginx: 8, - marginy: 8 - }).setDefaultEdgeLabel(function() { - return {}; - }); - setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true); - 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}"]`); - const element = root.select("#" + id + " g"); - render(element, g, ["barb"], CSS_DIAGRAM, id); - const padding = 8; - utils.insertTitle(svg, "statediagramTitleText", conf.titleTopMargin, diag.db.getDiagramTitle()); - const bounds = svg.node().getBBox(); - const width = bounds.width + padding * 2; - const height = bounds.height + padding * 2; - svg.attr("class", CSS_DIAGRAM); - const svgBounds = svg.node().getBBox(); - configureSvgSize(svg, height, width, conf.useMaxWidth); - const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`; - log.debug(`viewBox ${vBox}`); - svg.attr("viewBox", vBox); - const labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); - for (const label of labels) { - const dim = label.getBBox(); - const rect = document.createElementNS("http://www.w3.org/2000/svg", SHAPE_STATE); - rect.setAttribute("rx", 0); - rect.setAttribute("ry", 0); - rect.setAttribute("width", dim.width); - rect.setAttribute("height", dim.height); - label.insertBefore(rect, label.firstChild); - } -}; -const renderer = { - setConf, - getClasses, - draw -}; -const diagram = { - parser, - db, - renderer, - styles, - init: (cnf) => { - if (!cnf.state) { - cnf.state = {}; - } - cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; - db.clear(); - } -}; -export { - diagram -}; -//# sourceMappingURL=stateDiagram-v2-3a9af217.js.map |