aurea-eden 1.44.2 → 1.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/assets/star_silver.svg +55 -55
  2. package/dist/bpmn-diagram.es.js +128 -28
  3. package/dist/bpmn-diagram.umd.js +1 -1
  4. package/lib/components/AureaEdenBpmnDiagram.vue +307 -307
  5. package/lib/components/README.md +78 -78
  6. package/lib/connectors/Connector.js +480 -480
  7. package/lib/diagrams/Diagram.js +2273 -2273
  8. package/lib/elements/Element.js +1879 -1874
  9. package/lib/loaders/GifTextureLoader.js +132 -132
  10. package/lib/materials/BarMaterial.js +18 -18
  11. package/lib/notations/bpmn/BpmnDiagram.js +1893 -1805
  12. package/lib/notations/bpmn/BpmnExporter.js +329 -329
  13. package/lib/notations/bpmn/BpmnToFluentConverter.js +1062 -1046
  14. package/lib/notations/bpmn/CONVERTER_ALGORITHM.md +94 -89
  15. package/lib/notations/custom/MyCustomNotationDiagram.js +55 -55
  16. package/lib/shapes/badge/ImageBadgeShape.js +54 -54
  17. package/lib/shapes/bar/ValueBarConstants.js +34 -34
  18. package/lib/shapes/bar/ValueBarShape.js +37 -37
  19. package/lib/shapes/bar/ValueBarUtils.js +107 -107
  20. package/lib/shapes/connector/DashedOrthogonalConnectorShape.js +146 -146
  21. package/lib/shapes/connector/RoundedCornerOrthogonalConnectorShape.js +259 -259
  22. package/lib/shapes/connector/StraightArrowConnectorShape.js +108 -108
  23. package/lib/shapes/connector/StraightDottedConnectorShape.js +70 -70
  24. package/lib/shapes/icon/IconShape.js +111 -111
  25. package/lib/shapes/icon/bpmn/gateways/exclusive.svg +57 -57
  26. package/lib/shapes/icon/bpmn/gateways/inclusive.svg +57 -57
  27. package/lib/shapes/icon/bpmn/gateways/parallel.svg +56 -56
  28. package/lib/shapes/paths/CircleShape.js +59 -59
  29. package/lib/shapes/paths/DiamondShape.js +175 -175
  30. package/lib/shapes/paths/RoundedRectangleShape.js +178 -178
  31. package/lib/shapes/paths/SwimlaneShape.js +126 -126
  32. package/lib/shapes/paths/TextAnnotationShape.js +82 -82
  33. package/lib/shapes/solids/StarShape.js +102 -102
  34. package/lib/shapes/text/TextShape.js +138 -138
  35. package/package.json +71 -71
@@ -1,56 +1,56 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- xmlns:dc="http://purl.org/dc/elements/1.1/"
4
- xmlns:cc="http://creativecommons.org/ns#"
5
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
- xmlns:svg="http://www.w3.org/2000/svg"
7
- xmlns="http://www.w3.org/2000/svg"
8
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
- width="28.674372mm"
11
- height="28.668304mm"
12
- viewBox="0 0 101.6021 101.58061"
13
- id="svg2"
14
- version="1.1"
15
- sodipodi:docname="five_pointed_star_spin_silver.svg">
16
-
17
- <title>Silver Five-Pointed Star Spinning</title>
18
-
19
-
20
-
21
- <metadata id="metadata7">
22
- <rdf:RDF>
23
- <cc:Work rdf:about="">
24
- <dc:format>image/svg+xml</dc:format>
25
- <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
26
- <dc:title>Silver Five-Pointed Star</dc:title>
27
- <dc:creator>
28
- <cc:Agent><dc:title>mazeo</dc:title></cc:Agent>
29
- </dc:creator>
30
- </cc:Work>
31
- </rdf:RDF>
32
- </metadata>
33
-
34
- <g id="g3411">
35
- <path
36
- inkscape:connector-curvature="0"
37
- d="m 49.4319,79.001906 l 1.1197,-23.1239 L 18.5018,100.58791 Z M 81.2953,101.58061 L 50.5516,55.878006 l -1.1197,23.1239 z m 0,0 L 71.2285,64.137706 l -20.6769,-8.2597 z m -62.7935,-0.9927 L 50.5516,55.878006 l -21.3689,6.0316 z M 50.5516,55.878006 L -3.0422191e-6,37.807606 L 29.1827,61.909606 Z m 0,0 l 20.6769,8.2597 l 30.3736,-24.7238 z m 0,0 L 38.4647,36.481906 L -3.0422192e-6,37.807606 Z m 0,0 l 51.0505,-16.4641 l -37.1517,-1.555 z m 0,0 l 13.8988,-18.0191 L 51.3588,5.7556778e-6 Z m 0,0 L 51.3588,5.7556778e-6 L 38.4647,36.481906 Z"
38
- style="fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:0;stroke-linejoin:round;stroke-opacity:1"
39
- id="path3829-7" />
40
- <g
41
- inkscape:label="Star"
42
- transform="translate(50.551603,55.877997)"
43
- id="g3809">
44
- <path id="path3811" style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="m 0,0 l 0.8072,-55.878 l -12.8941,36.4819 z"/>
45
- <path id="path3813" style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M 0,0 L 13.8988,-18.0191 L 0.8072,-55.878 Z"/>
46
- <path id="path3815" style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="m 0,0 l 51.0505,-16.4641 l -37.1517,-1.555 z"/>
47
- <path id="path3817" style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="m 0,0 l -12.0869,-19.3961 l -38.4647,1.3257 z"/>
48
- <path id="path3819" style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M 0,0 L 20.6769,8.2597 L 51.0505,-16.4641 Z"/>
49
- <path id="path3821" style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="m 0,0 l -50.5516,-18.0704 l 29.1827,24.102 z"/>
50
- <path id="path3823" style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M -32.0498,44.7099 L 0,0 l -21.3689,6.0316 z"/>
51
- <path id="path3825" style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M 30.7437,45.7026 L 20.6769,8.2597 L 0,0 Z"/>
52
- <path id="path3827" style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M 30.7437,45.7026 L 0,0 l -1.1197,23.1239 z"/>
53
- <path id="path3829" style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M -1.1197,23.1239 L 0,0 l -32.0498,44.7099 z"/>
54
- </g>
55
- </g>
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ width="28.674372mm"
11
+ height="28.668304mm"
12
+ viewBox="0 0 101.6021 101.58061"
13
+ id="svg2"
14
+ version="1.1"
15
+ sodipodi:docname="five_pointed_star_spin_silver.svg">
16
+
17
+ <title>Silver Five-Pointed Star Spinning</title>
18
+
19
+
20
+
21
+ <metadata id="metadata7">
22
+ <rdf:RDF>
23
+ <cc:Work rdf:about="">
24
+ <dc:format>image/svg+xml</dc:format>
25
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
26
+ <dc:title>Silver Five-Pointed Star</dc:title>
27
+ <dc:creator>
28
+ <cc:Agent><dc:title>mazeo</dc:title></cc:Agent>
29
+ </dc:creator>
30
+ </cc:Work>
31
+ </rdf:RDF>
32
+ </metadata>
33
+
34
+ <g id="g3411">
35
+ <path
36
+ inkscape:connector-curvature="0"
37
+ d="m 49.4319,79.001906 l 1.1197,-23.1239 L 18.5018,100.58791 Z M 81.2953,101.58061 L 50.5516,55.878006 l -1.1197,23.1239 z m 0,0 L 71.2285,64.137706 l -20.6769,-8.2597 z m -62.7935,-0.9927 L 50.5516,55.878006 l -21.3689,6.0316 z M 50.5516,55.878006 L -3.0422191e-6,37.807606 L 29.1827,61.909606 Z m 0,0 l 20.6769,8.2597 l 30.3736,-24.7238 z m 0,0 L 38.4647,36.481906 L -3.0422192e-6,37.807606 Z m 0,0 l 51.0505,-16.4641 l -37.1517,-1.555 z m 0,0 l 13.8988,-18.0191 L 51.3588,5.7556778e-6 Z m 0,0 L 51.3588,5.7556778e-6 L 38.4647,36.481906 Z"
38
+ style="fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:0;stroke-linejoin:round;stroke-opacity:1"
39
+ id="path3829-7" />
40
+ <g
41
+ inkscape:label="Star"
42
+ transform="translate(50.551603,55.877997)"
43
+ id="g3809">
44
+ <path id="path3811" style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="m 0,0 l 0.8072,-55.878 l -12.8941,36.4819 z"/>
45
+ <path id="path3813" style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M 0,0 L 13.8988,-18.0191 L 0.8072,-55.878 Z"/>
46
+ <path id="path3815" style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="m 0,0 l 51.0505,-16.4641 l -37.1517,-1.555 z"/>
47
+ <path id="path3817" style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="m 0,0 l -12.0869,-19.3961 l -38.4647,1.3257 z"/>
48
+ <path id="path3819" style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M 0,0 L 20.6769,8.2597 L 51.0505,-16.4641 Z"/>
49
+ <path id="path3821" style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="m 0,0 l -50.5516,-18.0704 l 29.1827,24.102 z"/>
50
+ <path id="path3823" style="fill:#808080;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M -32.0498,44.7099 L 0,0 l -21.3689,6.0316 z"/>
51
+ <path id="path3825" style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M 30.7437,45.7026 L 20.6769,8.2597 L 0,0 Z"/>
52
+ <path id="path3827" style="fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M 30.7437,45.7026 L 0,0 l -1.1197,23.1239 z"/>
53
+ <path id="path3829" style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linejoin:round;stroke-opacity:1" d="M -1.1197,23.1239 L 0,0 l -32.0498,44.7099 z"/>
54
+ </g>
55
+ </g>
56
56
  </svg>
