text/js/styles-c10674c1-D5w-rKcB.ch...

1 строка
29 KiB
Plaintext

{"version":3,"file":"styles-c10674c1-D5w-rKcB.chunk.mjs","sources":["../node_modules/d3-selection/src/selectAll.js","../node_modules/dagre-d3-es/src/dagre-js/util.js","../node_modules/dagre-d3-es/src/dagre-js/label/add-html-label.js","../node_modules/mermaid/dist/styles-c10674c1.js"],"sourcesContent":["import array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([array(selector)], root);\n}\n","import * as _ from 'lodash-es';\n\n// Public utility functions\nexport { isSubgraph, edgeToId, applyStyle, applyClass, applyTransition };\n\n/*\n * Returns true if the specified node in the graph is a subgraph node. A\n * subgraph node is one that contains other nodes.\n */\nfunction isSubgraph(g, v) {\n return !!g.children(v).length;\n}\n\nfunction edgeToId(e) {\n return escapeId(e.v) + ':' + escapeId(e.w) + ':' + escapeId(e.name);\n}\n\nvar ID_DELIM = /:/g;\nfunction escapeId(str) {\n return str ? String(str).replace(ID_DELIM, '\\\\:') : '';\n}\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\nfunction applyClass(dom, classFn, otherClasses) {\n if (classFn) {\n dom.attr('class', classFn).attr('class', otherClasses + ' ' + dom.attr('class'));\n }\n}\n\nfunction applyTransition(selection, g) {\n var graph = g.graph();\n\n if (_.isPlainObject(graph)) {\n var transition = graph.transition;\n if (_.isFunction(transition)) {\n return transition(selection);\n }\n }\n\n return selection;\n}\n","import * as util from '../util.js';\n\nexport { addHtmlLabel };\n\nfunction addHtmlLabel(root, node) {\n var fo = root.append('foreignObject').attr('width', '100000');\n\n var div = fo.append('xhtml:div');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n var label = node.label;\n switch (typeof label) {\n case 'function':\n div.insert(label);\n break;\n case 'object':\n // Currently we assume this is a DOM object.\n div.insert(function () {\n return label;\n });\n break;\n default:\n div.html(label);\n }\n\n util.applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n\n var client = div.node().getBoundingClientRect();\n fo.attr('width', client.width).attr('height', client.height);\n\n return fo;\n}\n","import * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { curveLinear, select, selectAll } from \"d3\";\nimport { k as getStylesFromArray, l as log, m as evaluate, c as getConfig, e as common, r as renderKatex, n as interpolateToCurve, u as utils, o as setupGraphViewbox } from \"./mermaid-b5860b54.js\";\nimport { r as render } from \"./index-3862675e.js\";\nimport { addHtmlLabel } from \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport * as khroma from \"khroma\";\nconst conf = {};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst addVertices = async function(vert, g, svgId, root, doc, diagObj) {\n const svg = root.select(`[id=\"${svgId}\"]`);\n const keys = Object.keys(vert);\n for (const id of keys) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n const styles = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n let vertexNode;\n log.info(\"vertex\", vertex, vertex.labelType);\n if (vertex.labelType === \"markdown\") {\n log.info(\"vertex\", vertex, vertex.labelType);\n } else {\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const node = {\n label: vertexText\n };\n vertexNode = addHtmlLabel(svg, node).node();\n vertexNode.parentNode.removeChild(vertexNode);\n } else {\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", styles.labelStyle.replace(\"color:\", \"fill:\"));\n const rows = vertexText.split(common.lineBreakRegex);\n for (const row of rows) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"1\");\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n vertexNode = svgLabel;\n }\n }\n let radius = 0;\n let _shape = \"\";\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n case \"doublecircle\":\n _shape = \"doublecircle\";\n break;\n default:\n _shape = \"rect\";\n }\n const labelText = await renderKatex(vertexText, getConfig());\n g.setNode(vertex.id, {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText,\n labelType: vertex.labelType,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n link: vertex.link,\n linkTarget: vertex.linkTarget,\n tooltip: diagObj.db.getTooltip(vertex.id) || \"\",\n domId: diagObj.db.lookUpDomId(vertex.id),\n haveCallback: vertex.haveCallback,\n width: vertex.type === \"group\" ? 500 : void 0,\n dir: vertex.dir,\n type: vertex.type,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n });\n log.info(\"setNode\", {\n labelStyle: styles.labelStyle,\n labelType: vertex.labelType,\n shape: _shape,\n labelText,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n domId: diagObj.db.lookUpDomId(vertex.id),\n width: vertex.type === \"group\" ? 500 : void 0,\n type: vertex.type,\n dir: vertex.dir,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n });\n }\n};\nconst addEdges = async function(edges, g, diagObj) {\n log.info(\"abc78 edges = \", edges);\n let cnt = 0;\n let linkIdCnt = {};\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n for (const edge of edges) {\n cnt++;\n const linkIdBase = \"L-\" + edge.start + \"-\" + edge.end;\n if (linkIdCnt[linkIdBase] === void 0) {\n linkIdCnt[linkIdBase] = 0;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n } else {\n linkIdCnt[linkIdBase]++;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n }\n let linkId = linkIdBase + \"-\" + linkIdCnt[linkIdBase];\n log.info(\"abc78 new link id to be used is\", linkIdBase, linkId, linkIdCnt[linkIdBase]);\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = { style: \"\", labelStyle: \"\" };\n edgeData.minlen = edge.length || 1;\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n edgeData.arrowTypeStart = \"arrow_open\";\n edgeData.arrowTypeEnd = \"arrow_open\";\n switch (edge.type) {\n case \"double_arrow_cross\":\n edgeData.arrowTypeStart = \"arrow_cross\";\n case \"arrow_cross\":\n edgeData.arrowTypeEnd = \"arrow_cross\";\n break;\n case \"double_arrow_point\":\n edgeData.arrowTypeStart = \"arrow_point\";\n case \"arrow_point\":\n edgeData.arrowTypeEnd = \"arrow_point\";\n break;\n case \"double_arrow_circle\":\n edgeData.arrowTypeStart = \"arrow_circle\";\n case \"arrow_circle\":\n edgeData.arrowTypeEnd = \"arrow_circle\";\n break;\n }\n let style = \"\";\n let labelStyle = \"\";\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none;\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"solid\";\n break;\n case \"dotted\":\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"dotted\";\n edgeData.style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n edgeData.thickness = \"thick\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 3.5px;fill:none;\";\n break;\n case \"invisible\":\n edgeData.thickness = \"invisible\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 0;fill:none;\";\n break;\n }\n if (edge.style !== void 0) {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n }\n edgeData.style = edgeData.style += style;\n edgeData.labelStyle = edgeData.labelStyle += labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n }\n edgeData.labelType = edge.labelType;\n edgeData.label = await renderKatex(edge.text.replace(common.lineBreakRegex, \"\\n\"), getConfig());\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none;\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n edgeData.id = linkId;\n edgeData.classes = \"flowchart-link \" + linkNameStart + \" \" + linkNameEnd;\n g.setEdge(edge.start, edge.end, edgeData, cnt);\n }\n};\nconst getClasses = function(text, diagObj) {\n return diagObj.db.getClasses();\n};\nconst draw = async function(text, id, _version, diagObj) {\n log.info(\"Drawing flowchart\");\n let dir = diagObj.db.getDirection();\n if (dir === void 0) {\n dir = \"TD\";\n }\n const { securityLevel, flowchart: conf2 } = getConfig();\n const nodeSpacing = conf2.nodeSpacing || 50;\n const rankSpacing = conf2.rankSpacing || 50;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 0,\n marginy: 0\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n log.info(\"Subgraphs - \", subGraphs);\n for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {\n subG = subGraphs[i2];\n log.info(\"Subgraph - \", subG);\n diagObj.db.addVertex(\n subG.id,\n { text: subG.title, type: subG.labelType },\n \"group\",\n void 0,\n subG.classes,\n subG.dir\n );\n }\n const vert = diagObj.db.getVertices();\n const edges = diagObj.db.getEdges();\n log.info(\"Edges\", edges);\n let i = 0;\n for (i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n selectAll(\"cluster\").append(\"text\");\n for (let j = 0; j < subG.nodes.length; j++) {\n log.info(\"Setting up subgraphs\", subG.nodes[j], subG.id);\n g.setParent(subG.nodes[j], subG.id);\n }\n }\n await addVertices(vert, g, id, root, doc, diagObj);\n await addEdges(edges, g);\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(element, g, [\"point\", \"circle\", \"cross\"], \"flowchart\", id);\n utils.insertTitle(svg, \"flowchartTitleText\", conf2.titleTopMargin, diagObj.db.getDiagramTitle());\n setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);\n diagObj.db.indexNodes(\"subGraph\" + i);\n if (!conf2.htmlLabels) {\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n const keys = Object.keys(vert);\n keys.forEach(function(key) {\n const vertex = vert[key];\n if (vertex.link) {\n const node = select(\"#\" + id + ' [id=\"' + key + '\"]');\n if (node) {\n const link = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"class\", vertex.classes.join(\" \"));\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"href\", vertex.link);\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"rel\", \"noopener\");\n if (securityLevel === \"sandbox\") {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", \"_top\");\n } else if (vertex.linkTarget) {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", vertex.linkTarget);\n }\n const linkNode = node.insert(function() {\n return link;\n }, \":first-child\");\n const shape = node.select(\".label-container\");\n if (shape) {\n linkNode.append(function() {\n return shape.node();\n });\n }\n const label = node.select(\".label\");\n if (label) {\n linkNode.append(function() {\n return label.node();\n });\n }\n }\n }\n });\n};\nconst flowRendererV2 = {\n setConf,\n addVertices,\n addEdges,\n getClasses,\n draw\n};\nconst fade = (color, opacity) => {\n const channel = khroma.channel;\n const r = channel(color, \"r\");\n const g = channel(color, \"g\");\n const b = channel(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n};\nconst getStyles = (options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span,p {\n color: ${options.titleColor};\n }\n\n .label text,span,p {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .katex path {\n fill: #000;\n stroke: #000;\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${fade(options.edgeLabelBackground, 0.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${options.clusterBkg};\n stroke: ${options.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span,p {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n`;\nconst flowStyles = getStyles;\nexport {\n flowStyles as a,\n flowRendererV2 as f\n};\n"],"names":["selectAll","selector","Selection","array","root","isSubgraph","g","v","edgeToId","escapeId","ID_DELIM","str","applyStyle","dom","styleFn","applyClass","classFn","otherClasses","applyTransition","selection","graph","_.isPlainObject","transition","_.isFunction","addHtmlLabel","node","fo","div","label","util.applyStyle","client","conf","setConf","cnf","keys","key","addVertices","vert","svgId","doc","diagObj","svg","id","vertex","classStr","styles","getStylesFromArray","vertexText","vertexNode","log","evaluate","getConfig","svgLabel","rows","common","row","tspan","radius","_shape","labelText","renderKatex","addEdges","edges","cnt","linkIdCnt","defaultStyle","defaultLabelStyle","defaultStyles","edge","linkIdBase","linkId","linkNameStart","linkNameEnd","edgeData","style","labelStyle","interpolateToCurve","curveLinear","getClasses","text","draw","_version","dir","securityLevel","conf2","nodeSpacing","rankSpacing","sandboxElement","select","graphlib.Graph","subG","subGraphs","i2","i","j","element","render","utils","setupGraphViewbox","labels","dim","rect","link","linkNode","shape","flowRendererV2","fade","color","opacity","channel","khroma.channel","r","b","khroma.rgba","getStyles","options","flowStyles"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}