@next-bricks/diagram 0.52.3 → 0.52.5

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.
Files changed (80) hide show
  1. package/dist/bricks.json +3 -3
  2. package/dist/chunks/1045.8709c6b1.js +2 -0
  3. package/dist/chunks/1045.8709c6b1.js.map +1 -0
  4. package/dist/chunks/114.f896f1cd.js +2 -0
  5. package/dist/chunks/{114.3d3eef7e.js.map → 114.f896f1cd.js.map} +1 -1
  6. package/dist/chunks/{1940.95ef0888.js → 1940.8bf79e2e.js} +2 -2
  7. package/dist/chunks/{1940.95ef0888.js.map → 1940.8bf79e2e.js.map} +1 -1
  8. package/dist/chunks/{2277.61a03a59.js → 2277.f1be2d12.js} +2 -2
  9. package/dist/chunks/{2277.61a03a59.js.map → 2277.f1be2d12.js.map} +1 -1
  10. package/dist/chunks/{2867.44a8e1db.js → 2867.560952cc.js} +2 -2
  11. package/dist/chunks/{2867.44a8e1db.js.map → 2867.560952cc.js.map} +1 -1
  12. package/dist/chunks/{3171.d3ff4c5d.js → 3171.587855c6.js} +2 -2
  13. package/dist/chunks/{3171.d3ff4c5d.js.map → 3171.587855c6.js.map} +1 -1
  14. package/dist/chunks/{3233.58b913fb.js → 3233.f2908272.js} +3 -3
  15. package/dist/chunks/{3233.58b913fb.js.map → 3233.f2908272.js.map} +1 -1
  16. package/dist/chunks/3426.e3be3a32.js +2 -0
  17. package/dist/chunks/3426.e3be3a32.js.map +1 -0
  18. package/dist/chunks/3933.8706ce70.js +2 -0
  19. package/dist/chunks/{6314.24ffda20.js.map → 3933.8706ce70.js.map} +1 -1
  20. package/dist/chunks/{4411.9226d910.js → 4411.f2b758b6.js} +3 -3
  21. package/dist/chunks/4411.f2b758b6.js.map +1 -0
  22. package/dist/chunks/{4658.8e526c62.js → 4658.edd08dfb.js} +2 -2
  23. package/dist/chunks/{4658.8e526c62.js.map → 4658.edd08dfb.js.map} +1 -1
  24. package/dist/chunks/{4837.989fa370.js → 4837.0e92016f.js} +2 -2
  25. package/dist/chunks/{7218.4837fbe7.js.map → 4837.0e92016f.js.map} +1 -1
  26. package/dist/chunks/{5443.e0be670a.js → 5443.c6bfe64e.js} +3 -3
  27. package/dist/chunks/{5443.e0be670a.js.map → 5443.c6bfe64e.js.map} +1 -1
  28. package/dist/chunks/{5552.c5a6e5a2.js → 5552.e14bec19.js} +2 -2
  29. package/dist/chunks/{5552.c5a6e5a2.js.map → 5552.e14bec19.js.map} +1 -1
  30. package/dist/chunks/6314.44bc553f.js +2 -0
  31. package/dist/chunks/{3933.9c28c17c.js.map → 6314.44bc553f.js.map} +1 -1
  32. package/dist/chunks/{7218.4837fbe7.js → 7218.ea389ce9.js} +2 -2
  33. package/dist/chunks/{4837.989fa370.js.map → 7218.ea389ce9.js.map} +1 -1
  34. package/dist/chunks/7733.a6b0e93e.js +2 -0
  35. package/dist/chunks/{7733.a3a4a9a1.js.map → 7733.a6b0e93e.js.map} +1 -1
  36. package/dist/chunks/{822.71a0bdf1.js → 816.7af35c6c.js} +2 -2
  37. package/dist/chunks/{822.71a0bdf1.js.map → 816.7af35c6c.js.map} +1 -1
  38. package/dist/chunks/{9559.85fd1ca7.js → 9559.4fa7ccb4.js} +2 -2
  39. package/dist/chunks/{9559.85fd1ca7.js.map → 9559.4fa7ccb4.js.map} +1 -1
  40. package/dist/chunks/9711.095da632.js +2 -0
  41. package/dist/chunks/{9711.67969033.js.map → 9711.095da632.js.map} +1 -1
  42. package/dist/chunks/editable-label.192d5170.js +3 -0
  43. package/dist/chunks/{editable-label.6b33860e.js.map → editable-label.192d5170.js.map} +1 -1
  44. package/dist/chunks/eo-diagram.c8b90fc3.js +2 -0
  45. package/dist/chunks/{eo-diagram.5f3935a9.js.map → eo-diagram.c8b90fc3.js.map} +1 -1
  46. package/dist/chunks/eo-display-canvas.369b1678.js +2 -0
  47. package/dist/chunks/{eo-display-canvas.91e68bf1.js.map → eo-display-canvas.369b1678.js.map} +1 -1
  48. package/dist/chunks/{eo-draw-canvas.20c32002.js → eo-draw-canvas.7b054fe1.js} +2 -2
  49. package/dist/chunks/{eo-draw-canvas.20c32002.js.map → eo-draw-canvas.7b054fe1.js.map} +1 -1
  50. package/dist/chunks/experimental-node.5a2982b3.js +2 -0
  51. package/dist/chunks/{experimental-node.713c8aaa.js.map → experimental-node.5a2982b3.js.map} +1 -1
  52. package/dist/chunks/main.e074c4a0.js +2 -0
  53. package/dist/chunks/{main.201774a6.js.map → main.e074c4a0.js.map} +1 -1
  54. package/dist/examples.json +5 -5
  55. package/dist/index.4d0fe243.js +2 -0
  56. package/dist/index.4d0fe243.js.map +1 -0
  57. package/dist/manifest.json +140 -140
  58. package/dist/types.json +4211 -4211
  59. package/package.json +3 -3
  60. package/dist/chunks/1045.63c485a7.js +0 -2
  61. package/dist/chunks/1045.63c485a7.js.map +0 -1
  62. package/dist/chunks/114.3d3eef7e.js +0 -2
  63. package/dist/chunks/3426.ae8ab421.js +0 -2
  64. package/dist/chunks/3426.ae8ab421.js.map +0 -1
  65. package/dist/chunks/3933.9c28c17c.js +0 -2
  66. package/dist/chunks/4411.9226d910.js.map +0 -1
  67. package/dist/chunks/6314.24ffda20.js +0 -2
  68. package/dist/chunks/7733.a3a4a9a1.js +0 -2
  69. package/dist/chunks/9711.67969033.js +0 -2
  70. package/dist/chunks/editable-label.6b33860e.js +0 -3
  71. package/dist/chunks/eo-diagram.5f3935a9.js +0 -2
  72. package/dist/chunks/eo-display-canvas.91e68bf1.js +0 -2
  73. package/dist/chunks/experimental-node.713c8aaa.js +0 -2
  74. package/dist/chunks/main.201774a6.js +0 -2
  75. package/dist/index.84f55802.js +0 -2
  76. package/dist/index.84f55802.js.map +0 -1
  77. /package/dist/chunks/{3233.58b913fb.js.LICENSE.txt → 3233.f2908272.js.LICENSE.txt} +0 -0
  78. /package/dist/chunks/{4411.9226d910.js.LICENSE.txt → 4411.f2b758b6.js.LICENSE.txt} +0 -0
  79. /package/dist/chunks/{5443.e0be670a.js.LICENSE.txt → 5443.c6bfe64e.js.LICENSE.txt} +0 -0
  80. /package/dist/chunks/{editable-label.6b33860e.js.LICENSE.txt → editable-label.192d5170.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/822.71a0bdf1.js","mappings":"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","sources":["webpack:///./src/diagram/MarkerComponent.tsx","webpack:///./src/diagram/lines/curveLine.ts","webpack:///./src/diagram/lines/getDirectLinePoints.ts","webpack:///./src/diagram/lines/getPolyLinePoints.ts","webpack:///./src/diagram/processors/doTwoNodesOverlap.ts","webpack:///./src/diagram/processors/extractPartialRectTuple.ts"],"sourcesContent":["import React from \"react\";\nimport type { LineMarkerType } from \"./interfaces\";\n\nexport interface MarkerComponentProps extends BaseMarkerComponentProps {\n type: LineMarkerType;\n}\n\nexport interface BaseMarkerComponentProps {\n id: string;\n strokeColor?: string;\n}\n\nexport function MarkerComponent({\n id,\n type,\n strokeColor,\n}: MarkerComponentProps): JSX.Element {\n let Component: (props: BaseMarkerComponentProps) => JSX.Element;\n\n switch (type) {\n case \"0..1\":\n Component = EntityRelationZeroOrOneMarker;\n break;\n case \"0..N\":\n Component = EntityRelationZeroOrManyMarker;\n break;\n case \"circle\":\n Component = CircleMarker;\n break;\n default:\n Component = ArrowMarker;\n }\n return <Component id={id} strokeColor={strokeColor} />;\n}\n\nfunction CircleMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n const r = 3;\n const d = r * 3;\n return (\n <marker\n viewBox={`0 0 ${d} ${d}`}\n refX={r}\n refY={r}\n id={id}\n overflow=\"visible\"\n markerWidth={d}\n markerHeight={d}\n >\n <circle stroke=\"none\" fill={strokeColor} cx={r} cy={r} r={r} />\n </marker>\n );\n}\n\nfunction ArrowMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 6 6\"\n refX={5}\n refY={3}\n markerWidth={6}\n markerHeight={6}\n orient=\"auto-start-reverse\"\n strokeLinejoin=\"round\"\n >\n <path\n d=\"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z\"\n stroke={strokeColor}\n strokeWidth={1}\n fill={strokeColor}\n />\n </marker>\n );\n}\n\nfunction EntityRelationZeroOrOneMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 21 11\"\n refX={0.5}\n refY={5.5}\n markerWidth={21}\n markerHeight={11}\n orient=\"auto-start-reverse\"\n >\n <path\n d=\"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 15.5 0.5 V 10.5 M 10.5 5.5 H 20.5\"\n stroke={strokeColor}\n strokeWidth={1}\n fill=\"none\"\n />\n </marker>\n );\n}\n\nfunction EntityRelationZeroOrManyMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 21 11\"\n refX={0.5}\n refY={5.5}\n markerWidth={21}\n markerHeight={11}\n orient=\"auto-start-reverse\"\n >\n <path\n d=\"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 20.5 0.5 L 10.5 5.5 L 20.5 10.5 M 10.5 5.5 H 20.5\"\n stroke={strokeColor}\n strokeWidth={1}\n fill=\"none\"\n />\n </marker>\n );\n}\n","import {\n curveLinear,\n line,\n curveBasis,\n curveBumpX,\n curveBumpY,\n type CurveFactory,\n curveMonotoneX,\n curveNatural,\n curveMonotoneY,\n} from \"d3-shape\";\nimport type { CurveType, NodePosition } from \"../interfaces\";\n\n/**\n * Generate Line from points\n */\nexport function curveLine(\n points: Array<NodePosition> | null | undefined,\n curveType: CurveType | undefined,\n startOffset: number,\n endOffset: number\n): string {\n if (!Array.isArray(points)) {\n return \"\";\n }\n let curveFactory: CurveFactory;\n switch (curveType) {\n case \"curveLinear\":\n curveFactory = curveLinear;\n break;\n case \"curveBumpX\":\n curveFactory = curveBumpX;\n break;\n case \"curveBumpY\":\n curveFactory = curveBumpY;\n break;\n case \"curveMonotoneX\":\n curveFactory = curveMonotoneX;\n break;\n case \"curveMonotoneY\":\n curveFactory = curveMonotoneY;\n break;\n case \"curveNatural\":\n curveFactory = curveNatural;\n break;\n default:\n curveFactory = curveBasis;\n }\n const startOffsets = getOffsets(points[1], points[0], startOffset);\n const endOffsets = getOffsets(\n points[points.length - 2],\n points[points.length - 1],\n endOffset\n );\n const lineFunction = line()\n .x(\n (d, index) =>\n (d as unknown as { x: number }).x -\n (index === 0\n ? startOffsets.x\n : index === points.length - 1\n ? endOffsets.x\n : 0)\n )\n .y(\n (d, index) =>\n (d as unknown as { y: number }).y -\n (index === 0\n ? startOffsets.y\n : index === points.length - 1\n ? endOffsets.y\n : 0)\n )\n .curve(curveFactory);\n return lineFunction(points as unknown as Array<[number, number]>)!;\n}\n\nfunction getOffsets(\n start: NodePosition,\n end: NodePosition,\n offset: number\n): NodePosition {\n if (!offset) {\n return { x: 0, y: 0 };\n }\n const { x: x0, y: y0 } = start;\n const { x: x1, y: y1 } = end;\n const distance = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));\n const ratio = offset / distance;\n return {\n x: (x1 - x0) * ratio,\n y: (y1 - y0) * ratio,\n };\n}\n","import type { EdgeView } from \"../../draw-canvas/interfaces\";\nimport type { NodePosition, NodeRect, PositionTuple } from \"../interfaces\";\nimport { doTwoNodesOverlap } from \"../processors/doTwoNodesOverlap\";\n\ntype LineTuple = [start: PositionTuple, end: PositionTuple];\n\nexport function getDirectLinePoints(\n source: NodeRect,\n target: NodeRect,\n parallelGap?: number,\n edgeView?: EdgeView\n): NodePosition[] | null {\n const hasExitPosition = !!edgeView?.exitPosition;\n const hasEntryPosition = !!edgeView?.entryPosition;\n\n // Ignore if two nodes are the same.\n // Ignore if two nodes overlap and no entry nor exit position.\n if (\n source === target ||\n (doTwoNodesOverlap(source, target, 0, 0) &&\n !(hasExitPosition || hasEntryPosition))\n ) {\n return null;\n }\n\n let p0: PositionTuple;\n let p1: PositionTuple;\n\n let xDiff = 0;\n let yDiff = 0;\n\n if (parallelGap) {\n const dx = target.x - source.x;\n const dy = target.y - source.y;\n const angle = Math.atan2(dy, dx);\n xDiff = (parallelGap / 2) * Math.cos(angle + Math.PI / 2);\n yDiff = (parallelGap / 2) * Math.sin(angle + Math.PI / 2);\n }\n\n const line: LineTuple = [\n hasExitPosition\n ? [\n source.x + (edgeView!.exitPosition!.x - 0.5) * source.width,\n source.y + (edgeView!.exitPosition!.y - 0.5) * source.height,\n ]\n : [source.x + xDiff, source.y + yDiff],\n hasEntryPosition\n ? [\n target.x + (edgeView!.entryPosition!.x - 0.5) * target.width,\n target.y + (edgeView!.entryPosition!.y - 0.5) * target.height,\n ]\n : [target.x + xDiff, target.y + yDiff],\n ];\n\n if (hasExitPosition) {\n p0 = line[0];\n } else {\n const sourceIntersections = getIntersections(source, line);\n // Todo: handle when more than one intersection\n if (sourceIntersections.length > 0) {\n p0 = sourceIntersections[0];\n } else {\n p0 = [source.x, source.y];\n }\n }\n\n if (hasEntryPosition) {\n p1 = line[1];\n } else {\n const targetIntersections = getIntersections(target, line);\n // Todo: handle when more than one intersection\n if (targetIntersections.length > 0) {\n p1 = targetIntersections[0];\n } else {\n p1 = [target.x, target.y];\n }\n }\n\n return [\n { x: p0[0], y: p0[1] },\n { x: p1[0], y: p1[1] },\n ];\n}\n\nfunction getIntersections(rect: NodeRect, line: LineTuple) {\n const vertices: PositionTuple[] = [\n [rect.x - rect.width / 2, rect.y - rect.height / 2],\n [rect.x + rect.width / 2, rect.y - rect.height / 2],\n [rect.x + rect.width / 2, rect.y + rect.height / 2],\n [rect.x - rect.width / 2, rect.y + rect.height / 2],\n ];\n const possibleLines: [start: PositionTuple, end: PositionTuple][] = [];\n for (let i = 0; i < 4; i++) {\n possibleLines.push([vertices[i], vertices[(i + 1) % 4]]);\n }\n const intersections: PositionTuple[] = [];\n for (const item of possibleLines) {\n const intersection = intersect(line[0], line[1], item[0], item[1]);\n if (intersection) {\n intersections.push(intersection);\n }\n }\n return intersections;\n}\n\n// https://paulbourke.net/geometry/pointlineplane/javascript.txt\nfunction intersect(\n [x1, y1]: PositionTuple,\n [x2, y2]: PositionTuple,\n [x3, y3]: PositionTuple,\n [x4, y4]: PositionTuple\n): null | PositionTuple {\n // Check if none of the lines are of length 0\n if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) {\n return null;\n }\n\n const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);\n\n // Lines are parallel\n if (denominator === 0) {\n return null;\n }\n\n const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator;\n\n // is the intersection along the segments\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) {\n return null;\n }\n\n // Return a object with the x and y coordinates of the intersection\n const x = x1 + ua * (x2 - x1);\n const y = y1 + ua * (y2 - y1);\n\n return [x, y];\n}\n","import type { Direction, NodePosition, NodeRect } from \"../interfaces\";\n\nconst MINIMAL_OFFSET = 20;\n\nexport function getPolyLinePoints(\n source: NodeRect,\n target: NodeRect,\n sourceDirection: Direction,\n targetDirection: Direction,\n sourcePosition: number,\n targetPosition: number\n): NodePosition[] {\n const p0 = getCoordinates(source, sourceDirection, sourcePosition);\n const p1 = getCoordinates(target, targetDirection, targetPosition);\n\n let controls: NodePosition[] = [];\n let reverseControls = false;\n\n const sourceIsVertical =\n sourceDirection === \"top\" || sourceDirection === \"bottom\";\n const targetIsVertical =\n targetDirection === \"top\" || targetDirection === \"bottom\";\n\n if (sourceIsVertical !== targetIsVertical) {\n // One is vertical and the other is horizontal\n let horizontal: NodeRect;\n let vertical: NodeRect;\n let horizontalSign: number;\n let verticalSign: number;\n let horizontalPosition: NodePosition;\n let verticalPosition: NodePosition;\n if (sourceIsVertical) {\n horizontal = target;\n vertical = source;\n horizontalSign = targetDirection === \"right\" ? 1 : -1;\n verticalSign = sourceDirection === \"bottom\" ? 1 : -1;\n horizontalPosition = p1;\n verticalPosition = p0;\n } else {\n horizontal = source;\n vertical = target;\n horizontalSign = sourceDirection === \"right\" ? 1 : -1;\n verticalSign = targetDirection === \"bottom\" ? 1 : -1;\n horizontalPosition = p0;\n verticalPosition = p1;\n reverseControls = true;\n }\n\n const defaultControlX =\n horizontalPosition.x + MINIMAL_OFFSET * horizontalSign;\n const defaultControlY = verticalPosition.y + MINIMAL_OFFSET * verticalSign;\n\n if ((horizontal.x - vertical.x) * horizontalSign >= 0) {\n if ((vertical.y - horizontal.y) * verticalSign >= 0) {\n // ┌──────────────┐\n // ┌──┴──┐ ┌─────┐ │\n // │ S │ │ T ├─┘\n // └─────┘ └─────┘\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: defaultControlX, y: defaultControlY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n } else {\n const controlY0 =\n vertical.y + (vertical.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const controlY1 =\n horizontal.y -\n (horizontal.height / 2 + MINIMAL_OFFSET) * verticalSign;\n if ((controlY1 - controlY0) * verticalSign >= 0) {\n // ┌─────┐\n // │ T ├─┐\n // └─────┘ │\n // ┌────────┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const middleY = (controlY0 + controlY1) / 2;\n controls = [\n { x: verticalPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n } else {\n // ┌─────┐\n // ┌────┐ │ T ├─┐\n // ┌──┴──┐ │ └─────┘ │\n // │ S │ └─────────┘\n // └─────┘\n const middleX =\n (vertical.x +\n (vertical.width / 2) * horizontalSign +\n horizontal.x -\n (horizontal.width / 2) * horizontalSign) /\n 2;\n controls = [\n { x: verticalPosition.x, y: controlY0 },\n { x: middleX, y: controlY0 },\n { x: middleX, y: controlY1 },\n { x: defaultControlX, y: controlY1 },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n }\n } else if ((horizontalPosition.y - defaultControlY) * verticalSign >= 0) {\n if ((verticalPosition.x - defaultControlX) * horizontalSign >= 0) {\n // ┌─────┐\n // ┌──┤ T │\n // │ └─────┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [{ x: verticalPosition.x, y: horizontalPosition.y }];\n } else {\n // ┌─────┐\n // │ T ├─┐\n // └─────┘ │\n // ┌─┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const controlY0 =\n vertical.y + (vertical.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const controlY1 =\n horizontal.y -\n (horizontal.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const middleY = (controlY0 + controlY1) / 2;\n controls = [\n { x: verticalPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n } else {\n const sourceExtendX =\n vertical.x - (vertical.width / 2 + MINIMAL_OFFSET) * horizontalSign;\n if ((sourceExtendX - defaultControlX) * horizontalSign >= 0) {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ S │\n // ┌─────┐ │ └─────┘\n // │ T ├─┘\n // └─────┘\n const middleX = (sourceExtendX + defaultControlX) / 2;\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: middleX, y: defaultControlY },\n { x: middleX, y: horizontalPosition.y },\n ];\n } else {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ S │\n // │ └─────┘\n // └───┐\n // ┌─────┐ │\n // │ T ├─┘\n // └─────┘\n const middleY =\n (vertical.y -\n (vertical.height / 2) * verticalSign +\n horizontal.y +\n (horizontal.height / 2) * verticalSign) /\n 2;\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: sourceExtendX, y: defaultControlY },\n { x: sourceExtendX, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n }\n } else if (sourceDirection === targetDirection) {\n // Same direction\n const sign =\n sourceDirection === \"bottom\" || sourceDirection === \"right\" ? 1 : -1;\n let start: NodeRect;\n let end: NodeRect;\n let startPosition: NodePosition;\n let endPosition: NodePosition;\n const axis = sourceIsVertical ? \"y\" : \"x\";\n const oppositeAxis = sourceIsVertical ? \"x\" : \"y\";\n if (target[axis] < source[axis]) {\n start = target;\n end = source;\n startPosition = p1;\n endPosition = p0;\n reverseControls = sign === 1;\n } else {\n start = source;\n end = target;\n startPosition = p0;\n endPosition = p1;\n reverseControls = sign !== 1;\n }\n const perpendicular =\n target[oppositeAxis] < source[oppositeAxis] ? source : target;\n let around: NodeRect;\n let nonAround: NodeRect;\n let aroundPosition: NodePosition;\n let nonAroundPosition: NodePosition;\n if (sign === 1) {\n around = end;\n nonAround = start;\n aroundPosition = endPosition;\n nonAroundPosition = startPosition;\n } else {\n around = start;\n nonAround = end;\n aroundPosition = startPosition;\n nonAroundPosition = endPosition;\n }\n const aroundSign = around === perpendicular ? 1 : -1;\n if (sourceIsVertical) {\n const defaultControlX =\n around.x - (around.width / 2 + MINIMAL_OFFSET) * aroundSign;\n const defaultControlY = aroundPosition.y + MINIMAL_OFFSET * sign;\n if ((defaultControlX - nonAroundPosition.x) * aroundSign >= 0) {\n // ┌─────────┐\n // │ ┌──┴──┐\n // │ │ T │\n // ┌──┴──┐ └─────┘\n // │ S │\n // └─────┘\n controls = [\n { x: nonAroundPosition.x, y: defaultControlY },\n { x: aroundPosition.x, y: defaultControlY },\n ];\n } else {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ T │\n // │ └─────┘\n // └─┐\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const middleY =\n (nonAround.y +\n (nonAround.height / 2) * sign +\n around.y -\n (around.height / 2) * sign) /\n 2;\n controls = [\n { x: nonAroundPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: defaultControlY },\n { x: aroundPosition.x, y: defaultControlY },\n ];\n }\n } else {\n const defaultControlX = aroundPosition.x + MINIMAL_OFFSET * sign;\n const defaultControlY =\n around.y - (around.height / 2 + MINIMAL_OFFSET) * aroundSign;\n if ((defaultControlY - nonAroundPosition.y) * aroundSign >= 0) {\n // ┌─────┐\n // ┌─────────┤ T │\n // │ ┌─────┐ └─────┘\n // └─┤ S │\n // └─────┘\n controls = [\n { x: defaultControlX, y: nonAroundPosition.y },\n { x: defaultControlX, y: aroundPosition.y },\n ];\n } else {\n // ┌─────────┐\n // │ ┌─────┐ │ ┌─────┐\n // └─┤ S │ └─┤ T │\n // └─────┘ └─────┘\n const middleX =\n (nonAround.x +\n (nonAround.width / 2) * sign +\n around.x -\n (around.width / 2) * sign) /\n 2;\n controls = [\n { x: middleX, y: nonAroundPosition.y },\n { x: middleX, y: defaultControlY },\n { x: defaultControlX, y: defaultControlY },\n { x: defaultControlX, y: aroundPosition.y },\n ];\n }\n }\n } else {\n // Opposite direction\n const targetSign =\n targetDirection === \"bottom\" || targetDirection === \"right\" ? 1 : -1;\n let axis: \"x\" | \"y\";\n let oppositeAxis: \"x\" | \"y\";\n let size: \"width\" | \"height\";\n let oppositeSize: \"width\" | \"height\";\n if (sourceIsVertical) {\n axis = \"y\";\n oppositeAxis = \"x\";\n size = \"height\";\n oppositeSize = \"width\";\n } else {\n axis = \"x\";\n oppositeAxis = \"y\";\n size = \"width\";\n oppositeSize = \"height\";\n }\n const targetEdge = target[axis] + (target[size] / 2) * targetSign;\n const sourceEdge = source[axis] - (source[size] / 2) * targetSign;\n const targetControl = targetEdge + MINIMAL_OFFSET * targetSign;\n const sourceControl = sourceEdge - MINIMAL_OFFSET * targetSign;\n const oppositeIsStraight = p0[oppositeAxis] === p1[oppositeAxis];\n if ((sourceControl - targetControl) * targetSign >= 0) {\n const middle = (sourceControl + targetControl) / 2;\n if (oppositeIsStraight) {\n // Straight line\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // │\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [];\n } else {\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // ┌───┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: middle },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: middle },\n ] as unknown[] as NodePosition[];\n }\n } else if (\n oppositeIsStraight &&\n (sourceEdge - targetEdge) * targetSign >= 0\n ) {\n // Straight line (very close)\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [];\n } else {\n const targetOppositeSign =\n target[oppositeAxis] < source[oppositeAxis] ? -1 : 1;\n const sourceOppositeControl =\n source[oppositeAxis] +\n (source[oppositeSize] / 2 + MINIMAL_OFFSET) * targetOppositeSign;\n const targetOppositeControl =\n target[oppositeAxis] -\n (target[oppositeSize] / 2 + MINIMAL_OFFSET) * targetOppositeSign;\n if (\n (targetOppositeControl - sourceOppositeControl) * targetOppositeSign >=\n 0 ||\n Math.abs((sourceControl - targetControl) * targetSign) < MINIMAL_OFFSET\n ) {\n // ┌─────┐\n // ┌────┐ │ T │\n // ┌──┴──┐ │ └──┬──┘\n // │ S │ └────┘\n // └─────┘\n const oppositeMiddle =\n (sourceOppositeControl + targetOppositeControl) / 2;\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: sourceControl },\n { [oppositeAxis]: oppositeMiddle, [axis]: sourceControl },\n { [oppositeAxis]: oppositeMiddle, [axis]: targetControl },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: targetControl },\n ] as unknown[] as NodePosition[];\n } else {\n // ┌────┐\n // ┌──┴──┐ │\n // │ S │ │\n // └─────┘ │\n // ┌─────────┘\n // │ ┌─────┐\n // │ │ T │\n // │ └──┬──┘\n // └────┘\n const middle =\n (source[axis] +\n (source[size] / 2) * targetSign +\n target[axis] -\n (target[size] / 2) * targetSign) /\n 2;\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: sourceControl },\n { [oppositeAxis]: sourceOppositeControl, [axis]: sourceControl },\n { [oppositeAxis]: sourceOppositeControl, [axis]: middle },\n { [oppositeAxis]: targetOppositeControl, [axis]: middle },\n { [oppositeAxis]: targetOppositeControl, [axis]: targetControl },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: targetControl },\n ] as unknown[] as NodePosition[];\n }\n }\n }\n\n if (reverseControls) {\n controls.reverse();\n }\n\n return [p0, ...controls, p1] as NodePosition[];\n}\n\nfunction getCoordinates(\n node: NodeRect,\n direction: Direction,\n position: number\n): NodePosition {\n const { x, y, width, height } = node;\n switch (direction) {\n case \"top\":\n return {\n x: x - width / 2 + width * position,\n y: y - height / 2,\n };\n case \"bottom\":\n return {\n x: x - width / 2 + width * position,\n y: y + height / 2,\n };\n case \"left\":\n return {\n x: x - width / 2,\n y: y - height / 2 + height * position,\n };\n case \"right\":\n return {\n x: x + width / 2,\n y: y - height / 2 + height * position,\n };\n }\n}\n","import type { NodeRect } from \"../interfaces\";\n\nexport function doTwoNodesOverlap(\n a: NodeRect,\n b: NodeRect,\n paddingA: number,\n paddingB: number\n): boolean {\n const A = paddingA ? getNodesWithPadding(a, paddingA) : a;\n const B = paddingB ? getNodesWithPadding(b, paddingB) : b;\n const left = Math.min(A.x - A.width / 2, B.x - B.width / 2);\n const right = Math.max(A.x + A.width / 2, B.x + B.width / 2);\n const top = Math.min(A.y - A.height / 2, B.y - B.height / 2);\n const bottom = Math.max(A.y + A.height / 2, B.y + B.height / 2);\n return right - left < A.width + B.width && bottom - top < A.height + B.height;\n}\n\nfunction getNodesWithPadding(node: NodeRect, padding: number) {\n return {\n x: node.x - node.width / 2 - padding,\n y: node.y - node.height / 2 - padding,\n width: node.width + padding * 2,\n height: node.height + padding * 2,\n };\n}\n","import type { FullRectTuple, PartialRectTuple } from \"../interfaces\";\n\nexport function extractPartialRectTuple(\n value: PartialRectTuple\n): FullRectTuple {\n if (Array.isArray(value)) {\n const v0 = value[0];\n const v1 = value.length > 1 ? value[1]! : v0;\n const v2 = value.length > 2 ? value[2]! : v0;\n const v3 = value.length > 3 ? value[3]! : v1;\n return [v0, v1, v2, v3];\n }\n return new Array(4).fill(value) as FullRectTuple;\n}\n"],"names":["MarkerComponent","_ref","Component","id","type","strokeColor","EntityRelationZeroOrOneMarker","EntityRelationZeroOrManyMarker","CircleMarker","ArrowMarker","React","_ref2","viewBox","refX","refY","overflow","markerWidth","r","markerHeight","stroke","fill","cx","cy","_ref3","orient","strokeLinejoin","d","strokeWidth","_ref4","_ref5","curveLine","points","curveType","startOffset","endOffset","Array","isArray","curveFactory","curveLinear","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveNatural","curveBasis","startOffsets","getOffsets","endOffsets","length","line","x","index","y","curve","lineFunction","start","end","offset","x0","y0","x1","y1","ratio","Math","sqrt","pow","getDirectLinePoints","source","target","parallelGap","edgeView","hasExitPosition","exitPosition","hasEntryPosition","entryPosition","doTwoNodesOverlap","p0","p1","xDiff","yDiff","dx","dy","angle","atan2","cos","PI","sin","width","height","sourceIntersections","getIntersections","targetIntersections","rect","vertices","possibleLines","i","push","intersections","item","intersection","intersect","x2","y2","x3","y3","x4","y4","denominator","ua","ub","MINIMAL_OFFSET","getPolyLinePoints","sourceDirection","targetDirection","sourcePosition","targetPosition","getCoordinates","controls","reverseControls","sourceIsVertical","horizontal","vertical","horizontalSign","verticalSign","horizontalPosition","verticalPosition","defaultControlX","defaultControlY","controlY0","controlY1","middleY","middleX","sourceExtendX","sign","startPosition","endPosition","axis","oppositeAxis","around","nonAround","aroundPosition","nonAroundPosition","aroundSign","targetSign","size","oppositeSize","targetEdge","sourceEdge","targetControl","sourceControl","oppositeIsStraight","middle","targetOppositeSign","sourceOppositeControl","targetOppositeControl","abs","oppositeMiddle","reverse","node","direction","position","a","b","paddingA","paddingB","A","getNodesWithPadding","B","left","min","right","max","top","bottom","padding","extractPartialRectTuple","value","v0","v1"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/816.7af35c6c.js","mappings":"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","sources":["webpack:///./src/diagram/MarkerComponent.tsx","webpack:///./src/diagram/lines/curveLine.ts","webpack:///./src/diagram/lines/getDirectLinePoints.ts","webpack:///./src/diagram/lines/getPolyLinePoints.ts","webpack:///./src/diagram/processors/doTwoNodesOverlap.ts","webpack:///./src/diagram/processors/extractPartialRectTuple.ts"],"sourcesContent":["import React from \"react\";\nimport type { LineMarkerType } from \"./interfaces\";\n\nexport interface MarkerComponentProps extends BaseMarkerComponentProps {\n type: LineMarkerType;\n}\n\nexport interface BaseMarkerComponentProps {\n id: string;\n strokeColor?: string;\n}\n\nexport function MarkerComponent({\n id,\n type,\n strokeColor,\n}: MarkerComponentProps): JSX.Element {\n let Component: (props: BaseMarkerComponentProps) => JSX.Element;\n\n switch (type) {\n case \"0..1\":\n Component = EntityRelationZeroOrOneMarker;\n break;\n case \"0..N\":\n Component = EntityRelationZeroOrManyMarker;\n break;\n case \"circle\":\n Component = CircleMarker;\n break;\n default:\n Component = ArrowMarker;\n }\n return <Component id={id} strokeColor={strokeColor} />;\n}\n\nfunction CircleMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n const r = 3;\n const d = r * 3;\n return (\n <marker\n viewBox={`0 0 ${d} ${d}`}\n refX={r}\n refY={r}\n id={id}\n overflow=\"visible\"\n markerWidth={d}\n markerHeight={d}\n >\n <circle stroke=\"none\" fill={strokeColor} cx={r} cy={r} r={r} />\n </marker>\n );\n}\n\nfunction ArrowMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 6 6\"\n refX={5}\n refY={3}\n markerWidth={6}\n markerHeight={6}\n orient=\"auto-start-reverse\"\n strokeLinejoin=\"round\"\n >\n <path\n d=\"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z\"\n stroke={strokeColor}\n strokeWidth={1}\n fill={strokeColor}\n />\n </marker>\n );\n}\n\nfunction EntityRelationZeroOrOneMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 21 11\"\n refX={0.5}\n refY={5.5}\n markerWidth={21}\n markerHeight={11}\n orient=\"auto-start-reverse\"\n >\n <path\n d=\"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 15.5 0.5 V 10.5 M 10.5 5.5 H 20.5\"\n stroke={strokeColor}\n strokeWidth={1}\n fill=\"none\"\n />\n </marker>\n );\n}\n\nfunction EntityRelationZeroOrManyMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 21 11\"\n refX={0.5}\n refY={5.5}\n markerWidth={21}\n markerHeight={11}\n orient=\"auto-start-reverse\"\n >\n <path\n d=\"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 20.5 0.5 L 10.5 5.5 L 20.5 10.5 M 10.5 5.5 H 20.5\"\n stroke={strokeColor}\n strokeWidth={1}\n fill=\"none\"\n />\n </marker>\n );\n}\n","import {\n curveLinear,\n line,\n curveBasis,\n curveBumpX,\n curveBumpY,\n type CurveFactory,\n curveMonotoneX,\n curveNatural,\n curveMonotoneY,\n} from \"d3-shape\";\nimport type { CurveType, NodePosition } from \"../interfaces\";\n\n/**\n * Generate Line from points\n */\nexport function curveLine(\n points: Array<NodePosition> | null | undefined,\n curveType: CurveType | undefined,\n startOffset: number,\n endOffset: number\n): string {\n if (!Array.isArray(points)) {\n return \"\";\n }\n let curveFactory: CurveFactory;\n switch (curveType) {\n case \"curveLinear\":\n curveFactory = curveLinear;\n break;\n case \"curveBumpX\":\n curveFactory = curveBumpX;\n break;\n case \"curveBumpY\":\n curveFactory = curveBumpY;\n break;\n case \"curveMonotoneX\":\n curveFactory = curveMonotoneX;\n break;\n case \"curveMonotoneY\":\n curveFactory = curveMonotoneY;\n break;\n case \"curveNatural\":\n curveFactory = curveNatural;\n break;\n default:\n curveFactory = curveBasis;\n }\n const startOffsets = getOffsets(points[1], points[0], startOffset);\n const endOffsets = getOffsets(\n points[points.length - 2],\n points[points.length - 1],\n endOffset\n );\n const lineFunction = line()\n .x(\n (d, index) =>\n (d as unknown as { x: number }).x -\n (index === 0\n ? startOffsets.x\n : index === points.length - 1\n ? endOffsets.x\n : 0)\n )\n .y(\n (d, index) =>\n (d as unknown as { y: number }).y -\n (index === 0\n ? startOffsets.y\n : index === points.length - 1\n ? endOffsets.y\n : 0)\n )\n .curve(curveFactory);\n return lineFunction(points as unknown as Array<[number, number]>)!;\n}\n\nfunction getOffsets(\n start: NodePosition,\n end: NodePosition,\n offset: number\n): NodePosition {\n if (!offset) {\n return { x: 0, y: 0 };\n }\n const { x: x0, y: y0 } = start;\n const { x: x1, y: y1 } = end;\n const distance = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));\n const ratio = offset / distance;\n return {\n x: (x1 - x0) * ratio,\n y: (y1 - y0) * ratio,\n };\n}\n","import type { EdgeView } from \"../../draw-canvas/interfaces\";\nimport type { NodePosition, NodeRect, PositionTuple } from \"../interfaces\";\nimport { doTwoNodesOverlap } from \"../processors/doTwoNodesOverlap\";\n\ntype LineTuple = [start: PositionTuple, end: PositionTuple];\n\nexport function getDirectLinePoints(\n source: NodeRect,\n target: NodeRect,\n parallelGap?: number,\n edgeView?: EdgeView\n): NodePosition[] | null {\n const hasExitPosition = !!edgeView?.exitPosition;\n const hasEntryPosition = !!edgeView?.entryPosition;\n\n // Ignore if two nodes are the same.\n // Ignore if two nodes overlap and no entry nor exit position.\n if (\n source === target ||\n (doTwoNodesOverlap(source, target, 0, 0) &&\n !(hasExitPosition || hasEntryPosition))\n ) {\n return null;\n }\n\n let p0: PositionTuple;\n let p1: PositionTuple;\n\n let xDiff = 0;\n let yDiff = 0;\n\n if (parallelGap) {\n const dx = target.x - source.x;\n const dy = target.y - source.y;\n const angle = Math.atan2(dy, dx);\n xDiff = (parallelGap / 2) * Math.cos(angle + Math.PI / 2);\n yDiff = (parallelGap / 2) * Math.sin(angle + Math.PI / 2);\n }\n\n const line: LineTuple = [\n hasExitPosition\n ? [\n source.x + (edgeView!.exitPosition!.x - 0.5) * source.width,\n source.y + (edgeView!.exitPosition!.y - 0.5) * source.height,\n ]\n : [source.x + xDiff, source.y + yDiff],\n hasEntryPosition\n ? [\n target.x + (edgeView!.entryPosition!.x - 0.5) * target.width,\n target.y + (edgeView!.entryPosition!.y - 0.5) * target.height,\n ]\n : [target.x + xDiff, target.y + yDiff],\n ];\n\n if (hasExitPosition) {\n p0 = line[0];\n } else {\n const sourceIntersections = getIntersections(source, line);\n // Todo: handle when more than one intersection\n if (sourceIntersections.length > 0) {\n p0 = sourceIntersections[0];\n } else {\n p0 = [source.x, source.y];\n }\n }\n\n if (hasEntryPosition) {\n p1 = line[1];\n } else {\n const targetIntersections = getIntersections(target, line);\n // Todo: handle when more than one intersection\n if (targetIntersections.length > 0) {\n p1 = targetIntersections[0];\n } else {\n p1 = [target.x, target.y];\n }\n }\n\n return [\n { x: p0[0], y: p0[1] },\n { x: p1[0], y: p1[1] },\n ];\n}\n\nfunction getIntersections(rect: NodeRect, line: LineTuple) {\n const vertices: PositionTuple[] = [\n [rect.x - rect.width / 2, rect.y - rect.height / 2],\n [rect.x + rect.width / 2, rect.y - rect.height / 2],\n [rect.x + rect.width / 2, rect.y + rect.height / 2],\n [rect.x - rect.width / 2, rect.y + rect.height / 2],\n ];\n const possibleLines: [start: PositionTuple, end: PositionTuple][] = [];\n for (let i = 0; i < 4; i++) {\n possibleLines.push([vertices[i], vertices[(i + 1) % 4]]);\n }\n const intersections: PositionTuple[] = [];\n for (const item of possibleLines) {\n const intersection = intersect(line[0], line[1], item[0], item[1]);\n if (intersection) {\n intersections.push(intersection);\n }\n }\n return intersections;\n}\n\n// https://paulbourke.net/geometry/pointlineplane/javascript.txt\nfunction intersect(\n [x1, y1]: PositionTuple,\n [x2, y2]: PositionTuple,\n [x3, y3]: PositionTuple,\n [x4, y4]: PositionTuple\n): null | PositionTuple {\n // Check if none of the lines are of length 0\n if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) {\n return null;\n }\n\n const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);\n\n // Lines are parallel\n if (denominator === 0) {\n return null;\n }\n\n const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator;\n\n // is the intersection along the segments\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) {\n return null;\n }\n\n // Return a object with the x and y coordinates of the intersection\n const x = x1 + ua * (x2 - x1);\n const y = y1 + ua * (y2 - y1);\n\n return [x, y];\n}\n","import type { Direction, NodePosition, NodeRect } from \"../interfaces\";\n\nconst MINIMAL_OFFSET = 20;\n\nexport function getPolyLinePoints(\n source: NodeRect,\n target: NodeRect,\n sourceDirection: Direction,\n targetDirection: Direction,\n sourcePosition: number,\n targetPosition: number\n): NodePosition[] {\n const p0 = getCoordinates(source, sourceDirection, sourcePosition);\n const p1 = getCoordinates(target, targetDirection, targetPosition);\n\n let controls: NodePosition[] = [];\n let reverseControls = false;\n\n const sourceIsVertical =\n sourceDirection === \"top\" || sourceDirection === \"bottom\";\n const targetIsVertical =\n targetDirection === \"top\" || targetDirection === \"bottom\";\n\n if (sourceIsVertical !== targetIsVertical) {\n // One is vertical and the other is horizontal\n let horizontal: NodeRect;\n let vertical: NodeRect;\n let horizontalSign: number;\n let verticalSign: number;\n let horizontalPosition: NodePosition;\n let verticalPosition: NodePosition;\n if (sourceIsVertical) {\n horizontal = target;\n vertical = source;\n horizontalSign = targetDirection === \"right\" ? 1 : -1;\n verticalSign = sourceDirection === \"bottom\" ? 1 : -1;\n horizontalPosition = p1;\n verticalPosition = p0;\n } else {\n horizontal = source;\n vertical = target;\n horizontalSign = sourceDirection === \"right\" ? 1 : -1;\n verticalSign = targetDirection === \"bottom\" ? 1 : -1;\n horizontalPosition = p0;\n verticalPosition = p1;\n reverseControls = true;\n }\n\n const defaultControlX =\n horizontalPosition.x + MINIMAL_OFFSET * horizontalSign;\n const defaultControlY = verticalPosition.y + MINIMAL_OFFSET * verticalSign;\n\n if ((horizontal.x - vertical.x) * horizontalSign >= 0) {\n if ((vertical.y - horizontal.y) * verticalSign >= 0) {\n // ┌──────────────┐\n // ┌──┴──┐ ┌─────┐ │\n // │ S │ │ T ├─┘\n // └─────┘ └─────┘\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: defaultControlX, y: defaultControlY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n } else {\n const controlY0 =\n vertical.y + (vertical.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const controlY1 =\n horizontal.y -\n (horizontal.height / 2 + MINIMAL_OFFSET) * verticalSign;\n if ((controlY1 - controlY0) * verticalSign >= 0) {\n // ┌─────┐\n // │ T ├─┐\n // └─────┘ │\n // ┌────────┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const middleY = (controlY0 + controlY1) / 2;\n controls = [\n { x: verticalPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n } else {\n // ┌─────┐\n // ┌────┐ │ T ├─┐\n // ┌──┴──┐ │ └─────┘ │\n // │ S │ └─────────┘\n // └─────┘\n const middleX =\n (vertical.x +\n (vertical.width / 2) * horizontalSign +\n horizontal.x -\n (horizontal.width / 2) * horizontalSign) /\n 2;\n controls = [\n { x: verticalPosition.x, y: controlY0 },\n { x: middleX, y: controlY0 },\n { x: middleX, y: controlY1 },\n { x: defaultControlX, y: controlY1 },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n }\n } else if ((horizontalPosition.y - defaultControlY) * verticalSign >= 0) {\n if ((verticalPosition.x - defaultControlX) * horizontalSign >= 0) {\n // ┌─────┐\n // ┌──┤ T │\n // │ └─────┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [{ x: verticalPosition.x, y: horizontalPosition.y }];\n } else {\n // ┌─────┐\n // │ T ├─┐\n // └─────┘ │\n // ┌─┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const controlY0 =\n vertical.y + (vertical.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const controlY1 =\n horizontal.y -\n (horizontal.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const middleY = (controlY0 + controlY1) / 2;\n controls = [\n { x: verticalPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n } else {\n const sourceExtendX =\n vertical.x - (vertical.width / 2 + MINIMAL_OFFSET) * horizontalSign;\n if ((sourceExtendX - defaultControlX) * horizontalSign >= 0) {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ S │\n // ┌─────┐ │ └─────┘\n // │ T ├─┘\n // └─────┘\n const middleX = (sourceExtendX + defaultControlX) / 2;\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: middleX, y: defaultControlY },\n { x: middleX, y: horizontalPosition.y },\n ];\n } else {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ S │\n // │ └─────┘\n // └───┐\n // ┌─────┐ │\n // │ T ├─┘\n // └─────┘\n const middleY =\n (vertical.y -\n (vertical.height / 2) * verticalSign +\n horizontal.y +\n (horizontal.height / 2) * verticalSign) /\n 2;\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: sourceExtendX, y: defaultControlY },\n { x: sourceExtendX, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n }\n } else if (sourceDirection === targetDirection) {\n // Same direction\n const sign =\n sourceDirection === \"bottom\" || sourceDirection === \"right\" ? 1 : -1;\n let start: NodeRect;\n let end: NodeRect;\n let startPosition: NodePosition;\n let endPosition: NodePosition;\n const axis = sourceIsVertical ? \"y\" : \"x\";\n const oppositeAxis = sourceIsVertical ? \"x\" : \"y\";\n if (target[axis] < source[axis]) {\n start = target;\n end = source;\n startPosition = p1;\n endPosition = p0;\n reverseControls = sign === 1;\n } else {\n start = source;\n end = target;\n startPosition = p0;\n endPosition = p1;\n reverseControls = sign !== 1;\n }\n const perpendicular =\n target[oppositeAxis] < source[oppositeAxis] ? source : target;\n let around: NodeRect;\n let nonAround: NodeRect;\n let aroundPosition: NodePosition;\n let nonAroundPosition: NodePosition;\n if (sign === 1) {\n around = end;\n nonAround = start;\n aroundPosition = endPosition;\n nonAroundPosition = startPosition;\n } else {\n around = start;\n nonAround = end;\n aroundPosition = startPosition;\n nonAroundPosition = endPosition;\n }\n const aroundSign = around === perpendicular ? 1 : -1;\n if (sourceIsVertical) {\n const defaultControlX =\n around.x - (around.width / 2 + MINIMAL_OFFSET) * aroundSign;\n const defaultControlY = aroundPosition.y + MINIMAL_OFFSET * sign;\n if ((defaultControlX - nonAroundPosition.x) * aroundSign >= 0) {\n // ┌─────────┐\n // │ ┌──┴──┐\n // │ │ T │\n // ┌──┴──┐ └─────┘\n // │ S │\n // └─────┘\n controls = [\n { x: nonAroundPosition.x, y: defaultControlY },\n { x: aroundPosition.x, y: defaultControlY },\n ];\n } else {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ T │\n // │ └─────┘\n // └─┐\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const middleY =\n (nonAround.y +\n (nonAround.height / 2) * sign +\n around.y -\n (around.height / 2) * sign) /\n 2;\n controls = [\n { x: nonAroundPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: defaultControlY },\n { x: aroundPosition.x, y: defaultControlY },\n ];\n }\n } else {\n const defaultControlX = aroundPosition.x + MINIMAL_OFFSET * sign;\n const defaultControlY =\n around.y - (around.height / 2 + MINIMAL_OFFSET) * aroundSign;\n if ((defaultControlY - nonAroundPosition.y) * aroundSign >= 0) {\n // ┌─────┐\n // ┌─────────┤ T │\n // │ ┌─────┐ └─────┘\n // └─┤ S │\n // └─────┘\n controls = [\n { x: defaultControlX, y: nonAroundPosition.y },\n { x: defaultControlX, y: aroundPosition.y },\n ];\n } else {\n // ┌─────────┐\n // │ ┌─────┐ │ ┌─────┐\n // └─┤ S │ └─┤ T │\n // └─────┘ └─────┘\n const middleX =\n (nonAround.x +\n (nonAround.width / 2) * sign +\n around.x -\n (around.width / 2) * sign) /\n 2;\n controls = [\n { x: middleX, y: nonAroundPosition.y },\n { x: middleX, y: defaultControlY },\n { x: defaultControlX, y: defaultControlY },\n { x: defaultControlX, y: aroundPosition.y },\n ];\n }\n }\n } else {\n // Opposite direction\n const targetSign =\n targetDirection === \"bottom\" || targetDirection === \"right\" ? 1 : -1;\n let axis: \"x\" | \"y\";\n let oppositeAxis: \"x\" | \"y\";\n let size: \"width\" | \"height\";\n let oppositeSize: \"width\" | \"height\";\n if (sourceIsVertical) {\n axis = \"y\";\n oppositeAxis = \"x\";\n size = \"height\";\n oppositeSize = \"width\";\n } else {\n axis = \"x\";\n oppositeAxis = \"y\";\n size = \"width\";\n oppositeSize = \"height\";\n }\n const targetEdge = target[axis] + (target[size] / 2) * targetSign;\n const sourceEdge = source[axis] - (source[size] / 2) * targetSign;\n const targetControl = targetEdge + MINIMAL_OFFSET * targetSign;\n const sourceControl = sourceEdge - MINIMAL_OFFSET * targetSign;\n const oppositeIsStraight = p0[oppositeAxis] === p1[oppositeAxis];\n if ((sourceControl - targetControl) * targetSign >= 0) {\n const middle = (sourceControl + targetControl) / 2;\n if (oppositeIsStraight) {\n // Straight line\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // │\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [];\n } else {\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // ┌───┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: middle },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: middle },\n ] as unknown[] as NodePosition[];\n }\n } else if (\n oppositeIsStraight &&\n (sourceEdge - targetEdge) * targetSign >= 0\n ) {\n // Straight line (very close)\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [];\n } else {\n const targetOppositeSign =\n target[oppositeAxis] < source[oppositeAxis] ? -1 : 1;\n const sourceOppositeControl =\n source[oppositeAxis] +\n (source[oppositeSize] / 2 + MINIMAL_OFFSET) * targetOppositeSign;\n const targetOppositeControl =\n target[oppositeAxis] -\n (target[oppositeSize] / 2 + MINIMAL_OFFSET) * targetOppositeSign;\n if (\n (targetOppositeControl - sourceOppositeControl) * targetOppositeSign >=\n 0 ||\n Math.abs((sourceControl - targetControl) * targetSign) < MINIMAL_OFFSET\n ) {\n // ┌─────┐\n // ┌────┐ │ T │\n // ┌──┴──┐ │ └──┬──┘\n // │ S │ └────┘\n // └─────┘\n const oppositeMiddle =\n (sourceOppositeControl + targetOppositeControl) / 2;\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: sourceControl },\n { [oppositeAxis]: oppositeMiddle, [axis]: sourceControl },\n { [oppositeAxis]: oppositeMiddle, [axis]: targetControl },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: targetControl },\n ] as unknown[] as NodePosition[];\n } else {\n // ┌────┐\n // ┌──┴──┐ │\n // │ S │ │\n // └─────┘ │\n // ┌─────────┘\n // │ ┌─────┐\n // │ │ T │\n // │ └──┬──┘\n // └────┘\n const middle =\n (source[axis] +\n (source[size] / 2) * targetSign +\n target[axis] -\n (target[size] / 2) * targetSign) /\n 2;\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: sourceControl },\n { [oppositeAxis]: sourceOppositeControl, [axis]: sourceControl },\n { [oppositeAxis]: sourceOppositeControl, [axis]: middle },\n { [oppositeAxis]: targetOppositeControl, [axis]: middle },\n { [oppositeAxis]: targetOppositeControl, [axis]: targetControl },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: targetControl },\n ] as unknown[] as NodePosition[];\n }\n }\n }\n\n if (reverseControls) {\n controls.reverse();\n }\n\n return [p0, ...controls, p1] as NodePosition[];\n}\n\nfunction getCoordinates(\n node: NodeRect,\n direction: Direction,\n position: number\n): NodePosition {\n const { x, y, width, height } = node;\n switch (direction) {\n case \"top\":\n return {\n x: x - width / 2 + width * position,\n y: y - height / 2,\n };\n case \"bottom\":\n return {\n x: x - width / 2 + width * position,\n y: y + height / 2,\n };\n case \"left\":\n return {\n x: x - width / 2,\n y: y - height / 2 + height * position,\n };\n case \"right\":\n return {\n x: x + width / 2,\n y: y - height / 2 + height * position,\n };\n }\n}\n","import type { NodeRect } from \"../interfaces\";\n\nexport function doTwoNodesOverlap(\n a: NodeRect,\n b: NodeRect,\n paddingA: number,\n paddingB: number\n): boolean {\n const A = paddingA ? getNodesWithPadding(a, paddingA) : a;\n const B = paddingB ? getNodesWithPadding(b, paddingB) : b;\n const left = Math.min(A.x - A.width / 2, B.x - B.width / 2);\n const right = Math.max(A.x + A.width / 2, B.x + B.width / 2);\n const top = Math.min(A.y - A.height / 2, B.y - B.height / 2);\n const bottom = Math.max(A.y + A.height / 2, B.y + B.height / 2);\n return right - left < A.width + B.width && bottom - top < A.height + B.height;\n}\n\nfunction getNodesWithPadding(node: NodeRect, padding: number) {\n return {\n x: node.x - node.width / 2 - padding,\n y: node.y - node.height / 2 - padding,\n width: node.width + padding * 2,\n height: node.height + padding * 2,\n };\n}\n","import type { FullRectTuple, PartialRectTuple } from \"../interfaces\";\n\nexport function extractPartialRectTuple(\n value: PartialRectTuple\n): FullRectTuple {\n if (Array.isArray(value)) {\n const v0 = value[0];\n const v1 = value.length > 1 ? value[1]! : v0;\n const v2 = value.length > 2 ? value[2]! : v0;\n const v3 = value.length > 3 ? value[3]! : v1;\n return [v0, v1, v2, v3];\n }\n return new Array(4).fill(value) as FullRectTuple;\n}\n"],"names":["MarkerComponent","_ref","Component","id","type","strokeColor","EntityRelationZeroOrOneMarker","EntityRelationZeroOrManyMarker","CircleMarker","ArrowMarker","React","_ref2","viewBox","refX","refY","overflow","markerWidth","r","markerHeight","stroke","fill","cx","cy","_ref3","orient","strokeLinejoin","d","strokeWidth","_ref4","_ref5","curveLine","points","curveType","startOffset","endOffset","Array","isArray","curveFactory","curveLinear","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveNatural","curveBasis","startOffsets","getOffsets","endOffsets","length","line","x","index","y","curve","lineFunction","start","end","offset","x0","y0","x1","y1","ratio","Math","sqrt","pow","getDirectLinePoints","source","target","parallelGap","edgeView","hasExitPosition","exitPosition","hasEntryPosition","entryPosition","doTwoNodesOverlap","p0","p1","xDiff","yDiff","dx","dy","angle","atan2","cos","PI","sin","width","height","sourceIntersections","getIntersections","targetIntersections","rect","vertices","possibleLines","i","push","intersections","item","intersection","intersect","x2","y2","x3","y3","x4","y4","denominator","ua","ub","MINIMAL_OFFSET","getPolyLinePoints","sourceDirection","targetDirection","sourcePosition","targetPosition","getCoordinates","controls","reverseControls","sourceIsVertical","horizontal","vertical","horizontalSign","verticalSign","horizontalPosition","verticalPosition","defaultControlX","defaultControlY","controlY0","controlY1","middleY","middleX","sourceExtendX","sign","startPosition","endPosition","axis","oppositeAxis","around","nonAround","aroundPosition","nonAroundPosition","aroundSign","targetSign","size","oppositeSize","targetEdge","sourceEdge","targetControl","sourceControl","oppositeIsStraight","middle","targetOppositeSign","sourceOppositeControl","targetOppositeControl","abs","oppositeMiddle","reverse","node","direction","position","a","b","paddingA","paddingB","A","getNodesWithPadding","B","left","min","right","max","top","bottom","padding","extractPartialRectTuple","value","v0","v1"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[9559,1940],{9559:(e,t,r)=>{r.r(t),r.d(t,{supply:()=>o});var n=r(1030),a=r(1302),i=r(1744);function o(e,t,r){const n={};for(const a of e)if(!Object.prototype.hasOwnProperty.call(n,a))if("undefined"===a)n[a]=void 0;else if(t&&Object.prototype.hasOwnProperty.call(t,a))n[a]=t[a];else{const e=u(a,r);void 0!==e&&(n[a]=e)}return n}const s=new Set(["fill","pull","pullAll","pullAllBy","pullAllWith","pullAt","remove","reverse","assign","assignIn","assignInWith","assignWith","defaults","defaultsDeep","merge","mergeWith","set","setWith","unset","update","updateWith","after","ary","before","bind","bindKey","curry","curryRight","debounce","defer","delay","flip","memoize","negate","once","overArgs","partial","partialRight","rearg","rest","spread","throttle","unary","wrap"]),l=new Set(["lang","langData","locale","localeData","defineLocale","updateLocale","updateOffset"]),c=new Set(["Array","Boolean","Date","Infinity","JSON","Math","NaN","Number","String","RegExp","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","isFinite","isNaN","parseFloat","parseInt","Map","Set","URL","URLSearchParams","WeakMap","WeakSet","atob","btoa"]);function u(e,t){switch(e){case"Object":return r=Object,o=["entries","fromEntries","keys","values"],Object.fromEntries(o.map((e=>[e,function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return r[e].apply(r,n)}])));case"_":return Object.fromEntries(Object.entries(n).filter((e=>!s.has(e[0]))).concat(t?[["uniqueId",e=>`${null!=e?e:""}42`]]:[]));case"moment":return Object.assign((function(){return a(...arguments)}),Object.fromEntries(Object.entries(a).filter((e=>!l.has(e[0])))));case"PIPES":return i.pipes;case"TAG_URL":return p(!0);case"SAFE_TAG_URL":return p();default:if(c.has(e))return window[e]}var r,o}function p(e){return function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];const i=[];return t.forEach(((t,r)=>{i.push(t),r<n.length&&i.push(e?String(n[r]).replace(/[^/]+/g,(e=>encodeURIComponent(e))):encodeURIComponent(String(n[r])))})),i.join("")}}}}]);
2
- //# sourceMappingURL=9559.85fd1ca7.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[9559,1940],{9559:(e,t,r)=>{r.r(t),r.d(t,{supply:()=>o});var n=r(1030),a=r(1302),i=r(7273);function o(e,t,r){const n={};for(const a of e)if(!Object.prototype.hasOwnProperty.call(n,a))if("undefined"===a)n[a]=void 0;else if(t&&Object.prototype.hasOwnProperty.call(t,a))n[a]=t[a];else{const e=u(a,r);void 0!==e&&(n[a]=e)}return n}const s=new Set(["fill","pull","pullAll","pullAllBy","pullAllWith","pullAt","remove","reverse","assign","assignIn","assignInWith","assignWith","defaults","defaultsDeep","merge","mergeWith","set","setWith","unset","update","updateWith","after","ary","before","bind","bindKey","curry","curryRight","debounce","defer","delay","flip","memoize","negate","once","overArgs","partial","partialRight","rearg","rest","spread","throttle","unary","wrap"]),l=new Set(["lang","langData","locale","localeData","defineLocale","updateLocale","updateOffset"]),c=new Set(["Array","Boolean","Date","Infinity","JSON","Math","NaN","Number","String","RegExp","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","isFinite","isNaN","parseFloat","parseInt","Map","Set","URL","URLSearchParams","WeakMap","WeakSet","atob","btoa"]);function u(e,t){switch(e){case"Object":return r=Object,o=["entries","fromEntries","keys","values"],Object.fromEntries(o.map((e=>[e,function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return r[e].apply(r,n)}])));case"_":return Object.fromEntries(Object.entries(n).filter((e=>!s.has(e[0]))).concat(t?[["uniqueId",e=>`${null!=e?e:""}42`]]:[]));case"moment":return Object.assign((function(){return a(...arguments)}),Object.fromEntries(Object.entries(a).filter((e=>!l.has(e[0])))));case"PIPES":return i.pipes;case"TAG_URL":return p(!0);case"SAFE_TAG_URL":return p();default:if(c.has(e))return window[e]}var r,o}function p(e){return function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];const i=[];return t.forEach(((t,r)=>{i.push(t),r<n.length&&i.push(e?String(n[r]).replace(/[^/]+/g,(e=>encodeURIComponent(e))):encodeURIComponent(String(n[r])))})),i.join("")}}}}]);
2
+ //# sourceMappingURL=9559.4fa7ccb4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/9559.85fd1ca7.js","mappings":"4MAGO,SAASA,EAAOC,EAAuBC,EAAyBC,GACrE,MAAMC,EAAkB,CAAC,EAEzB,IAAK,MAAMC,KAAgBJ,EACzB,IAAKK,OAAOC,UAAUC,eAAeC,KAAKL,EAAiBC,GACzD,GAAqB,cAAjBA,EACFD,EAAgBC,QAAgBK,OAC3B,GAAIR,GAA2BI,OAAOC,UAAUC,eAAeC,KAAKP,EAAyBG,GAClGD,EAAgBC,GAAgBH,EAAwBG,OACnD,CACL,MAAMM,EAAWC,EAAiBP,EAAcF,QAC/BO,IAAbC,IACFP,EAAgBC,GAAgBM,EAEpC,CAGJ,OAAOP,CACT,CACA,MAAMS,EAAqB,IAAIC,IAAI,CAGnC,OAAQ,OAAQ,UAAW,YAAa,cAAe,SAAU,SAAU,UAAW,SAAU,WAAY,eAAgB,aAAc,WAAY,eAAgB,QAAS,YAAa,MAAO,UAAW,QAAS,SAAU,aAWjO,QAAS,MAAO,SAAU,OAAQ,UAAW,QAAS,aAAc,WAAY,QAAS,QAAS,OAAQ,UAAW,SAAU,OAAQ,WAAY,UAAW,eAAgB,QAAS,OAAQ,SAAU,WAAY,QAAS,SAGxNC,EAAqB,IAAID,IAAI,CAAC,OAAQ,WAAY,SAAU,aAAc,eAAgB,eAAgB,iBAC1GE,EAAuB,IAAIF,IAAI,CAAC,QAAS,UAAW,OAAQ,WAAY,OAAQ,OAAQ,MAAO,SAAU,SAAU,SAAU,YAAa,qBAAsB,YAAa,qBAAsB,WAAY,QAAS,aAAc,WAAY,MAAO,MAAO,MAAO,kBAAmB,UAAW,UAAW,OAAQ,SAC9T,SAASF,EAAiBP,EAAcF,GACtC,OAAQE,GACN,IAAK,SAEH,OAmBmBY,EAnBIX,OAmBIY,EAnBI,CAAC,UAAW,cAAe,OAAQ,UAoB/DZ,OAAOa,YAAYD,EAAQE,KAAIC,GAAU,CAACA,EAAQ,WACvD,IAAK,IAAIC,EAAOC,UAAUC,OAAQC,EAAO,IAAIC,MAAMJ,GAAOK,EAAO,EAAGA,EAAOL,EAAMK,IAC/EF,EAAKE,GAAQJ,UAAUI,GAEzB,OAAOV,EAAOI,GAAQO,MAAMX,EAAQQ,EACtC,MAxBE,IAAK,IACH,OAAOnB,OAAOa,YAAYb,OAAOuB,QAAQ,GAAQC,QAAOC,IAAUlB,EAAmBmB,IAAID,EAAM,MAAKE,OAAO9B,EAAO,CAAC,CAAC,WAAY+B,GAAU,GAAGA,QAAuCA,EAAS,SAAW,KAC1M,IAAK,SACH,OAAO5B,OAAO6B,QAAO,WACnB,OAAO,KAAUZ,UACnB,GAAGjB,OAAOa,YAAYb,OAAOuB,QAAQ,GAAQC,QAAOC,IAAUhB,EAAmBiB,IAAID,EAAM,QAC7F,IAAK,QACH,OAAO,EAAAK,MACT,IAAK,UACH,OAAOC,GAAc,GACvB,IAAK,eACH,OAAOA,IACT,QACE,GAAIrB,EAAqBgB,IAAI3B,GAC3B,OAAOiC,OAAOjC,GAItB,IAAyBY,EAAQC,CADjC,CAiCA,SAASmB,EAAcE,GACrB,OAAO,SAAUC,GACf,IAAK,IAAIC,EAAQlB,UAAUC,OAAQkB,EAAW,IAAIhB,MAAMe,EAAQ,EAAIA,EAAQ,EAAI,GAAIE,EAAQ,EAAGA,EAAQF,EAAOE,IAC5GD,EAASC,EAAQ,GAAKpB,UAAUoB,GAElC,MAAMC,EAAS,GAOf,OANAJ,EAAQK,SAAQ,CAACC,EAAKC,KACpBH,EAAOI,KAAKF,GACRC,EAAQL,EAASlB,QACnBoB,EAAOI,KAAKT,EAAgBU,OAAOP,EAASK,IAAQG,QAAQ,UAAUC,GAAKC,mBAAmBD,KAAMC,mBAAmBH,OAAOP,EAASK,KACzI,IAEKH,EAAOS,KAAK,GACrB,CACF,C","sources":["webpack:///../../node_modules/@next-core/supply/dist/esm/index.js"],"sourcesContent":["import lodash from \"lodash\";\nimport moment from \"moment\";\nimport { pipes } from \"@next-core/pipes\";\nexport function supply(attemptToVisitGlobals, providedGlobalVariables, mock) {\n const globalVariables = {};\n // Allow limited browser builtin values.\n for (const variableName of attemptToVisitGlobals) {\n if (!Object.prototype.hasOwnProperty.call(globalVariables, variableName)) {\n if (variableName === \"undefined\") {\n globalVariables[variableName] = undefined;\n } else if (providedGlobalVariables && Object.prototype.hasOwnProperty.call(providedGlobalVariables, variableName)) {\n globalVariables[variableName] = providedGlobalVariables[variableName];\n } else {\n const variable = supplyIndividual(variableName, mock);\n if (variable !== undefined) {\n globalVariables[variableName] = variable;\n }\n }\n }\n }\n return globalVariables;\n}\nconst shouldOmitInLodash = new Set([\n// Omit all mutable methods from lodash.\n// But allow sequence methods like `_.chain`.\n\"fill\", \"pull\", \"pullAll\", \"pullAllBy\", \"pullAllWith\", \"pullAt\", \"remove\", \"reverse\", \"assign\", \"assignIn\", \"assignInWith\", \"assignWith\", \"defaults\", \"defaultsDeep\", \"merge\", \"mergeWith\", \"set\", \"setWith\", \"unset\", \"update\", \"updateWith\",\n/**\n * Ignore `Function` methods from lodash, too.\n * There are chances to invoke `Object.assign`, etc.\n *\n * E.g.:\n *\n * ```\n * _.wrap(_.method('constructor.assign',{b:2},{b:3}),(func,...a) => func(...a))({})\n * ```\n */\n\"after\", \"ary\", \"before\", \"bind\", \"bindKey\", \"curry\", \"curryRight\", \"debounce\", \"defer\", \"delay\", \"flip\", \"memoize\", \"negate\", \"once\", \"overArgs\", \"partial\", \"partialRight\", \"rearg\", \"rest\", \"spread\", \"throttle\", \"unary\", \"wrap\"]);\n\n// Omit all mutable methods from moment.\nconst shouldOmitInMoment = new Set([\"lang\", \"langData\", \"locale\", \"localeData\", \"defineLocale\", \"updateLocale\", \"updateOffset\"]);\nconst allowedGlobalObjects = new Set([\"Array\", \"Boolean\", \"Date\", \"Infinity\", \"JSON\", \"Math\", \"NaN\", \"Number\", \"String\", \"RegExp\", \"decodeURI\", \"decodeURIComponent\", \"encodeURI\", \"encodeURIComponent\", \"isFinite\", \"isNaN\", \"parseFloat\", \"parseInt\", \"Map\", \"Set\", \"URL\", \"URLSearchParams\", \"WeakMap\", \"WeakSet\", \"atob\", \"btoa\"]);\nfunction supplyIndividual(variableName, mock) {\n switch (variableName) {\n case \"Object\":\n // Do not allow mutable methods like `Object.assign`.\n return delegateMethods(Object, [\"entries\", \"fromEntries\", \"keys\", \"values\"]);\n case \"_\":\n return Object.fromEntries(Object.entries(lodash).filter(entry => !shouldOmitInLodash.has(entry[0])).concat(mock ? [[\"uniqueId\", prefix => `${prefix !== null && prefix !== void 0 ? prefix : \"\"}42`]] : []));\n case \"moment\":\n return Object.assign(function () {\n return moment(...arguments);\n }, Object.fromEntries(Object.entries(moment).filter(entry => !shouldOmitInMoment.has(entry[0]))));\n case \"PIPES\":\n return pipes;\n case \"TAG_URL\":\n return tagUrlFactory(true);\n case \"SAFE_TAG_URL\":\n return tagUrlFactory();\n default:\n if (allowedGlobalObjects.has(variableName)) {\n return window[variableName];\n }\n }\n}\nfunction delegateMethods(target, methods) {\n return Object.fromEntries(methods.map(method => [method, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return target[method].apply(target, args);\n }]));\n}\n/**\n * Pass `ignoreSlashes` as `true` to encode all tagged expressions\n * as URL components, except for `/` which maybe used in `APP.homepage`.\n *\n * Otherwise encode all tagged expressions as URL components.\n * This will encode `/` as `%2F`. So do not use it directly\n * with `APP.homepage` as in template expressions.\n *\n * @example\n *\n * ```js\n * TAG_URL`${APP.homepage}/list?q=${q}&redirect=${redirect}`\n * ```\n *\n * ```js\n * SAFE_TAG_URL`file/${path}?q=${q}`\n * // `path` will be fully transformed by `encodeURIComponent`.\n * ```\n *\n * ```js\n * // Wrap `APP.homepage` outside of `SAFE_TAG_URL`.\n * `${APP.homepage}/${SAFE_TAG_URL`file/${path}?q=${q}`}`\n * ```\n */\nfunction tagUrlFactory(ignoreSlashes) {\n return function (strings) {\n for (var _len2 = arguments.length, partials = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n partials[_key2 - 1] = arguments[_key2];\n }\n const result = [];\n strings.forEach((str, index) => {\n result.push(str);\n if (index < partials.length) {\n result.push(ignoreSlashes ? String(partials[index]).replace(/[^/]+/g, p => encodeURIComponent(p)) : encodeURIComponent(String(partials[index])));\n }\n });\n return result.join(\"\");\n };\n}\n//# sourceMappingURL=index.js.map"],"names":["supply","attemptToVisitGlobals","providedGlobalVariables","mock","globalVariables","variableName","Object","prototype","hasOwnProperty","call","undefined","variable","supplyIndividual","shouldOmitInLodash","Set","shouldOmitInMoment","allowedGlobalObjects","target","methods","fromEntries","map","method","_len","arguments","length","args","Array","_key","apply","entries","filter","entry","has","concat","prefix","assign","pipes","tagUrlFactory","window","ignoreSlashes","strings","_len2","partials","_key2","result","forEach","str","index","push","String","replace","p","encodeURIComponent","join"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/9559.4fa7ccb4.js","mappings":"4MAGO,SAASA,EAAOC,EAAuBC,EAAyBC,GACrE,MAAMC,EAAkB,CAAC,EAEzB,IAAK,MAAMC,KAAgBJ,EACzB,IAAKK,OAAOC,UAAUC,eAAeC,KAAKL,EAAiBC,GACzD,GAAqB,cAAjBA,EACFD,EAAgBC,QAAgBK,OAC3B,GAAIR,GAA2BI,OAAOC,UAAUC,eAAeC,KAAKP,EAAyBG,GAClGD,EAAgBC,GAAgBH,EAAwBG,OACnD,CACL,MAAMM,EAAWC,EAAiBP,EAAcF,QAC/BO,IAAbC,IACFP,EAAgBC,GAAgBM,EAEpC,CAGJ,OAAOP,CACT,CACA,MAAMS,EAAqB,IAAIC,IAAI,CAGnC,OAAQ,OAAQ,UAAW,YAAa,cAAe,SAAU,SAAU,UAAW,SAAU,WAAY,eAAgB,aAAc,WAAY,eAAgB,QAAS,YAAa,MAAO,UAAW,QAAS,SAAU,aAWjO,QAAS,MAAO,SAAU,OAAQ,UAAW,QAAS,aAAc,WAAY,QAAS,QAAS,OAAQ,UAAW,SAAU,OAAQ,WAAY,UAAW,eAAgB,QAAS,OAAQ,SAAU,WAAY,QAAS,SAGxNC,EAAqB,IAAID,IAAI,CAAC,OAAQ,WAAY,SAAU,aAAc,eAAgB,eAAgB,iBAC1GE,EAAuB,IAAIF,IAAI,CAAC,QAAS,UAAW,OAAQ,WAAY,OAAQ,OAAQ,MAAO,SAAU,SAAU,SAAU,YAAa,qBAAsB,YAAa,qBAAsB,WAAY,QAAS,aAAc,WAAY,MAAO,MAAO,MAAO,kBAAmB,UAAW,UAAW,OAAQ,SAC9T,SAASF,EAAiBP,EAAcF,GACtC,OAAQE,GACN,IAAK,SAEH,OAmBmBY,EAnBIX,OAmBIY,EAnBI,CAAC,UAAW,cAAe,OAAQ,UAoB/DZ,OAAOa,YAAYD,EAAQE,KAAIC,GAAU,CAACA,EAAQ,WACvD,IAAK,IAAIC,EAAOC,UAAUC,OAAQC,EAAO,IAAIC,MAAMJ,GAAOK,EAAO,EAAGA,EAAOL,EAAMK,IAC/EF,EAAKE,GAAQJ,UAAUI,GAEzB,OAAOV,EAAOI,GAAQO,MAAMX,EAAQQ,EACtC,MAxBE,IAAK,IACH,OAAOnB,OAAOa,YAAYb,OAAOuB,QAAQ,GAAQC,QAAOC,IAAUlB,EAAmBmB,IAAID,EAAM,MAAKE,OAAO9B,EAAO,CAAC,CAAC,WAAY+B,GAAU,GAAGA,QAAuCA,EAAS,SAAW,KAC1M,IAAK,SACH,OAAO5B,OAAO6B,QAAO,WACnB,OAAO,KAAUZ,UACnB,GAAGjB,OAAOa,YAAYb,OAAOuB,QAAQ,GAAQC,QAAOC,IAAUhB,EAAmBiB,IAAID,EAAM,QAC7F,IAAK,QACH,OAAO,EAAAK,MACT,IAAK,UACH,OAAOC,GAAc,GACvB,IAAK,eACH,OAAOA,IACT,QACE,GAAIrB,EAAqBgB,IAAI3B,GAC3B,OAAOiC,OAAOjC,GAItB,IAAyBY,EAAQC,CADjC,CAiCA,SAASmB,EAAcE,GACrB,OAAO,SAAUC,GACf,IAAK,IAAIC,EAAQlB,UAAUC,OAAQkB,EAAW,IAAIhB,MAAMe,EAAQ,EAAIA,EAAQ,EAAI,GAAIE,EAAQ,EAAGA,EAAQF,EAAOE,IAC5GD,EAASC,EAAQ,GAAKpB,UAAUoB,GAElC,MAAMC,EAAS,GAOf,OANAJ,EAAQK,SAAQ,CAACC,EAAKC,KACpBH,EAAOI,KAAKF,GACRC,EAAQL,EAASlB,QACnBoB,EAAOI,KAAKT,EAAgBU,OAAOP,EAASK,IAAQG,QAAQ,UAAUC,GAAKC,mBAAmBD,KAAMC,mBAAmBH,OAAOP,EAASK,KACzI,IAEKH,EAAOS,KAAK,GACrB,CACF,C","sources":["webpack:///../../node_modules/@next-core/supply/dist/esm/index.js"],"sourcesContent":["import lodash from \"lodash\";\nimport moment from \"moment\";\nimport { pipes } from \"@next-core/pipes\";\nexport function supply(attemptToVisitGlobals, providedGlobalVariables, mock) {\n const globalVariables = {};\n // Allow limited browser builtin values.\n for (const variableName of attemptToVisitGlobals) {\n if (!Object.prototype.hasOwnProperty.call(globalVariables, variableName)) {\n if (variableName === \"undefined\") {\n globalVariables[variableName] = undefined;\n } else if (providedGlobalVariables && Object.prototype.hasOwnProperty.call(providedGlobalVariables, variableName)) {\n globalVariables[variableName] = providedGlobalVariables[variableName];\n } else {\n const variable = supplyIndividual(variableName, mock);\n if (variable !== undefined) {\n globalVariables[variableName] = variable;\n }\n }\n }\n }\n return globalVariables;\n}\nconst shouldOmitInLodash = new Set([\n// Omit all mutable methods from lodash.\n// But allow sequence methods like `_.chain`.\n\"fill\", \"pull\", \"pullAll\", \"pullAllBy\", \"pullAllWith\", \"pullAt\", \"remove\", \"reverse\", \"assign\", \"assignIn\", \"assignInWith\", \"assignWith\", \"defaults\", \"defaultsDeep\", \"merge\", \"mergeWith\", \"set\", \"setWith\", \"unset\", \"update\", \"updateWith\",\n/**\n * Ignore `Function` methods from lodash, too.\n * There are chances to invoke `Object.assign`, etc.\n *\n * E.g.:\n *\n * ```\n * _.wrap(_.method('constructor.assign',{b:2},{b:3}),(func,...a) => func(...a))({})\n * ```\n */\n\"after\", \"ary\", \"before\", \"bind\", \"bindKey\", \"curry\", \"curryRight\", \"debounce\", \"defer\", \"delay\", \"flip\", \"memoize\", \"negate\", \"once\", \"overArgs\", \"partial\", \"partialRight\", \"rearg\", \"rest\", \"spread\", \"throttle\", \"unary\", \"wrap\"]);\n\n// Omit all mutable methods from moment.\nconst shouldOmitInMoment = new Set([\"lang\", \"langData\", \"locale\", \"localeData\", \"defineLocale\", \"updateLocale\", \"updateOffset\"]);\nconst allowedGlobalObjects = new Set([\"Array\", \"Boolean\", \"Date\", \"Infinity\", \"JSON\", \"Math\", \"NaN\", \"Number\", \"String\", \"RegExp\", \"decodeURI\", \"decodeURIComponent\", \"encodeURI\", \"encodeURIComponent\", \"isFinite\", \"isNaN\", \"parseFloat\", \"parseInt\", \"Map\", \"Set\", \"URL\", \"URLSearchParams\", \"WeakMap\", \"WeakSet\", \"atob\", \"btoa\"]);\nfunction supplyIndividual(variableName, mock) {\n switch (variableName) {\n case \"Object\":\n // Do not allow mutable methods like `Object.assign`.\n return delegateMethods(Object, [\"entries\", \"fromEntries\", \"keys\", \"values\"]);\n case \"_\":\n return Object.fromEntries(Object.entries(lodash).filter(entry => !shouldOmitInLodash.has(entry[0])).concat(mock ? [[\"uniqueId\", prefix => `${prefix !== null && prefix !== void 0 ? prefix : \"\"}42`]] : []));\n case \"moment\":\n return Object.assign(function () {\n return moment(...arguments);\n }, Object.fromEntries(Object.entries(moment).filter(entry => !shouldOmitInMoment.has(entry[0]))));\n case \"PIPES\":\n return pipes;\n case \"TAG_URL\":\n return tagUrlFactory(true);\n case \"SAFE_TAG_URL\":\n return tagUrlFactory();\n default:\n if (allowedGlobalObjects.has(variableName)) {\n return window[variableName];\n }\n }\n}\nfunction delegateMethods(target, methods) {\n return Object.fromEntries(methods.map(method => [method, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return target[method].apply(target, args);\n }]));\n}\n/**\n * Pass `ignoreSlashes` as `true` to encode all tagged expressions\n * as URL components, except for `/` which maybe used in `APP.homepage`.\n *\n * Otherwise encode all tagged expressions as URL components.\n * This will encode `/` as `%2F`. So do not use it directly\n * with `APP.homepage` as in template expressions.\n *\n * @example\n *\n * ```js\n * TAG_URL`${APP.homepage}/list?q=${q}&redirect=${redirect}`\n * ```\n *\n * ```js\n * SAFE_TAG_URL`file/${path}?q=${q}`\n * // `path` will be fully transformed by `encodeURIComponent`.\n * ```\n *\n * ```js\n * // Wrap `APP.homepage` outside of `SAFE_TAG_URL`.\n * `${APP.homepage}/${SAFE_TAG_URL`file/${path}?q=${q}`}`\n * ```\n */\nfunction tagUrlFactory(ignoreSlashes) {\n return function (strings) {\n for (var _len2 = arguments.length, partials = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n partials[_key2 - 1] = arguments[_key2];\n }\n const result = [];\n strings.forEach((str, index) => {\n result.push(str);\n if (index < partials.length) {\n result.push(ignoreSlashes ? String(partials[index]).replace(/[^/]+/g, p => encodeURIComponent(p)) : encodeURIComponent(String(partials[index])));\n }\n });\n return result.join(\"\");\n };\n}\n//# sourceMappingURL=index.js.map"],"names":["supply","attemptToVisitGlobals","providedGlobalVariables","mock","globalVariables","variableName","Object","prototype","hasOwnProperty","call","undefined","variable","supplyIndividual","shouldOmitInLodash","Set","shouldOmitInMoment","allowedGlobalObjects","target","methods","fromEntries","map","method","_len","arguments","length","args","Array","_key","apply","entries","filter","entry","has","concat","prefix","assign","pipes","tagUrlFactory","window","ignoreSlashes","strings","_len2","partials","_key2","result","forEach","str","index","push","String","replace","p","encodeURIComponent","join"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[9711,8939],{9711:(e,t,a)=>{var s,n=a(4635),i=a(918),l=a(6902),o=a(5536),r=a(6121),d=a(829),h=a(2740),c=a(8769),u=a.n(c),g=a(5821),A=a(7095),p=(a(6477),a(7566)),v=a(9047),m=a(3373),y=a.n(m),k=a(1030),f=a(9126),b=a(8892),w=a(5157),C=a(8308),M=a(1518),E=a(9137),W=a(2547),x=a(1803),N=a(3739),T=a(9191),R=a(6671),S=a(8060),L=a(2448),z=a(8657),B=a(8069),D=a(1324),O=a(821),$=a(6753),P=a(2673),H=a(5987);let F,K,I,U,V,Y,X,Z,_,j,q,G,J,Q,ee,te,ae,se,ne,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,me,ye,ke,fe,be,we,Ce,Me,Ee,We,xe,Ne,Te,Re,Se,Le,ze,Be,De,Oe,$e,Pe,He;const{defineElement:Fe,property:Ke,event:Ie,method:Ue}=(0,g.createDecorators)(),Ve=(0,c.forwardRef)(wt);let Ye;var Xe=new WeakMap,Ze=new WeakMap,_e=new WeakMap,je=new WeakMap,qe=new WeakMap,Ge=new WeakMap,Je=new WeakMap,Qe=new WeakMap,et=new WeakMap,tt=new WeakMap,at=new WeakMap,st=new WeakMap,nt=new WeakMap,it=new WeakMap,lt=new WeakMap,ot=new WeakSet,rt=new WeakMap,dt=new WeakMap,ht=new WeakMap,ct=new WeakMap,ut=new WeakMap,gt=new WeakMap,At=new WeakMap,pt=new WeakMap,vt=new WeakMap,mt=new WeakMap,yt=new WeakMap,kt=new WeakMap,ft=new WeakMap;class bt extends A.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,ot),(0,i.A)(this,Xe,(F(this),I(this))),(0,i.A)(this,Ze,(U(this),V(this))),(0,i.A)(this,_e,(Y(this),X(this))),(0,i.A)(this,je,(Z(this),_(this))),(0,i.A)(this,qe,(j(this),q(this))),(0,i.A)(this,Ge,(G(this),J(this))),(0,i.A)(this,Je,(Q(this),ee(this))),(0,i.A)(this,Qe,(te(this),ae(this))),(0,i.A)(this,et,(se(this),ne(this))),(0,i.A)(this,tt,(ie(this),le(this))),(0,i.A)(this,at,(oe(this),re(this,!0))),(0,i.A)(this,st,(de(this),he(this,!0))),(0,i.A)(this,nt,(ce(this),ue(this,!0))),(0,i.A)(this,it,(ge(this),Ae(this))),(0,i.A)(this,lt,(pe(this),ve(this))),(0,i.A)(this,rt,(ke(this),e=>{(0,o.A)(ot,this,me).emit(e)})),(0,i.A)(this,dt,fe(this)),(0,i.A)(this,ht,(Ce(this),e=>{(0,o.A)(ot,this,be).emit(e)})),(0,i.A)(this,ct,Me(this)),(0,i.A)(this,ut,(xe(this),e=>{(0,o.A)(ot,this,Ee).emit(e)})),(0,i.A)(this,gt,Ne(this)),(0,i.A)(this,At,(Se(this),e=>{(0,o.A)(ot,this,Te).emit(e)})),(0,i.A)(this,pt,Le(this)),(0,i.A)(this,vt,(De(this),e=>{(0,o.A)(ot,this,ze).emit(e)})),(0,i.A)(this,mt,Oe(this)),(0,i.A)(this,yt,(He(this),e=>{(0,o.A)(ot,this,$e).emit(e)})),(0,i.A)(this,kt,(e=>{(0,P.c)(e,this.activeTarget)||(this.activeTarget=e)})),(0,i.A)(this,ft,(0,c.createRef)())}get layout(){return(0,d.A)(Xe,this)}set layout(e){(0,r.A)(Xe,this,e)}get nodes(){return(0,d.A)(Ze,this)}set nodes(e){(0,r.A)(Ze,this,e)}get edges(){return(0,d.A)(_e,this)}set edges(e){(0,r.A)(_e,this,e)}get nodeBricks(){return(0,d.A)(je,this)}set nodeBricks(e){(0,r.A)(je,this,e)}get lines(){return(0,d.A)(qe,this)}set lines(e){(0,r.A)(qe,this,e)}get layoutOptions(){return(0,d.A)(Ge,this)}set layoutOptions(e){(0,r.A)(Ge,this,e)}get activeTarget(){return(0,d.A)(Je,this)}set activeTarget(e){(0,r.A)(Je,this,e)}get disableKeyboardAction(){return(0,d.A)(Qe,this)}set disableKeyboardAction(e){(0,r.A)(Qe,this,e)}get connectNodes(){return(0,d.A)(et,this)}set connectNodes(e){(0,r.A)(et,this,e)}get dragNodes(){return(0,d.A)(tt,this)}set dragNodes(e){(0,r.A)(tt,this,e)}get zoomable(){return(0,d.A)(at,this)}set zoomable(e){(0,r.A)(at,this,e)}get scrollable(){return(0,d.A)(st,this)}set scrollable(e){(0,r.A)(st,this,e)}get pannable(){return(0,d.A)(nt,this)}set pannable(e){(0,r.A)(nt,this,e)}get scaleRange(){return(0,d.A)(it,this)}set scaleRange(e){(0,r.A)(it,this,e)}callOnLineLabel(e,t){for(var a,s=arguments.length,n=new Array(s>2?s-2:0),i=2;i<s;i++)n[i-2]=arguments[i];null===(a=(0,d.A)(ft,this).current)||void 0===a||a.callOnLineLabel(e,t,...n)}render(){return u().createElement(Ve,{ref:(0,d.A)(ft,this),layout:this.layout,nodes:this.nodes,edges:this.edges,nodeBricks:this.nodeBricks,lines:this.lines,layoutOptions:this.layoutOptions,connectNodes:this.connectNodes,dragNodes:this.dragNodes,activeTarget:this.activeTarget,disableKeyboardAction:this.disableKeyboardAction,zoomable:this.zoomable,scrollable:this.scrollable,pannable:this.pannable,scaleRange:this.scaleRange,onActiveTargetChange:(0,d.A)(rt,this),onSwitchActiveTarget:(0,d.A)(kt,this),onNodeDelete:(0,d.A)(ht,this),onEdgeDelete:(0,d.A)(ut,this),onLineClick:(0,d.A)(At,this),onLineDoubleClick:(0,d.A)(vt,this),onNodesConnect:(0,d.A)(yt,this)})}}function wt(e,t){let{layout:a,nodes:s,edges:n,nodeBricks:i,lines:l,layoutOptions:o,connectNodes:r,dragNodes:d,activeTarget:h,disableKeyboardAction:g,zoomable:A,scrollable:m,pannable:O,scaleRange:F,onActiveTargetChange:K,onSwitchActiveTarget:I,onNodeDelete:U,onEdgeDelete:V,onLineClick:Y,onLineDoubleClick:X,onNodesConnect:Z}=e;const[_,j]=(0,c.useState)(!1),[q,G]=(0,c.useState)(0),[J,Q]=(0,c.useState)(null),[ee,te]=(0,c.useState)(!1),[ae,se]=(0,c.useState)(0),[ne,ie]=(0,c.useState)(null),[le,oe]=(0,c.useState)([]),[re,de]=(0,c.useState)(!1),[he,ce]=(0,c.useState)({k:1,x:0,y:0}),ue=(0,c.useRef)(new Map),ge=(0,c.useRef)(null),Ae=(0,c.useRef)(null),[pe,ve]=(0,c.useState)(!1),{userViewReady:me,userViewNodesMap:ye,saveUserView:ke}=(0,$._)(null==d?void 0:d.save),[fe,be]=(0,c.useState)([0,0]),[we,Ce]=(0,c.useState)(null),[Me,Ee]=(0,c.useState)("initial"),[We,xe]=(0,c.useState)(null);(0,c.useImperativeHandle)(t,(()=>({callOnLineLabel(e,t){for(var a,s=arguments.length,n=new Array(s>2?s-2:0),i=2;i<s;i++)n[i-2]=arguments[i];null==ne||null===(a=ne.get(e))||void 0===a||null===(a=a.firstElementChild)||void 0===a||a[t](...n)}}))),(0,c.useEffect)((()=>{const e=e=>{(0,L.P)(e,{nodes:s,nodesRefRepository:J,connectNodes:r,dragNodes:d,scale:he.k,setConnectLineState:Ce,setConnectLineTo:be,setManualLayoutStatus:Ee,setNodeMovement:xe,onSwitchActiveTarget:I,onNodesConnect:Z})},t=Ae.current;return null==t||t.addEventListener("mousedown",e),()=>{null==t||t.removeEventListener("mousedown",e)}}),[s,r,d,he.k,J,Z,I]);const{normalizedLines:Ne,normalizedLinesMap:Te,markers:Re}=(0,c.useMemo)((()=>(0,E.t)(n,l)),[n,l]),Se=(0,c.useMemo)((()=>Ne.flatMap((e=>{let t,a,{line:{text:s,label:n,$id:i},edge:l}=e;return s||n?(n?(t="label",a=[].concat(n)):(t="text",a=[].concat(s)),a.map((e=>{var a;return{[t]:e,id:`${i}-${null!==(a=e.placement)&&void 0!==a?a:"center"}`,edge:l}}))):[]}))),[Ne]),{nodes:Le,edges:ze}=(0,B.o)({layout:a,nodes:s,edges:n,manualLayoutStatus:Me,userViewReady:me,userViewNodesMap:ye,nodeMovement:We,nodesRefRepository:J,lineLabelsRefRepository:ne,normalizedLinesMap:Te,layoutOptions:o,nodesRenderId:q,lineLabelsRenderId:ae});(0,c.useEffect)((()=>{"finished"===Me&&ke(Le.map((e=>({id:e.id,x:e.x,y:e.y}))))}),[Me]);const Be=(0,c.useMemo)((()=>(0,M.R)(ze,Le,Ne)),[Ne,Le,ze]),De=null!=h?h:null,[Oe,$e]=(0,c.useState)(De);(0,c.useEffect)((()=>{$e((e=>(0,P.c)(e,De)?e:De))}),[De]);const Pe=(0,c.useRef)(!1);(0,c.useEffect)((()=>{Pe.current?null==K||K(Oe):Pe.current=!0}),[Oe,K]),(0,c.useEffect)((()=>{const e=ge.current;if(!e||g)return;const t=e=>{const t=(0,w.a)(e,{renderedNodes:Le,activeTarget:Oe});"delete-node"===(null==t?void 0:t.action)?null==U||U(t.node):"delete-edge"===(null==t?void 0:t.action)?null==V||V(t.edge):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==I||I({type:"node",nodeId:t.node.id}))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}),[Oe,Le,g,I,U,V]);const He=(0,c.useCallback)((e=>{e&&(G((e=>e+1)),Q(e)),j((t=>t||!!e))}),[]),Fe=(0,c.useCallback)((e=>{e&&(se((e=>e+1)),ie(e)),te((t=>t||!!e))}),[]),Ke=(0,c.useMemo)((()=>null!=F?F:[z.sS,z.Yt]),[F]),Ie=(0,c.useMemo)((()=>(0,v.s_)()),[]);(0,c.useEffect)((()=>{let e=!1;Ie.scaleExtent(A?Ke:[1,1]).on("start",(()=>{e=!1,de(!0)})).on("zoom",(t=>{e=!0,ce(t.transform)})).on("end",(()=>{de(!1),e||null==I||I(null)}))}),[I,Ke,A,Ie]),(0,c.useEffect)((()=>{const e=ge.current;if(!e)return;const t=(0,p.A)(e),a=()=>{t.on(".zoom",null).on(".zoom.custom",null).on("wheel",null)};if(A||m||O)return(A||m)&&t.on("wheel.zoom.custom",(e=>{e.ctrlKey||(e.stopImmediatePropagation(),m&&(e.preventDefault(),Ie.translateBy(t,e.wheelDeltaX/5,e.wheelDeltaY/5)))})),t.call(Ie).on("wheel",(e=>e.preventDefault())).on("dblclick.zoom",null),O||t.on("mousedown.zoom",null).on("touchstart.zoom",null).on("touchmove.zoom",null).on("touchend.zoom",null),a;a()}),[O,m,A,Ie]),(0,c.useEffect)((()=>{const e=ge.current;if(0===Le.length||!e||pe)return;const{k:t,x:a,y:s}=(0,C.r)(Le,{canvasWidth:e.clientWidth,canvasHeight:e.clientHeight,scaleRange:A?Ke:void 0});Ie.transform((0,p.A)(e),new v.uV(t,a,s)),ve(!0)}),[pe,Le,Ke,A,Ie]);const Ue=(0,c.useMemo)((()=>`${(0,k.uniqueId)("diagram-")}-`),[]),Ve=`${Ue}line-arrow-`,Ye=`${Ue}mask-`,Xe=`${Ue}active-line-`;(0,c.useEffect)((()=>{oe((e=>(0,S.z)(e,Be,ue.current)))}),[Be]);const[Ze,_e]=u().useState(new Map);return(0,c.useEffect)((()=>{if(!ne)return;(0,D.F)(le,ne);const e=new f.A((()=>{_e((0,H.G)(le,ne))}));for(const t of ne.values())e.observe(t);return()=>{e.disconnect()}}),[ae,ne,le]),"dagre"!==a&&"force"!==a?u().createElement("div",null,`Diagram layout not supported: "${a}"`):u().createElement("div",{className:y()("diagram",{ready:_&&pe,grabbing:re,pannable:O}),tabIndex:-1,ref:ge},u().createElement("svg",{width:"100%",height:"100%",className:"lines"},u().createElement("defs",null,Re.map(((e,t)=>{let{type:a,strokeColor:s}=e;return u().createElement(N.c,{key:t,id:`${Ve}${t}`,type:a,strokeColor:s})})),[...Ze].map((e=>{let[t,a]=e;return u().createElement(T.y,{key:t,lineId:t,rects:a,maskPrefix:Ye,renderedLineLabels:le})})),u().createElement("marker",{id:`${Xe}start`,viewBox:"0 0 8 8",refX:4,refY:4,markerWidth:8,markerHeight:8,orient:"auto"},u().createElement("path",{d:"M 0.5 0.5 H 7.5 V 7.5 H 0.5 Z",stroke:"var(--palette-gray-7)",strokeWidth:1,fill:"var(--palette-gray-1)"})),u().createElement("marker",{id:`${Xe}end`,viewBox:"0 0 14 8",refX:3,refY:4,markerWidth:14,markerHeight:8,orient:"auto"},u().createElement("path",{d:"M 0.5 1.5 L 5.5 4 L 0.5 6.5 z",stroke:"var(--palette-blue-3)",strokeWidth:1,fill:"var(--palette-blue-3)"}),u().createElement("path",{d:"M 6.5 0.5 H 13.5 V 7.5 H 6.5 Z",stroke:"var(--palette-gray-7)",strokeWidth:1,fill:"var(--palette-gray-1)"}))),u().createElement("g",{transform:`translate(${he.x} ${he.y}) scale(${he.k})`},Be.map((e=>u().createElement(x.m,{key:e.line.$id,line:e,linePaths:ue.current,lineMaskRects:Ze,maskPrefix:Ye,markerPrefix:Ve,activeLineMarkerPrefix:Xe,active:"edge"===(null==Oe?void 0:Oe.type)&&Oe.edge.source===e.edge.source&&Oe.edge.target===e.edge.target,activeRelated:"node"===(null==Oe?void 0:Oe.type)&&(e.edge.source===Oe.nodeId||e.edge.target===Oe.nodeId),onLineClick:Y,onLineDoubleClick:X}))))),u().createElement("div",{className:y()("line-labels",{ready:ee}),style:{left:he.x,top:he.y,transform:`scale(${he.k})`}},u().createElement(W.d2,{labels:Se,onRendered:Fe})),u().createElement("div",{className:"nodes",ref:Ae,style:{left:he.x,top:he.y,transform:`scale(${he.k})`}},u().createElement(b.p,{nodes:s,nodeBricks:i,onRendered:He})),u().createElement(R.w,{connectLineState:we,connectLineTo:fe,markerPrefix:Ve}))}s=bt,({e:[I,U,V,Y,X,Z,_,j,q,G,J,Q,ee,te,ae,se,ne,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,me,ye,ke,fe,be,we,Ce,Me,Ee,We,xe,Ne,Te,Re,Se,Le,ze,Be,De,Oe,$e,Pe,He,F],c:[Ye,K]}=(0,h.A)(s,[Fe("eo-diagram",{styleTexts:[O.A]})],[[Ke({type:String}),1,"layout"],[Ke({attribute:!1}),1,"nodes"],[Ke({attribute:!1}),1,"edges"],[Ke({attribute:!1}),1,"nodeBricks"],[Ke({attribute:!1}),1,"lines"],[Ke({attribute:!1}),1,"layoutOptions"],[Ke({attribute:!1}),1,"activeTarget"],[Ke({type:Boolean}),1,"disableKeyboardAction"],[Ke({attribute:!1}),1,"connectNodes"],[Ke({attribute:!1}),1,"dragNodes"],[Ke({type:Boolean}),1,"zoomable"],[Ke({type:Boolean}),1,"scrollable"],[Ke({type:Boolean}),1,"pannable"],[Ke({attribute:!1}),1,"scaleRange"],[Ie({type:"activeTarget.change"}),1,"activeTargetChangeEvent",e=>(0,d.A)(lt,e),(e,t)=>(0,r.A)(lt,e,t)],[Ie({type:"node.delete"}),1,"nodeDelete",e=>(0,d.A)(dt,e),(e,t)=>(0,r.A)(dt,e,t)],[Ie({type:"edge.delete"}),1,"edgeDelete",e=>(0,d.A)(ct,e),(e,t)=>(0,r.A)(ct,e,t)],[Ie({type:"line.click"}),1,"lineClick",e=>(0,d.A)(gt,e),(e,t)=>(0,r.A)(gt,e,t)],[Ie({type:"line.dblclick"}),1,"lineDoubleClick",e=>(0,d.A)(pt,e),(e,t)=>(0,r.A)(pt,e,t)],[Ie({type:"nodes.connect"}),1,"connectNodes",e=>(0,d.A)(mt,e),(e,t)=>(0,r.A)(mt,e,t)],[Ue(),2,"callOnLineLabel"]],0,(e=>ft.has((0,l.A)(e))),A.ReactNextElement)),K();var Ct,Mt=a(3971);let Et,Wt,xt,Nt,Tt,Rt,St,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,Ft;const{defineElement:Kt,property:It,event:Ut,method:Vt}=(0,g.createDecorators)(),Yt=(0,c.forwardRef)(sa);let Xt;var Zt=new WeakMap,_t=new WeakMap,jt=new WeakMap,qt=new WeakMap,Gt=new WeakSet,Jt=new WeakMap,Qt=new WeakMap,ea=new WeakMap,ta=new WeakMap;class aa extends A.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,Gt),(0,i.A)(this,Zt,(Et(this),xt(this))),(0,i.A)(this,_t,(Nt(this),Tt(this))),(0,i.A)(this,jt,(Rt(this),St(this))),(0,i.A)(this,qt,(Lt(this),zt(this))),(0,i.A)(this,Jt,(Ot(this),e=>{(0,o.A)(Gt,this,Bt).emit(e)})),(0,i.A)(this,Qt,$t(this)),(0,i.A)(this,ea,(Ft(this),e=>{(0,o.A)(Gt,this,Pt).emit(e)})),(0,i.A)(this,ta,(0,c.createRef)())}get label(){return(0,d.A)(Zt,this)}set label(e){(0,r.A)(Zt,this,e)}get type(){return(0,d.A)(_t,this)}set type(e){(0,r.A)(_t,this,e)}get readOnly(){return(0,d.A)(jt,this)}set readOnly(e){(0,r.A)(jt,this,e)}enableEditing(){var e;null===(e=(0,d.A)(ta,this).current)||void 0===e||e.enableEditing()}render(){return u().createElement(Yt,{ref:(0,d.A)(ta,this),label:this.label,readOnly:this.readOnly,onLabelEditingChange:(0,d.A)(Jt,this),onLabelChange:(0,d.A)(ea,this)})}}function sa(e,t){let{label:a,readOnly:s,onLabelChange:n,onLabelEditingChange:i}=e;const l=null!=a?a:"",[o,r]=(0,c.useState)(l),[d,h]=(0,c.useState)(!1),g=(0,c.useRef)(!1),[A,p]=(0,c.useState)(!1),v=(0,c.useRef)(null);(0,c.useImperativeHandle)(t,(()=>({enableEditing(){s||h(!0)}}))),(0,c.useEffect)((()=>{r(l)}),[l]);const m=(0,c.useCallback)((e=>{s||(e.preventDefault(),e.stopPropagation(),h(!0))}),[s]);(0,c.useEffect)((()=>{var e,t;d&&(null===(e=v.current)||void 0===e||e.focus({preventScroll:!0}),null===(t=v.current)||void 0===t||t.select())}),[d]),(0,c.useEffect)((()=>{g.current?null==i||i(d):g.current=!0}),[d,i]);const k=(0,c.useCallback)((e=>{r(e.target.value)}),[]),f=(0,c.useCallback)((e=>{e.stopPropagation();const t=e.key||e.keyCode||e.which;var a;"Enter"!==t&&13!==t||null===(a=v.current)||void 0===a||a.blur()}),[]),b=(0,c.useCallback)((()=>{h(!1),p(!0)}),[]);(0,c.useEffect)((()=>{A&&(null==n||n(o),p(!1))}),[o,n,A]);const w=(0,c.useCallback)((e=>{e.stopPropagation()}),[]);return u().createElement("div",{className:y()("label",{editing:d,empty:!o}),onDoubleClick:w,onMouseDown:w},u().createElement("input",{className:"label-input",value:o,ref:v,onChange:k,onKeyDown:f,onBlur:b,onContextMenu:w}),u().createElement("div",{className:"label-text",onDoubleClick:m},o))}Ct=aa,({e:[xt,Nt,Tt,Rt,St,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,Ft,Et],c:[Xt,Wt]}=(0,h.A)(Ct,[Kt("diagram.editable-label",{styleTexts:[Mt.A]})],[[It(),1,"label"],[It({render:!1}),1,"type"],[It({type:Boolean}),1,"readOnly"],[Ut({type:"label.editing.change"}),1,"labelEditingChange",e=>(0,d.A)(qt,e),(e,t)=>(0,r.A)(qt,e,t)],[Ut({type:"label.change"}),1,"labelChange",e=>(0,d.A)(Qt,e),(e,t)=>(0,r.A)(Qt,e,t)],[Vt(),2,"enableEditing"]],0,(e=>ta.has((0,l.A)(e))),A.ReactNextElement)),Wt(),a(9068);var na,ia=a(497);let la,oa,ra,da,ha,ca,ua,ga,Aa,pa,va,ma,ya,ka,fa,ba,wa,Ca,Ma;const{defineElement:Ea,property:Wa,event:xa}=(0,g.createDecorators)();let Na;var Ta=new WeakMap,Ra=new WeakMap,Sa=new WeakMap,La=new WeakMap,za=new WeakSet,Ba=new WeakMap,Da=new WeakMap,Oa=new WeakMap,$a=new WeakMap,Pa=new WeakMap;class Ha extends A.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,za),(0,i.A)(this,Ta,oa(this)),(0,i.A)(this,Ra,(ra(this),da(this))),(0,i.A)(this,Sa,(ha(this),ca(this))),(0,i.A)(this,La,(ua(this),ga(this))),(0,i.A)(this,Ba,(va(this),e=>{(0,o.A)(za,this,Aa).emit(e)})),(0,i.A)(this,Da,ma(this)),(0,i.A)(this,Oa,(fa(this),e=>{(0,o.A)(za,this,ya).emit(e)})),(0,i.A)(this,$a,ba(this)),(0,i.A)(this,Pa,(Ma(this),e=>{(0,o.A)(za,this,wa).emit(e)}))}get usage(){return(0,d.A)(Ta,this)}set usage(e){(0,r.A)(Ta,this,e)}get status(){return(0,d.A)(Ra,this)}set status(e){(0,r.A)(Ra,this,e)}get decorator(){return(0,d.A)(Sa,this)}set decorator(e){(0,r.A)(Sa,this,e)}render(){return u().createElement(Fa,{usage:this.usage,onDragStart:(0,d.A)(Ba,this),onDragMove:(0,d.A)(Oa,this),onDragEnd:(0,d.A)(Pa,this)})}}function Fa(e){let{usage:t,onDragStart:a,onDragMove:s,onDragEnd:n}=e;const i=(0,c.useCallback)((e=>{if("library"!==t)return;e.stopPropagation(),e.preventDefault();const i=[e.clientX,e.clientY];let l=!1;const o=e=>{l||(l=(e.clientX-i[0])**2+(e.clientY-i[1])**2>=9,l&&(null==a||a([e.clientX,e.clientY]))),l&&(null==s||s([e.clientX,e.clientY]))},r=e=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",r),l&&(null==n||n([e.clientX,e.clientY]))};document.addEventListener("mousemove",o),document.addEventListener("mouseup",r)}),[n,s,a,t]);return u().createElement("div",{onMouseDown:i},u().createElement("slot",null))}na=Ha,({e:[oa,ra,da,ha,ca,ua,ga,Aa,pa,va,ma,ya,ka,fa,ba,wa,Ca,Ma],c:[Na,la]}=(0,h.A)(na,[Ea("diagram.experimental-node",{styleTexts:[ia.A]})],[[Wa(),1,"usage"],[Wa({type:String,render:!1}),1,"status"],[Wa({type:String}),1,"decorator"],[xa({type:"drag.start"}),1,"dragStartEvent",e=>(0,d.A)(La,e),(e,t)=>(0,r.A)(La,e,t)],[xa({type:"drag.move"}),1,"dragMoveEvent",e=>(0,d.A)(Da,e),(e,t)=>(0,r.A)(Da,e,t)],[xa({type:"drag.end"}),1,"dragEndEvent",e=>(0,d.A)($a,e),(e,t)=>(0,r.A)($a,e,t)]],0,(e=>Pa.has((0,l.A)(e))),A.ReactNextElement)),la();var Ka,Ia=a(8185),Ua=a(9274),Va=a(3783),Ya=a(3033),Xa=a(8091),Za=a(1819),_a=a(5748),ja=a(227),qa=a(531),Ga=a(7099),Ja=a(1484),Qa=a(8197),es=a(7531),ts=a(2098),as=a(3012),ss=a(6237);let ns,is,ls,os,rs,ds,hs,cs,us,gs,As,ps,vs,ms,ys,ks,fs,bs,ws,Cs,Ms,Es,Ws,xs,Ns,Ts,Rs,Ss,Ls,zs,Bs,Ds,Os,$s,Ps,Hs,Fs,Ks,Is,Us,Vs,Ys,Xs,Zs,_s,js,qs,Gs,Js;const{defineElement:Qs,property:en,event:tn}=(0,g.createDecorators)();let an;var sn=new WeakMap,nn=new WeakMap,ln=new WeakMap,on=new WeakMap,rn=new WeakMap,dn=new WeakMap,hn=new WeakMap,cn=new WeakMap,un=new WeakMap,gn=new WeakMap,An=new WeakMap,pn=new WeakMap,vn=new WeakMap,mn=new WeakMap,yn=new WeakMap,kn=new WeakMap,fn=new WeakMap,bn=new WeakMap,wn=new WeakMap,Cn=new WeakSet,Mn=new WeakMap,En=new WeakMap,Wn=new WeakMap,xn=new WeakMap,Nn=new WeakMap,Tn=new WeakMap;class Rn extends A.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,Cn),(0,i.A)(this,sn,is(this)),(0,i.A)(this,nn,(ls(this),os(this))),(0,i.A)(this,ln,(rs(this),ds(this))),(0,i.A)(this,on,(hs(this),cs(this,[Ya.HP,Ya.HP]))),(0,i.A)(this,rn,(us(this),gs(this))),(0,i.A)(this,dn,(As(this),ps(this))),(0,i.A)(this,hn,(vs(this),ms(this))),(0,i.A)(this,cn,(ys(this),ks(this))),(0,i.A)(this,un,(fs(this),bs(this))),(0,i.A)(this,gn,(ws(this),Cs(this))),(0,i.A)(this,An,(Ms(this),Es(this,!0))),(0,i.A)(this,pn,(Ws(this),xs(this,!0))),(0,i.A)(this,vn,(Ns(this),Ts(this,!0))),(0,i.A)(this,mn,(Rs(this),Ss(this))),(0,i.A)(this,yn,(Ls(this),zs(this))),(0,i.A)(this,kn,(Bs(this),Ds(this))),(0,i.A)(this,fn,(Os(this),$s(this))),(0,i.A)(this,bn,(Ps(this),Hs(this))),(0,i.A)(this,wn,(Fs(this),Ks(this))),(0,i.A)(this,Mn,(Vs(this),e=>{(0,o.A)(Cn,this,Is).emit(e)})),(0,i.A)(this,En,(e=>{(0,Ia.c)(e,this.activeTarget)||(this.activeTarget=e)})),(0,i.A)(this,Wn,Ys(this)),(0,i.A)(this,xn,(_s(this),e=>{(0,o.A)(Cn,this,Xs).emit(e)})),(0,i.A)(this,Nn,js(this)),(0,i.A)(this,Tn,(Js(this),e=>{(0,o.A)(Cn,this,qs).emit(e)}))}get cells(){return(0,d.A)(sn,this)}set cells(e){(0,r.A)(sn,this,e)}get layout(){return(0,d.A)(nn,this)}set layout(e){(0,r.A)(nn,this,e)}get layoutOptions(){return(0,d.A)(ln,this)}set layoutOptions(e){(0,r.A)(ln,this,e)}get defaultNodeSize(){return(0,d.A)(on,this)}set defaultNodeSize(e){(0,r.A)(on,this,e)}get defaultNodeBricks(){return(0,d.A)(rn,this)}set defaultNodeBricks(e){(0,r.A)(rn,this,e)}get degradedThreshold(){return(0,d.A)(dn,this)}set degradedThreshold(e){(0,r.A)(dn,this,e)}get degradedNodeLabel(){return(0,d.A)(hn,this)}set degradedNodeLabel(e){(0,r.A)(hn,this,e)}get defaultEdgeLines(){return(0,d.A)(cn,this)}set defaultEdgeLines(e){(0,r.A)(cn,this,e)}get activeTarget(){return(0,d.A)(un,this)}set activeTarget(e){(0,r.A)(un,this,e)}get fadeUnrelatedCells(){return(0,d.A)(gn,this)}set fadeUnrelatedCells(e){(0,r.A)(gn,this,e)}get zoomable(){return(0,d.A)(An,this)}set zoomable(e){(0,r.A)(An,this,e)}get scrollable(){return(0,d.A)(pn,this)}set scrollable(e){(0,r.A)(pn,this,e)}get pannable(){return(0,d.A)(vn,this)}set pannable(e){(0,r.A)(vn,this,e)}get scaleRange(){return(0,d.A)(mn,this)}set scaleRange(e){(0,r.A)(mn,this,e)}get hideZoomBar(){return(0,d.A)(yn,this)}set hideZoomBar(e){(0,r.A)(yn,this,e)}get autoCenterWhenCellsChange(){return(0,d.A)(kn,this)}set autoCenterWhenCellsChange(e){(0,r.A)(kn,this,e)}get doNotResetActiveTargetForSelector(){return(0,d.A)(fn,this)}set doNotResetActiveTargetForSelector(e){(0,r.A)(fn,this,e)}get doNotResetActiveTargetOutsideCanvas(){return(0,d.A)(bn,this)}set doNotResetActiveTargetOutsideCanvas(e){(0,r.A)(bn,this,e)}render(){return u().createElement(Sn,{shadowRoot:this.shadowRoot,cells:this.cells,layout:this.layout,layoutOptions:this.layoutOptions,defaultNodeSize:this.defaultNodeSize,defaultNodeBricks:this.defaultNodeBricks,defaultEdgeLines:this.defaultEdgeLines,degradedThreshold:this.degradedThreshold,degradedNodeLabel:this.degradedNodeLabel,activeTarget:this.activeTarget,fadeUnrelatedCells:this.fadeUnrelatedCells,zoomable:this.zoomable,scrollable:this.scrollable,pannable:this.pannable,scaleRange:this.scaleRange,hideZoomBar:this.hideZoomBar,doNotResetActiveTargetForSelector:this.doNotResetActiveTargetForSelector,doNotResetActiveTargetOutsideCanvas:this.doNotResetActiveTargetOutsideCanvas,autoCenterWhenCellsChange:this.autoCenterWhenCellsChange,onActiveTargetChange:(0,d.A)(Mn,this),onSwitchActiveTarget:(0,d.A)(En,this),onCellContextMenu:(0,d.A)(xn,this),onCellClick:(0,d.A)(Tn,this)})}}function Sn(e){let{shadowRoot:t,cells:a,layout:s,layoutOptions:n,defaultNodeSize:i,defaultNodeBricks:l,defaultEdgeLines:o,degradedThreshold:r,degradedNodeLabel:d,activeTarget:h,fadeUnrelatedCells:g,zoomable:A,scrollable:v,pannable:m,scaleRange:f,hideZoomBar:b,autoCenterWhenCellsChange:w,doNotResetActiveTargetForSelector:C,doNotResetActiveTargetOutsideCanvas:M,onActiveTargetChange:E,onSwitchActiveTarget:W,onCellContextMenu:x,onCellClick:T}=e;const[{cells:R,layoutKey:S},L]=(0,c.useReducer)(_a.d,a,(e=>({cells:(0,Va.C)(e,{defaultNodeSize:i}),layoutKey:1}))),z=(0,c.useMemo)((()=>R.filter(qa.N).length>=(null!=r?r:Ya.pC)),[R,r]),B=(0,c.useRef)(null),{grabbing:D,transform:O,zoomer:$,scaleRange:P}=(0,Xa.f)({rootRef:B,zoomable:A,scrollable:v,pannable:m,draggable:!0,scaleRange:f,onSwitchActiveTarget:W}),{centered:H,setCentered:F,getNextLayoutKey:K}=(0,Ja.g)({layout:s,layoutOptions:n,rootRef:B,cells:R,zoomable:A,zoomer:$,scaleRange:P,layoutKey:S,autoCenterWhenCellsChange:w,dispatch:L}),I=(0,c.useCallback)((()=>{F(!1)}),[F]),U=(0,c.useRef)(a);(0,c.useEffect)((()=>{if(a!==U.current){U.current=a;const e=(0,ts.L)({canvasWidth:t.host.clientWidth,canvasHeight:t.host.clientHeight,defaultNodeSize:i,layout:s,previousCells:R,cells:a,scaleRange:P,transform:O});L({type:"update-cells",payload:e.cells})}}),[R,i,a,s,P,t,O]);const V=(0,Za.J)({rootRef:B,activeTarget:h,doNotResetActiveTargetForSelector:C,doNotResetActiveTargetOutsideCanvas:M,onActiveTargetChange:E}),Y=`${(0,c.useMemo)((()=>`${(0,k.uniqueId)("diagram-")}-`),[])}line-arrow-`,X=(0,c.useCallback)(((e,t)=>{L({type:"update-node-size",payload:{id:e,size:t},layoutKey:K()})}),[K]),[Z,_]=(0,c.useState)(null),j=(0,c.useCallback)((e=>{_(e)}),[]),q=(0,c.useCallback)((e=>{_((t=>t===e?null:t))}),[]),[G,J]=(0,c.useState)([]);(0,c.useEffect)((()=>{const e=g?(0,ja.Y)(R,null,Z):[];J((t=>0===t.length&&0===e.length?t:e))}),[R,g,Z]);const Q=(0,c.useCallback)((e=>{$.scaleTo((0,p.A)(B.current),e/100)}),[$]),{lineConfMap:ee,markers:te}=(0,es.d)({cells:R,defaultEdgeLines:o,markerPrefix:Y}),ae=(0,Qa.H)({cells:R,layout:s,centered:H});return u().createElement(u().Fragment,null,u().createElement("svg",{width:"100%",height:"100%",ref:B,className:y()("root",{grabbing:D,pannable:m,ready:ae}),tabIndex:-1},u().createElement("defs",null,te.map(((e,t)=>u().createElement(N.c,{key:t,id:`${Y}${t}`,type:e.markerType,strokeColor:e.strokeColor})))),u().createElement("g",{transform:`translate(${O.x} ${O.y}) scale(${O.k})`},u().createElement("g",{className:"cells"},R.map((e=>u().createElement(Ua.m,{key:`${e.type}:${(0,qa.WW)(e)?`${e.source}~${e.target}`:e.id}`,layout:s,cell:e,cells:R,degraded:z,degradedNodeLabel:d,defaultNodeBricks:l,lineConfMap:ee,transform:O,activeTarget:V,readOnly:!0,unrelatedCells:G,onSwitchActiveTarget:W,onCellContextMenu:x,onCellClick:T,onNodeBrickResize:X,onCellMouseEnter:g&&(0,qa.N)(e)?j:void 0,onCellMouseLeave:g&&(0,qa.N)(e)?q:void 0})))))),!b&&u().createElement(Ga.Y,{shadowRoot:t,scale:O.k,scaleRange:P,onZoomChange:Q,onReCenter:I}))}Ka=Rn,({e:[is,ls,os,rs,ds,hs,cs,us,gs,As,ps,vs,ms,ys,ks,fs,bs,ws,Cs,Ms,Es,Ws,xs,Ns,Ts,Rs,Ss,Ls,zs,Bs,Ds,Os,$s,Ps,Hs,Fs,Ks,Is,Us,Vs,Ys,Xs,Zs,_s,js,qs,Gs,Js],c:[an,ns]}=(0,h.A)(Ka,[Qs("eo-display-canvas",{styleTexts:[as.A,ss.A]})],[[en({attribute:!1}),1,"cells"],[en({type:String}),1,"layout"],[en({attribute:!1}),1,"layoutOptions"],[en({attribute:!1}),1,"defaultNodeSize"],[en({attribute:!1}),1,"defaultNodeBricks"],[en({type:Number}),1,"degradedThreshold"],[en({attribute:!1}),1,"degradedNodeLabel"],[en({attribute:!1}),1,"defaultEdgeLines"],[en({attribute:!1}),1,"activeTarget"],[en({type:Boolean}),1,"fadeUnrelatedCells"],[en({type:Boolean}),1,"zoomable"],[en({type:Boolean}),1,"scrollable"],[en({type:Boolean}),1,"pannable"],[en({attribute:!1}),1,"scaleRange"],[en({type:Boolean}),1,"hideZoomBar"],[en({type:Boolean}),1,"autoCenterWhenCellsChange"],[en(),1,"doNotResetActiveTargetForSelector"],[en({type:Boolean}),1,"doNotResetActiveTargetOutsideCanvas"],[tn({type:"activeTarget.change"}),1,"activeTargetChangeEvent",e=>(0,d.A)(wn,e),(e,t)=>(0,r.A)(wn,e,t)],[tn({type:"cell.contextmenu"}),1,"cellContextMenu",e=>(0,d.A)(Wn,e),(e,t)=>(0,r.A)(Wn,e,t)],[tn({type:"cell.click"}),1,"cellClick",e=>(0,d.A)(Nn,e),(e,t)=>(0,r.A)(Nn,e,t)]],0,(e=>Tn.has((0,l.A)(e))),A.ReactNextElement)),ns()},9068:(e,t,a)=>{a.d(t,{uuidV4:()=>Za});var s,n=a(4635),i=a(918),l=a(6902),o=a(2559),r=a(5536),d=a(6121),h=a(829),c=a(2740),u=a(8769),g=a.n(u),A=a(5821),p=a(7095),v=a(532),m=(a(6477),a(1030)),y=a(3373),k=a.n(y),f=a(7566),b=a(5748),w=a(3739),C=a(531),M=a(8185),E=a(5114),W=a(9274),x=a(3639),N=a(3783),T=a(2098),R=a(227),S=a(3033),L=a(8091),z=a(1819),B=a(7099),D=a(1484),O=a(8197),$=a(7531),P=a(8875),H=a(2722),F=a(9978),K=a(2219),I=a(3012),U=a(6237),V=a(1103),Y=a(9386),X=a(1991),Z=a(2202),_=a(1825);let j,q,G,J,Q,ee,te,ae,se,ne,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,me,ye,ke,fe,be,we,Ce,Me,Ee,We,xe,Ne,Te,Re,Se,Le,ze,Be,De,Oe,$e,Pe,He,Fe,Ke,Ie,Ue,Ve,Ye,Xe,Ze,_e,je,qe,Ge,Je,Qe,et,tt,at,st,nt,it,lt,ot,rt,dt,ht,ct,ut,gt,At,pt,vt,mt,yt,kt,ft,bt,wt,Ct,Mt,Et,Wt,xt,Nt,Tt,Rt,St,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,Ft;const Kt=(0,v.unwrapProvider)("basic.lock-body-scroll"),{defineElement:It,property:Ut,method:Vt,event:Yt}=(0,A.createDecorators)(),Xt=g().forwardRef(Xa);let Zt;var _t=new WeakMap,jt=new WeakMap,qt=new WeakMap,Gt=new WeakMap,Jt=new WeakMap,Qt=new WeakMap,ea=new WeakMap,ta=new WeakMap,aa=new WeakMap,sa=new WeakMap,na=new WeakMap,ia=new WeakMap,la=new WeakMap,oa=new WeakMap,ra=new WeakMap,da=new WeakMap,ha=new WeakMap,ca=new WeakMap,ua=new WeakMap,ga=new WeakMap,Aa=new WeakMap,pa=new WeakMap,va=new WeakSet,ma=new WeakMap,ya=new WeakMap,ka=new WeakMap,fa=new WeakMap,ba=new WeakMap,wa=new WeakMap,Ca=new WeakMap,Ma=new WeakMap,Ea=new WeakMap,Wa=new WeakMap,xa=new WeakMap,Na=new WeakMap,Ta=new WeakMap,Ra=new WeakMap,Sa=new WeakMap,La=new WeakMap,za=new WeakMap,Ba=new WeakMap,Da=new WeakMap,Oa=new WeakMap,$a=new WeakMap,Pa=new WeakMap,Ha=new WeakMap,Fa=new WeakMap,Ka=new WeakMap,Ia=new WeakMap,Ua=new WeakMap;class Va extends p.ReactNextElement{constructor(){super(...arguments),(0,n.A)(this,va),(0,i.A)(this,_t,(j(this),G(this))),(0,i.A)(this,jt,(J(this),Q(this))),(0,i.A)(this,qt,(ee(this),te(this))),(0,i.A)(this,Gt,(ae(this),se(this,[S.HP,S.HP]))),(0,i.A)(this,Jt,(ne(this),ie(this))),(0,i.A)(this,Qt,(le(this),oe(this))),(0,i.A)(this,ea,(re(this),de(this))),(0,i.A)(this,ta,(he(this),ce(this))),(0,i.A)(this,aa,(ue(this),ge(this))),(0,i.A)(this,sa,(Ae(this),pe(this))),(0,i.A)(this,na,(ve(this),me(this,!0))),(0,i.A)(this,ia,(ye(this),ke(this,!0))),(0,i.A)(this,la,(fe(this),be(this,!0))),(0,i.A)(this,oa,(we(this),Ce(this,!1))),(0,i.A)(this,ra,(Me(this),Ee(this))),(0,i.A)(this,da,(We(this),xe(this))),(0,i.A)(this,ha,(Ne(this),Te(this))),(0,i.A)(this,ca,(Re(this),Se(this))),(0,i.A)(this,ua,(Le(this),ze(this))),(0,i.A)(this,ga,(Be(this),De(this))),(0,i.A)(this,Aa,(Oe(this),$e(this))),(0,i.A)(this,pa,(Pe(this),He(this))),(0,i.A)(this,ma,(Ie(this),e=>{(0,r.A)(va,this,Fe).emit(e)})),(0,i.A)(this,ya,(e=>{(0,M.c)(e,this.activeTarget)||(this.activeTarget=e)})),(0,i.A)(this,ka,Ue(this)),(0,i.A)(this,fa,(Xe(this),Ze(this))),(0,i.A)(this,ba,(qe(this),e=>{(0,r.A)(va,this,_e).emit(e),"node"===e.type&&(0,r.A)(va,this,Ve).emit(e)})),(0,i.A)(this,wa,Ge(this)),(0,i.A)(this,Ca,(et(this),e=>{(0,r.A)(va,this,Je).emit(e)})),(0,i.A)(this,Ma,tt(this)),(0,i.A)(this,Ea,(nt(this),e=>{(0,r.A)(va,this,at).emit(e)})),(0,i.A)(this,Wa,it(this)),(0,i.A)(this,xa,(rt(this),dt(this))),(0,i.A)(this,Na,(ut(this),e=>{(0,r.A)(va,this,ht).emit(e),"node"===e.type&&(0,r.A)(va,this,lt).emit(e)})),(0,i.A)(this,Ta,gt(this)),(0,i.A)(this,Ra,(vt(this),e=>{(0,r.A)(va,this,At).emit(e)})),(0,i.A)(this,Sa,mt(this)),(0,i.A)(this,La,(ft(this),e=>{(0,r.A)(va,this,yt).emit(e)})),(0,i.A)(this,za,bt(this)),(0,i.A)(this,Ba,(Mt(this),e=>{(0,r.A)(va,this,wt).emit(e)})),(0,i.A)(this,Da,Et(this)),(0,i.A)(this,Oa,(Nt(this),e=>{(0,r.A)(va,this,Wt).emit(e)})),(0,i.A)(this,$a,Tt(this)),(0,i.A)(this,Pa,(Lt(this),e=>{(0,r.A)(va,this,Rt).emit(e)})),(0,i.A)(this,Ha,zt(this)),(0,i.A)(this,Fa,(Ot(this),e=>{(0,r.A)(va,this,Bt).emit(e)})),(0,i.A)(this,Ka,$t(this)),(0,i.A)(this,Ia,(Ft(this),e=>{(0,r.A)(va,this,Pt).emit(e)})),(0,i.A)(this,Ua,(0,u.createRef)())}get cells(){return(0,h.A)(_t,this)}set cells(e){(0,d.A)(_t,this,e)}get layout(){return(0,h.A)(jt,this)}set layout(e){(0,d.A)(jt,this,e)}get layoutOptions(){return(0,h.A)(qt,this)}set layoutOptions(e){(0,d.A)(qt,this,e)}get defaultNodeSize(){return(0,h.A)(Gt,this)}set defaultNodeSize(e){(0,d.A)(Gt,this,e)}get defaultNodeBricks(){return(0,h.A)(Jt,this)}set defaultNodeBricks(e){(0,d.A)(Jt,this,e)}get degradedThreshold(){return(0,h.A)(Qt,this)}set degradedThreshold(e){(0,d.A)(Qt,this,e)}get degradedNodeLabel(){return(0,h.A)(ea,this)}set degradedNodeLabel(e){(0,d.A)(ea,this,e)}get defaultEdgeLines(){return(0,h.A)(ta,this)}set defaultEdgeLines(e){(0,d.A)(ta,this,e)}get activeTarget(){return(0,h.A)(aa,this)}set activeTarget(e){(0,d.A)(aa,this,e)}get fadeUnrelatedCells(){return(0,h.A)(sa,this)}set fadeUnrelatedCells(e){(0,d.A)(sa,this,e)}get zoomable(){return(0,h.A)(na,this)}set zoomable(e){(0,d.A)(na,this,e)}get scrollable(){return(0,h.A)(ia,this)}set scrollable(e){(0,d.A)(ia,this,e)}get pannable(){return(0,h.A)(la,this)}set pannable(e){(0,d.A)(la,this,e)}get allowEdgeToArea(){return(0,h.A)(oa,this)}set allowEdgeToArea(e){(0,d.A)(oa,this,e)}get dragBehavior(){return(0,h.A)(ra,this)}set dragBehavior(e){(0,d.A)(ra,this,e)}get ctrlDragBehavior(){return(0,h.A)(da,this)}set ctrlDragBehavior(e){(0,d.A)(da,this,e)}get scaleRange(){return(0,h.A)(ha,this)}set scaleRange(e){(0,d.A)(ha,this,e)}get lineSettings(){return(0,h.A)(ca,this)}set lineSettings(e){(0,d.A)(ca,this,e)}get lineConnector(){return(0,h.A)(ua,this)}set lineConnector(e){(0,d.A)(ua,this,e)}get doNotResetActiveTargetForSelector(){return(0,h.A)(ga,this)}set doNotResetActiveTargetForSelector(e){(0,d.A)(ga,this,e)}get doNotResetActiveTargetOutsideCanvas(){return(0,h.A)(Aa,this)}set doNotResetActiveTargetOutsideCanvas(e){(0,d.A)(Aa,this,e)}async dropNode(e){var t,a;let{id:s,position:n,size:i,data:l,useBrick:o}=e;if(null===(t=(a=document).elementsFromPoint)||void 0===t||null===(t=t.call(a,n[0],n[1]))||void 0===t?void 0:t.includes(this)){var r,d,c;const e=this.getBoundingClientRect(),t=(0,h.A)(Ua,this).current.getTransform(),a={type:"node",id:s,view:{..."force"===this.layout||"dagre"===this.layout?null:{x:(n[0]-e.left-t.x)/t.k,y:(n[1]-e.top-t.y)/t.k},width:null!==(r=null==i?void 0:i[0])&&void 0!==r?r:this.defaultNodeSize[0],height:null!==(d=null==i?void 0:i[1])&&void 0!==d?d:this.defaultNodeSize[0]},data:l,useBrick:o};return null===(c=(0,h.A)(Ua,this).current)||void 0===c||c.dropNode(a),a}return null}async dropDecorator(e){var t,a;let{position:s,decorator:n,text:i,direction:l}=e;if(null===(t=(a=document).elementsFromPoint)||void 0===t||null===(t=t.call(a,s[0],s[1]))||void 0===t?void 0:t.includes(this)){var o;const e=this.getBoundingClientRect(),t=(0,h.A)(Ua,this).current.getTransform(),a={type:"decorator",decorator:n,id:Za(),view:{x:(s[0]-e.left-t.x)/t.k,y:(s[1]-e.top-t.y)/t.k,width:S.N8,height:S.w1,text:i,direction:l}};return null===(o=(0,h.A)(Ua,this).current)||void 0===o||o.dropDecorator(a),a}return null}async addNodes(e){if(0===e.length)return[];const t=e.map((e=>{var t,a;let{size:s,useBrick:n,id:i,data:l}=e;return{type:"node",id:i,data:l,view:{width:null!==(t=null==s?void 0:s[0])&&void 0!==t?t:this.defaultNodeSize[0],height:null!==(a=null==s?void 0:s[1])&&void 0!==a?a:this.defaultNodeSize[0]},useBrick:n}}));return(0,h.A)(Ua,this).current.addNodes(t,{defaultNodeSize:this.defaultNodeSize,canvasWidth:this.clientWidth,canvasHeight:this.clientHeight})}async addEdge(e){var t;let{source:a,target:s,data:n}=e;const i={type:"edge",source:a,target:s,data:n,view:this.lineSettings};return null===(t=(0,h.A)(Ua,this).current)||void 0===t||t.addEdge(i),i}manuallyConnectNodes(e){return(0,h.A)(Ua,this).current.manuallyConnectNodes(e)}async updateCells(e,t){await(0,o.A)(va,this,Ya).call(this);const{updated:a}=(0,h.A)(Ua,this).current.updateCells(e,{...t,defaultNodeSize:this.defaultNodeSize,canvasWidth:this.clientWidth,canvasHeight:this.clientHeight});return{updated:a}}async reCenter(){var e;null===(e=(0,h.A)(Ua,this).current)||void 0===e||e.reCenter()}disconnectedCallback(){super.disconnectedCallback(),Kt(this,!1)}render(){return g().createElement(Xt,{host:this,ref:(0,h.A)(Ua,this),layout:this.layout,layoutOptions:this.layoutOptions,cells:this.cells,defaultNodeSize:this.defaultNodeSize,defaultNodeBricks:this.defaultNodeBricks,defaultEdgeLines:this.defaultEdgeLines,degradedThreshold:this.degradedThreshold,degradedNodeLabel:this.degradedNodeLabel,activeTarget:this.activeTarget,fadeUnrelatedCells:this.fadeUnrelatedCells,zoomable:this.zoomable,scrollable:this.scrollable,pannable:this.pannable,dragBehavior:this.dragBehavior,ctrlDragBehavior:this.ctrlDragBehavior,scaleRange:this.scaleRange,lineSettings:this.lineSettings,lineConnector:this.lineConnector,allowEdgeToArea:this.allowEdgeToArea,doNotResetActiveTargetForSelector:this.doNotResetActiveTargetForSelector,doNotResetActiveTargetOutsideCanvas:this.doNotResetActiveTargetOutsideCanvas,onActiveTargetChange:(0,h.A)(ma,this),onSwitchActiveTarget:(0,h.A)(ya,this),onCellMove:(0,h.A)(ba,this),onCellsMove:(0,h.A)(Ca,this),onCellResize:(0,h.A)(Ea,this),onCellDelete:(0,h.A)(Na,this),onCellsDelete:(0,h.A)(Ra,this),onEdgeAdd:(0,h.A)(Ba,this),onCellContextMenu:(0,h.A)(La,this),onDecoratorTextChange:(0,h.A)(Pa,this),onContainerContainerChange:(0,h.A)(Fa,this),onScaleChange:(0,h.A)(Ia,this),onEdgeViewChange:(0,h.A)(Oa,this)})}}function Ya(){return new Promise((e=>{const t=()=>{(0,h.A)(Ua,this).current?e():setTimeout(t,10)};t()}))}function Xa(e,t){let{host:a,layout:s,layoutOptions:n,cells:i,defaultNodeSize:l,defaultNodeBricks:o,defaultEdgeLines:r,degradedThreshold:d,degradedNodeLabel:h,activeTarget:c,fadeUnrelatedCells:A,zoomable:p,scrollable:v,pannable:y,dragBehavior:M,ctrlDragBehavior:I,scaleRange:U,lineSettings:j,lineConnector:q,allowEdgeToArea:G,doNotResetActiveTargetForSelector:J,doNotResetActiveTargetOutsideCanvas:Q,onActiveTargetChange:ee,onSwitchActiveTarget:te,onCellMove:ae,onCellResize:se,onCellDelete:ne,onCellsMove:ie,onCellsDelete:le,onCellContextMenu:oe,onEdgeAdd:re,onDecoratorTextChange:de,onScaleChange:he,onContainerContainerChange:ce,onEdgeViewChange:ue}=e;const[{cells:ge,layoutKey:Ae},pe]=(0,u.useReducer)(b.d,i,(e=>({cells:(0,N.C)(e,{defaultNodeSize:l}),layoutKey:0}))),ve=(0,u.useMemo)((()=>ge.filter(C.N).length>=(null!=d?d:S.pC)),[ge,d]),me=(0,u.useRef)(null),ye=(0,u.useRef)(null),[ke,fe]=(0,u.useState)([]),[be,we]=(0,u.useState)([]),{grabbing:Ce,transform:Me,zoomer:Ee,scaleRange:We}=(0,L.f)({rootRef:me,zoomable:p,scrollable:v,pannable:y,draggable:"grab"===M,ctrlDraggable:"grab"===I,scaleRange:U,onSwitchActiveTarget:te});(0,u.useEffect)((()=>{he(Me.k)}),[he,Me.k]);const[xe,Ne]=(0,u.useState)(null),[Te,Re]=(0,u.useState)(null),{centered:Se,setCentered:Le,getNextLayoutKey:ze}=(0,D.g)({layout:s,layoutOptions:n,rootRef:me,cells:ge,zoomable:p,zoomer:Ee,scaleRange:We,layoutKey:Ae,allowEdgeToArea:G,dispatch:pe}),Be=(0,u.useCallback)((()=>{Le(!1)}),[Le]);(0,u.useImperativeHandle)(t,(()=>({dropNode(e){"dagre"!==s&&"force"!==s&&Le(!0),pe({type:"drop-node",payload:e})},dropDecorator(e){"dagre"!==s&&"force"!==s&&Le(!0),pe({type:"drop-decorator",payload:e})},addNodes(e,t){let{defaultNodeSize:a,canvasWidth:n,canvasHeight:i}=t;const l=ge.findLastIndex((e=>!("decorator"===e.type&&"text"===e.decorator)))+1,o=[...ge.slice(0,l),...e,...ge.slice(l)],{cells:r,updated:d,shouldReCenter:h}=(0,T.L)({cells:o,layout:s,previousCells:ge,defaultNodeSize:a,canvasWidth:n,canvasHeight:i,scaleRange:We,transform:Me,allowEdgeToArea:G});return h&&Le(!1),pe({type:"update-cells",payload:r}),d.filter((t=>e.includes(t)))},addEdge(e){pe({type:"add-edge",payload:e})},updateCells(e,t){const{shouldReCenter:a,...n}=(0,T.L)({...t,layout:s,previousCells:ge,cells:e,scaleRange:We,transform:Me,allowEdgeToArea:G});return a&&Le(!1),pe({type:"update-cells",payload:n.cells}),n},getTransform:()=>Me,manuallyConnectNodes(e){const t=ge.find((t=>(0,C.bo)(t,G)&&t.id===e));if(t){const e=me.current.getBoundingClientRect();return Re({source:t,from:[t.view.x+t.view.width/2,t.view.y+t.view.height/2],offset:[e.left,e.top]}),new Promise(((e,t)=>{ye.current={resolve:e,reject:t}}))}return Promise.reject(null)},reCenter:Be})),[ge,s,We,Le,Me,G,Be]);const De=(0,u.useCallback)(((e,t)=>{var a;for(let a=ge.length-1;a>=0;a--){const n=ge[a];if((0,C.bo)(n,G)&&n.id!==e.source.id&&n.view.x<t[0]&&n.view.x+n.view.width>t[0]&&n.view.y<t[1]&&n.view.y+n.view.height>t[1]){var s;null===(s=ye.current)||void 0===s||s.resolve({source:e.source,target:n});break}}null===(a=ye.current)||void 0===a||a.reject(null),Re(null)}),[G,ge]),[Oe,$e]=(0,u.useState)(null);(0,u.useEffect)((()=>{Kt(a,!!(Te||Oe||xe))}),[Te,a,Oe,xe]);const Pe=(0,z.J)({rootRef:me,activeTarget:c,doNotResetActiveTargetForSelector:J,doNotResetActiveTargetOutsideCanvas:Q,onActiveTargetChange:ee}),[He,Fe]=(0,u.useState)([]);(0,u.useEffect)((()=>{const e=A?(0,R.Y)(ge,Te,Pe,G):[];Fe((t=>0===t.length&&0===e.length?t:e))}),[Pe,ge,Te,A,G]),(0,u.useEffect)((()=>{const e=me.current;if(!e||ke.length>0)return;const t=e=>{const t=(0,E.a)(e,{cells:ge,activeTarget:Pe});"delete-cells"===(null==t?void 0:t.action)&&(le(t.cells),1===t.cells.length&&ne(t.cells[0]))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}),[Pe,ge,ke.length,ne,le]);const Ke=`${(0,u.useMemo)((()=>`${(0,m.uniqueId)("diagram-")}-`),[])}line-arrow-`,[Ie,Ue]=(0,u.useState)([]),Ve=(0,u.useCallback)((e=>{pe({type:"move-cells",payload:e});const t=[];(0,X._)(e,ge).forEach((e=>{var a,s;null!==(a=e.containerCell)&&void 0!==a&&a.id&&t.push(null===(s=e.containerCell)||void 0===s?void 0:s.id)})),we(t),Ue(e.flatMap((e=>{var t;return null!==(t=e.guideLines)&&void 0!==t?t:[]})))}),[ge]),Ye=(0,u.useCallback)((e=>{pe({type:"move-cells",payload:e}),ie(e),1===e.length&&ae(e[0]),(0,X._)(e,ge,ce),we([]),Ue([])}),[ae,ie,ge,ce]),Xe=(0,u.useCallback)((e=>{pe({type:"resize-cell",payload:e})}),[]),Ze=(0,u.useCallback)((e=>{pe({type:"resize-cell",payload:e}),se(e)}),[se]),_e=(0,u.useCallback)((e=>{let{id:t,editing:a}=e;fe(a?e=>e.includes(t)?e:[...e,t]:e=>e.filter((e=>e!==t)))}),[]),je=(0,u.useCallback)(((e,t)=>{const a=ze();pe({type:"update-node-size",payload:{id:e,size:t},layoutKey:a})}),[ze]),qe=(0,u.useCallback)((e=>{Ee.scaleTo((0,f.A)(me.current),e/100)}),[Ee]),{lineConfMap:Ge,lineConnectorConf:Je,markers:Qe}=(0,$.d)({cells:ge,defaultEdgeLines:r,lineConnector:q,markerPrefix:Ke}),et=(0,O.H)({cells:ge,layout:s,centered:Se}),[tt,at]=(0,u.useState)(null),st=(0,u.useRef)(null),[nt,it]=(0,u.useState)(null),[lt,ot]=(0,u.useState)(null),rt=(0,u.useCallback)((e=>{if(Je&&(0,C.bo)(e,G)&&(!lt||"control"!==lt.type)){null!==st.current&&(clearTimeout(st.current),st.current=null);const t=(0,P.G)();at({cell:e,relativePoints:t,points:_a(t,e.view)})}}),[G,Je,lt]),dt=(0,u.useCallback)((e=>{Je&&(0,C.N)(e)&&(st.current=setTimeout((()=>{at(null)})))}),[Je]),ht=(0,u.useCallback)(((e,t,a,s)=>{const n={source:e.id,target:t.id,view:{...j,exitPosition:a,entryPosition:s,vertices:null}};if(ge.find((a=>"edge"===a.type&&a.source===e.id&&a.target===t.id)))pe({type:"change-edge-view",payload:n}),null==ue||ue(n);else{const a={type:"edge",...n};pe({type:"add-edge",payload:a}),re({source:e,target:t,view:a.view})}}),[ge,j,re,ue]),ct=(0,u.useCallback)(((e,t,a)=>{const s={source:e.id,target:t.id,view:a};pe({type:"change-edge-view",payload:s}),null==ue||ue(s)}),[ue]),ut=(0,u.useMemo)((()=>!!nt&&ge.some((e=>"edge"===e.type&&e.source===nt.edge.source&&e.target===nt.edge.target))),[nt,ge]),gt=(0,u.useMemo)((()=>({rootRef:me,smartConnectLineState:Oe,unsetHoverStateTimeoutRef:st,hoverState:tt,activeEditableLine:nt,activeEditableLineIsAvailable:ut,lineEditorState:lt,setLineEditorState:ot,setActiveEditableLine:it,setHoverState:at,setSmartConnectLineState:$e,onConnect:ht,onChangeEdgeView:ct})),[nt,ut,ct,ht,tt,lt,Oe]);return(0,u.useEffect)((()=>{const e=me.current;if(!e||"lasso"!==M)return;const t=e.getBoundingClientRect(),a=e=>{(0,K.F)(e,{transform:Me,offset:[t.left,t.top],onLassoing(e){Ne(e)},onLassoed(e){Ne(null);const t=[];for(const a of ge)if((0,C.t2)(a)||(0,C.o6)(a)||(0,C.Hs)(a)){const s=a.view.x,n=a.view.y;s>=e.x&&s+a.view.width<=e.x+e.width&&n>=e.y&&n+a.view.height<=e.y+e.height&&t.push(a)}null==te||te(t.length>1?{type:"multi",targets:t.map(Y.P)}:1===t.length?(0,Y.P)(t[0]):null)}})};return e.addEventListener("mousedown",a),()=>{e.removeEventListener("mousedown",a)}}),[Me,ge,M,te]),g().createElement(F.H.Provider,{value:gt},g().createElement("svg",{width:"100%",height:"100%",ref:me,className:k()("root",{grabbing:Ce,pannable:y,ready:et}),tabIndex:-1},g().createElement("defs",null,Qe.map(((e,t)=>g().createElement(w.c,{key:t,id:`${Ke}${t}`,type:e.markerType,strokeColor:e.strokeColor})))),g().createElement("g",{transform:`translate(${Me.x} ${Me.y}) scale(${Me.k})`},g().createElement("g",{className:k()("cells",{allowEdgeToArea:G})},ge.map((e=>g().createElement(W.m,{key:`${e.type}:${(0,C.WW)(e)?`${e.source}~${e.target}`:e.id}`,dragNodeToContainerActive:!(0,C.WW)(e)&&be.includes(e.id),layout:s,layoutOptions:n,cell:e,cells:ge,degraded:ve,degradedNodeLabel:h,defaultNodeBricks:o,transform:Me,lineConfMap:Ge,activeTarget:Pe,unrelatedCells:He,allowEdgeToArea:G,onCellsMoving:Ve,onCellsMoved:Ye,onCellResizing:Xe,onCellResized:Ze,onSwitchActiveTarget:te,onCellContextMenu:oe,onDecoratorTextChange:de,onDecoratorTextEditing:_e,onNodeBrickResize:je,onCellMouseEnter:rt,onCellMouseLeave:dt})))),g().createElement("g",null,g().createElement(x.w,{connectLineState:Te,transform:Me,markerEnd:`${Ke}0`,onConnect:De})),xe&&g().createElement("rect",{x:xe.x,y:xe.y,width:xe.width,height:xe.height,fill:"var(--palette-gray-5)",fillOpacity:.3,stroke:"var(--palette-gray-5)",strokeDasharray:2}),Je&&g().createElement("g",null,g().createElement(V.X,{transform:Me,lineSettings:j,options:Je}),g().createElement(_.W,{transform:Me,options:Je})),g().createElement("g",null,Ie.map(((e,t)=>g().createElement("path",{key:t,d:`M${e[0].join(" ")} L${e[1].join(" ")}`,stroke:"var(--palette-orange-5)",fill:"none",strokeWidth:1/Me.k})))),g().createElement("g",null,Je&&g().createElement(Z.F,{scale:Me.k})),Je&&g().createElement(H.T,{activeTarget:Pe,scale:Me.k,disabled:!!Te}))),g().createElement(B.Y,{shadowRoot:a.shadowRoot,scale:Me.k,scaleRange:We,onZoomChange:qe,onReCenter:Be}))}function Za(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}function _a(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const s=S.XK,n=s/2,i=t.x+a/2-n,l=t.y+a/2-n,o=t.width-a+s,r=t.height-a+s;return e.map((e=>({x:i+e.x*o,y:l+e.y*r})))}s=Va,({e:[G,J,Q,ee,te,ae,se,ne,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,me,ye,ke,fe,be,we,Ce,Me,Ee,We,xe,Ne,Te,Re,Se,Le,ze,Be,De,Oe,$e,Pe,He,Fe,Ke,Ie,Ue,Ve,Ye,Xe,Ze,_e,je,qe,Ge,Je,Qe,et,tt,at,st,nt,it,lt,ot,rt,dt,ht,ct,ut,gt,At,pt,vt,mt,yt,kt,ft,bt,wt,Ct,Mt,Et,Wt,xt,Nt,Tt,Rt,St,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,Ft,j],c:[Zt,q]}=(0,c.A)(s,[It("eo-draw-canvas",{styleTexts:[I.A,U.A]})],[[Ut({attribute:!1}),1,"cells"],[Ut({type:String}),1,"layout"],[Ut({attribute:!1}),1,"layoutOptions"],[Ut({attribute:!1}),1,"defaultNodeSize"],[Ut({attribute:!1}),1,"defaultNodeBricks"],[Ut({type:Number}),1,"degradedThreshold"],[Ut({attribute:!1}),1,"degradedNodeLabel"],[Ut({attribute:!1}),1,"defaultEdgeLines"],[Ut({attribute:!1}),1,"activeTarget"],[Ut({type:Boolean}),1,"fadeUnrelatedCells"],[Ut({type:Boolean}),1,"zoomable"],[Ut({type:Boolean}),1,"scrollable"],[Ut({type:Boolean}),1,"pannable"],[Ut({type:Boolean}),1,"allowEdgeToArea"],[Ut(),1,"dragBehavior"],[Ut(),1,"ctrlDragBehavior"],[Ut({attribute:!1}),1,"scaleRange"],[Ut({attribute:!1}),1,"lineSettings"],[Ut({attribute:!1}),1,"lineConnector"],[Ut(),1,"doNotResetActiveTargetForSelector"],[Ut({type:Boolean}),1,"doNotResetActiveTargetOutsideCanvas"],[Yt({type:"activeTarget.change"}),1,"activeTargetChangeEvent",e=>(0,h.A)(pa,e),(e,t)=>(0,d.A)(pa,e,t)],[Yt({type:"node.move"}),1,"nodeMoveEvent",e=>(0,h.A)(ka,e),(e,t)=>(0,d.A)(ka,e,t)],[Yt({type:"cell.move"}),1,"cellMoveEvent",e=>(0,h.A)(fa,e),(e,t)=>(0,d.A)(fa,e,t)],[Yt({type:"cells.move"}),1,"cellsMoveEvent",e=>(0,h.A)(wa,e),(e,t)=>(0,d.A)(wa,e,t)],[Yt({type:"cell.resize"}),1,"cellResizeEvent",e=>(0,h.A)(Ma,e),(e,t)=>(0,d.A)(Ma,e,t)],[Yt({type:"node.delete"}),1,"nodeDelete",e=>(0,h.A)(Wa,e),(e,t)=>(0,d.A)(Wa,e,t)],[Yt({type:"cell.delete"}),1,"cellDelete",e=>(0,h.A)(xa,e),(e,t)=>(0,d.A)(xa,e,t)],[Yt({type:"cells.delete"}),1,"cellsDelete",e=>(0,h.A)(Ta,e),(e,t)=>(0,d.A)(Ta,e,t)],[Yt({type:"cell.contextmenu"}),1,"cellContextMenu",e=>(0,h.A)(Sa,e),(e,t)=>(0,d.A)(Sa,e,t)],[Yt({type:"edge.add"}),1,"edgeAdd",e=>(0,h.A)(za,e),(e,t)=>(0,d.A)(za,e,t)],[Yt({type:"edge.view.change"}),1,"edgeViewChange",e=>(0,h.A)(Da,e),(e,t)=>(0,d.A)(Da,e,t)],[Yt({type:"decorator.text.change"}),1,"decoratorTextChange",e=>(0,h.A)($a,e),(e,t)=>(0,d.A)($a,e,t)],[Yt({type:"node.container.change"}),1,"containerContainerChange",e=>(0,h.A)(Ha,e),(e,t)=>(0,d.A)(Ha,e,t)],[Yt({type:"scale.change"}),1,"scaleChange",e=>(0,h.A)(Ka,e),(e,t)=>(0,d.A)(Ka,e,t)],[Vt(),2,"dropNode"],[Vt(),2,"dropDecorator"],[Vt(),2,"addNodes"],[Vt(),2,"addEdge"],[Vt(),2,"manuallyConnectNodes"],[Vt(),2,"updateCells"],[Vt(),2,"reCenter"]],0,(e=>Ua.has((0,l.A)(e))),p.ReactNextElement)),q()},3971:(e,t,a)=>{a.d(t,{A:()=>o});var s=a(6758),n=a.n(s),i=a(935),l=a.n(i)()(n());l.push([e.id,':host{display:block;--local-label-line-height:inherit;--local-label-font-size:inherit;--local-label-color:inherit;--local-label-font-weight:inherit}:host([hidden]){display:none}:host([type="line"]){--local-label-line-height:18px;--local-label-font-size:11px;--local-label-color:var(--color-secondary-text);--local-label-font-weight:400}*{box-sizing:border-box}.label{max-width:168px;margin:-3px}.label-text,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:var(--local-label-line-height);font-size:var(--local-label-font-size);color:var(--local-label-color);font-weight:var(--local-label-font-weight);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;user-select:text}.label-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.label.editing .label-text,\n.label.empty:not(.editing) .label-text,\n.label:not(.editing) .label-input{display:none}',""]);const o=l.toString()},497:(e,t,a)=>{a.d(t,{A:()=>o});var s=a(6758),n=a.n(s),i=a(935),l=a.n(i)()(n());l.push([e.id,'*{box-sizing:border-box}:host{display:block;border:1px solid var(--palette-gray-5);cursor:default;-webkit-user-select:none;user-select:none}:host([hidden]){display:none}:host([usage="dragging"]){opacity:0.75;position:fixed}:host(:not([usage="library"])){background:rgba(0,0,0,0.2);width:60px;height:60px}:host([usage="library"]){width:180px;height:30px;margin-bottom:10px}div{width:100%;height:100%;display:flex;align-items:center;justify-content:center}:host(:not([usage="dragging"]):not([usage="library"]):hover),\n:host([status="highlighted"]){color:var(--palette-blue-5);background:var(--palette-blue-1);border-color:1px solid var(--palette-blue-4)}:host([status="faded"]){opacity:0.3}:host([decorator="area"]){width:100px;height:60px;background:rgba(119,141,195,0.1);border:none}:host([decorator="text"]){width:auto;height:auto;background:none;border:none}',""]);const o=l.toString()}}]);
2
+ //# sourceMappingURL=9711.095da632.js.map