@@ -59644,17 +59644,15 @@ class BpmnToFluentConverter {
59644
59644
  // - Right (E) and down (S) ports for parallel/forward paths.
59645
59645
  // ─────────────────────────────────────────────────────────────
59646
59646
  _sourcePort(srcEl, tgtEl, srcOutgoingIds, primaryPathSet) {
59647
- const isEndEvent = tgtEl.type === "bpmn:endEvent" || tgtEl.type === "bpmn:terminateEndEvent";
59648
59647
  const isIteration = this.backEdges && this.backEdges.has(`${srcEl.id}->${tgtEl.id}`) || this.backwardBranchRoots && this.backwardBranchRoots.has(tgtEl.id);
59649
- if (isEndEvent || isIteration) {
59648
+ if (isIteration) {
59650
59649
  return "N";
59651
59650
  }
59652
59651
  if (!srcOutgoingIds) return "E";
59653
59652
  const forwardTargets = srcOutgoingIds.map((id) => this.elements.get(id)).filter((t2) => {
59654
59653
  if (!t2) return false;
59655
- const tIsEnd = t2.type === "bpmn:endEvent" || t2.type === "bpmn:terminateEndEvent";
59656
59654
  const tIsIter = this.backEdges && this.backEdges.has(`${srcEl.id}->${t2.id}`) || this.backwardBranchRoots && this.backwardBranchRoots.has(t2.id);
59657
- return !tIsEnd && !tIsIter;
59655
+ return !tIsIter;
59658
59656
  });
59659
59657
  if (forwardTargets.length <= 1) {
59660
59658
  return "E";
@@ -59662,7 +59660,7 @@ class BpmnToFluentConverter {
59662
59660
  const mainTarget = forwardTargets.find((t2) => primaryPathSet && primaryPathSet.has(t2.id));
59663
59661
  if (mainTarget) {
59664
59662
  if (mainTarget.id === tgtEl.id) return "E";
59665
- return "S";
59663
+ return "auto";
59666
59664
  }
59667
59665
  const sorted = forwardTargets.slice().sort((a2, b) => {
59668
59666
  return a2.id.localeCompare(b.id);
@@ -59872,12 +59870,17 @@ class BpmnToFluentConverter {
59872
59870
  if (detectedBranches.length > 0) {
59873
59871
  generatedLines.push(`
59874
59872
  // --- Stage ${stage === "lanes" ? "3" : "2"}: ${stage === "lanes" ? "Sorting and Lanes" : "Unsorted Branches"} ---`);
59873
+ for (const b of detectedBranches) {
59874
+ const firstEl = this.elements.get(b.nodes[0]);
59875
+ const isFirstElEndEvent = firstEl && (firstEl.type === "bpmn:endEvent" || firstEl.type === "bpmn:terminateEndEvent");
59876
+ b.isUpward = b.isBackward || isFirstElEndEvent;
59877
+ }
59875
59878
  if (stage === "lanes") {
59876
59879
  detectedBranches.sort((a2, b) => a2.span - b.span);
59877
- const forwardBranches = detectedBranches.filter((b) => !b.isBackward);
59878
- const backwardBranches = detectedBranches.filter((b) => b.isBackward);
59879
- if (forwardBranches.length > 0) this._assignLanes(forwardBranches, primaryPath, outgoingFlows, false);
59880
- if (backwardBranches.length > 0) this._assignLanes(backwardBranches, primaryPath, outgoingFlows, true);
59880
+ const downwardBranches = detectedBranches.filter((b) => !b.isUpward);
59881
+ const upwardBranches = detectedBranches.filter((b) => b.isUpward);
59882
+ if (downwardBranches.length > 0) this._assignLanes(downwardBranches, primaryPath, outgoingFlows, false);
59883
+ if (upwardBranches.length > 0) this._assignLanes(upwardBranches, primaryPath, outgoingFlows, true);
59881
59884
  }
59882
59885
  for (const branch of detectedBranches) {
59883
59886
  const anchorEl = this.elements.get(branch.anchor);
@@ -59890,12 +59893,7 @@ class BpmnToFluentConverter {
59890
59893
  let useShiftAndAlign = false;
59891
59894
  if (i2 === 0) {
59892
59895
  let baseAnchorId = anchorEl.id;
59893
- const isElementEndEvent = branchEl.type === "bpmn:endEvent" || branchEl.type === "bpmn:terminateEndEvent";
59894
- const isAnchorGateway = anchorEl.type.toLowerCase().includes("gateway");
59895
- if (isElementEndEvent && isAnchorGateway) {
59896
- positionMethod = "positionUpOf";
59897
- placementAnchorId = anchorEl.id;
59898
- } else if (branch.isBackward) {
59896
+ if (branch.isUpward) {
59899
59897
  placementAnchorId = anchorEl.id;
59900
59898
  if (stage === "lanes" && branch.lane > 0 && branch.laneAnchorId) {
59901
59899
  useShiftAndAlign = true;
@@ -60173,7 +60171,9 @@ SPREAD LOG: Target ${nodeId} Port ${basePort}`);
60173
60171
  "parallelGateway",
60174
60172
  "eventBasedGateway",
60175
60173
  "complexGateway",
60176
- "endEvent"
60174
+ "endEvent",
60175
+ "subProcess",
60176
+ "callActivity"
60177
60177
  ];
60178
60178
  for (let i2 = 0; i2 < allNodes.length; i2++) {
60179
60179
  const node2 = allNodes[i2];
@@ -60265,7 +60265,22 @@ SPREAD LOG: Target ${nodeId} Port ${basePort}`);
60265
60265
  }
60266
60266
  }
60267
60267
  if (allPaths.length === 0) return null;
60268
- return allPaths.reduce((longest, current) => current.length > longest.length ? current : longest, []);
60268
+ const scorePath = (path) => {
60269
+ let score = path.length * 100;
60270
+ const endNodeId = path[path.length - 1];
60271
+ const endNode = this.elements.get(endNodeId);
60272
+ if (endNode && endNode.hasName) {
60273
+ const name2 = endNode.name.toLowerCase();
60274
+ if (name2.includes("approve") || name2.includes("success") || name2.includes("complete") || name2.includes("accept") || name2.includes("yes")) {
60275
+ score += 50;
60276
+ }
60277
+ if (name2.includes("reject") || name2.includes("fail") || name2.includes("cancel") || name2.includes("error") || name2.includes("no")) {
60278
+ score -= 50;
60279
+ }
60280
+ }
60281
+ return score;
60282
+ };
60283
+ return allPaths.reduce((best, current) => scorePath(current) > scorePath(best) ? current : best, allPaths[0]);
60269
60284
  }
60270
60285
  /**
60271
60286
  * Traces a continuous branch of unplaced elements starting from a specific node.
@@ -60415,14 +60430,17 @@ SPREAD LOG: Target ${nodeId} Port ${basePort}`);
60415
60430
  const dy = tgtPos.y - srcPos.y;
60416
60431
  if (Math.abs(dy) < 10) return dx > 0 ? { srcPort: "E", tgtPort: "W" } : { srcPort: "W", tgtPort: "E" };
60417
60432
  if (Math.abs(dx) < 10) return dy > 0 ? { srcPort: "N", tgtPort: "S" } : { srcPort: "S", tgtPort: "N" };
60418
- return { srcPort: dx > 0 ? "E" : "W", tgtPort: dy > 0 ? "S" : "N" };
60433
+ if (dy > 0 && dx > 0) return { srcPort: "E", tgtPort: "S" };
60434
+ if (dy < 0 && dx > 0) return { srcPort: "S", tgtPort: "W" };
60435
+ if (dy > 0 && dx < 0) return { srcPort: "N", tgtPort: "E" };
60436
+ return { srcPort: "W", tgtPort: "N" };
60419
60437
  }
60420
60438
  _cleanText(text) {
60421
60439
  if (!text) return "";
60422
60440
  return text.replace(/\n/g, "\\n").replace(/'/g, "\\'");
60423
60441
  }
60424
60442
  }
60425
- const version = "1.44.2";
60443
+ const version = "1.46.0";
60426
60444
  var Easing = Object.freeze({
60427
60445
  Linear: Object.freeze({
60428
60446
  None: function(amount) {
@@ -66877,8 +66895,19 @@ class Element extends Mesh {
66877
66895
  finalSrc = dy > 0 ? "N" : "S";
66878
66896
  finalTgt = dy > 0 ? "S" : "N";
66879
66897
  } else {
66880
- finalSrc = dx > 0 ? "E" : "W";
66881
- finalTgt = dy > 0 ? "S" : "N";
66898
+ if (dy > 0 && dx > 0) {
66899
+ finalSrc = "E";
66900
+ finalTgt = "S";
66901
+ } else if (dy < 0 && dx > 0) {
66902
+ finalSrc = "S";
66903
+ finalTgt = "W";
66904
+ } else if (dy > 0 && dx < 0) {
66905
+ finalSrc = "N";
66906
+ finalTgt = "E";
66907
+ } else {
66908
+ finalSrc = "W";
66909
+ finalTgt = "N";
66910
+ }
66882
66911
  }
66883
66912
  return { sourcePort: finalSrc, targetPort: finalTgt };
66884
66913
  }
@@ -69078,9 +69107,10 @@ class DashedOrthogonalConnectorShape extends Shape2 {
69078
69107
  this.name = "DashedOrthogonalConnectorShape";
69079
69108
  }
69080
69109
  }
69081
- const inclusive = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\r\n\r\n<svg\r\n width="13.758311mm"\r\n height="13.758311mm"\r\n viewBox="0 0 13.758311 13.758311"\r\n version="1.1"\r\n id="svg1"\r\n inkscape:version="1.4 (e7c3feb1, 2024-10-09)"\r\n sodipodi:docname="inclusive.svg"\r\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\r\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\r\n xmlns="http://www.w3.org/2000/svg"\r\n xmlns:svg="http://www.w3.org/2000/svg">\r\n <sodipodi:namedview\r\n id="namedview1"\r\n pagecolor="#ffffff"\r\n bordercolor="#000000"\r\n borderopacity="0.25"\r\n inkscape:showpageshadow="2"\r\n inkscape:pageopacity="0.0"\r\n inkscape:pagecheckerboard="0"\r\n inkscape:deskcolor="#d1d1d1"\r\n inkscape:document-units="mm"\r\n inkscape:zoom="8.8470394"\r\n inkscape:cx="30.349136"\r\n inkscape:cy="27.636364"\r\n inkscape:window-width="1104"\r\n inkscape:window-height="784"\r\n inkscape:window-x="0"\r\n inkscape:window-y="38"\r\n inkscape:window-maximized="0"\r\n inkscape:current-layer="layer1" />\r\n <defs\r\n id="defs1" />\r\n <g\r\n inkscape:label="Layer 1"\r\n inkscape:groupmode="layer"\r\n id="layer1"\r\n transform="translate(-101.73231,-141.68439)">\r\n <path\r\n style="display:inline;fill:#22242a;stroke-linecap:round;stroke-linejoin:round;stroke-width:0;stroke-dasharray:none;stroke:none"\r\n d="m 25,10.75 c -7.855252,0 -14.25,6.394748 -14.25,14.25 0,7.855252 6.394748,14.25 14.25,14.25 7.855252,0 14.25,-6.394748 14.25,-14.25 0,-7.855252 -6.394748,-14.25 -14.25,-14.25 z m 0,2.5 c 6.504152,0 11.75,5.245848 11.75,11.75 0,6.504152 -5.245848,11.75 -11.75,11.75 -6.504152,0 -11.75,-5.245848 -11.75,-11.75 0,-6.504152 5.245848,-11.75 11.75,-11.75 z"\r\n id="path2"\r\n transform="matrix(0.26458333,0,0,0.26458333,101.99688,141.94896)" />\r\n <rect\r\n x="102.52605"\r\n y="142.47813"\r\n rx="1.0583333"\r\n width="12.170834"\r\n height="12.170834"\r\n class="djs-outline"\r\n style="fill:none;stroke-width:0.264583"\r\n id="rect105" />\r\n </g>\r\n</svg>\r\n';
69082
- const exclusive = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\r\n\r\n<svg\r\n width="13.758311mm"\r\n height="13.758311mm"\r\n viewBox="0 0 13.758311 13.758311"\r\n version="1.1"\r\n id="svg1"\r\n inkscape:version="1.4 (e7c3feb1, 2024-10-09)"\r\n sodipodi:docname="exclusive.svg"\r\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\r\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\r\n xmlns="http://www.w3.org/2000/svg"\r\n xmlns:svg="http://www.w3.org/2000/svg">\r\n <sodipodi:namedview\r\n id="namedview1"\r\n pagecolor="#ffffff"\r\n bordercolor="#000000"\r\n borderopacity="0.25"\r\n inkscape:showpageshadow="2"\r\n inkscape:pageopacity="0.0"\r\n inkscape:pagecheckerboard="0"\r\n inkscape:deskcolor="#d1d1d1"\r\n inkscape:document-units="mm"\r\n inkscape:zoom="4.1672912"\r\n inkscape:cx="41.63376"\r\n inkscape:cy="36.714497"\r\n inkscape:window-width="1104"\r\n inkscape:window-height="719"\r\n inkscape:window-x="0"\r\n inkscape:window-y="38"\r\n inkscape:window-maximized="0"\r\n inkscape:current-layer="layer1" />\r\n <defs\r\n id="defs1" />\r\n <g\r\n inkscape:label="Layer 1"\r\n inkscape:groupmode="layer"\r\n id="layer1"\r\n transform="translate(-101.7323,-141.68439)">\r\n <path\r\n style="display:inline;fill:#22242a;stroke-linecap:round;stroke-linejoin:round"\r\n d="M 16,15 23.428571,24.714286 16,34.428571 h 3.428571 l 5.714286,-7.464228 5.714286,7.464228 h 3.428571 L 26.857143,24.714286 34.285714,15 H 30.857143 L 25.142857,22.464229 19.428571,15 Z"\r\n id="path1"\r\n transform="matrix(0.26458333,0,0,0.26458333,101.99687,141.94896)" />\r\n <rect\r\n x="102.52604"\r\n y="142.47813"\r\n rx="1.0583333"\r\n width="12.170834"\r\n height="12.170834"\r\n class="djs-outline"\r\n style="fill:none;stroke-width:0.264583"\r\n id="rect108" />\r\n </g>\r\n</svg>\r\n';
69083
- const parallel = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\r\n\r\n<svg\r\n width="13.758311mm"\r\n height="13.758311mm"\r\n viewBox="0 0 13.758311 13.758311"\r\n version="1.1"\r\n id="svg1"\r\n inkscape:version="1.4 (e7c3feb1, 2024-10-09)"\r\n sodipodi:docname="parallel.svg"\r\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\r\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\r\n xmlns="http://www.w3.org/2000/svg"\r\n xmlns:svg="http://www.w3.org/2000/svg">\r\n <sodipodi:namedview\r\n id="namedview1"\r\n pagecolor="#ffffff"\r\n bordercolor="#000000"\r\n borderopacity="0.25"\r\n inkscape:showpageshadow="2"\r\n inkscape:pageopacity="0.0"\r\n inkscape:pagecheckerboard="0"\r\n inkscape:deskcolor="#d1d1d1"\r\n inkscape:document-units="mm"\r\n inkscape:zoom="2.5054948"\r\n inkscape:cx="-2.1951752"\r\n inkscape:cy="20.155699"\r\n inkscape:window-width="1104"\r\n inkscape:window-height="788"\r\n inkscape:window-x="0"\r\n inkscape:window-y="38"\r\n inkscape:window-maximized="0"\r\n inkscape:current-layer="layer1" />\r\n <defs\r\n id="defs1" />\r\n <g\r\n inkscape:label="Layer 1"\r\n inkscape:groupmode="layer"\r\n id="layer1"\r\n transform="translate(-101.7323,-141.68439)">\r\n <path\r\n d="m 108.08229,144.59479 v 3.30729 h -3.3073 v 1.32292 h 3.3073 v 3.30729 h 1.32291 V 149.225 h 3.30729 v -1.32292 h -3.30729 v -3.30729 z"\r\n style="fill:#22242a;stroke:#22242a;stroke-width:0.264583px;stroke-linecap:round;stroke-linejoin:round"\r\n id="path109" />\r\n <rect\r\n x="102.52604"\r\n y="142.47813"\r\n rx="1.0583333"\r\n width="12.170834"\r\n height="12.170834"\r\n class="djs-outline"\r\n style="fill:none;stroke-width:0.264583"\r\n id="rect111" />\r\n </g>\r\n</svg>\r\n';
69110
+ const subProcessMarker = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg\n xmlns:dc="http://purl.org/dc/elements/1.1/"\n xmlns:cc="http://creativecommons.org/ns#"\n xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\n xmlns:svg="http://www.w3.org/2000/svg"\n xmlns="http://www.w3.org/2000/svg"\n version="1.1"\n id="svg2"\n viewBox="0 0 2000 2000"\n height="2000"\n width="2000">\n <defs\n id="defs4" />\n <metadata\n id="metadata7">\n <rdf:RDF>\n <cc:Work\n rdf:about="">\n <dc:format>image/svg+xml</dc:format>\n <dc:type\n rdf:resource="http://purl.org/dc/dcmitype/StillImage" />\n <dc:title></dc:title>\n <cc:license\n rdf:resource="https://github.com/bpmn-io/bpmn-font/blob/master/LICENSE" />\n <dc:creator>\n <cc:Agent>\n <dc:title>Jörg Dotzki</dc:title>\n </cc:Agent>\n </dc:creator>\n <dc:subject>\n <rdf:Bag>\n <rdf:li>BPMN</rdf:li>\n <rdf:li>bpmn-io</rdf:li>\n <rdf:li>bpmn.io</rdf:li>\n <rdf:li>Font</rdf:li>\n </rdf:Bag>\n </dc:subject>\n </cc:Work>\n </rdf:RDF>\n </metadata>\n <g\n transform="translate(0,947.63784)"\n id="layer1">\n <path\n id="rect4136-1"\n transform="translate(0,-947.63784)"\n d="m 300,300 0,50 0,1350 1400,0 0,-1400 z m 88,88 1224,0 0,1224 -1224,0 z m 522,212 0,310 -310,0 0,180 310,0 0,310 180,0 0,-310 310,0 0,-180 -310,0 0,-310 z"\n style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:200;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />\n </g>\n</svg>\n';
69111
+ const inclusive = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n\n<svg\n width="13.758311mm"\n height="13.758311mm"\n viewBox="0 0 13.758311 13.758311"\n version="1.1"\n id="svg1"\n inkscape:version="1.4 (e7c3feb1, 2024-10-09)"\n sodipodi:docname="inclusive.svg"\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <sodipodi:namedview\n id="namedview1"\n pagecolor="#ffffff"\n bordercolor="#000000"\n borderopacity="0.25"\n inkscape:showpageshadow="2"\n inkscape:pageopacity="0.0"\n inkscape:pagecheckerboard="0"\n inkscape:deskcolor="#d1d1d1"\n inkscape:document-units="mm"\n inkscape:zoom="8.8470394"\n inkscape:cx="30.349136"\n inkscape:cy="27.636364"\n inkscape:window-width="1104"\n inkscape:window-height="784"\n inkscape:window-x="0"\n inkscape:window-y="38"\n inkscape:window-maximized="0"\n inkscape:current-layer="layer1" />\n <defs\n id="defs1" />\n <g\n inkscape:label="Layer 1"\n inkscape:groupmode="layer"\n id="layer1"\n transform="translate(-101.73231,-141.68439)">\n <path\n style="display:inline;fill:#22242a;stroke-linecap:round;stroke-linejoin:round;stroke-width:0;stroke-dasharray:none;stroke:none"\n d="m 25,10.75 c -7.855252,0 -14.25,6.394748 -14.25,14.25 0,7.855252 6.394748,14.25 14.25,14.25 7.855252,0 14.25,-6.394748 14.25,-14.25 0,-7.855252 -6.394748,-14.25 -14.25,-14.25 z m 0,2.5 c 6.504152,0 11.75,5.245848 11.75,11.75 0,6.504152 -5.245848,11.75 -11.75,11.75 -6.504152,0 -11.75,-5.245848 -11.75,-11.75 0,-6.504152 5.245848,-11.75 11.75,-11.75 z"\n id="path2"\n transform="matrix(0.26458333,0,0,0.26458333,101.99688,141.94896)" />\n <rect\n x="102.52605"\n y="142.47813"\n rx="1.0583333"\n width="12.170834"\n height="12.170834"\n class="djs-outline"\n style="fill:none;stroke-width:0.264583"\n id="rect105" />\n </g>\n</svg>\n';
69112
+ const exclusive = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n\n<svg\n width="13.758311mm"\n height="13.758311mm"\n viewBox="0 0 13.758311 13.758311"\n version="1.1"\n id="svg1"\n inkscape:version="1.4 (e7c3feb1, 2024-10-09)"\n sodipodi:docname="exclusive.svg"\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <sodipodi:namedview\n id="namedview1"\n pagecolor="#ffffff"\n bordercolor="#000000"\n borderopacity="0.25"\n inkscape:showpageshadow="2"\n inkscape:pageopacity="0.0"\n inkscape:pagecheckerboard="0"\n inkscape:deskcolor="#d1d1d1"\n inkscape:document-units="mm"\n inkscape:zoom="4.1672912"\n inkscape:cx="41.63376"\n inkscape:cy="36.714497"\n inkscape:window-width="1104"\n inkscape:window-height="719"\n inkscape:window-x="0"\n inkscape:window-y="38"\n inkscape:window-maximized="0"\n inkscape:current-layer="layer1" />\n <defs\n id="defs1" />\n <g\n inkscape:label="Layer 1"\n inkscape:groupmode="layer"\n id="layer1"\n transform="translate(-101.7323,-141.68439)">\n <path\n style="display:inline;fill:#22242a;stroke-linecap:round;stroke-linejoin:round"\n d="M 16,15 23.428571,24.714286 16,34.428571 h 3.428571 l 5.714286,-7.464228 5.714286,7.464228 h 3.428571 L 26.857143,24.714286 34.285714,15 H 30.857143 L 25.142857,22.464229 19.428571,15 Z"\n id="path1"\n transform="matrix(0.26458333,0,0,0.26458333,101.99687,141.94896)" />\n <rect\n x="102.52604"\n y="142.47813"\n rx="1.0583333"\n width="12.170834"\n height="12.170834"\n class="djs-outline"\n style="fill:none;stroke-width:0.264583"\n id="rect108" />\n </g>\n</svg>\n';
69113
+ const parallel = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n\n<svg\n width="13.758311mm"\n height="13.758311mm"\n viewBox="0 0 13.758311 13.758311"\n version="1.1"\n id="svg1"\n inkscape:version="1.4 (e7c3feb1, 2024-10-09)"\n sodipodi:docname="parallel.svg"\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <sodipodi:namedview\n id="namedview1"\n pagecolor="#ffffff"\n bordercolor="#000000"\n borderopacity="0.25"\n inkscape:showpageshadow="2"\n inkscape:pageopacity="0.0"\n inkscape:pagecheckerboard="0"\n inkscape:deskcolor="#d1d1d1"\n inkscape:document-units="mm"\n inkscape:zoom="2.5054948"\n inkscape:cx="-2.1951752"\n inkscape:cy="20.155699"\n inkscape:window-width="1104"\n inkscape:window-height="788"\n inkscape:window-x="0"\n inkscape:window-y="38"\n inkscape:window-maximized="0"\n inkscape:current-layer="layer1" />\n <defs\n id="defs1" />\n <g\n inkscape:label="Layer 1"\n inkscape:groupmode="layer"\n id="layer1"\n transform="translate(-101.7323,-141.68439)">\n <path\n d="m 108.08229,144.59479 v 3.30729 h -3.3073 v 1.32292 h 3.3073 v 3.30729 h 1.32291 V 149.225 h 3.30729 v -1.32292 h -3.30729 v -3.30729 z"\n style="fill:#22242a;stroke:#22242a;stroke-width:0.264583px;stroke-linecap:round;stroke-linejoin:round"\n id="path109" />\n <rect\n x="102.52604"\n y="142.47813"\n rx="1.0583333"\n width="12.170834"\n height="12.170834"\n class="djs-outline"\n style="fill:none;stroke-width:0.264583"\n id="rect111" />\n </g>\n</svg>\n';
69084
69114
  const eventBased = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n\n<svg\n width="13.758311mm"\n height="13.758311mm"\n viewBox="0 0 13.758311 13.758311"\n version="1.1"\n id="svg1"\n inkscape:version="1.4 (e7c3feb1, 2024-10-09)"\n sodipodi:docname="event-based.svg"\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <sodipodi:namedview\n id="namedview1"\n pagecolor="#ffffff"\n bordercolor="#000000"\n borderopacity="0.25"\n inkscape:showpageshadow="2"\n inkscape:pageopacity="0.0"\n inkscape:pagecheckerboard="0"\n inkscape:deskcolor="#d1d1d1"\n inkscape:document-units="mm"\n inkscape:zoom="4.3759929"\n inkscape:cx="21.36658"\n inkscape:cy="26.16549"\n inkscape:window-width="1104"\n inkscape:window-height="786"\n inkscape:window-x="0"\n inkscape:window-y="38"\n inkscape:window-maximized="0"\n inkscape:current-layer="layer1" />\n <defs\n id="defs1" />\n <g\n inkscape:label="Layer 1"\n inkscape:groupmode="layer"\n id="layer1"\n transform="translate(-1969.426,-2186.3844)">\n <circle\n cx="1976.3052"\n cy="2193.2637"\n r="3.96875"\n style="fill:none;stroke:#22242a;stroke-width:0.264583px;stroke-linecap:round;stroke-linejoin:round"\n id="circle112" />\n <circle\n cx="1976.3052"\n cy="2193.2637"\n r="3.175"\n style="fill:none;stroke:#22242a;stroke-width:0.264583px;stroke-linecap:round;stroke-linejoin:round"\n id="circle113" />\n <path\n d="m 1974.4531,2192.4698 1.9483,-1.2988 1.9483,1.2988 -0.6494,2.5978 h -2.5978 z"\n style="fill:none;stroke:#22242a;stroke-width:0.529167px;stroke-linecap:round;stroke-linejoin:round"\n id="path113" />\n <rect\n x="1970.2197"\n y="2187.1782"\n rx="1.0583333"\n width="12.170834"\n height="12.170834"\n class="djs-outline"\n style="fill:none;stroke-width:0.264583"\n id="rect114" />\n </g>\n</svg>\n';
69085
69115
  const complex = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n\n<svg\n width="13.758311mm"\n height="13.758311mm"\n viewBox="0 0 13.758311 13.758311"\n version="1.1"\n id="svg1"\n inkscape:version="1.4 (e7c3feb1, 2024-10-09)"\n sodipodi:docname="complex.svg"\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <sodipodi:namedview\n id="namedview1"\n pagecolor="#ffffff"\n bordercolor="#000000"\n borderopacity="0.25"\n inkscape:showpageshadow="2"\n inkscape:pageopacity="0.0"\n inkscape:pagecheckerboard="0"\n inkscape:deskcolor="#d1d1d1"\n inkscape:document-units="mm"\n inkscape:zoom="4.8390424"\n inkscape:cx="39.987251"\n inkscape:cy="19.218679"\n inkscape:window-width="1104"\n inkscape:window-height="827"\n inkscape:window-x="0"\n inkscape:window-y="38"\n inkscape:window-maximized="0"\n inkscape:current-layer="layer1" />\n <defs\n id="defs1" />\n <g\n inkscape:label="Layer 1"\n inkscape:groupmode="layer"\n id="layer1"\n transform="translate(-101.73231,-141.68439)">\n <g\n id="path115"\n style="fill:#22242a;fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none"\n transform="matrix(0.26458333,0,0,0.26458333,-13.62604,-21.563537)">\n <path\n style="fill:#22242a;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"\n d="m 460,631 v 7.11679 l -5.01825,-5.01825 -3.10219,3.10219 5.01825,5.01825 h -7.11679 v 4.37956 h 7.11679 l -5.01825,5.01825 3.10219,3.10219 L 460,648.70073 v 7.11679 h 4.37956 v -7.11679 l 5.01825,5.01825 3.10219,-3.10219 -5.01825,-5.01825 h 7.11679 v -4.37956 h -7.11679 l 5.01825,-5.01825 -3.10219,-3.10219 -5.01825,5.01825 V 631 Z"\n id="path211" />\n </g>\n <rect\n x="102.52604"\n y="142.47813"\n rx="1.0583333"\n width="12.170834"\n height="12.170834"\n class="djs-outline"\n style="fill:none;stroke-width:0.264583"\n id="rect117" />\n </g>\n</svg>\n';
69086
69116
  const conditional = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n\n<svg\n width="4.1010432mm"\n height="5.0270829mm"\n viewBox="0 0 4.1010433 5.0270831"\n version="1.1"\n id="svg1"\n inkscape:version="1.4 (86a8ad7, 2024-10-11)"\n sodipodi:docname="conditional.svg"\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <sodipodi:namedview\n id="namedview1"\n pagecolor="#505050"\n bordercolor="#eeeeee"\n borderopacity="1"\n inkscape:showpageshadow="0"\n inkscape:pageopacity="0"\n inkscape:pagecheckerboard="0"\n inkscape:deskcolor="#505050"\n inkscape:document-units="mm"\n inkscape:zoom="8.1336326"\n inkscape:cx="2.3359796"\n inkscape:cy="13.216727"\n inkscape:window-width="2560"\n inkscape:window-height="1009"\n inkscape:window-x="-8"\n inkscape:window-y="-8"\n inkscape:window-maximized="1"\n inkscape:current-layer="layer1" />\n <defs\n id="defs1" />\n <g\n inkscape:label="Layer 1"\n inkscape:groupmode="layer"\n id="layer1"\n transform="translate(-156.23646,-112.58021)">\n <path\n d="m 156.36875,112.7125 h 3.83646 v 4.7625 h -3.83646 z m 0.52917,0.79375 h 2.77813 M 156.89792,114.3 h 2.77813 m -2.77813,0.79375 h 2.77813 m -2.77813,0.79375 h 2.77813 m -2.77813,0.79375 h 2.77813 m -2.77813,0.79375 h 2.77813"\n style="fill:none;stroke:#22242a;stroke-width:0.264583px;stroke-linecap:round;stroke-linejoin:round"\n id="path22" />\n </g>\n</svg>\n';
@@ -69405,6 +69435,25 @@ class BpmnDiagram extends Diagram {
69405
69435
  return _el;
69406
69436
  }
69407
69437
  // Tasks
69438
+ addSubProcess(elementId, width = BPMN_DIMS.TASK_WIDTH, height = BPMN_DIMS.TASK_HEIGHT, isExpanded2 = false) {
69439
+ const _el = this.addElement(new Element(elementId, new RoundedRectangleShape(width, height)));
69440
+ _el.semanticType = "subprocess";
69441
+ _el.bpmnType = "bpmn:SubProcess";
69442
+ if (isExpanded2) {
69443
+ _el.textStyle = { fontSize: BPMN_DIMS.FONT_SIZE_TASK, align: "top-left", offset: { x: 5, y: -5, z: 0 }, faceCamera: false };
69444
+ } else {
69445
+ _el.textStyle = { fontSize: BPMN_DIMS.FONT_SIZE_TASK, align: BPMN_DIMS.TEXT_ALIGN_TASK, offset: BPMN_DIMS.TEXT_OFFSET_DEFAULT, faceCamera: BPMN_DIMS.FACE_CAMERA_TASK };
69446
+ _el.addIcon(subProcessMarker, "bottom", BPMN_DIMS.ICON_SIZE_SMALL);
69447
+ }
69448
+ return _el;
69449
+ }
69450
+ addCallActivity(elementId, width = BPMN_DIMS.TASK_WIDTH, height = BPMN_DIMS.TASK_HEIGHT) {
69451
+ const _el = this.addElement(new Element(elementId, new RoundedRectangleShape(width, height, 10, 3)));
69452
+ _el.semanticType = "callactivity";
69453
+ _el.bpmnType = "bpmn:CallActivity";
69454
+ _el.textStyle = { fontSize: BPMN_DIMS.FONT_SIZE_TASK, align: BPMN_DIMS.TEXT_ALIGN_TASK, offset: BPMN_DIMS.TEXT_OFFSET_DEFAULT, faceCamera: BPMN_DIMS.FACE_CAMERA_TASK };
69455
+ return _el;
69456
+ }
69408
69457
  addTask(elementId, width = BPMN_DIMS.TASK_WIDTH, height = BPMN_DIMS.TASK_HEIGHT) {
69409
69458
  const _el = this.addElement(new Element(elementId, new RoundedRectangleShape(width, height)));
69410
69459
  _el.semanticType = "task";
@@ -69568,16 +69617,20 @@ class BpmnDiagram extends Diagram {
69568
69617
  const dcNamespace = "http://www.omg.org/spec/DD/20100524/DC";
69569
69618
  const diNamespace = "http://www.omg.org/spec/DD/20100524/DI";
69570
69619
  const layoutMap = {};
69571
- const bpmnShapes = xmlDoc.getElementsByTagNameNS(bpmndiNamespace, "BPMNShape");
69620
+ const bpmnDiagrams = xmlDoc.getElementsByTagNameNS(bpmndiNamespace, "BPMNDiagram");
69621
+ const mainDiagram = bpmnDiagrams.length > 0 ? bpmnDiagrams[0] : xmlDoc;
69622
+ const bpmnShapes = mainDiagram.getElementsByTagNameNS(bpmndiNamespace, "BPMNShape");
69572
69623
  for (let i2 = 0; i2 < bpmnShapes.length; i2++) {
69573
69624
  const bpmnElementId = bpmnShapes[i2].getAttribute("bpmnElement");
69625
+ const isExpanded2 = bpmnShapes[i2].getAttribute("isExpanded") === "true";
69574
69626
  const bounds = bpmnShapes[i2].getElementsByTagNameNS(dcNamespace, "Bounds")[0];
69575
69627
  if (bounds) {
69576
69628
  layoutMap[bpmnElementId] = {
69577
69629
  width: parseFloat(bounds.getAttribute("width")),
69578
69630
  height: parseFloat(bounds.getAttribute("height")),
69579
69631
  x: parseFloat(bounds.getAttribute("x")),
69580
- y: parseFloat(bounds.getAttribute("y")) * -1
69632
+ y: parseFloat(bounds.getAttribute("y")) * -1,
69633
+ isExpanded: isExpanded2
69581
69634
  };
69582
69635
  }
69583
69636
  }
@@ -69635,6 +69688,7 @@ class BpmnDiagram extends Diagram {
69635
69688
  const startEvents = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "startEvent");
69636
69689
  for (let i2 = 0; i2 < startEvents.length; i2++) {
69637
69690
  const startEventId = startEvents[i2].getAttribute("id");
69691
+ if (!layoutMap[startEventId]) continue;
69638
69692
  const { width, height } = getDims(startEventId);
69639
69693
  if (startEvents[i2].getElementsByTagNameNS(bpmnNamespace, "messageEventDefinition").length > 0) {
69640
69694
  this.addMessageStartEvent(startEventId, width, height);
@@ -69651,6 +69705,7 @@ class BpmnDiagram extends Diagram {
69651
69705
  const endEvents = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "endEvent");
69652
69706
  for (let i2 = 0; i2 < endEvents.length; i2++) {
69653
69707
  const endEventId = endEvents[i2].getAttribute("id");
69708
+ if (!layoutMap[endEventId]) continue;
69654
69709
  endEvents[i2].getAttribute("name");
69655
69710
  endEvents[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69656
69711
  endEvents[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
@@ -69674,6 +69729,7 @@ class BpmnDiagram extends Diagram {
69674
69729
  for (let i2 = 0; i2 < intermediateCatchEvents.length; i2++) {
69675
69730
  const intermediateCatchEventId = intermediateCatchEvents[i2].getAttribute("id");
69676
69731
  intermediateCatchEvents[i2].getAttribute("name");
69732
+ if (!layoutMap[intermediateCatchEventId]) continue;
69677
69733
  getDims(intermediateCatchEventId);
69678
69734
  if (intermediateCatchEvents[i2].getElementsByTagNameNS(bpmnNamespace, "messageEventDefinition").length > 0) {
69679
69735
  this.addIntermediateMessageCatchEvent(intermediateCatchEventId);
@@ -69693,6 +69749,7 @@ class BpmnDiagram extends Diagram {
69693
69749
  for (let i2 = 0; i2 < intermediateThrowEvents.length; i2++) {
69694
69750
  const intermediateThrowEventId = intermediateThrowEvents[i2].getAttribute("id");
69695
69751
  intermediateThrowEvents[i2].getAttribute("name");
69752
+ if (!layoutMap[intermediateThrowEventId]) continue;
69696
69753
  getDims(intermediateThrowEventId);
69697
69754
  if (intermediateThrowEvents[i2].getElementsByTagNameNS(bpmnNamespace, "messageEventDefinition").length > 0) {
69698
69755
  this.addIntermediateMessageThrowEvent(intermediateThrowEventId);
@@ -69708,12 +69765,42 @@ class BpmnDiagram extends Diagram {
69708
69765
  this.addIntermediateEvent(intermediateThrowEventId);
69709
69766
  }
69710
69767
  }
69768
+ const subProcesses = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "subProcess");
69769
+ for (let i2 = 0; i2 < subProcesses.length; i2++) {
69770
+ const subProcessId = subProcesses[i2].getAttribute("id");
69771
+ const name2 = subProcesses[i2].getAttribute("name");
69772
+ subProcesses[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69773
+ subProcesses[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69774
+ const layout = getRawLayout(subProcessId);
69775
+ const isExpanded2 = layout.isExpanded || false;
69776
+ if (!layoutMap[subProcessId]) continue;
69777
+ let align = BPMN_DIMS.TEXT_ALIGN_TASK;
69778
+ let offset = BPMN_DIMS.TEXT_OFFSET_DEFAULT;
69779
+ let vAlign = "center";
69780
+ if (isExpanded2) {
69781
+ align = "center";
69782
+ vAlign = "top";
69783
+ offset = new Vector3(0, -10, 0);
69784
+ }
69785
+ this.addSubProcess(subProcessId, layout.width, layout.height, isExpanded2).addWrappedText(name2, offset, BPMN_DIMS.FONT_SIZE_TASK, align, layout.width * 0.9, layout.height, vAlign);
69786
+ }
69787
+ const callActivities = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "callActivity");
69788
+ for (let i2 = 0; i2 < callActivities.length; i2++) {
69789
+ const callActivityId = callActivities[i2].getAttribute("id");
69790
+ const name2 = callActivities[i2].getAttribute("name");
69791
+ callActivities[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69792
+ callActivities[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69793
+ if (!layoutMap[callActivityId]) continue;
69794
+ const { width, height } = getDims(callActivityId);
69795
+ this.addCallActivity(callActivityId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69796
+ }
69711
69797
  const tasks = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "task");
69712
69798
  for (let i2 = 0; i2 < tasks.length; i2++) {
69713
69799
  const taskId = tasks[i2].getAttribute("id");
69714
69800
  const name2 = tasks[i2].getAttribute("name");
69715
69801
  tasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69716
69802
  tasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69803
+ if (!layoutMap[taskId]) continue;
69717
69804
  const { width, height } = getDims(taskId);
69718
69805
  this.addTask(taskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69719
69806
  }
@@ -69723,6 +69810,7 @@ class BpmnDiagram extends Diagram {
69723
69810
  const name2 = manualTasks[i2].getAttribute("name");
69724
69811
  manualTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69725
69812
  manualTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69813
+ if (!layoutMap[manualTaskId]) continue;
69726
69814
  const { width, height } = getDims(manualTaskId);
69727
69815
  this.addManualTask(manualTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69728
69816
  }
@@ -69732,6 +69820,7 @@ class BpmnDiagram extends Diagram {
69732
69820
  const name2 = userTasks[i2].getAttribute("name");
69733
69821
  userTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69734
69822
  userTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69823
+ if (!layoutMap[userTaskId]) continue;
69735
69824
  const { width, height } = getDims(userTaskId);
69736
69825
  this.addUserTask(userTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69737
69826
  }
@@ -69741,6 +69830,7 @@ class BpmnDiagram extends Diagram {
69741
69830
  const name2 = scriptTasks[i2].getAttribute("name");
69742
69831
  scriptTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69743
69832
  scriptTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69833
+ if (!layoutMap[scriptTaskId]) continue;
69744
69834
  const { width, height } = getDims(scriptTaskId);
69745
69835
  this.addScriptTask(scriptTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69746
69836
  }
@@ -69750,6 +69840,7 @@ class BpmnDiagram extends Diagram {
69750
69840
  const name2 = businessRuleTasks[i2].getAttribute("name");
69751
69841
  businessRuleTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69752
69842
  businessRuleTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69843
+ if (!layoutMap[businessRuleTaskId]) continue;
69753
69844
  const { width, height } = getDims(businessRuleTaskId);
69754
69845
  this.addBusinessRuleTask(businessRuleTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69755
69846
  }
@@ -69759,6 +69850,7 @@ class BpmnDiagram extends Diagram {
69759
69850
  const name2 = serviceTasks[i2].getAttribute("name");
69760
69851
  serviceTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69761
69852
  serviceTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69853
+ if (!layoutMap[serviceTaskId]) continue;
69762
69854
  const { width, height } = getDims(serviceTaskId);
69763
69855
  this.addServiceTask(serviceTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69764
69856
  }
@@ -69768,6 +69860,7 @@ class BpmnDiagram extends Diagram {
69768
69860
  const name2 = sendTasks[i2].getAttribute("name");
69769
69861
  sendTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69770
69862
  sendTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69863
+ if (!layoutMap[sendTaskId]) continue;
69771
69864
  const { width, height } = getDims(sendTaskId);
69772
69865
  this.addSendTask(sendTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69773
69866
  }
@@ -69777,6 +69870,7 @@ class BpmnDiagram extends Diagram {
69777
69870
  const name2 = receiveTasks[i2].getAttribute("name");
69778
69871
  receiveTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69779
69872
  receiveTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69873
+ if (!layoutMap[receiveTaskId]) continue;
69780
69874
  const { width, height } = getDims(receiveTaskId);
69781
69875
  this.addReceiveTask(receiveTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69782
69876
  }
@@ -69786,6 +69880,7 @@ class BpmnDiagram extends Diagram {
69786
69880
  inclusiveGateways[i2].getAttribute("name");
69787
69881
  inclusiveGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69788
69882
  inclusiveGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69883
+ if (!layoutMap[gatewayId]) continue;
69789
69884
  const { width, height } = getDims(gatewayId);
69790
69885
  this.addInclusiveGateway(gatewayId, width, height);
69791
69886
  }
@@ -69795,6 +69890,7 @@ class BpmnDiagram extends Diagram {
69795
69890
  exclusiveGateways[i2].getAttribute("name");
69796
69891
  exclusiveGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69797
69892
  exclusiveGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69893
+ if (!layoutMap[gatewayId]) continue;
69798
69894
  const { width, height } = getDims(gatewayId);
69799
69895
  this.addExclusiveGateway(gatewayId, width, height);
69800
69896
  }
@@ -69804,6 +69900,7 @@ class BpmnDiagram extends Diagram {
69804
69900
  parallelGateways[i2].getAttribute("name");
69805
69901
  parallelGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69806
69902
  parallelGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69903
+ if (!layoutMap[gatewayId]) continue;
69807
69904
  const { width, height } = getDims(gatewayId);
69808
69905
  this.addParallelGateway(gatewayId, width, height);
69809
69906
  }
@@ -69813,6 +69910,7 @@ class BpmnDiagram extends Diagram {
69813
69910
  eventBasedGateways[i2].getAttribute("name");
69814
69911
  eventBasedGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69815
69912
  eventBasedGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69913
+ if (!layoutMap[gatewayId]) continue;
69816
69914
  const { width, height } = getDims(gatewayId);
69817
69915
  this.addEventBasedGateway(gatewayId, width, height);
69818
69916
  }
@@ -69822,6 +69920,7 @@ class BpmnDiagram extends Diagram {
69822
69920
  complexGateways[i2].getAttribute("name");
69823
69921
  complexGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69824
69922
  complexGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69923
+ if (!layoutMap[gatewayId]) continue;
69825
69924
  const { width, height } = getDims(gatewayId);
69826
69925
  this.addComplexGateway(gatewayId, width, height);
69827
69926
  }
@@ -69837,10 +69936,11 @@ class BpmnDiagram extends Diagram {
69837
69936
  const id = textAnnotations[i2].getAttribute("id");
69838
69937
  const textNode = textAnnotations[i2].getElementsByTagNameNS(bpmnNamespace, "text")[0];
69839
69938
  const text = textNode ? textNode.textContent : "";
69939
+ if (!layoutMap[id]) continue;
69840
69940
  const { width, height } = getDims(id);
69841
69941
  this.addTextAnnotation(id, text, width, height);
69842
69942
  }
69843
- const bpmnShapesToPosition = xmlDoc.getElementsByTagNameNS(bpmndiNamespace, "BPMNShape");
69943
+ const bpmnShapesToPosition = mainDiagram.getElementsByTagNameNS(bpmndiNamespace, "BPMNShape");
69844
69944
  for (let i2 = 0; i2 < bpmnShapesToPosition.length; i2++) {
69845
69945
  const bpmnShape = bpmnShapesToPosition[i2];
69846
69946
  bpmnShape.getAttribute("id");
@@ -69911,7 +70011,7 @@ class BpmnDiagram extends Diagram {
69911
70011
  }
69912
70012
  }
69913
70013
  }
69914
- const bpmnEdges = xmlDoc.getElementsByTagNameNS(bpmndiNamespace, "BPMNEdge");
70014
+ const bpmnEdges = mainDiagram.getElementsByTagNameNS(bpmndiNamespace, "BPMNEdge");
69915
70015
  for (let i2 = 0; i2 < bpmnEdges.length; i2++) {
69916
70016
  const bpmnEdge = bpmnEdges[i2];
69917
70017
  const bpmnEdgeId = bpmnEdge.getAttribute("id");