@finos/legend-application-pure-ide-deployment 11.11.0 → 11.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ide/index.html +1 -1
- package/dist/ide/{135.js → static/135.2af0ed6c.js} +2 -2
- package/dist/ide/static/135.2af0ed6c.js.map +1 -0
- package/dist/ide/{14.js → static/14.9447a523.js} +2 -2
- package/dist/ide/static/14.9447a523.js.map +1 -0
- package/dist/ide/{144.js → static/144.56359b57.js} +1 -1
- package/dist/ide/static/144.56359b57.js.map +1 -0
- package/dist/ide/{192.js → static/192.2c9a3a4b.js} +1 -1
- package/dist/ide/static/192.2c9a3a4b.js.map +1 -0
- package/dist/ide/{196.js → static/196.dd0f3119.js} +1 -1
- package/dist/ide/static/196.dd0f3119.js.map +1 -0
- package/dist/ide/{222.js → static/222.969f20c8.js} +1 -1
- package/dist/ide/static/222.969f20c8.js.map +1 -0
- package/dist/ide/{224.js → static/224.bb7a7194.js} +1 -1
- package/dist/ide/static/224.bb7a7194.js.map +1 -0
- package/dist/ide/{246.js → static/246.4add4bf1.js} +2 -2
- package/dist/ide/static/246.4add4bf1.js.map +1 -0
- package/dist/ide/{309.js → static/309.df05f0ef.js} +2 -2
- package/dist/ide/static/309.df05f0ef.js.map +1 -0
- package/dist/ide/{32.js → static/32.1758faf0.js} +1 -1
- package/dist/ide/static/32.1758faf0.js.map +1 -0
- package/dist/ide/{327.js → static/327.fe8046d0.js} +1 -1
- package/dist/ide/static/327.fe8046d0.js.map +1 -0
- package/dist/ide/{362.js → static/362.a41dadab.js} +1 -1
- package/dist/ide/static/362.a41dadab.js.map +1 -0
- package/dist/ide/{374.js → static/374.0aa73cb9.js} +1 -1
- package/dist/ide/static/374.0aa73cb9.js.map +1 -0
- package/dist/ide/{399.js → static/399.4bd7d49b.js} +2 -2
- package/dist/ide/static/399.4bd7d49b.js.map +1 -0
- package/dist/ide/{400.js → static/400.5fa229f2.js} +1 -1
- package/dist/ide/static/400.5fa229f2.js.map +1 -0
- package/dist/ide/{404.js → static/404.7360c523.js} +1 -1
- package/dist/ide/static/404.7360c523.js.map +1 -0
- package/dist/ide/{413.js → static/413.848afa4d.js} +1 -1
- package/dist/ide/static/413.848afa4d.js.map +1 -0
- package/dist/ide/{46.js → static/46.767f2180.js} +1 -1
- package/dist/ide/static/46.767f2180.js.map +1 -0
- package/dist/ide/{471.js → static/471.d1ead9bf.js} +2 -2
- package/dist/ide/static/471.d1ead9bf.js.map +1 -0
- package/dist/ide/{481.js → static/481.be521fe4.js} +1 -1
- package/dist/ide/static/481.be521fe4.js.map +1 -0
- package/dist/ide/{578.js → static/578.d2ff5454.js} +1 -1
- package/dist/ide/static/578.d2ff5454.js.map +1 -0
- package/dist/ide/{586.js → static/586.c4953cb8.js} +1 -1
- package/dist/ide/static/586.c4953cb8.js.map +1 -0
- package/dist/ide/{616.js → static/616.dc5a1512.js} +1 -1
- package/dist/ide/static/616.dc5a1512.js.map +1 -0
- package/dist/ide/{624.js → static/624.2d11fadb.js} +1 -1
- package/dist/ide/static/624.2d11fadb.js.map +1 -0
- package/dist/ide/{636.js → static/636.4620ce27.js} +1 -1
- package/dist/ide/static/636.4620ce27.js.map +1 -0
- package/dist/ide/{817.js → static/817.6ce83b7d.js} +1 -1
- package/dist/ide/static/817.6ce83b7d.js.map +1 -0
- package/dist/ide/{837.js → static/837.5bdbaccc.js} +1 -1
- package/dist/ide/static/837.5bdbaccc.js.map +1 -0
- package/dist/ide/{909.js → static/909.35426328.js} +1 -1
- package/dist/ide/static/909.35426328.js.map +1 -0
- package/dist/ide/{923.js → static/923.1933c869.js} +1 -1
- package/dist/ide/static/923.1933c869.js.map +1 -0
- package/dist/ide/{932.js → static/932.417cc1c9.js} +1 -1
- package/dist/ide/static/932.417cc1c9.js.map +1 -0
- package/dist/ide/{947.js → static/947.b545969f.js} +2 -2
- package/dist/ide/static/947.b545969f.js.map +1 -0
- package/dist/ide/{969.js → static/969.d3cb41c2.js} +1 -1
- package/dist/ide/static/969.d3cb41c2.js.map +1 -0
- package/dist/ide/{977.js → static/977.112b9e63.js} +1 -1
- package/dist/ide/static/977.112b9e63.js.map +1 -0
- package/dist/ide/{99.js → static/99.5f870035.js} +2 -2
- package/dist/ide/static/99.5f870035.js.map +1 -0
- package/dist/ide/static/{index.e8b35023.js → index.0b1c88f5.js} +2 -2
- package/dist/ide/static/index.0b1c88f5.js.map +1 -0
- package/dist/ide/static/{index.89de1e23.css → index.0ff828b4.css} +6 -6
- package/dist/ide/static/{index.89de1e23.css.map → index.0ff828b4.css.map} +1 -1
- package/dist/ide/version.json +1 -1
- package/package.json +6 -6
- package/dist/ide/135.js.map +0 -1
- package/dist/ide/14.js.map +0 -1
- package/dist/ide/144.js.map +0 -1
- package/dist/ide/192.js.map +0 -1
- package/dist/ide/196.js.map +0 -1
- package/dist/ide/222.js.map +0 -1
- package/dist/ide/224.js.map +0 -1
- package/dist/ide/246.js.map +0 -1
- package/dist/ide/309.js.map +0 -1
- package/dist/ide/32.js.map +0 -1
- package/dist/ide/327.js.map +0 -1
- package/dist/ide/362.js.map +0 -1
- package/dist/ide/374.js.map +0 -1
- package/dist/ide/399.js.map +0 -1
- package/dist/ide/400.js.map +0 -1
- package/dist/ide/404.js.map +0 -1
- package/dist/ide/413.js.map +0 -1
- package/dist/ide/46.js.map +0 -1
- package/dist/ide/471.js.map +0 -1
- package/dist/ide/481.js.map +0 -1
- package/dist/ide/578.js.map +0 -1
- package/dist/ide/586.js.map +0 -1
- package/dist/ide/616.js.map +0 -1
- package/dist/ide/624.js.map +0 -1
- package/dist/ide/636.js.map +0 -1
- package/dist/ide/817.js.map +0 -1
- package/dist/ide/837.js.map +0 -1
- package/dist/ide/909.js.map +0 -1
- package/dist/ide/923.js.map +0 -1
- package/dist/ide/932.js.map +0 -1
- package/dist/ide/947.js.map +0 -1
- package/dist/ide/969.js.map +0 -1
- package/dist/ide/977.js.map +0 -1
- package/dist/ide/99.js.map +0 -1
- package/dist/ide/static/index.e8b35023.js.map +0 -1
- /package/dist/ide/{135.js.LICENSE.txt → static/135.2af0ed6c.js.LICENSE.txt} +0 -0
- /package/dist/ide/{14.js.LICENSE.txt → static/14.9447a523.js.LICENSE.txt} +0 -0
- /package/dist/ide/{246.js.LICENSE.txt → static/246.4add4bf1.js.LICENSE.txt} +0 -0
- /package/dist/ide/{309.js.LICENSE.txt → static/309.df05f0ef.js.LICENSE.txt} +0 -0
- /package/dist/ide/{399.js.LICENSE.txt → static/399.4bd7d49b.js.LICENSE.txt} +0 -0
- /package/dist/ide/{471.js.LICENSE.txt → static/471.d1ead9bf.js.LICENSE.txt} +0 -0
- /package/dist/ide/{947.js.LICENSE.txt → static/947.b545969f.js.LICENSE.txt} +0 -0
- /package/dist/ide/{99.js.LICENSE.txt → static/99.5f870035.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"static/578.d2ff5454.js","mappings":"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","sources":["webpack://@finos/legend-application-pure-ide-deployment/../../node_modules/mermaid/dist/edges-bc33a094.js"],"sourcesContent":["import { l as log, m as evaluate, c as getConfig, J as decodeEntities, d as sanitizeText, u as utils } from \"./mermaid-485fd1a4.js\";\nimport { select, line, curveBasis } from \"d3\";\nimport { c as createText } from \"./createText-b3507a77.js\";\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\nconst extension = (elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n};\nconst composition = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).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\");\n};\nconst aggregation = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).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\");\n};\nconst dependency = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).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\");\n};\nconst lollipop = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n};\nconst point = (elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 6).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n};\nconst circle$1 = (elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n};\nconst cross = (elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n};\nconst barb = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"strokeWidth\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n};\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle: circle$1,\n cross,\n barb\n};\nconst insertMarkers$1 = insertMarkers;\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\nfunction addHtmlLabel(node) {\n const fo = select(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n '<span class=\"' + labelClass + '\" ' + (node.labelStyle ? 'style=\"' + node.labelStyle + '\"' : \"\") + \">\" + label + \"</span>\"\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"<br />\");\n log.info(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => `<i class='${s.replace(\":\", \" \")}'></i>`\n ),\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n let vertexNode = addHtmlLabel(node);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|<br\\s*\\/?>/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.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\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\nconst createLabel$1 = createLabel;\nconst labelHelper = async (parent, node, _classes, isNode) => {\n let classes;\n const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig().flowchart.htmlLabels);\n if (!_classes) {\n classes = \"node default\";\n } else {\n classes = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", node.labelStyle);\n let labelText;\n if (node.labelText === void 0) {\n labelText = \"\";\n } else {\n labelText = typeof node.labelText === \"string\" ? node.labelText : node.labelText[0];\n }\n const textNode = label.node();\n let text;\n if (node.labelType === \"markdown\") {\n text = createText(label, sanitizeText(decodeEntities(labelText), getConfig()), {\n useHtmlLabels,\n width: node.width || getConfig().flowchart.wrappingWidth,\n classes: \"markdown-node-label\"\n });\n } else {\n text = textNode.appendChild(\n createLabel$1(\n sanitizeText(decodeEntities(labelText), getConfig()),\n node.labelStyle,\n false,\n isNode\n )\n );\n }\n let bbox = text.getBBox();\n const halfPadding = node.padding / 2;\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = labelText.replace(/<img[^>]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig().fontSize ? getConfig().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n img.style.width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n label.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n label.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label };\n};\nconst updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\nfunction intersectNode(node, point2) {\n return node.intersect(point2);\n}\nfunction intersectEllipse(node, rx, ry, point2) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point2.x;\n var py = cy - point2.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point2.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point2.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\nfunction intersectCircle(node, rx, point2) {\n return intersectEllipse(node, rx, rx, point2);\n}\nfunction intersectLine(p1, p2, q1, q2) {\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return;\n }\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n offset = Math.abs(denom / 2);\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n}\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\nfunction intersectPolygon(node, polyPoints, point2) {\n var x1 = node.x;\n var y1 = node.y;\n var intersections = [];\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect2 = intersectLine(\n node,\n point2,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect2) {\n intersections.push(intersect2);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n var pdx = p.x - point2.x;\n var pdy = p.y - point2.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n var qdx = q.x - point2.x;\n var qdy = q.y - point2.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\nconst intersectRect = (node, point2) => {\n var x = node.x;\n var y = node.y;\n var dx = point2.x - x;\n var dy = point2.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n};\nconst intersectRect$1 = intersectRect;\nconst intersect = {\n node: intersectNode,\n circle: intersectCircle,\n ellipse: intersectEllipse,\n polygon: intersectPolygon,\n rect: intersectRect$1\n};\nconst note = async (parent, node) => {\n const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart.htmlLabels;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n log.info(\"Classes = \", node.classes);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst note$1 = note;\nconst formatClass = (str) => {\n if (str) {\n return \" \" + str;\n }\n return \"\";\n};\nconst getClassesFromNode = (node, otherClasses) => {\n return `${otherClasses ? otherClasses : \"node default\"}${formatClass(node.classes)} ${formatClass(\n node.class\n )}`;\n};\nconst question = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n log.info(\"Question main (Circle)\");\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr(\"style\", node.style);\n updateNodeBounds(node, questionElem);\n node.intersect = function(point2) {\n log.warn(\"Intersect called\");\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst choice = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const choice2 = shapeSvg.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n );\n choice2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 28).attr(\"height\", 28);\n node.width = 28;\n node.height = 28;\n node.intersect = function(point2) {\n return intersect.circle(node, 14, point2);\n };\n return shapeSvg;\n};\nconst hexagon = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr(\"style\", node.style);\n updateNodeBounds(node, hex);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst rect_left_inv_arrow = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n node.width = w + h;\n node.height = h;\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst lean_right = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, getClassesFromNode(node), true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst lean_left = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 2 * h / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - 2 * h / 6, y: -h },\n { x: -h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst trapezoid = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w + 2 * h / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst inv_trapezoid = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: -2 * h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst rect_right_inv_arrow = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst cylinder = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n const shape = \"M 0,\" + ry + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 a \" + rx + \",\" + ry + \" 0,0,0 \" + -w + \" 0 l 0,\" + h + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 l 0,\" + -h;\n const el = shapeSvg.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"style\", node.style).attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n const pos = intersect.rect(node, point2);\n const x = pos.x - node.x;\n if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y != 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point2.y - node.y > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n};\nconst rect = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes + \" \" + node.class,\n true\n );\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = bbox.width + node.padding;\n const totalHeight = bbox.height + node.padding;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst labelRect = async (parent, node) => {\n const { shapeSvg } = await labelHelper(parent, node, \"label\", true);\n log.trace(\"Classes = \", node.class);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0;\n const totalHeight = 0;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nfunction applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = (length) => {\n strokeDashArray.push(length, 0);\n };\n const skipBorder = (length) => {\n strokeDashArray.push(0, length);\n };\n if (borders.includes(\"t\")) {\n log.debug(\"add top border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"r\")) {\n log.debug(\"add right border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes(\"b\")) {\n log.debug(\"add bottom border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"l\")) {\n log.debug(\"add left border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect2.attr(\"stroke-dasharray\", strokeDashArray.join(\" \"));\n}\nconst rectWithTitle = (parent, node) => {\n let classes;\n if (!node.classes) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const innerLine = shapeSvg.insert(\"line\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n let title = \"\";\n if (typeof text2 === \"object\") {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info(\"Label text abc79\", title, text2, typeof text2 === \"object\");\n const text = label.node().appendChild(createLabel$1(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label.node().appendChild(\n createLabel$1(textRows.join ? textRows.join(\"<br/>\") : textRows, node.labelStyle, true, true)\n );\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const halfPadding = node.padding / 2;\n select(descr).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select(text).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n rect2.attr(\"class\", \"outer title-state\").attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst stadium = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\").attr(\"style\", node.style).attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst circle = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"Circle main\");\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n log.info(\"Circle intersect\", node, bbox.width / 2 + halfPadding, point2);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point2);\n };\n return shapeSvg;\n};\nconst doublecircle = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const gap = 5;\n const circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", node.class);\n outerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding + gap).attr(\"width\", bbox.width + node.padding + gap * 2).attr(\"height\", bbox.height + node.padding + gap * 2);\n innerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"DoubleCircle main\");\n updateNodeBounds(node, outerCircle);\n node.intersect = function(point2) {\n log.info(\"DoubleCircle intersect\", node, bbox.width / 2 + halfPadding + gap, point2);\n return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point2);\n };\n return shapeSvg;\n};\nconst subroutine = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst start = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n return intersect.circle(node, 7, point2);\n };\n return shapeSvg;\n};\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let width = 70;\n let height = 10;\n if (dir === \"LR\") {\n width = 10;\n height = 70;\n }\n const shape = shapeSvg.append(\"rect\").attr(\"x\", -1 * width / 2).attr(\"y\", -1 * height / 2).attr(\"width\", width).attr(\"height\", height).attr(\"class\", \"fork-join\");\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst end = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const innerCircle = shapeSvg.insert(\"circle\", \":first-child\");\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n innerCircle.attr(\"class\", \"state-end\").attr(\"r\", 5).attr(\"width\", 10).attr(\"height\", 10);\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n return intersect.circle(node, 7, point2);\n };\n return shapeSvg;\n};\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n let classes;\n if (!node.classes) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const topLine = shapeSvg.insert(\"line\");\n const bottomLine = shapeSvg.insert(\"line\");\n let maxWidth = 0;\n let maxHeight = rowPadding;\n const labelContainer = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n const interfaceLabelText = node.classData.annotations[0] ? \"«\" + node.classData.annotations[0] + \"»\" : \"\";\n const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr(\"width\", interfaceBBox.width);\n dv.attr(\"height\", interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n let classTitleString = node.classData.label;\n if (node.classData.type !== void 0 && node.classData.type !== \"\") {\n if (getConfig().flowchart.htmlLabels) {\n classTitleString += \"<\" + node.classData.type + \">\";\n } else {\n classTitleString += \"<\" + node.classData.type + \">\";\n }\n }\n const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr(\"class\", \"classTitle\");\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr(\"width\", classTitleBBox.width);\n dv.attr(\"height\", classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((member) => {\n const parsedInfo = member.getDisplayDetails();\n let parsedText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n parsedText = parsedText.replace(/</g, \"<\").replace(/>/g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel$1(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n maxHeight += lineHeight;\n const classMethods = [];\n node.classData.methods.forEach((member) => {\n const parsedInfo = member.getDisplayDetails();\n let displayText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n displayText = displayText.replace(/</g, \"<\").replace(/>/g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel$1(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classMethods.push(lbl);\n });\n maxHeight += lineHeight;\n if (hasInterface) {\n let diffX2 = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX2) + \", \" + -1 * maxHeight / 2 + \")\"\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX) + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n verticalPos += classTitleBBox.height + rowPadding;\n topLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + \")\"\n );\n const memberBBox = lbl == null ? void 0 : lbl.getBBox();\n verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding;\n });\n verticalPos += lineHeight;\n bottomLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n const memberBBox = lbl == null ? void 0 : lbl.getBBox();\n verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding;\n });\n rect2.attr(\"class\", \"outer title-state\").attr(\"x\", -maxWidth / 2 - halfPadding).attr(\"y\", -(maxHeight / 2) - halfPadding).attr(\"width\", maxWidth + node.padding).attr(\"height\", maxHeight + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst shapes = {\n rhombus: question,\n question,\n rect,\n labelRect,\n rectWithTitle,\n choice,\n circle,\n doublecircle,\n stadium,\n hexagon,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note: note$1,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box\n};\nlet nodeElems = {};\nconst insertNode = async (elem, node, dir) => {\n let newEl;\n let el;\n if (node.link) {\n let target;\n if (getConfig().securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target);\n el = await shapes[node.shape](newEl, node, dir);\n } else {\n el = await shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n if (node.class) {\n el.attr(\"class\", \"node default \" + node.class);\n }\n nodeElems[node.id] = newEl;\n if (node.haveCallback) {\n nodeElems[node.id].attr(\"class\", nodeElems[node.id].attr(\"class\") + \" clickable\");\n }\n return newEl;\n};\nconst setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nconst clear$1 = () => {\n nodeElems = {};\n};\nconst positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n};\nconst markerOffsets = {\n aggregation: 18,\n extension: 18,\n composition: 18,\n dependency: 6,\n lollipop: 13.5,\n arrow_point: 5.3\n};\nfunction calculateDeltaAndAngle(point1, point2) {\n point1 = pointTransformer(point1);\n point2 = pointTransformer(point2);\n const [x1, y1] = [point1.x, point1.y];\n const [x2, y2] = [point2.x, point2.y];\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY };\n}\nconst pointTransformer = (data) => {\n if (Array.isArray(data)) {\n return { x: data[0], y: data[1] };\n }\n return data;\n};\nconst getLineFunctionsWithOffset = (edge) => {\n return {\n x: function(d, i, data) {\n let offset = 0;\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaX } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n }\n return pointTransformer(d).x + offset;\n },\n y: function(d, i, data) {\n let offset = 0;\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaY } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n }\n return pointTransformer(d).y + offset;\n }\n };\n};\nlet edgeLabels = {};\nlet terminalLabels = {};\nconst clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\nconst insertEdgeLabel = (elem, edge) => {\n const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const labelElement = edge.labelType === \"markdown\" ? createText(elem, edge.label, {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true\n }) : createLabel$1(edge.label, edge.labelStyle);\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels[edge.id] = edgeLabel;\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n};\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\nconst positionEdgeLabel = (edge, paths) => {\n log.info(\"Moving label abc78 \", edge.id, edge.label, edgeLabels[edge.id]);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcLabelPosition(path);\n log.info(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc78\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n};\nconst outsideNode = (node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\nconst intersection = (node, outsidePoint, insidePoint) => {\n log.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n};\nconst cutPathAtIntersect = (_points, boundryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundryNode);\n if (!outsideNode(boundryNode, point2) && !isInside) {\n const inter = intersection(boundryNode, lastPointOutside, point2);\n log.warn(\"abc88 inside\", point2, lastPointOutside, inter);\n log.warn(\"abc88 intersection\", inter);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.warn(\"abc88 returning points\", points);\n return points;\n};\nconst insertEdge = function(elem, e, edge, clusterDb, diagramType, graph, id) {\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n log.info(\"abc88 InsertEdge: \", edge);\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.info(\n \"Last point\",\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.info(\"from cluster abc88\", clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n pointsHasChanged = true;\n }\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n let curve = curveBasis;\n if (edge.curve && (diagramType === \"graph\" || diagramType === \"flowchart\")) {\n curve = edge.curve;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n default:\n strokeClasses = \"\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n }\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edge.style);\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n switch (edge.arrowTypeStart) {\n case \"arrow_cross\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-crossStart)\"\n );\n break;\n case \"arrow_point\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-pointStart)\"\n );\n break;\n case \"arrow_barb\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-barbStart)\"\n );\n break;\n case \"arrow_circle\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-circleStart)\"\n );\n break;\n case \"aggregation\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-aggregationStart)\"\n );\n break;\n case \"extension\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-extensionStart)\"\n );\n break;\n case \"composition\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-compositionStart)\"\n );\n break;\n case \"dependency\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-dependencyStart)\"\n );\n break;\n case \"lollipop\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-lollipopStart)\"\n );\n break;\n }\n switch (edge.arrowTypeEnd) {\n case \"arrow_cross\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-crossEnd)\");\n break;\n case \"arrow_point\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-pointEnd)\");\n break;\n case \"arrow_barb\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-barbEnd)\");\n break;\n case \"arrow_circle\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-circleEnd)\");\n break;\n case \"aggregation\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-aggregationEnd)\"\n );\n break;\n case \"extension\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-extensionEnd)\"\n );\n break;\n case \"composition\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-compositionEnd)\"\n );\n break;\n case \"dependency\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-dependencyEnd)\"\n );\n break;\n case \"lollipop\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-lollipopEnd)\"\n );\n break;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\nexport {\n insertMarkers$1 as a,\n clear$1 as b,\n createLabel$1 as c,\n clear as d,\n insertNode as e,\n insertEdgeLabel as f,\n insertEdge as g,\n positionEdgeLabel as h,\n intersectRect$1 as i,\n getLineFunctionsWithOffset as j,\n labelHelper as l,\n positionNode as p,\n setNodeElem as s,\n updateNodeBounds as u\n};\n"],"names":["markers","extension","elem","type","id","l","trace","append","attr","composition","aggregation","dependency","lollipop","point","style","circle","cross","barb","insertMarkers$1","markerArray","forEach","markerName","createLabel$1","_vertexText","isTitle","isNode","vertexText","flowchart","htmlLabels","replace","info","vertexNode","node","fo","select","document","createElementNS","div","label","labelClass","dom","styleFn","html","labelStyle","addHtmlLabel","s","svgLabel","setAttribute","rows","split","Array","isArray","row","tspan","setAttributeNS","textContent","trim","appendChild","labelHelper","async","parent","_classes","classes","useHtmlLabels","shapeSvg","insert","domId","labelText","textNode","text","labelType","c","width","wrappingWidth","bbox","getBBox","halfPadding","padding","children","dv","images","getElementsByTagName","noImgText","Promise","all","map","img","res","setupImage","display","flexDirection","bodyFontSize","fontSize","window","getComputedStyle","body","enlargingFactor","parseInt","setTimeout","complete","addEventListener","getBoundingClientRect","height","centerLabel","updateNodeBounds","element","insertPolygonShape","w","h","points","d","x","y","join","intersectEllipse","rx","ry","point2","cx","cy","px","py","det","Math","sqrt","dx","abs","dy","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","sameSign","intersectRect$1","sx","sy","intersect","ellipse","polygon","polyPoints","x1","y1","intersections","minX","Number","POSITIVE_INFINITY","minY","entry","min","left","top","i","length","intersect2","push","sort","p","q","pdx","pdy","distp","qdx","qdy","distq","rect","formatClass","str","getClassesFromNode","otherClasses","class","question","questionElem","warn","applyNodePropertyBorders","rect2","borders","totalWidth","totalHeight","strokeDashArray","addBorder","skipBorder","includes","debug","forkJoin","dir","shape","shapes","rhombus","props","propKeys","Set","Object","keys","delete","propKey","labelRect","rectWithTitle","innerLine","text2","flat","title","textRows","slice","titleBox","descr","choice","circle2","doublecircle","circleGroup","outerCircle","innerCircle","gap","stadium","hexagon","m","hex","rect_left_inv_arrow","lean_right","el","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","pos","start","end","note","subroutine","fork","class_box","topLine","bottomLine","maxWidth","maxHeight","labelContainer","verticalPos","hasInterface","classData","annotations","interfaceLabelText","interfaceLabel","interfaceBBox","classTitleString","classTitleLabel","classTitleBBox","classAttributes","members","member","parsedInfo","getDisplayDetails","parsedText","displayText","lbl","cssStyle","classMethods","methods","diffX2","diffX","lineHeight","memberBBox","nodeElems","insertNode","newEl","link","target","securityLevel","linkTarget","tooltip","haveCallback","setNodeElem","clear$1","positionNode","diff","clusterNode","markerOffsets","arrow_point","calculateDeltaAndAngle","point1","pointTransformer","x2","y2","deltaX","deltaY","angle","atan","data","getLineFunctionsWithOffset","edge","hasOwn","arrowTypeStart","cos","arrowTypeEnd","sin","edgeLabels","terminalLabels","clear","insertEdgeLabel","labelElement","addSvgBackground","edgeLabel","startLabelLeft","startLabelElement","startEdgeLabelLeft","inner","slBox","startLeft","setTerminalWidth","startLabelRight","startEdgeLabelRight","startRight","endLabelLeft","endLabelElement","endEdgeLabelLeft","endLeft","endLabelRight","endEdgeLabelRight","endRight","value","positionEdgeLabel","paths","path","updatedPath","originalPath","u","calcLabelPosition","calcTerminalLabelPosition","cutPathAtIntersect","_points","boundryNode","lastPointOutside","isInside","outsideNode","inter","outsidePoint","insidePoint","JSON","stringify","r","Q","R","_x","_y","intersection","pointPresent","some","e","insertEdge","clusterDb","diagramType","graph","pointsHasChanged","tail","v","head","unshift","toCluster","fromCluster","reverse","lineData","filter","isNaN","curve","curveBasis","lineFunction","line","strokeClasses","thickness","pattern","svgPath","url","arrowMarkerAbsolute","state","location","protocol","host","pathname","search"],"sourceRoot":""}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
"use strict";(globalThis.webpackChunk_finos_legend_application_pure_ide_deployment=globalThis.webpackChunk_finos_legend_application_pure_ide_deployment||[]).push([[586],{1586:(t,e,r)=>{r.r(e),r.d(e,{diagram:()=>H});var i=r(2801),n=r(4655),a=(r(8879),r(2659),r(5368),function(){var t=function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r},e=[1,3],r=[1,6],i=[1,4],n=[1,5],a=[2,5],c=[1,12],s=[5,7,13,19,21,23,24,26,28,31,36,39,46],o=[7,13,19,21,23,24,26,28,31,36,39],l=[7,12,13,19,21,23,24,26,28,31,36,39],h=[7,13,46],m=[1,42],u=[1,41],y=[7,13,29,32,34,37,46],p=[1,55],g=[1,56],b=[1,57],d=[7,13,32,34,41,46],f={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,COMMIT_TAG:34,EMPTYSTR:35,MERGE:36,COMMIT_TYPE:37,commitType:38,COMMIT:39,commit_arg:40,COMMIT_MSG:41,NORMAL:42,REVERSE:43,HIGHLIGHT:44,ID:45,";":46,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"COMMIT_TAG",35:"EMPTYSTR",36:"MERGE",37:"COMMIT_TYPE",39:"COMMIT",41:"COMMIT_MSG",42:"NORMAL",43:"REVERSE",44:"HIGHLIGHT",45:"ID",46:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,5],[18,5],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[40,0],[40,1],[38,1],[38,1],[38,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(t,e,r,i,n,a,c){var s=a.length-1;switch(n){case 2:return a[s];case 3:return a[s-1];case 4:return i.setDirection(a[s-3]),a[s-1];case 6:i.setOptions(a[s-1]),this.$=a[s];break;case 7:a[s-1]+=a[s],this.$=a[s-1];break;case 9:this.$=[];break;case 10:a[s-1].push(a[s]),this.$=a[s-1];break;case 11:this.$=a[s-1];break;case 16:this.$=a[s].trim(),i.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),i.setAccDescription(this.$);break;case 19:i.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 21:i.checkout(a[s]);break;case 22:i.branch(a[s]);break;case 23:i.branch(a[s-2],a[s]);break;case 24:i.cherryPick(a[s],"",void 0);break;case 25:i.cherryPick(a[s-2],"",a[s]);break;case 26:case 28:i.cherryPick(a[s-2],"","");break;case 27:i.cherryPick(a[s],"",a[s-2]);break;case 29:i.merge(a[s],"","","");break;case 30:i.merge(a[s-2],a[s],"","");break;case 31:i.merge(a[s-2],"",a[s],"");break;case 32:i.merge(a[s-2],"","",a[s]);break;case 33:i.merge(a[s-4],a[s],"",a[s-2]);break;case 34:i.merge(a[s-4],"",a[s],a[s-2]);break;case 35:i.merge(a[s-4],"",a[s-2],a[s]);break;case 36:i.merge(a[s-4],a[s-2],a[s],"");break;case 37:i.merge(a[s-4],a[s-2],"",a[s]);break;case 38:i.merge(a[s-4],a[s],a[s-2],"");break;case 39:i.merge(a[s-6],a[s-4],a[s-2],a[s]);break;case 40:i.merge(a[s-6],a[s],a[s-4],a[s-2]);break;case 41:i.merge(a[s-6],a[s-4],a[s],a[s-2]);break;case 42:i.merge(a[s-6],a[s-2],a[s-4],a[s]);break;case 43:i.merge(a[s-6],a[s],a[s-2],a[s-4]);break;case 44:i.merge(a[s-6],a[s-2],a[s],a[s-4]);break;case 45:i.commit(a[s]);break;case 46:i.commit("","",i.commitType.NORMAL,a[s]);break;case 47:i.commit("","",a[s],"");break;case 48:i.commit("","",a[s],a[s-2]);break;case 49:i.commit("","",a[s-2],a[s]);break;case 50:i.commit("",a[s],i.commitType.NORMAL,"");break;case 51:i.commit("",a[s-2],i.commitType.NORMAL,a[s]);break;case 52:i.commit("",a[s],i.commitType.NORMAL,a[s-2]);break;case 53:i.commit("",a[s-2],a[s],"");break;case 54:i.commit("",a[s],a[s-2],"");break;case 55:i.commit("",a[s-4],a[s-2],a[s]);break;case 56:i.commit("",a[s-4],a[s],a[s-2]);break;case 57:i.commit("",a[s-2],a[s-4],a[s]);break;case 58:i.commit("",a[s],a[s-4],a[s-2]);break;case 59:i.commit("",a[s],a[s-2],a[s-4]);break;case 60:i.commit("",a[s-2],a[s],a[s-4]);break;case 61:i.commit(a[s],"",i.commitType.NORMAL,"");break;case 62:i.commit(a[s],"",i.commitType.NORMAL,a[s-2]);break;case 63:i.commit(a[s-2],"",i.commitType.NORMAL,a[s]);break;case 64:i.commit(a[s-2],"",a[s],"");break;case 65:i.commit(a[s],"",a[s-2],"");break;case 66:i.commit(a[s],a[s-2],i.commitType.NORMAL,"");break;case 67:i.commit(a[s-2],a[s],i.commitType.NORMAL,"");break;case 68:i.commit(a[s-4],"",a[s-2],a[s]);break;case 69:i.commit(a[s-4],"",a[s],a[s-2]);break;case 70:i.commit(a[s-2],"",a[s-4],a[s]);break;case 71:i.commit(a[s],"",a[s-4],a[s-2]);break;case 72:i.commit(a[s],"",a[s-2],a[s-4]);break;case 73:i.commit(a[s-2],"",a[s],a[s-4]);break;case 74:i.commit(a[s-4],a[s],a[s-2],"");break;case 75:i.commit(a[s-4],a[s-2],a[s],"");break;case 76:i.commit(a[s-2],a[s],a[s-4],"");break;case 77:i.commit(a[s],a[s-2],a[s-4],"");break;case 78:i.commit(a[s],a[s-4],a[s-2],"");break;case 79:i.commit(a[s-2],a[s-4],a[s],"");break;case 80:i.commit(a[s-4],a[s],i.commitType.NORMAL,a[s-2]);break;case 81:i.commit(a[s-4],a[s-2],i.commitType.NORMAL,a[s]);break;case 82:i.commit(a[s-2],a[s],i.commitType.NORMAL,a[s-4]);break;case 83:i.commit(a[s],a[s-2],i.commitType.NORMAL,a[s-4]);break;case 84:i.commit(a[s],a[s-4],i.commitType.NORMAL,a[s-2]);break;case 85:i.commit(a[s-2],a[s-4],i.commitType.NORMAL,a[s]);break;case 86:i.commit(a[s-6],a[s-4],a[s-2],a[s]);break;case 87:i.commit(a[s-6],a[s-4],a[s],a[s-2]);break;case 88:i.commit(a[s-6],a[s-2],a[s-4],a[s]);break;case 89:i.commit(a[s-6],a[s],a[s-4],a[s-2]);break;case 90:i.commit(a[s-6],a[s-2],a[s],a[s-4]);break;case 91:i.commit(a[s-6],a[s],a[s-2],a[s-4]);break;case 92:i.commit(a[s-4],a[s-6],a[s-2],a[s]);break;case 93:i.commit(a[s-4],a[s-6],a[s],a[s-2]);break;case 94:i.commit(a[s-2],a[s-6],a[s-4],a[s]);break;case 95:i.commit(a[s],a[s-6],a[s-4],a[s-2]);break;case 96:i.commit(a[s-2],a[s-6],a[s],a[s-4]);break;case 97:i.commit(a[s],a[s-6],a[s-2],a[s-4]);break;case 98:i.commit(a[s],a[s-4],a[s-2],a[s-6]);break;case 99:i.commit(a[s-2],a[s-4],a[s],a[s-6]);break;case 100:i.commit(a[s],a[s-2],a[s-4],a[s-6]);break;case 101:i.commit(a[s-2],a[s],a[s-4],a[s-6]);break;case 102:i.commit(a[s-4],a[s-2],a[s],a[s-6]);break;case 103:i.commit(a[s-4],a[s],a[s-2],a[s-6]);break;case 104:i.commit(a[s-2],a[s-4],a[s-6],a[s]);break;case 105:i.commit(a[s],a[s-4],a[s-6],a[s-2]);break;case 106:i.commit(a[s-2],a[s],a[s-6],a[s-4]);break;case 107:i.commit(a[s],a[s-2],a[s-6],a[s-4]);break;case 108:i.commit(a[s-4],a[s-2],a[s-6],a[s]);break;case 109:i.commit(a[s-4],a[s],a[s-6],a[s-2]);break;case 110:this.$="";break;case 111:this.$=a[s];break;case 112:this.$=i.commitType.NORMAL;break;case 113:this.$=i.commitType.REVERSE;break;case 114:this.$=i.commitType.HIGHLIGHT}},table:[{3:1,4:2,5:e,7:r,13:i,46:n},{1:[3]},{3:7,4:2,5:e,7:r,13:i,46:n},{6:8,7:a,8:[1,9],9:[1,10],10:11,13:c},t(s,[2,117]),t(s,[2,118]),t(s,[2,119]),{1:[2,1]},{7:[1,13]},{6:14,7:a,10:11,13:c},{8:[1,15]},t(o,[2,9],{11:16,12:[1,17]}),t(l,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:a,10:11,13:c},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],36:[1,33],39:[1,32]},t(l,[2,7]),{1:[2,3]},{7:[1,36]},t(o,[2,10]),{4:37,7:r,13:i,46:n},t(o,[2,12]),t(h,[2,13]),t(h,[2,14]),t(h,[2,15]),{20:[1,38]},{22:[1,39]},t(h,[2,18]),t(h,[2,19]),t(h,[2,20]),{27:40,33:m,45:u},t(h,[2,110],{40:43,32:[1,46],33:[1,48],34:[1,44],37:[1,45],41:[1,47]}),{27:49,33:m,45:u},{32:[1,50],34:[1,51]},{27:52,33:m,45:u},{1:[2,4]},t(o,[2,11]),t(h,[2,16]),t(h,[2,17]),t(h,[2,21]),t(y,[2,115]),t(y,[2,116]),t(h,[2,45]),{33:[1,53]},{38:54,42:p,43:g,44:b},{33:[1,58]},{33:[1,59]},t(h,[2,111]),t(h,[2,29],{32:[1,60],34:[1,62],37:[1,61]}),{33:[1,63]},{33:[1,64],35:[1,65]},t(h,[2,22],{29:[1,66]}),t(h,[2,46],{32:[1,68],37:[1,67],41:[1,69]}),t(h,[2,47],{32:[1,71],34:[1,70],41:[1,72]}),t(d,[2,112]),t(d,[2,113]),t(d,[2,114]),t(h,[2,50],{34:[1,73],37:[1,74],41:[1,75]}),t(h,[2,61],{32:[1,78],34:[1,76],37:[1,77]}),{33:[1,79]},{38:80,42:p,43:g,44:b},{33:[1,81]},t(h,[2,24],{34:[1,82]}),{32:[1,83]},{32:[1,84]},{30:[1,85]},{38:86,42:p,43:g,44:b},{33:[1,87]},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{38:93,42:p,43:g,44:b},{33:[1,94]},{33:[1,95]},{38:96,42:p,43:g,44:b},{33:[1,97]},t(h,[2,30],{34:[1,99],37:[1,98]}),t(h,[2,31],{32:[1,101],34:[1,100]}),t(h,[2,32],{32:[1,102],37:[1,103]}),{33:[1,104],35:[1,105]},{33:[1,106]},{33:[1,107]},t(h,[2,23]),t(h,[2,48],{32:[1,108],41:[1,109]}),t(h,[2,52],{37:[1,110],41:[1,111]}),t(h,[2,62],{32:[1,113],37:[1,112]}),t(h,[2,49],{32:[1,114],41:[1,115]}),t(h,[2,54],{34:[1,116],41:[1,117]}),t(h,[2,65],{32:[1,119],34:[1,118]}),t(h,[2,51],{37:[1,120],41:[1,121]}),t(h,[2,53],{34:[1,122],41:[1,123]}),t(h,[2,66],{34:[1,125],37:[1,124]}),t(h,[2,63],{32:[1,127],37:[1,126]}),t(h,[2,64],{32:[1,129],34:[1,128]}),t(h,[2,67],{34:[1,131],37:[1,130]}),{38:132,42:p,43:g,44:b},{33:[1,133]},{33:[1,134]},{33:[1,135]},{33:[1,136]},{38:137,42:p,43:g,44:b},t(h,[2,25]),t(h,[2,26]),t(h,[2,27]),t(h,[2,28]),{33:[1,138]},{33:[1,139]},{38:140,42:p,43:g,44:b},{33:[1,141]},{38:142,42:p,43:g,44:b},{33:[1,143]},{33:[1,144]},{33:[1,145]},{33:[1,146]},{33:[1,147]},{33:[1,148]},{33:[1,149]},{38:150,42:p,43:g,44:b},{33:[1,151]},{33:[1,152]},{33:[1,153]},{38:154,42:p,43:g,44:b},{33:[1,155]},{38:156,42:p,43:g,44:b},{33:[1,157]},{33:[1,158]},{33:[1,159]},{38:160,42:p,43:g,44:b},{33:[1,161]},t(h,[2,36],{34:[1,162]}),t(h,[2,37],{37:[1,163]}),t(h,[2,35],{32:[1,164]}),t(h,[2,38],{34:[1,165]}),t(h,[2,33],{37:[1,166]}),t(h,[2,34],{32:[1,167]}),t(h,[2,59],{41:[1,168]}),t(h,[2,72],{32:[1,169]}),t(h,[2,60],{41:[1,170]}),t(h,[2,83],{37:[1,171]}),t(h,[2,73],{32:[1,172]}),t(h,[2,82],{37:[1,173]}),t(h,[2,58],{41:[1,174]}),t(h,[2,71],{32:[1,175]}),t(h,[2,57],{41:[1,176]}),t(h,[2,77],{34:[1,177]}),t(h,[2,70],{32:[1,178]}),t(h,[2,76],{34:[1,179]}),t(h,[2,56],{41:[1,180]}),t(h,[2,84],{37:[1,181]}),t(h,[2,55],{41:[1,182]}),t(h,[2,78],{34:[1,183]}),t(h,[2,79],{34:[1,184]}),t(h,[2,85],{37:[1,185]}),t(h,[2,69],{32:[1,186]}),t(h,[2,80],{37:[1,187]}),t(h,[2,68],{32:[1,188]}),t(h,[2,74],{34:[1,189]}),t(h,[2,75],{34:[1,190]}),t(h,[2,81],{37:[1,191]}),{33:[1,192]},{38:193,42:p,43:g,44:b},{33:[1,194]},{33:[1,195]},{38:196,42:p,43:g,44:b},{33:[1,197]},{33:[1,198]},{33:[1,199]},{33:[1,200]},{38:201,42:p,43:g,44:b},{33:[1,202]},{38:203,42:p,43:g,44:b},{33:[1,204]},{33:[1,205]},{33:[1,206]},{33:[1,207]},{33:[1,208]},{33:[1,209]},{33:[1,210]},{38:211,42:p,43:g,44:b},{33:[1,212]},{33:[1,213]},{33:[1,214]},{38:215,42:p,43:g,44:b},{33:[1,216]},{38:217,42:p,43:g,44:b},{33:[1,218]},{33:[1,219]},{33:[1,220]},{38:221,42:p,43:g,44:b},t(h,[2,39]),t(h,[2,41]),t(h,[2,40]),t(h,[2,42]),t(h,[2,44]),t(h,[2,43]),t(h,[2,100]),t(h,[2,101]),t(h,[2,98]),t(h,[2,99]),t(h,[2,103]),t(h,[2,102]),t(h,[2,107]),t(h,[2,106]),t(h,[2,105]),t(h,[2,104]),t(h,[2,109]),t(h,[2,108]),t(h,[2,97]),t(h,[2,96]),t(h,[2,95]),t(h,[2,94]),t(h,[2,92]),t(h,[2,93]),t(h,[2,91]),t(h,[2,90]),t(h,[2,89]),t(h,[2,88]),t(h,[2,86]),t(h,[2,87])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(t,e){if(!e.recoverable){var r=new Error(t);throw r.hash=e,r}this.trace(t)},parse:function(t){var e=this,r=[0],i=[],n=[null],a=[],c=this.table,s="",o=0,l=0,h=a.slice.call(arguments,1),m=Object.create(this.lexer),u={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(u.yy[y]=this.yy[y]);m.setInput(t,u.yy),u.yy.lexer=m,u.yy.parser=this,void 0===m.yylloc&&(m.yylloc={});var p=m.yylloc;a.push(p);var g=m.options&&m.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,d,f,k,$,x,_,w,T,E={};;){if(d=r[r.length-1],this.defaultActions[d]?f=this.defaultActions[d]:(null==b&&(T=void 0,"number"!=typeof(T=i.pop()||m.lex()||1)&&(T instanceof Array&&(T=(i=T).pop()),T=e.symbols_[T]||T),b=T),f=c[d]&&c[d][b]),void 0===f||!f.length||!f[0]){var L="";for($ in w=[],c[d])this.terminals_[$]&&$>2&&w.push("'"+this.terminals_[$]+"'");L=m.showPosition?"Parse error on line "+(o+1)+":\n"+m.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(L,{text:m.match,token:this.terminals_[b]||b,line:m.yylineno,loc:p,expected:w})}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+d+", token: "+b);switch(f[0]){case 1:r.push(b),n.push(m.yytext),a.push(m.yylloc),r.push(f[1]),b=null,l=m.yyleng,s=m.yytext,o=m.yylineno,p=m.yylloc;break;case 2:if(x=this.productions_[f[1]][1],E.$=n[n.length-x],E._$={first_line:a[a.length-(x||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(x||1)].first_column,last_column:a[a.length-1].last_column},g&&(E._$.range=[a[a.length-(x||1)].range[0],a[a.length-1].range[1]]),void 0!==(k=this.performAction.apply(E,[s,l,o,u.yy,f[1],n,a].concat(h))))return k;x&&(r=r.slice(0,-1*x*2),n=n.slice(0,-1*x),a=a.slice(0,-1*x)),r.push(this.productions_[f[1]][0]),n.push(E.$),a.push(E._$),_=c[r[r.length-2]][r[r.length-1]],r.push(_);break;case 3:return!0}}return!0}},k={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,i,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var a in n)this[a]=n[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),a=0;a<n.length;a++)if((r=this._input.match(this.rules[n[a]]))&&(!e||r[0].length>e[0].length)){if(e=r,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,n[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,r,i){switch(r){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 29:case 33:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:case 9:break;case 10:return 5;case 11:return 39;case 12:return 32;case 13:return 37;case 14:return 41;case 15:return 42;case 16:return 43;case 17:return 44;case 18:return 34;case 19:return 28;case 20:return 29;case 21:return 36;case 22:return 31;case 23:return 26;case 24:case 25:return 9;case 26:return 8;case 27:return"CARET";case 28:this.begin("options");break;case 30:return 12;case 31:return 35;case 32:this.begin("string");break;case 34:return 33;case 35:return 30;case 36:return 45;case 37:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[29,30],inclusive:!1},string:{rules:[33,34],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,31,32,35,36,37,38],inclusive:!0}}};function $(){this.yy={}}return f.lexer=k,$.prototype=f,f.Parser=$,new $}());a.parser=a;const c=a;let s=(0,i.c)().gitGraph.mainBranchName,o=(0,i.c)().gitGraph.mainBranchOrder,l={},h=null,m={};m[s]={name:s,order:o};let u={};u[s]=h;let y=s,p="LR",g=0;function b(){return(0,i.x)({length:7})}let d={};const f=function(t){if(t=i.e.sanitizeText(t,(0,i.c)()),void 0===u[t]){let e=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+t+'")');throw e.hash={text:"checkout "+t,token:"checkout "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+t+'"']},e}{y=t;const e=u[y];h=l[e]}};function k(t,e,r){const i=t.indexOf(e);-1===i?t.push(r):t.splice(i,1,r)}function $(t){const e=t.reduce(((t,e)=>t.seq>e.seq?t:e),t[0]);let r="";t.forEach((function(t){r+=t===e?"\t*":"\t|"}));const n=[r,e.id,e.seq];for(let t in u)u[t]===e.id&&n.push(t);if(i.l.debug(n.join(" ")),e.parents&&2==e.parents.length){const r=l[e.parents[0]];k(t,e,r),t.push(l[e.parents[1]])}else{if(0==e.parents.length)return;{const r=l[e.parents];k(t,e,r)}}$(t=function(t,e){const r=Object.create(null);return t.reduce(((t,i)=>{const n=e(i);return r[n]||(r[n]=!0,t.push(i)),t}),[])}(t,(t=>t.id)))}const x=function(){const t=Object.keys(l).map((function(t){return l[t]}));return t.forEach((function(t){i.l.debug(t.id)})),t.sort(((t,e)=>t.seq-e.seq)),t},_={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},w={getConfig:()=>(0,i.c)().gitGraph,setDirection:function(t){p=t},setOptions:function(t){i.l.debug("options str",t),t=(t=t&&t.trim())||"{}";try{d=JSON.parse(t)}catch(t){i.l.error("error while parsing gitGraph options",t.message)}},getOptions:function(){return d},commit:function(t,e,r,n){i.l.debug("Entering commit:",t,e,r,n),e=i.e.sanitizeText(e,(0,i.c)()),t=i.e.sanitizeText(t,(0,i.c)()),n=i.e.sanitizeText(n,(0,i.c)());const a={id:e||g+"-"+b(),message:t,seq:g++,type:r||_.NORMAL,tag:n||"",parents:null==h?[]:[h.id],branch:y};h=a,l[a.id]=a,u[y]=a.id,i.l.debug("in pushCommit "+a.id)},branch:function(t,e){if(t=i.e.sanitizeText(t,(0,i.c)()),void 0!==u[t]){let e=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+t+'")');throw e.hash={text:"branch "+t,token:"branch "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+t+'"']},e}u[t]=null!=h?h.id:null,m[t]={name:t,order:e?parseInt(e,10):null},f(t),i.l.debug("in createBranch")},merge:function(t,e,r,n){t=i.e.sanitizeText(t,(0,i.c)()),e=i.e.sanitizeText(e,(0,i.c)());const a=l[u[y]],c=l[u[t]];if(y===t){let e=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(void 0===a||!a){let e=new Error('Incorrect usage of "merge". Current branch ('+y+")has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},e}if(void 0===u[t]){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+t]},e}if(void 0===c||!c){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},e}if(a===c){let e=new Error('Incorrect usage of "merge". Both branches have same head');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(e&&void 0!==l[e]){let i=new Error('Incorrect usage of "merge". Commit with id:'+e+" already exists, use different custom Id");throw i.hash={text:"merge "+t+e+r+n,token:"merge "+t+e+r+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+t+" "+e+"_UNIQUE "+r+" "+n]},i}const s={id:e||g+"-"+b(),message:"merged branch "+t+" into "+y,seq:g++,parents:[null==h?null:h.id,u[t]],branch:y,type:_.MERGE,customType:r,customId:!!e,tag:n||""};h=s,l[s.id]=s,u[y]=s.id,i.l.debug(u),i.l.debug("in mergeBranch")},cherryPick:function(t,e,r){if(i.l.debug("Entering cherryPick:",t,e,r),t=i.e.sanitizeText(t,(0,i.c)()),e=i.e.sanitizeText(e,(0,i.c)()),r=i.e.sanitizeText(r,(0,i.c)()),!t||void 0===l[t]){let r=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw r.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},r}let n=l[t],a=n.branch;if(n.type===_.MERGE){let r=new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw r.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},r}if(!e||void 0===l[e]){if(a===y){let r=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw r.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},r}const c=l[u[y]];if(void 0===c||!c){let r=new Error('Incorrect usage of "cherry-pick". Current branch ('+y+")has no commits");throw r.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},r}const s={id:g+"-"+b(),message:"cherry-picked "+n+" into "+y,seq:g++,parents:[null==h?null:h.id,n.id],branch:y,type:_.CHERRY_PICK,tag:r??"cherry-pick:"+n.id};h=s,l[s.id]=s,u[y]=s.id,i.l.debug(u),i.l.debug("in cherryPick")}},checkout:f,prettyPrint:function(){i.l.debug(l);$([x()[0]])},clear:function(){l={},h=null;let t=(0,i.c)().gitGraph.mainBranchName,e=(0,i.c)().gitGraph.mainBranchOrder;u={},u[t]=null,m={},m[t]={name:t,order:e},y=t,g=0,(0,i.t)()},getBranchesAsObjArray:function(){return Object.values(m).map(((t,e)=>null!==t.order?t:{...t,order:parseFloat(`0.${e}`,10)})).sort(((t,e)=>t.order-e.order)).map((({name:t})=>({name:t})))},getBranches:function(){return u},getCommits:function(){return l},getCommitsArray:x,getCurrentBranch:function(){return y},getDirection:function(){return p},getHead:function(){return h},setAccTitle:i.s,getAccTitle:i.g,getAccDescription:i.a,setAccDescription:i.b,setDiagramTitle:i.q,getDiagramTitle:i.r,commitType:_};let T={};const E=0,L=1,v=2,M=3,A=4;let I={},R={},O=[],C=0,S="LR";const B=t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");let r=[];r="string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(t)?t:[];for(const t of r){const r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","0"),r.setAttribute("class","row"),r.textContent=t.trim(),e.appendChild(r)}return e},P=(t,e,r)=>{const n=(0,i.y)().gitGraph,a=t.append("g").attr("class","commit-bullets"),c=t.append("g").attr("class","commit-labels");let s=0;"TB"===S&&(s=30);Object.keys(e).sort(((t,r)=>e[t].seq-e[r].seq)).forEach((t=>{const i=e[t],o="TB"===S?s+10:I[i.branch].pos,l="TB"===S?I[i.branch].pos:s+10;if(r){let t,e=void 0!==i.customType&&""!==i.customType?i.customType:i.type;switch(e){case E:t="commit-normal";break;case L:t="commit-reverse";break;case v:t="commit-highlight";break;case M:t="commit-merge";break;case A:t="commit-cherry-pick";break;default:t="commit-normal"}if(e===v){const e=a.append("rect");e.attr("x",l-10),e.attr("y",o-10),e.attr("height",20),e.attr("width",20),e.attr("class",`commit ${i.id} commit-highlight${I[i.branch].index%8} ${t}-outer`),a.append("rect").attr("x",l-6).attr("y",o-6).attr("height",12).attr("width",12).attr("class",`commit ${i.id} commit${I[i.branch].index%8} ${t}-inner`)}else if(e===A)a.append("circle").attr("cx",l).attr("cy",o).attr("r",10).attr("class",`commit ${i.id} ${t}`),a.append("circle").attr("cx",l-3).attr("cy",o+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${i.id} ${t}`),a.append("circle").attr("cx",l+3).attr("cy",o+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${i.id} ${t}`),a.append("line").attr("x1",l+3).attr("y1",o+1).attr("x2",l).attr("y2",o-5).attr("stroke","#fff").attr("class",`commit ${i.id} ${t}`),a.append("line").attr("x1",l-3).attr("y1",o+1).attr("x2",l).attr("y2",o-5).attr("stroke","#fff").attr("class",`commit ${i.id} ${t}`);else{const r=a.append("circle");if(r.attr("cx",l),r.attr("cy",o),r.attr("r",i.type===M?9:10),r.attr("class",`commit ${i.id} commit${I[i.branch].index%8}`),e===M){const e=a.append("circle");e.attr("cx",l),e.attr("cy",o),e.attr("r",6),e.attr("class",`commit ${t} ${i.id} commit${I[i.branch].index%8}`)}if(e===L){a.append("path").attr("d",`M ${l-5},${o-5}L${l+5},${o+5}M${l-5},${o+5}L${l+5},${o-5}`).attr("class",`commit ${t} ${i.id} commit${I[i.branch].index%8}`)}}}if(R[i.id]="TB"===S?{x:l,y:s+10}:{x:s+10,y:o},r){const t=4,e=2;if(i.type!==A&&(i.customId&&i.type===M||i.type!==M)&&n.showCommitLabel){const r=c.append("g"),a=r.insert("rect").attr("class","commit-label-bkg"),h=r.append("text").attr("x",s).attr("y",o+25).attr("class","commit-label").text(i.id);let m=h.node().getBBox();if(a.attr("x",s+10-m.width/2-e).attr("y",o+13.5).attr("width",m.width+2*e).attr("height",m.height+2*e),"TB"===S&&(a.attr("x",l-(m.width+4*t+5)).attr("y",o-12),h.attr("x",l-(m.width+4*t)).attr("y",o+m.height-12)),"TB"!==S&&h.attr("x",s+10-m.width/2),n.rotateCommitLabel)if("TB"===S)h.attr("transform","rotate(-45, "+l+", "+o+")"),a.attr("transform","rotate(-45, "+l+", "+o+")");else{let t=-7.5-(m.width+10)/25*9.5,e=10+m.width/25*8.5;r.attr("transform","translate("+t+", "+e+") rotate(-45, "+s+", "+o+")")}}if(i.tag){const r=c.insert("polygon"),n=c.append("circle"),a=c.append("text").attr("y",o-16).attr("class","tag-label").text(i.tag);let h=a.node().getBBox();a.attr("x",s+10-h.width/2);const m=h.height/2,u=o-19.2;r.attr("class","tag-label-bkg").attr("points",`\n ${s-h.width/2-t/2},${u+e}\n ${s-h.width/2-t/2},${u-e}\n ${s+10-h.width/2-t},${u-m-e}\n ${s+10+h.width/2+t},${u-m-e}\n ${s+10+h.width/2+t},${u+m+e}\n ${s+10-h.width/2-t},${u+m+e}`),n.attr("cx",s-h.width/2+t/2).attr("cy",u).attr("r",1.5).attr("class","tag-hole"),"TB"===S&&(r.attr("class","tag-label-bkg").attr("points",`\n ${l},${s+e}\n ${l},${s-e}\n ${l+10},${s-m-e}\n ${l+10+h.width+t},${s-m-e}\n ${l+10+h.width+t},${s+m+e}\n ${l+10},${s+m+e}`).attr("transform","translate(12,12) rotate(45, "+l+","+s+")"),n.attr("cx",l+t/2).attr("cy",s).attr("transform","translate(12,12) rotate(45, "+l+","+s+")"),a.attr("x",l+5).attr("y",s+3).attr("transform","translate(14,14) rotate(45, "+l+","+s+")"))}}s+=50,s>C&&(C=s)}))},N=(t,e,r=0)=>{const i=t+Math.abs(t-e)/2;if(r>5)return i;if(O.every((t=>Math.abs(t-i)>=10)))return O.push(i),i;const n=Math.abs(t-e);return N(t,e-n/5,r+1)},G=(t,e,r,i)=>{const n=R[e.id],a=R[r.id],c=((t,e,r)=>Object.keys(r).filter((i=>r[i].branch===e.branch&&r[i].seq>t.seq&&r[i].seq<e.seq)).length>0)(e,r,i);let s,o="",l="",h=0,m=0,u=I[r.branch].index;if(c){o="A 10 10, 0, 0, 0,",l="A 10 10, 0, 0, 1,",h=10,m=10,u=I[r.branch].index;const t=n.y<a.y?N(n.y,a.y):N(a.y,n.y),e=n.x<a.x?N(n.x,a.x):N(a.x,n.x);s="TB"===S?n.x<a.x?`M ${n.x} ${n.y} L ${e-h} ${n.y} ${l} ${e} ${n.y+m} L ${e} ${a.y-h} ${o} ${e+m} ${a.y} L ${a.x} ${a.y}`:`M ${n.x} ${n.y} L ${e+h} ${n.y} ${o} ${e} ${n.y+m} L ${e} ${a.y-h} ${l} ${e-m} ${a.y} L ${a.x} ${a.y}`:n.y<a.y?`M ${n.x} ${n.y} L ${n.x} ${t-h} ${o} ${n.x+m} ${t} L ${a.x-h} ${t} ${l} ${a.x} ${t+m} L ${a.x} ${a.y}`:`M ${n.x} ${n.y} L ${n.x} ${t+h} ${l} ${n.x+m} ${t} L ${a.x-h} ${t} ${o} ${a.x} ${t-m} L ${a.x} ${a.y}`}else"TB"===S?(n.x<a.x&&(o="A 20 20, 0, 0, 0,",l="A 20 20, 0, 0, 1,",h=20,m=20,u=I[r.branch].index,s=`M ${n.x} ${n.y} L ${a.x-h} ${n.y} ${l} ${a.x} ${n.y+m} L ${a.x} ${a.y}`),n.x>a.x&&(o="A 20 20, 0, 0, 0,",l="A 20 20, 0, 0, 1,",h=20,m=20,u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${n.x} ${a.y-h} ${l} ${n.x-m} ${a.y} L ${a.x} ${a.y}`),n.x===a.x&&(u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${n.x+h} ${n.y} ${o} ${n.x+m} ${a.y+h} L ${a.x} ${a.y}`)):(n.y<a.y&&(o="A 20 20, 0, 0, 0,",h=20,m=20,u=I[r.branch].index,s=`M ${n.x} ${n.y} L ${n.x} ${a.y-h} ${o} ${n.x+m} ${a.y} L ${a.x} ${a.y}`),n.y>a.y&&(o="A 20 20, 0, 0, 0,",h=20,m=20,u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${a.x-h} ${n.y} ${o} ${a.x} ${n.y-m} L ${a.x} ${a.y}`),n.y===a.y&&(u=I[e.branch].index,s=`M ${n.x} ${n.y} L ${n.x} ${a.y-h} ${o} ${n.x+m} ${a.y} L ${a.x} ${a.y}`));t.append("path").attr("d",s).attr("class","arrow arrow"+u%8)},H={parser:c,db:w,renderer:{draw:function(t,e,r,a){I={},R={},T={},C=0,O=[],S="LR";const c=(0,i.y)(),s=c.gitGraph;i.l.debug("in gitgraph renderer",t+"\n","id:",e,r),T=a.db.getCommits();const o=a.db.getBranchesAsObjArray();S=a.db.getDirection();const l=(0,n.select)(`[id="${e}"]`);let h=0;o.forEach(((t,e)=>{const r=B(t.name),i=l.append("g"),n=i.insert("g").attr("class","branchLabel"),a=n.insert("g").attr("class","label branch-label");a.node().appendChild(r);let c=r.getBBox();I[t.name]={pos:h,index:e},h+=50+(s.rotateCommitLabel?40:0)+("TB"===S?c.width/2:0),a.remove(),n.remove(),i.remove()})),P(l,T,!1),s.showBranches&&((t,e)=>{const r=(0,i.y)().gitGraph,n=t.append("g");e.forEach(((t,e)=>{const i=e%8,a=I[t.name].pos,c=n.append("line");c.attr("x1",0),c.attr("y1",a),c.attr("x2",C),c.attr("y2",a),c.attr("class","branch branch"+i),"TB"===S&&(c.attr("y1",30),c.attr("x1",a),c.attr("y2",C),c.attr("x2",a)),O.push(a);let s=t.name;const o=B(s),l=n.insert("rect"),h=n.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+i);h.node().appendChild(o);let m=o.getBBox();l.attr("class","branchLabelBkg label"+i).attr("rx",4).attr("ry",4).attr("x",-m.width-4-(!0===r.rotateCommitLabel?30:0)).attr("y",-m.height/2+8).attr("width",m.width+18).attr("height",m.height+4),h.attr("transform","translate("+(-m.width-14-(!0===r.rotateCommitLabel?30:0))+", "+(a-m.height/2-1)+")"),"TB"===S&&(l.attr("x",a-m.width/2-10).attr("y",0),h.attr("transform","translate("+(a-m.width/2-5)+", 0)")),"TB"!==S&&l.attr("transform","translate(-19, "+(a-m.height/2)+")")}))})(l,o),((t,e)=>{const r=t.append("g").attr("class","commit-arrows");Object.keys(e).forEach((t=>{const i=e[t];i.parents&&i.parents.length>0&&i.parents.forEach((t=>{G(r,e[t],i,e)}))}))})(l,T),P(l,T,!0),i.u.insertTitle(l,"gitTitleText",s.titleTopMargin,a.db.getDiagramTitle()),(0,i.z)(void 0,l,s.diagramPadding,s.useMaxWidth??c.useMaxWidth)}},styles:t=>`\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0,1,2,3,4,5,6,7].map((e=>`\n .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; }\n .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; }\n .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; }\n .label${e} { fill: ${t["git"+e]}; }\n .arrow${e} { stroke: ${t["git"+e]}; }\n `)).join("\n")}\n\n .branch {\n stroke-width: 1;\n stroke: ${t.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};}\n .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}\n .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; }\n .tag-hole { fill: ${t.textColor}; }\n\n .commit-merge {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n .commit-reverse {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n`}}}]);
|
2
|
-
//# sourceMappingURL=586.js.map
|
2
|
+
//# sourceMappingURL=586.c4953cb8.js.map
|