%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/varak.net/nextcloud.varak.net/apps/text/js/
Upload File :
Create Path :
Current File : /www/varak.net/nextcloud.varak.net/apps/text/js/flowDiagram-66a62f08-BJsFIDtu.chunk.mjs.map

{"version":3,"file":"flowDiagram-66a62f08-BJsFIDtu.chunk.mjs","sources":["../node_modules/d3-fetch/src/text.js","../node_modules/d3-fetch/src/xml.js","../node_modules/dagre-d3-es/src/dagre-js/arrows.js","../node_modules/dagre-d3-es/src/dagre-js/label/add-svg-label.js","../node_modules/dagre-d3-es/src/dagre-js/label/add-text-label.js","../node_modules/dagre-d3-es/src/dagre-js/label/add-label.js","../node_modules/dagre-d3-es/src/dagre-js/create-clusters.js","../node_modules/dagre-d3-es/src/dagre-js/create-edge-labels.js","../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-node.js","../node_modules/dagre-d3-es/src/dagre-js/create-edge-paths.js","../node_modules/dagre-d3-es/src/dagre-js/create-nodes.js","../node_modules/dagre-d3-es/src/dagre-js/position-clusters.js","../node_modules/dagre-d3-es/src/dagre-js/position-edge-labels.js","../node_modules/dagre-d3-es/src/dagre-js/position-nodes.js","../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-ellipse.js","../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-circle.js","../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-line.js","../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js","../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-rect.js","../node_modules/dagre-d3-es/src/dagre-js/shapes.js","../node_modules/dagre-d3-es/src/dagre-js/render.js","../node_modules/mermaid/dist/flowDiagram-66a62f08.js"],"sourcesContent":["function responseText(response) {\n  if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n  return response.text();\n}\n\nexport default function(input, init) {\n  return fetch(input, init).then(responseText);\n}\n","import text from \"./text.js\";\n\nfunction parser(type) {\n  return (input, init) => text(input, init)\n    .then(text => (new DOMParser).parseFromString(text, type));\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","import * as util from './util.js';\n\nexport { arrows, setArrows };\n\nvar arrows = {\n  normal,\n  vee,\n  undirected,\n};\n\nfunction setArrows(value) {\n  arrows = value;\n}\n\nfunction normal(parent, id, edge, type) {\n  var marker = parent\n    .append('marker')\n    .attr('id', id)\n    .attr('viewBox', '0 0 10 10')\n    .attr('refX', 9)\n    .attr('refY', 5)\n    .attr('markerUnits', 'strokeWidth')\n    .attr('markerWidth', 8)\n    .attr('markerHeight', 6)\n    .attr('orient', 'auto');\n\n  var path = marker\n    .append('path')\n    .attr('d', 'M 0 0 L 10 5 L 0 10 z')\n    .style('stroke-width', 1)\n    .style('stroke-dasharray', '1,0');\n  util.applyStyle(path, edge[type + 'Style']);\n  if (edge[type + 'Class']) {\n    path.attr('class', edge[type + 'Class']);\n  }\n}\n\nfunction vee(parent, id, edge, type) {\n  var marker = parent\n    .append('marker')\n    .attr('id', id)\n    .attr('viewBox', '0 0 10 10')\n    .attr('refX', 9)\n    .attr('refY', 5)\n    .attr('markerUnits', 'strokeWidth')\n    .attr('markerWidth', 8)\n    .attr('markerHeight', 6)\n    .attr('orient', 'auto');\n\n  var path = marker\n    .append('path')\n    .attr('d', 'M 0 0 L 10 5 L 0 10 L 4 5 z')\n    .style('stroke-width', 1)\n    .style('stroke-dasharray', '1,0');\n  util.applyStyle(path, edge[type + 'Style']);\n  if (edge[type + 'Class']) {\n    path.attr('class', edge[type + 'Class']);\n  }\n}\n\nfunction undirected(parent, id, edge, type) {\n  var marker = parent\n    .append('marker')\n    .attr('id', id)\n    .attr('viewBox', '0 0 10 10')\n    .attr('refX', 9)\n    .attr('refY', 5)\n    .attr('markerUnits', 'strokeWidth')\n    .attr('markerWidth', 8)\n    .attr('markerHeight', 6)\n    .attr('orient', 'auto');\n\n  var path = marker\n    .append('path')\n    .attr('d', 'M 0 5 L 10 5')\n    .style('stroke-width', 1)\n    .style('stroke-dasharray', '1,0');\n  util.applyStyle(path, edge[type + 'Style']);\n  if (edge[type + 'Class']) {\n    path.attr('class', edge[type + 'Class']);\n  }\n}\n","import * as util from '../util.js';\n\nexport { addSVGLabel };\n\nfunction addSVGLabel(root, node) {\n  var domNode = root;\n\n  domNode.node().appendChild(node.label);\n\n  util.applyStyle(domNode, node.labelStyle);\n\n  return domNode;\n}\n","import * as util from '../util.js';\n\nexport { addTextLabel };\n\n/*\n * Attaches a text label to the specified root. Handles escape sequences.\n */\nfunction addTextLabel(root, node) {\n  var domNode = root.append('text');\n\n  var lines = processEscapeSequences(node.label).split('\\n');\n  for (var i = 0; i < lines.length; i++) {\n    domNode\n      .append('tspan')\n      .attr('xml:space', 'preserve')\n      .attr('dy', '1em')\n      .attr('x', '1')\n      .text(lines[i]);\n  }\n\n  util.applyStyle(domNode, node.labelStyle);\n\n  return domNode;\n}\n\nfunction processEscapeSequences(text) {\n  var newText = '';\n  var escaped = false;\n  var ch;\n  for (var i = 0; i < text.length; ++i) {\n    ch = text[i];\n    if (escaped) {\n      switch (ch) {\n        case 'n':\n          newText += '\\n';\n          break;\n        default:\n          newText += ch;\n      }\n      escaped = false;\n    } else if (ch === '\\\\') {\n      escaped = true;\n    } else {\n      newText += ch;\n    }\n  }\n  return newText;\n}\n","import { addHtmlLabel } from './add-html-label.js';\nimport { addSVGLabel } from './add-svg-label.js';\nimport { addTextLabel } from './add-text-label.js';\n\nexport { addLabel };\n\nfunction addLabel(root, node, location) {\n  var label = node.label;\n  var labelSvg = root.append('g');\n\n  // Allow the label to be a string, a function that returns a DOM element, or\n  // a DOM element itself.\n  if (node.labelType === 'svg') {\n    addSVGLabel(labelSvg, node);\n  } else if (typeof label !== 'string' || node.labelType === 'html') {\n    addHtmlLabel(labelSvg, node);\n  } else {\n    addTextLabel(labelSvg, node);\n  }\n\n  var labelBBox = labelSvg.node().getBBox();\n  var y;\n  switch (location) {\n    case 'top':\n      y = -node.height / 2;\n      break;\n    case 'bottom':\n      y = node.height / 2 - labelBBox.height;\n      break;\n    default:\n      y = -labelBBox.height / 2;\n  }\n  labelSvg.attr('transform', 'translate(' + -labelBBox.width / 2 + ',' + y + ')');\n\n  return labelSvg;\n}\n","import * as d3 from 'd3';\nimport { addLabel } from './label/add-label.js';\nimport * as util from './util.js';\n\nexport { createClusters, setCreateClusters };\n\nvar createClusters = function (selection, g) {\n  var clusters = g.nodes().filter(function (v) {\n    return util.isSubgraph(g, v);\n  });\n  var svgClusters = selection.selectAll('g.cluster').data(clusters, function (v) {\n    return v;\n  });\n\n  util.applyTransition(svgClusters.exit(), g).style('opacity', 0).remove();\n\n  var enterSelection = svgClusters\n    .enter()\n    .append('g')\n    .attr('class', 'cluster')\n    .attr('id', function (v) {\n      var node = g.node(v);\n      return node.id;\n    })\n    .style('opacity', 0)\n    .each(function (v) {\n      var node = g.node(v);\n      var thisGroup = d3.select(this);\n      d3.select(this).append('rect');\n      var labelGroup = thisGroup.append('g').attr('class', 'label');\n      addLabel(labelGroup, node, node.clusterLabelPos);\n    });\n\n  svgClusters = svgClusters.merge(enterSelection);\n\n  svgClusters = util.applyTransition(svgClusters, g).style('opacity', 1);\n\n  svgClusters.selectAll('rect').each(function (c) {\n    var node = g.node(c);\n    var domCluster = d3.select(this);\n    util.applyStyle(domCluster, node.style);\n  });\n\n  return svgClusters;\n};\n\nfunction setCreateClusters(value) {\n  createClusters = value;\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { addLabel } from './label/add-label.js';\nimport * as util from './util.js';\n\nexport { createEdgeLabels, setCreateEdgeLabels };\n\nlet createEdgeLabels = function (selection, g) {\n  var svgEdgeLabels = selection\n    .selectAll('g.edgeLabel')\n    .data(g.edges(), function (e) {\n      return util.edgeToId(e);\n    })\n    .classed('update', true);\n\n  svgEdgeLabels.exit().remove();\n  svgEdgeLabels.enter().append('g').classed('edgeLabel', true).style('opacity', 0);\n\n  svgEdgeLabels = selection.selectAll('g.edgeLabel');\n\n  svgEdgeLabels.each(function (e) {\n    var root = d3.select(this);\n    root.select('.label').remove();\n    var edge = g.edge(e);\n    var label = addLabel(root, g.edge(e), 0).classed('label', true);\n    var bbox = label.node().getBBox();\n\n    if (edge.labelId) {\n      label.attr('id', edge.labelId);\n    }\n    if (!_.has(edge, 'width')) {\n      edge.width = bbox.width;\n    }\n    if (!_.has(edge, 'height')) {\n      edge.height = bbox.height;\n    }\n  });\n\n  var exitSelection;\n\n  if (svgEdgeLabels.exit) {\n    exitSelection = svgEdgeLabels.exit();\n  } else {\n    exitSelection = svgEdgeLabels.selectAll(null); // empty selection\n  }\n\n  util.applyTransition(exitSelection, g).style('opacity', 0).remove();\n\n  return svgEdgeLabels;\n};\n\nfunction setCreateEdgeLabels(value) {\n  createEdgeLabels = value;\n}\n","export { intersectNode };\n\nfunction intersectNode(node, point) {\n  return node.intersect(point);\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { intersectNode } from './intersect/intersect-node.js';\nimport * as util from './util.js';\n\nexport { createEdgePaths, setCreateEdgePaths };\n\nvar createEdgePaths = function (selection, g, arrows) {\n  var previousPaths = selection\n    .selectAll('g.edgePath')\n    .data(g.edges(), function (e) {\n      return util.edgeToId(e);\n    })\n    .classed('update', true);\n\n  var newPaths = enter(previousPaths, g);\n  exit(previousPaths, g);\n\n  var svgPaths = previousPaths.merge !== undefined ? previousPaths.merge(newPaths) : previousPaths;\n  util.applyTransition(svgPaths, g).style('opacity', 1);\n\n  // Save DOM element in the path group, and set ID and class\n  svgPaths.each(function (e) {\n    var domEdge = d3.select(this);\n    var edge = g.edge(e);\n    edge.elem = this;\n\n    if (edge.id) {\n      domEdge.attr('id', edge.id);\n    }\n\n    util.applyClass(\n      domEdge,\n      edge['class'],\n      (domEdge.classed('update') ? 'update ' : '') + 'edgePath'\n    );\n  });\n\n  svgPaths.selectAll('path.path').each(function (e) {\n    var edge = g.edge(e);\n    edge.arrowheadId = _.uniqueId('arrowhead');\n\n    var domEdge = d3\n      .select(this)\n      .attr('marker-end', function () {\n        return 'url(' + makeFragmentRef(location.href, edge.arrowheadId) + ')';\n      })\n      .style('fill', 'none');\n\n    util.applyTransition(domEdge, g).attr('d', function (e) {\n      return calcPoints(g, e);\n    });\n\n    util.applyStyle(domEdge, edge.style);\n  });\n\n  svgPaths.selectAll('defs *').remove();\n  svgPaths.selectAll('defs').each(function (e) {\n    var edge = g.edge(e);\n    var arrowhead = arrows[edge.arrowhead];\n    arrowhead(d3.select(this), edge.arrowheadId, edge, 'arrowhead');\n  });\n\n  return svgPaths;\n};\n\nfunction setCreateEdgePaths(value) {\n  createEdgePaths = value;\n}\n\nfunction makeFragmentRef(url, fragmentId) {\n  var baseUrl = url.split('#')[0];\n  return baseUrl + '#' + fragmentId;\n}\n\nfunction calcPoints(g, e) {\n  var edge = g.edge(e);\n  var tail = g.node(e.v);\n  var head = g.node(e.w);\n  var points = edge.points.slice(1, edge.points.length - 1);\n  points.unshift(intersectNode(tail, points[0]));\n  points.push(intersectNode(head, points[points.length - 1]));\n\n  return createLine(edge, points);\n}\n\nfunction createLine(edge, points) {\n  // @ts-expect-error\n  var line = (d3.line || d3.svg.line)()\n    .x(function (d) {\n      return d.x;\n    })\n    .y(function (d) {\n      return d.y;\n    });\n\n  (line.curve || line.interpolate)(edge.curve);\n\n  return line(points);\n}\n\nfunction getCoords(elem) {\n  var bbox = elem.getBBox();\n  var matrix = elem.ownerSVGElement\n    .getScreenCTM()\n    .inverse()\n    .multiply(elem.getScreenCTM())\n    .translate(bbox.width / 2, bbox.height / 2);\n  return { x: matrix.e, y: matrix.f };\n}\n\nfunction enter(svgPaths, g) {\n  var svgPathsEnter = svgPaths.enter().append('g').attr('class', 'edgePath').style('opacity', 0);\n  svgPathsEnter\n    .append('path')\n    .attr('class', 'path')\n    .attr('d', function (e) {\n      var edge = g.edge(e);\n      var sourceElem = g.node(e.v).elem;\n      var points = _.range(edge.points.length).map(function () {\n        return getCoords(sourceElem);\n      });\n      return createLine(edge, points);\n    });\n  svgPathsEnter.append('defs');\n  return svgPathsEnter;\n}\n\nfunction exit(svgPaths, g) {\n  var svgPathExit = svgPaths.exit();\n  util.applyTransition(svgPathExit, g).style('opacity', 0).remove();\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { addLabel } from './label/add-label.js';\nimport * as util from './util.js';\n\nexport { createNodes, setCreateNodes };\n\nvar createNodes = function (selection, g, shapes) {\n  var simpleNodes = g.nodes().filter(function (v) {\n    return !util.isSubgraph(g, v);\n  });\n  var svgNodes = selection\n    .selectAll('g.node')\n    .data(simpleNodes, function (v) {\n      return v;\n    })\n    .classed('update', true);\n\n  svgNodes.exit().remove();\n\n  svgNodes.enter().append('g').attr('class', 'node').style('opacity', 0);\n\n  svgNodes = selection.selectAll('g.node');\n\n  svgNodes.each(function (v) {\n    var node = g.node(v);\n    var thisGroup = d3.select(this);\n    util.applyClass(\n      thisGroup,\n      node['class'],\n      (thisGroup.classed('update') ? 'update ' : '') + 'node'\n    );\n\n    thisGroup.select('g.label').remove();\n    var labelGroup = thisGroup.append('g').attr('class', 'label');\n    var labelDom = addLabel(labelGroup, node);\n    var shape = shapes[node.shape];\n    var bbox = _.pick(labelDom.node().getBBox(), 'width', 'height');\n\n    node.elem = this;\n\n    if (node.id) {\n      thisGroup.attr('id', node.id);\n    }\n    if (node.labelId) {\n      labelGroup.attr('id', node.labelId);\n    }\n\n    if (_.has(node, 'width')) {\n      bbox.width = node.width;\n    }\n    if (_.has(node, 'height')) {\n      bbox.height = node.height;\n    }\n\n    bbox.width += node.paddingLeft + node.paddingRight;\n    bbox.height += node.paddingTop + node.paddingBottom;\n    labelGroup.attr(\n      'transform',\n      'translate(' +\n        (node.paddingLeft - node.paddingRight) / 2 +\n        ',' +\n        (node.paddingTop - node.paddingBottom) / 2 +\n        ')'\n    );\n\n    var root = d3.select(this);\n    root.select('.label-container').remove();\n    var shapeSvg = shape(root, bbox, node).classed('label-container', true);\n    util.applyStyle(shapeSvg, node.style);\n\n    var shapeBBox = shapeSvg.node().getBBox();\n    node.width = shapeBBox.width;\n    node.height = shapeBBox.height;\n  });\n\n  var exitSelection;\n\n  if (svgNodes.exit) {\n    exitSelection = svgNodes.exit();\n  } else {\n    exitSelection = svgNodes.selectAll(null); // empty selection\n  }\n\n  util.applyTransition(exitSelection, g).style('opacity', 0).remove();\n\n  return svgNodes;\n};\n\nfunction setCreateNodes(value) {\n  createNodes = value;\n}\n","import * as d3 from 'd3';\nimport * as util from './util.js';\n\nexport { positionClusters };\n\nfunction positionClusters(selection, g) {\n  var created = selection.filter(function () {\n    return !d3.select(this).classed('update');\n  });\n\n  function translate(v) {\n    var node = g.node(v);\n    return 'translate(' + node.x + ',' + node.y + ')';\n  }\n\n  created.attr('transform', translate);\n\n  util.applyTransition(selection, g).style('opacity', 1).attr('transform', translate);\n\n  util\n    .applyTransition(created.selectAll('rect'), g)\n    .attr('width', function (v) {\n      return g.node(v).width;\n    })\n    .attr('height', function (v) {\n      return g.node(v).height;\n    })\n    .attr('x', function (v) {\n      var node = g.node(v);\n      return -node.width / 2;\n    })\n    .attr('y', function (v) {\n      var node = g.node(v);\n      return -node.height / 2;\n    });\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { positionEdgeLabels };\n\nfunction positionEdgeLabels(selection, g) {\n  var created = selection.filter(function () {\n    return !d3.select(this).classed('update');\n  });\n\n  function translate(e) {\n    var edge = g.edge(e);\n    return _.has(edge, 'x') ? 'translate(' + edge.x + ',' + edge.y + ')' : '';\n  }\n\n  created.attr('transform', translate);\n\n  util.applyTransition(selection, g).style('opacity', 1).attr('transform', translate);\n}\n","import * as d3 from 'd3';\nimport * as util from './util.js';\n\nexport { positionNodes };\n\nfunction positionNodes(selection, g) {\n  var created = selection.filter(function () {\n    return !d3.select(this).classed('update');\n  });\n\n  function translate(v) {\n    var node = g.node(v);\n    return 'translate(' + node.x + ',' + node.y + ')';\n  }\n\n  created.attr('transform', translate);\n\n  util.applyTransition(selection, g).style('opacity', 1).attr('transform', translate);\n}\n","export { intersectEllipse };\n\nfunction intersectEllipse(node, rx, ry, point) {\n  // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n  var cx = node.x;\n  var cy = node.y;\n\n  var px = cx - point.x;\n  var py = cy - point.y;\n\n  var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n  var dx = Math.abs((rx * ry * px) / det);\n  if (point.x < cx) {\n    dx = -dx;\n  }\n  var dy = Math.abs((rx * ry * py) / det);\n  if (point.y < cy) {\n    dy = -dy;\n  }\n\n  return { x: cx + dx, y: cy + dy };\n}\n","import { intersectEllipse } from './intersect-ellipse.js';\n\nexport { intersectCircle };\n\nfunction intersectCircle(node, rx, point) {\n  return intersectEllipse(node, rx, rx, point);\n}\n","export { intersectLine };\n\n/*\n * Returns the point at which two lines, p and q, intersect or returns\n * undefined if they do not intersect.\n */\nfunction intersectLine(p1, p2, q1, q2) {\n  // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n  // p7 and p473.\n\n  var a1, a2, b1, b2, c1, c2;\n  var r1, r2, r3, r4;\n  var denom, offset, num;\n  var x, y;\n\n  // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n  // b1 y + c1 = 0.\n  a1 = p2.y - p1.y;\n  b1 = p1.x - p2.x;\n  c1 = p2.x * p1.y - p1.x * p2.y;\n\n  // Compute r3 and r4.\n  r3 = a1 * q1.x + b1 * q1.y + c1;\n  r4 = a1 * q2.x + b1 * q2.y + c1;\n\n  // Check signs of r3 and r4. If both point 3 and point 4 lie on\n  // same side of line 1, the line segments do not intersect.\n  if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n    return /*DONT_INTERSECT*/;\n  }\n\n  // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n  a2 = q2.y - q1.y;\n  b2 = q1.x - q2.x;\n  c2 = q2.x * q1.y - q1.x * q2.y;\n\n  // Compute r1 and r2\n  r1 = a2 * p1.x + b2 * p1.y + c2;\n  r2 = a2 * p2.x + b2 * p2.y + c2;\n\n  // Check signs of r1 and r2. If both point 1 and point 2 lie\n  // on same side of second line segment, the line segments do\n  // not intersect.\n  if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n    return /*DONT_INTERSECT*/;\n  }\n\n  // Line segments intersect: compute intersection point.\n  denom = a1 * b2 - a2 * b1;\n  if (denom === 0) {\n    return /*COLLINEAR*/;\n  }\n\n  offset = Math.abs(denom / 2);\n\n  // The denom/2 is to get rounding instead of truncating. It\n  // is added or subtracted to the numerator, depending upon the\n  // sign of the numerator.\n  num = b1 * c2 - b2 * c1;\n  x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n  num = a2 * c1 - a1 * c2;\n  y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n  return { x: x, y: y };\n}\n\nfunction sameSign(r1, r2) {\n  return r1 * r2 > 0;\n}\n","import { intersectLine } from './intersect-line.js';\n\nexport { intersectPolygon };\n\n/*\n * Returns the point ({x, y}) at which the point argument intersects with the\n * node argument assuming that it has the shape specified by polygon.\n */\nfunction intersectPolygon(node, polyPoints, point) {\n  var x1 = node.x;\n  var y1 = node.y;\n\n  var intersections = [];\n\n  var minX = Number.POSITIVE_INFINITY;\n  var minY = Number.POSITIVE_INFINITY;\n  polyPoints.forEach(function (entry) {\n    minX = Math.min(minX, entry.x);\n    minY = Math.min(minY, entry.y);\n  });\n\n  var left = x1 - node.width / 2 - minX;\n  var top = y1 - node.height / 2 - minY;\n\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 intersect = intersectLine(\n      node,\n      point,\n      { x: left + p1.x, y: top + p1.y },\n      { x: left + p2.x, y: top + p2.y }\n    );\n    if (intersect) {\n      intersections.push(intersect);\n    }\n  }\n\n  if (!intersections.length) {\n    console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);\n    return node;\n  }\n\n  if (intersections.length > 1) {\n    // More intersections, find the one nearest to edge end point\n    intersections.sort(function (p, q) {\n      var pdx = p.x - point.x;\n      var pdy = p.y - point.y;\n      var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n      var qdx = q.x - point.x;\n      var qdy = q.y - point.y;\n      var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n      return distp < distq ? -1 : distp === distq ? 0 : 1;\n    });\n  }\n  return intersections[0];\n}\n","export { intersectRect };\n\nfunction intersectRect(node, point) {\n  var x = node.x;\n  var y = node.y;\n\n  // Rectangle intersection algorithm from:\n  // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n  var dx = point.x - x;\n  var dy = point.y - y;\n  var w = node.width / 2;\n  var h = node.height / 2;\n\n  var sx, sy;\n  if (Math.abs(dy) * w > Math.abs(dx) * h) {\n    // Intersection is top or bottom of rect.\n    if (dy < 0) {\n      h = -h;\n    }\n    sx = dy === 0 ? 0 : (h * dx) / dy;\n    sy = h;\n  } else {\n    // Intersection is left or right of rect.\n    if (dx < 0) {\n      w = -w;\n    }\n    sx = w;\n    sy = dx === 0 ? 0 : (w * dy) / dx;\n  }\n\n  return { x: x + sx, y: y + sy };\n}\n","import { intersectCircle } from './intersect/intersect-circle.js';\nimport { intersectEllipse } from './intersect/intersect-ellipse.js';\nimport { intersectPolygon } from './intersect/intersect-polygon.js';\nimport { intersectRect } from './intersect/intersect-rect.js';\n\nexport { shapes, setShapes };\n\nvar shapes = {\n  rect,\n  ellipse,\n  circle,\n  diamond,\n};\n\nfunction setShapes(value) {\n  shapes = value;\n}\n\nfunction rect(parent, bbox, node) {\n  var shapeSvg = parent\n    .insert('rect', ':first-child')\n    .attr('rx', node.rx)\n    .attr('ry', node.ry)\n    .attr('x', -bbox.width / 2)\n    .attr('y', -bbox.height / 2)\n    .attr('width', bbox.width)\n    .attr('height', bbox.height);\n\n  node.intersect = function (point) {\n    return intersectRect(node, point);\n  };\n\n  return shapeSvg;\n}\n\nfunction ellipse(parent, bbox, node) {\n  var rx = bbox.width / 2;\n  var ry = bbox.height / 2;\n  var shapeSvg = parent\n    .insert('ellipse', ':first-child')\n    .attr('x', -bbox.width / 2)\n    .attr('y', -bbox.height / 2)\n    .attr('rx', rx)\n    .attr('ry', ry);\n\n  node.intersect = function (point) {\n    return intersectEllipse(node, rx, ry, point);\n  };\n\n  return shapeSvg;\n}\n\nfunction circle(parent, bbox, node) {\n  var r = Math.max(bbox.width, bbox.height) / 2;\n  var shapeSvg = parent\n    .insert('circle', ':first-child')\n    .attr('x', -bbox.width / 2)\n    .attr('y', -bbox.height / 2)\n    .attr('r', r);\n\n  node.intersect = function (point) {\n    return intersectCircle(node, r, point);\n  };\n\n  return shapeSvg;\n}\n\n// Circumscribe an ellipse for the bounding box with a diamond shape. I derived\n// the function to calculate the diamond shape from:\n// http://mathforum.org/kb/message.jspa?messageID=3750236\nfunction diamond(parent, bbox, node) {\n  var w = (bbox.width * Math.SQRT2) / 2;\n  var h = (bbox.height * Math.SQRT2) / 2;\n  var points = [\n    { x: 0, y: -h },\n    { x: -w, y: 0 },\n    { x: 0, y: h },\n    { x: w, y: 0 },\n  ];\n  var shapeSvg = parent.insert('polygon', ':first-child').attr(\n    'points',\n    points\n      .map(function (p) {\n        return p.x + ',' + p.y;\n      })\n      .join(' ')\n  );\n\n  node.intersect = function (p) {\n    return intersectPolygon(node, points, p);\n  };\n\n  return shapeSvg;\n}\n","import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { layout } from '../dagre/index.js';\nimport { arrows, setArrows } from './arrows.js';\nimport { createClusters, setCreateClusters } from './create-clusters.js';\nimport { createEdgeLabels, setCreateEdgeLabels } from './create-edge-labels.js';\nimport { createEdgePaths, setCreateEdgePaths } from './create-edge-paths.js';\nimport { createNodes, setCreateNodes } from './create-nodes.js';\nimport { positionClusters } from './position-clusters.js';\nimport { positionEdgeLabels } from './position-edge-labels.js';\nimport { positionNodes } from './position-nodes.js';\nimport { shapes, setShapes } from './shapes.js';\n\nexport { render };\n\n// This design is based on http://bost.ocks.org/mike/chart/.\nfunction render() {\n  var fn = function (svg, g) {\n    preProcessGraph(g);\n\n    var outputGroup = createOrSelectGroup(svg, 'output');\n    var clustersGroup = createOrSelectGroup(outputGroup, 'clusters');\n    var edgePathsGroup = createOrSelectGroup(outputGroup, 'edgePaths');\n    var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, 'edgeLabels'), g);\n    var nodes = createNodes(createOrSelectGroup(outputGroup, 'nodes'), g, shapes);\n\n    layout(g);\n\n    positionNodes(nodes, g);\n    positionEdgeLabels(edgeLabels, g);\n    createEdgePaths(edgePathsGroup, g, arrows);\n\n    var clusters = createClusters(clustersGroup, g);\n    positionClusters(clusters, g);\n\n    postProcessGraph(g);\n  };\n\n  fn.createNodes = function (value) {\n    if (!arguments.length) return createNodes;\n    setCreateNodes(value);\n    return fn;\n  };\n\n  fn.createClusters = function (value) {\n    if (!arguments.length) return createClusters;\n    setCreateClusters(value);\n    return fn;\n  };\n\n  fn.createEdgeLabels = function (value) {\n    if (!arguments.length) return createEdgeLabels;\n    setCreateEdgeLabels(value);\n    return fn;\n  };\n\n  fn.createEdgePaths = function (value) {\n    if (!arguments.length) return createEdgePaths;\n    setCreateEdgePaths(value);\n    return fn;\n  };\n\n  fn.shapes = function (value) {\n    if (!arguments.length) return shapes;\n    setShapes(value);\n    return fn;\n  };\n\n  fn.arrows = function (value) {\n    if (!arguments.length) return arrows;\n    setArrows(value);\n    return fn;\n  };\n\n  return fn;\n}\n\nvar NODE_DEFAULT_ATTRS = {\n  paddingLeft: 10,\n  paddingRight: 10,\n  paddingTop: 10,\n  paddingBottom: 10,\n  rx: 0,\n  ry: 0,\n  shape: 'rect',\n};\n\nvar EDGE_DEFAULT_ATTRS = {\n  arrowhead: 'normal',\n  curve: d3.curveLinear,\n};\n\nfunction preProcessGraph(g) {\n  g.nodes().forEach(function (v) {\n    var node = g.node(v);\n    if (!_.has(node, 'label') && !g.children(v).length) {\n      node.label = v;\n    }\n\n    if (_.has(node, 'paddingX')) {\n      _.defaults(node, {\n        paddingLeft: node.paddingX,\n        paddingRight: node.paddingX,\n      });\n    }\n\n    if (_.has(node, 'paddingY')) {\n      _.defaults(node, {\n        paddingTop: node.paddingY,\n        paddingBottom: node.paddingY,\n      });\n    }\n\n    if (_.has(node, 'padding')) {\n      _.defaults(node, {\n        paddingLeft: node.padding,\n        paddingRight: node.padding,\n        paddingTop: node.padding,\n        paddingBottom: node.padding,\n      });\n    }\n\n    _.defaults(node, NODE_DEFAULT_ATTRS);\n\n    _.each(['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom'], function (k) {\n      node[k] = Number(node[k]);\n    });\n\n    // Save dimensions for restore during post-processing\n    if (_.has(node, 'width')) {\n      node._prevWidth = node.width;\n    }\n    if (_.has(node, 'height')) {\n      node._prevHeight = node.height;\n    }\n  });\n\n  g.edges().forEach(function (e) {\n    var edge = g.edge(e);\n    if (!_.has(edge, 'label')) {\n      edge.label = '';\n    }\n    _.defaults(edge, EDGE_DEFAULT_ATTRS);\n  });\n}\n\nfunction postProcessGraph(g) {\n  _.each(g.nodes(), function (v) {\n    var node = g.node(v);\n\n    // Restore original dimensions\n    if (_.has(node, '_prevWidth')) {\n      node.width = node._prevWidth;\n    } else {\n      delete node.width;\n    }\n\n    if (_.has(node, '_prevHeight')) {\n      node.height = node._prevHeight;\n    } else {\n      delete node.height;\n    }\n\n    delete node._prevWidth;\n    delete node._prevHeight;\n  });\n}\n\nfunction createOrSelectGroup(root, name) {\n  var selection = root.select('g.' + name);\n  if (selection.empty()) {\n    selection = root.append('g').attr('class', name);\n  }\n  return selection;\n}\n","import { p as parser, f as flowDb } from \"./flowDb-956e92f1.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, curveLinear, selectAll } from \"d3\";\nimport { k as getStylesFromArray, m as evaluate, c as getConfig, r as renderKatex, e as common, l as log, n as interpolateToCurve, o as setupGraphViewbox } from \"./mermaid-b5860b54.js\";\nimport { render } from \"dagre-d3-es\";\nimport { applyStyle } from \"dagre-d3-es/src/dagre-js/util.js\";\nimport { addHtmlLabel } from \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport { intersectPolygon } from \"dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js\";\nimport { intersectRect } from \"dagre-d3-es/src/dagre-js/intersect/intersect-rect.js\";\nimport { f as flowRendererV2, a as flowStyles } from \"./styles-c10674c1.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"./index-3862675e.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-e0da2a9e.js\";\nimport \"./createText-2e5e7dd3.js\";\nimport \"mdast-util-from-markdown\";\nfunction question(parent, bbox, node) {\n  const w = bbox.width;\n  const h = bbox.height;\n  const s = (w + h) * 0.9;\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  const shapeSvg = insertPolygonShape(parent, s, s, points);\n  node.intersect = function(point) {\n    return intersectPolygon(node, points, point);\n  };\n  return shapeSvg;\n}\nfunction hexagon(parent, bbox, node) {\n  const f = 4;\n  const h = bbox.height;\n  const m = h / f;\n  const w = bbox.width + 2 * m;\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 shapeSvg = insertPolygonShape(parent, w, h, points);\n  node.intersect = function(point) {\n    return intersectPolygon(node, points, point);\n  };\n  return shapeSvg;\n}\nfunction rect_left_inv_arrow(parent, bbox, node) {\n  const w = bbox.width;\n  const h = bbox.height;\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 shapeSvg = insertPolygonShape(parent, w, h, points);\n  node.intersect = function(point) {\n    return intersectPolygon(node, points, point);\n  };\n  return shapeSvg;\n}\nfunction lean_right(parent, bbox, node) {\n  const w = bbox.width;\n  const h = bbox.height;\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 shapeSvg = insertPolygonShape(parent, w, h, points);\n  node.intersect = function(point) {\n    return intersectPolygon(node, points, point);\n  };\n  return shapeSvg;\n}\nfunction lean_left(parent, bbox, node) {\n  const w = bbox.width;\n  const h = bbox.height;\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 shapeSvg = insertPolygonShape(parent, w, h, points);\n  node.intersect = function(point) {\n    return intersectPolygon(node, points, point);\n  };\n  return shapeSvg;\n}\nfunction trapezoid(parent, bbox, node) {\n  const w = bbox.width;\n  const h = bbox.height;\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 shapeSvg = insertPolygonShape(parent, w, h, points);\n  node.intersect = function(point) {\n    return intersectPolygon(node, points, point);\n  };\n  return shapeSvg;\n}\nfunction inv_trapezoid(parent, bbox, node) {\n  const w = bbox.width;\n  const h = bbox.height;\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 shapeSvg = insertPolygonShape(parent, w, h, points);\n  node.intersect = function(point) {\n    return intersectPolygon(node, points, point);\n  };\n  return shapeSvg;\n}\nfunction rect_right_inv_arrow(parent, bbox, node) {\n  const w = bbox.width;\n  const h = bbox.height;\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 shapeSvg = insertPolygonShape(parent, w, h, points);\n  node.intersect = function(point) {\n    return intersectPolygon(node, points, point);\n  };\n  return shapeSvg;\n}\nfunction stadium(parent, bbox, node) {\n  const h = bbox.height;\n  const w = bbox.width + h / 4;\n  const shapeSvg = parent.insert(\"rect\", \":first-child\").attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n  node.intersect = function(point) {\n    return intersectRect(node, point);\n  };\n  return shapeSvg;\n}\nfunction subroutine(parent, bbox, node) {\n  const w = bbox.width;\n  const h = bbox.height;\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 shapeSvg = insertPolygonShape(parent, w, h, points);\n  node.intersect = function(point) {\n    return intersectPolygon(node, points, point);\n  };\n  return shapeSvg;\n}\nfunction cylinder(parent, bbox, node) {\n  const w = bbox.width;\n  const rx = w / 2;\n  const ry = rx / (2.5 + w / 50);\n  const h = bbox.height + ry;\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 shapeSvg = parent.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n  node.intersect = function(point) {\n    const pos = intersectRect(node, point);\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 (point.y - node.y > 0) {\n        y = -y;\n      }\n      pos.y += y;\n    }\n    return pos;\n  };\n  return shapeSvg;\n}\nfunction addToRender(render2) {\n  render2.shapes().question = question;\n  render2.shapes().hexagon = hexagon;\n  render2.shapes().stadium = stadium;\n  render2.shapes().subroutine = subroutine;\n  render2.shapes().cylinder = cylinder;\n  render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow;\n  render2.shapes().lean_right = lean_right;\n  render2.shapes().lean_left = lean_left;\n  render2.shapes().trapezoid = trapezoid;\n  render2.shapes().inv_trapezoid = inv_trapezoid;\n  render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow;\n}\nfunction addToRenderV2(addShape) {\n  addShape({ question });\n  addShape({ hexagon });\n  addShape({ stadium });\n  addShape({ subroutine });\n  addShape({ cylinder });\n  addShape({ rect_left_inv_arrow });\n  addShape({ lean_right });\n  addShape({ lean_left });\n  addShape({ trapezoid });\n  addShape({ inv_trapezoid });\n  addShape({ rect_right_inv_arrow });\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(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\nconst flowChartShapes = {\n  addToRender,\n  addToRenderV2\n};\nconst conf = {};\nconst setConf = function(cnf) {\n  const keys = Object.keys(cnf);\n  for (const key of keys) {\n    conf[key] = cnf[key];\n  }\n};\nconst addVertices = async function(vert, g, svgId, root, _doc, diagObj) {\n  const svg = !root ? select(`[id=\"${svgId}\"]`) : root.select(`[id=\"${svgId}\"]`);\n  const doc = !_doc ? document : _doc;\n  const keys = Object.keys(vert);\n  for (const id of keys) {\n    const vertex = vert[id];\n    let classStr = \"default\";\n    if (vertex.classes.length > 0) {\n      classStr = vertex.classes.join(\" \");\n    }\n    const styles = getStylesFromArray(vertex.styles);\n    let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n    let vertexNode;\n    if (evaluate(getConfig().flowchart.htmlLabels)) {\n      const node = {\n        label: await renderKatex(\n          vertexText.replace(\n            /fa[blrs]?:fa-[\\w-]+/g,\n            // cspell:disable-line\n            (s) => `<i class='${s.replace(\":\", \" \")}'></i>`\n          ),\n          getConfig()\n        )\n      };\n      vertexNode = addHtmlLabel(svg, node).node();\n      vertexNode.parentNode.removeChild(vertexNode);\n    } else {\n      const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n      svgLabel.setAttribute(\"style\", styles.labelStyle.replace(\"color:\", \"fill:\"));\n      const rows = vertexText.split(common.lineBreakRegex);\n      for (const row of rows) {\n        const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n        tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n        tspan.setAttribute(\"dy\", \"1em\");\n        tspan.setAttribute(\"x\", \"1\");\n        tspan.textContent = row;\n        svgLabel.appendChild(tspan);\n      }\n      vertexNode = svgLabel;\n    }\n    let radius = 0;\n    let _shape = \"\";\n    switch (vertex.type) {\n      case \"round\":\n        radius = 5;\n        _shape = \"rect\";\n        break;\n      case \"square\":\n        _shape = \"rect\";\n        break;\n      case \"diamond\":\n        _shape = \"question\";\n        break;\n      case \"hexagon\":\n        _shape = \"hexagon\";\n        break;\n      case \"odd\":\n        _shape = \"rect_left_inv_arrow\";\n        break;\n      case \"lean_right\":\n        _shape = \"lean_right\";\n        break;\n      case \"lean_left\":\n        _shape = \"lean_left\";\n        break;\n      case \"trapezoid\":\n        _shape = \"trapezoid\";\n        break;\n      case \"inv_trapezoid\":\n        _shape = \"inv_trapezoid\";\n        break;\n      case \"odd_right\":\n        _shape = \"rect_left_inv_arrow\";\n        break;\n      case \"circle\":\n        _shape = \"circle\";\n        break;\n      case \"ellipse\":\n        _shape = \"ellipse\";\n        break;\n      case \"stadium\":\n        _shape = \"stadium\";\n        break;\n      case \"subroutine\":\n        _shape = \"subroutine\";\n        break;\n      case \"cylinder\":\n        _shape = \"cylinder\";\n        break;\n      case \"group\":\n        _shape = \"rect\";\n        break;\n      default:\n        _shape = \"rect\";\n    }\n    log.warn(\"Adding node\", vertex.id, vertex.domId);\n    g.setNode(diagObj.db.lookUpDomId(vertex.id), {\n      labelType: \"svg\",\n      labelStyle: styles.labelStyle,\n      shape: _shape,\n      label: vertexNode,\n      rx: radius,\n      ry: radius,\n      class: classStr,\n      style: styles.style,\n      id: diagObj.db.lookUpDomId(vertex.id)\n    });\n  }\n};\nconst addEdges = async function(edges, g, diagObj) {\n  let cnt = 0;\n  let defaultStyle;\n  let defaultLabelStyle;\n  if (edges.defaultStyle !== void 0) {\n    const defaultStyles = getStylesFromArray(edges.defaultStyle);\n    defaultStyle = defaultStyles.style;\n    defaultLabelStyle = defaultStyles.labelStyle;\n  }\n  for (const edge of edges) {\n    cnt++;\n    const linkId = \"L-\" + edge.start + \"-\" + edge.end;\n    const linkNameStart = \"LS-\" + edge.start;\n    const linkNameEnd = \"LE-\" + edge.end;\n    const edgeData = {};\n    if (edge.type === \"arrow_open\") {\n      edgeData.arrowhead = \"none\";\n    } else {\n      edgeData.arrowhead = \"normal\";\n    }\n    let style = \"\";\n    let labelStyle = \"\";\n    if (edge.style !== void 0) {\n      const styles = getStylesFromArray(edge.style);\n      style = styles.style;\n      labelStyle = styles.labelStyle;\n    } else {\n      switch (edge.stroke) {\n        case \"normal\":\n          style = \"fill:none\";\n          if (defaultStyle !== void 0) {\n            style = defaultStyle;\n          }\n          if (defaultLabelStyle !== void 0) {\n            labelStyle = defaultLabelStyle;\n          }\n          break;\n        case \"dotted\":\n          style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n          break;\n        case \"thick\":\n          style = \" stroke-width: 3.5px;fill:none\";\n          break;\n      }\n    }\n    edgeData.style = style;\n    edgeData.labelStyle = labelStyle;\n    if (edge.interpolate !== void 0) {\n      edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n    } else if (edges.defaultInterpolate !== void 0) {\n      edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n    } else {\n      edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n    }\n    if (edge.text === void 0) {\n      if (edge.style !== void 0) {\n        edgeData.arrowheadStyle = \"fill: #333\";\n      }\n    } else {\n      edgeData.arrowheadStyle = \"fill: #333\";\n      edgeData.labelpos = \"c\";\n      if (evaluate(getConfig().flowchart.htmlLabels)) {\n        edgeData.labelType = \"html\";\n        edgeData.label = `<span id=\"L-${linkId}\" class=\"edgeLabel L-${linkNameStart}' L-${linkNameEnd}\" style=\"${edgeData.labelStyle}\">${await renderKatex(\n          edge.text.replace(\n            /fa[blrs]?:fa-[\\w-]+/g,\n            // cspell:disable-line\n            (s) => `<i class='${s.replace(\":\", \" \")}'></i>`\n          ),\n          getConfig()\n        )}</span>`;\n      } else {\n        edgeData.labelType = \"text\";\n        edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n        if (edge.style === void 0) {\n          edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none\";\n        }\n        edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n      }\n    }\n    edgeData.id = linkId;\n    edgeData.class = linkNameStart + \" \" + linkNameEnd;\n    edgeData.minlen = edge.length || 1;\n    g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt);\n  }\n};\nconst getClasses = function(text, diagObj) {\n  log.info(\"Extracting classes\");\n  return diagObj.db.getClasses();\n};\nconst draw = async function(text, id, _version, diagObj) {\n  log.info(\"Drawing flowchart\");\n  const { securityLevel, flowchart: conf2 } = getConfig();\n  let sandboxElement;\n  if (securityLevel === \"sandbox\") {\n    sandboxElement = select(\"#i\" + id);\n  }\n  const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n  const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n  let dir = diagObj.db.getDirection();\n  if (dir === void 0) {\n    dir = \"TD\";\n  }\n  const nodeSpacing = conf2.nodeSpacing || 50;\n  const rankSpacing = conf2.rankSpacing || 50;\n  const g = new graphlib.Graph({\n    multigraph: true,\n    compound: true\n  }).setGraph({\n    rankdir: dir,\n    nodesep: nodeSpacing,\n    ranksep: rankSpacing,\n    marginx: 8,\n    marginy: 8\n  }).setDefaultEdgeLabel(function() {\n    return {};\n  });\n  let subG;\n  const subGraphs = diagObj.db.getSubGraphs();\n  for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {\n    subG = subGraphs[i2];\n    diagObj.db.addVertex(subG.id, subG.title, \"group\", void 0, subG.classes);\n  }\n  const vert = diagObj.db.getVertices();\n  log.warn(\"Get vertices\", vert);\n  const edges = diagObj.db.getEdges();\n  let i = 0;\n  for (i = subGraphs.length - 1; i >= 0; i--) {\n    subG = subGraphs[i];\n    selectAll(\"cluster\").append(\"text\");\n    for (let j = 0; j < subG.nodes.length; j++) {\n      log.warn(\n        \"Setting subgraph\",\n        subG.nodes[j],\n        diagObj.db.lookUpDomId(subG.nodes[j]),\n        diagObj.db.lookUpDomId(subG.id)\n      );\n      g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));\n    }\n  }\n  await addVertices(vert, g, id, root, doc, diagObj);\n  await addEdges(edges, g, diagObj);\n  const render$1 = new render();\n  flowChartShapes.addToRender(render$1);\n  render$1.arrows().none = function normal(parent, id2, edge, type) {\n    const marker = parent.append(\"marker\").attr(\"id\", id2).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"strokeWidth\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 6).attr(\"orient\", \"auto\");\n    const path = marker.append(\"path\").attr(\"d\", \"M 0 0 L 0 0 L 0 0 z\");\n    applyStyle(path, edge[type + \"Style\"]);\n  };\n  render$1.arrows().normal = function normal(parent, id2) {\n    const marker = parent.append(\"marker\").attr(\"id\", id2).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"strokeWidth\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 6).attr(\"orient\", \"auto\");\n    marker.append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowheadPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n  };\n  const svg = root.select(`[id=\"${id}\"]`);\n  const element = root.select(\"#\" + id + \" g\");\n  render$1(element, g);\n  element.selectAll(\"g.node\").attr(\"title\", function() {\n    return diagObj.db.getTooltip(this.id);\n  });\n  diagObj.db.indexNodes(\"subGraph\" + i);\n  for (i = 0; i < subGraphs.length; i++) {\n    subG = subGraphs[i];\n    if (subG.title !== \"undefined\") {\n      const clusterRects = doc.querySelectorAll(\n        \"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(subG.id) + '\"] rect'\n      );\n      const clusterEl = doc.querySelectorAll(\n        \"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(subG.id) + '\"]'\n      );\n      const xPos = clusterRects[0].x.baseVal.value;\n      const yPos = clusterRects[0].y.baseVal.value;\n      const _width = clusterRects[0].width.baseVal.value;\n      const cluster = select(clusterEl[0]);\n      const te = cluster.select(\".label\");\n      te.attr(\"transform\", `translate(${xPos + _width / 2}, ${yPos + 14})`);\n      te.attr(\"id\", id + \"Text\");\n      for (let j = 0; j < subG.classes.length; j++) {\n        clusterEl[0].classList.add(subG.classes[j]);\n      }\n    }\n  }\n  if (!conf2.htmlLabels) {\n    const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n    for (const label of labels) {\n      const dim = label.getBBox();\n      const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n      rect.setAttribute(\"rx\", 0);\n      rect.setAttribute(\"ry\", 0);\n      rect.setAttribute(\"width\", dim.width);\n      rect.setAttribute(\"height\", dim.height);\n      label.insertBefore(rect, label.firstChild);\n    }\n  }\n  setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);\n  const keys = Object.keys(vert);\n  keys.forEach(function(key) {\n    const vertex = vert[key];\n    if (vertex.link) {\n      const node = root.select(\"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(key) + '\"]');\n      if (node) {\n        const link = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n        link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"class\", vertex.classes.join(\" \"));\n        link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"href\", vertex.link);\n        link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"rel\", \"noopener\");\n        if (securityLevel === \"sandbox\") {\n          link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", \"_top\");\n        } else if (vertex.linkTarget) {\n          link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", vertex.linkTarget);\n        }\n        const linkNode = node.insert(function() {\n          return link;\n        }, \":first-child\");\n        const shape = node.select(\".label-container\");\n        if (shape) {\n          linkNode.append(function() {\n            return shape.node();\n          });\n        }\n        const label = node.select(\".label\");\n        if (label) {\n          linkNode.append(function() {\n            return label.node();\n          });\n        }\n      }\n    }\n  });\n};\nconst flowRenderer = {\n  setConf,\n  addVertices,\n  addEdges,\n  getClasses,\n  draw\n};\nconst diagram = {\n  parser,\n  db: flowDb,\n  renderer: flowRendererV2,\n  styles: flowStyles,\n  init: (cnf) => {\n    if (!cnf.flowchart) {\n      cnf.flowchart = {};\n    }\n    cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n    flowRenderer.setConf(cnf.flowchart);\n    flowDb.clear();\n    flowDb.setGen(\"gen-1\");\n  }\n};\nexport {\n  diagram\n};\n"],"names":["responseText","response","text","input","init","parser","type","svg","arrows","normal","vee","undirected","setArrows","value","parent","id","edge","marker","path","util.applyStyle","addSVGLabel","root","node","domNode","addTextLabel","lines","processEscapeSequences","i","newText","escaped","ch","addLabel","location","label","labelSvg","addHtmlLabel","labelBBox","y","createClusters","selection","g","clusters","v","util.isSubgraph","svgClusters","util.applyTransition","enterSelection","thisGroup","d3.select","labelGroup","c","domCluster","setCreateClusters","createEdgeLabels","svgEdgeLabels","e","util.edgeToId","bbox","_.has","exitSelection","setCreateEdgeLabels","intersectNode","point","createEdgePaths","previousPaths","newPaths","enter","exit","svgPaths","domEdge","util.applyClass","_.uniqueId","d3\n      .select","makeFragmentRef","calcPoints","arrowhead","setCreateEdgePaths","url","fragmentId","baseUrl","tail","head","points","createLine","line","d3.line","d3.svg","d","getCoords","elem","matrix","svgPathsEnter","sourceElem","_.range","svgPathExit","createNodes","shapes","simpleNodes","svgNodes","labelDom","shape","_.pick","shapeSvg","shapeBBox","setCreateNodes","positionClusters","created","translate","util\n    .applyTransition","positionEdgeLabels","positionNodes","intersectEllipse","rx","ry","cx","cy","px","py","det","dx","dy","intersectCircle","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","x","sameSign","intersectPolygon","polyPoints","x1","y1","intersections","minX","minY","entry","left","top","intersect","p","q","pdx","pdy","distp","qdx","qdy","distq","intersectRect","w","h","sx","sy","rect","ellipse","circle","diamond","setShapes","r","render","fn","preProcessGraph","outputGroup","createOrSelectGroup","clustersGroup","edgePathsGroup","edgeLabels","nodes","layout","postProcessGraph","NODE_DEFAULT_ATTRS","EDGE_DEFAULT_ATTRS","d3.curveLinear","_.defaults","_.each","k","name","question","s","insertPolygonShape","hexagon","m","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","stadium","subroutine","cylinder","pos","addToRender","render2","addToRenderV2","addShape","flowChartShapes","conf","setConf","cnf","keys","key","addVertices","vert","svgId","_doc","diagObj","select","doc","vertex","classStr","styles","getStylesFromArray","vertexText","vertexNode","evaluate","getConfig","renderKatex","svgLabel","rows","common","row","tspan","radius","_shape","log","addEdges","edges","cnt","defaultStyle","defaultLabelStyle","defaultStyles","linkId","linkNameStart","linkNameEnd","edgeData","style","labelStyle","interpolateToCurve","curveLinear","getClasses","draw","_version","securityLevel","conf2","sandboxElement","dir","nodeSpacing","rankSpacing","graphlib.Graph","subG","subGraphs","i2","selectAll","j","render$1","id2","applyStyle","element","clusterRects","clusterEl","xPos","yPos","_width","te","labels","dim","setupGraphViewbox","link","linkNode","flowRenderer","diagram","flowDb","flowRendererV2","flowStyles"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]}

Zerion Mini Shell 1.0