aurea-eden 1.45.1 → 1.46.1

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 (36) hide show
  1. package/README.md +15 -3
  2. package/assets/star_silver.svg +55 -55
  3. package/dist/bpmn-diagram.es.js +130 -25
  4. package/dist/bpmn-diagram.umd.js +12 -12
  5. package/lib/components/AureaEdenBpmnDiagram.vue +329 -307
  6. package/lib/components/README.md +78 -78
  7. package/lib/connectors/Connector.js +480 -480
  8. package/lib/diagrams/Diagram.js +2290 -2273
  9. package/lib/elements/Element.js +1879 -1879
  10. package/lib/loaders/GifTextureLoader.js +132 -132
  11. package/lib/materials/BarMaterial.js +18 -18
  12. package/lib/notations/bpmn/BpmnDiagram.js +1914 -1805
  13. package/lib/notations/bpmn/BpmnExporter.js +329 -329
  14. package/lib/notations/bpmn/BpmnToFluentConverter.js +1063 -1062
  15. package/lib/notations/bpmn/CONVERTER_ALGORITHM.md +94 -94
  16. package/lib/notations/custom/MyCustomNotationDiagram.js +55 -55
  17. package/lib/shapes/badge/ImageBadgeShape.js +54 -54
  18. package/lib/shapes/bar/ValueBarConstants.js +34 -34
  19. package/lib/shapes/bar/ValueBarShape.js +37 -37
  20. package/lib/shapes/bar/ValueBarUtils.js +107 -107
  21. package/lib/shapes/connector/DashedOrthogonalConnectorShape.js +146 -146
  22. package/lib/shapes/connector/RoundedCornerOrthogonalConnectorShape.js +259 -259
  23. package/lib/shapes/connector/StraightArrowConnectorShape.js +108 -108
  24. package/lib/shapes/connector/StraightDottedConnectorShape.js +70 -70
  25. package/lib/shapes/icon/IconShape.js +111 -111
  26. package/lib/shapes/icon/bpmn/gateways/exclusive.svg +57 -57
  27. package/lib/shapes/icon/bpmn/gateways/inclusive.svg +57 -57
  28. package/lib/shapes/icon/bpmn/gateways/parallel.svg +56 -56
  29. package/lib/shapes/paths/CircleShape.js +59 -59
  30. package/lib/shapes/paths/DiamondShape.js +175 -175
  31. package/lib/shapes/paths/RoundedRectangleShape.js +178 -178
  32. package/lib/shapes/paths/SwimlaneShape.js +126 -126
  33. package/lib/shapes/paths/TextAnnotationShape.js +82 -82
  34. package/lib/shapes/solids/StarShape.js +102 -102
  35. package/lib/shapes/text/TextShape.js +138 -138
  36. package/package.json +71 -71
package/README.md CHANGED
@@ -214,7 +214,10 @@ const barValues = {
214
214
  'Task_4': [
215
215
  { heightValue: 42, colorValue: 70 },
216
216
  { heightValue: 30, colorValue: 90, colorsInverted: true }
217
- ]
217
+ ],
218
+
219
+ // Clear bars explicitly (omitting the ID entirely also works)
220
+ 'Task_5': 0
218
221
  };
219
222
  </script>
220
223
  ```
@@ -357,6 +360,14 @@ diagram.addTask('a1')
357
360
 
358
361
  Colors are normalized **per slot** across all elements. All elements' first bars are normalized together, all second bars separately — so each slot independently represents a different KPI dimension.
359
362
 
363
+ #### Clearing Bars
364
+
365
+ To remove a value bar from an element that previously displayed one, you can either:
366
+ 1. Completely omit the element's ID from the `values` object in your next reactive update.
367
+ 2. Explicitly set the value to `0` or an empty array `[]`.
368
+
369
+ The Vue wrapper will automatically clean up the 3D meshes without crashing the WebGL context.
370
+
360
371
  #### Badge labels in ANALYZE mode
361
372
 
362
373
  Each bar (or combined group for 3+ bars) gets an animated floating label that counts up from zero to the final value during the rise animation. If the element has an active-task type set, the label also carries the appropriate star icon.
@@ -539,6 +550,8 @@ export { CurvedConnectorShape };
539
550
 
540
551
  ```
541
552
  aurea-eden/
553
+ ├── data/
554
+ │ └── bpmn/ # BPMN 2.0 XML templates
542
555
  ├── lib/
543
556
  │ ├── components/ # Vue component (AureaEdenBpmnDiagram.vue)
544
557
  │ ├── connectors/ # Connector base class
@@ -553,8 +566,7 @@ aurea-eden/
553
566
  │ ├── CustomNotationDemo/
554
567
  │ ├── OrderProcessingDemo/
555
568
  │ ├── ShapesDemo/
556
- ├── SimpleBPMN/
557
- │ └── VueWrapperBpmnDemo/
569
+ └── SimpleBPMN/
558
570
  ├── assets/ # Static assets (logo, demo screenshots)
559
571
  ├── dist/ # Built library (ES module + UMD)
560
572
  ├── dist-site/ # Built demo site
@@ -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>
@@ -60171,7 +60171,12 @@ SPREAD LOG: Target ${nodeId} Port ${basePort}`);
60171
60171
  "parallelGateway",
60172
60172
  "eventBasedGateway",
60173
60173
  "complexGateway",
60174
- "endEvent"
60174
+ "endEvent",
60175
+ "intermediateCatchEvent",
60176
+ "intermediateThrowEvent",
60177
+ "boundaryEvent",
60178
+ "subProcess",
60179
+ "callActivity"
60175
60180
  ];
60176
60181
  for (let i2 = 0; i2 < allNodes.length; i2++) {
60177
60182
  const node2 = allNodes[i2];
@@ -60438,7 +60443,7 @@ SPREAD LOG: Target ${nodeId} Port ${basePort}`);
60438
60443
  return text.replace(/\n/g, "\\n").replace(/'/g, "\\'");
60439
60444
  }
60440
60445
  }
60441
- const version = "1.45.1";
60446
+ const version = "1.46.1";
60442
60447
  var Easing = Object.freeze({
60443
60448
  Linear: Object.freeze({
60444
60449
  None: function(amount) {
@@ -68069,22 +68074,24 @@ class Diagram {
68069
68074
  if (barHeight > maxBarHeight) maxBarHeight = barHeight;
68070
68075
  const rawColor = getColorForValue(colorValue, slotMin, slotMax, colorsInverted);
68071
68076
  const barColor = isDark ? new Color(65535) : rawColor;
68072
- const slotShape = totalBars === 1 ? element.shape.getOuterShape() : createRoundedBarSlotShape(elementSize.x, elementSize.y, barIndex, totalBars);
68073
- const barShape = new ValueBarShape(slotShape, barHeight, barColor, this.theme);
68074
- const barElement = new Element(`${element.elementId}_bar_${barIndex}`, barShape);
68075
- barElement.themable = false;
68076
- barElement.userData.barIndex = barIndex;
68077
- barElement.userData.barDef = barDef;
68078
- barElement.userData.slotMin = slotMin;
68079
- barElement.userData.slotMax = slotMax;
68080
- this.addElement(barElement).positionAt(element.getPosition());
68081
- element.valueBars.push({ element: barElement, positionOffset: new Vector3(0, 0, 0) });
68082
- barElement.scale.z = 0;
68083
- const animationState = { progress: 0 };
68084
- const tween = new Tween(animationState).to({ progress: 1 }, 1500).easing(Easing.Quartic.Out).onUpdate(() => {
68085
- barElement.scale.z = animationState.progress;
68086
- }).start();
68087
- this.analysisTweens.push(tween);
68077
+ if (barHeight > 0) {
68078
+ const slotShape = totalBars === 1 ? element.shape.getOuterShape() : createRoundedBarSlotShape(elementSize.x, elementSize.y, barIndex, totalBars);
68079
+ const barShape = new ValueBarShape(slotShape, barHeight, barColor, this.theme);
68080
+ const barElement = new Element(`${element.elementId}_bar_${barIndex}`, barShape);
68081
+ barElement.themable = false;
68082
+ barElement.userData.barIndex = barIndex;
68083
+ barElement.userData.barDef = barDef;
68084
+ barElement.userData.slotMin = slotMin;
68085
+ barElement.userData.slotMax = slotMax;
68086
+ this.addElement(barElement).positionAt(element.getPosition());
68087
+ element.valueBars.push({ element: barElement, positionOffset: new Vector3(0, 0, 0) });
68088
+ barElement.scale.z = 0;
68089
+ const animationState = { progress: 0 };
68090
+ const tween = new Tween(animationState).to({ progress: 1 }, 1500).easing(Easing.Quartic.Out).onUpdate(() => {
68091
+ barElement.scale.z = animationState.progress;
68092
+ }).start();
68093
+ this.analysisTweens.push(tween);
68094
+ }
68088
68095
  });
68089
68096
  const taskType = element.userData.taskType;
68090
68097
  let minZ = 0;
@@ -68724,19 +68731,29 @@ class Diagram {
68724
68731
  * Clears all elements and connectors from the diagram.
68725
68732
  */
68726
68733
  clear() {
68734
+ if (this.tween) this.tween.stop();
68735
+ if (this.analysisTweens) {
68736
+ this.analysisTweens.forEach((t2) => t2.stop());
68737
+ this.analysisTweens = [];
68738
+ }
68739
+ this.removeValueBars();
68727
68740
  if (this.elements.length > 0) {
68728
68741
  this.elements.forEach((element) => {
68729
68742
  this.scene.remove(element);
68743
+ if (element.dispose) element.dispose();
68730
68744
  });
68731
68745
  }
68732
68746
  if (this.connectors.length > 0) {
68733
68747
  this.connectors.forEach((connector) => {
68734
68748
  this.scene.remove(connector);
68749
+ if (connector.geometry) connector.geometry.dispose();
68750
+ if (connector.material) connector.material.dispose();
68735
68751
  });
68736
68752
  }
68737
68753
  this.elements = [];
68738
68754
  this.connectors = [];
68739
68755
  this.elementConnectors.clear();
68756
+ this.mode = "VIEW";
68740
68757
  }
68741
68758
  // ================================================================
68742
68759
  // Diagram JSON
@@ -69105,9 +69122,10 @@ class DashedOrthogonalConnectorShape extends Shape2 {
69105
69122
  this.name = "DashedOrthogonalConnectorShape";
69106
69123
  }
69107
69124
  }
69108
- 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';
69109
- 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';
69110
- 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';
69125
+ 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';
69126
+ 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';
69127
+ 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';
69128
+ 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';
69111
69129
  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';
69112
69130
  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';
69113
69131
  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';
@@ -69381,6 +69399,23 @@ class BpmnDiagram extends Diagram {
69381
69399
  _el.textStyle = { fontSize: BPMN_DIMS.FONT_SIZE_EVENT, align: BPMN_DIMS.TEXT_ALIGN_EVENT, offset: new Vector3(0, -(height / 2) - BPMN_DIMS.LABEL_GAP_BELOW, 3), vAlign: "top", faceCamera: BPMN_DIMS.FACE_CAMERA_EVENT };
69382
69400
  return _el;
69383
69401
  }
69402
+ addIntermediateThrowEvent(elementId, width = BPMN_DIMS.EVENT_SIZE, height = BPMN_DIMS.EVENT_SIZE) {
69403
+ const _el = this.addIntermediateEvent(elementId, width, height);
69404
+ _el.bpmnType = "bpmn:IntermediateThrowEvent";
69405
+ return _el;
69406
+ }
69407
+ addIntermediateCatchEvent(elementId, width = BPMN_DIMS.EVENT_SIZE, height = BPMN_DIMS.EVENT_SIZE) {
69408
+ const _el = this.addIntermediateEvent(elementId, width, height);
69409
+ _el.bpmnType = "bpmn:IntermediateCatchEvent";
69410
+ return _el;
69411
+ }
69412
+ addBoundaryEvent(elementId, width = BPMN_DIMS.EVENT_SIZE, height = BPMN_DIMS.EVENT_SIZE) {
69413
+ const _el = this.addElement(new Element(elementId, new CircleShape(width, height))).addIcon(intermediate, "center", BPMN_DIMS.ICON_SIZE_LARGE);
69414
+ _el.semanticType = "event";
69415
+ _el.bpmnType = "bpmn:BoundaryEvent";
69416
+ _el.textStyle = { fontSize: BPMN_DIMS.FONT_SIZE_EVENT, align: BPMN_DIMS.TEXT_ALIGN_EVENT, offset: new Vector3(0, -(height / 2) - BPMN_DIMS.LABEL_GAP_BELOW, 3), vAlign: "top", faceCamera: BPMN_DIMS.FACE_CAMERA_EVENT };
69417
+ return _el;
69418
+ }
69384
69419
  // End Events
69385
69420
  addEndEvent(elementId, width = BPMN_DIMS.EVENT_SIZE, height = BPMN_DIMS.EVENT_SIZE) {
69386
69421
  const _el = this.addElement(new Element(elementId, new CircleShape(width, height, BPMN_DIMS.END_EVENT_LINE_WIDTH)));
@@ -69432,6 +69467,25 @@ class BpmnDiagram extends Diagram {
69432
69467
  return _el;
69433
69468
  }
69434
69469
  // Tasks
69470
+ addSubProcess(elementId, width = BPMN_DIMS.TASK_WIDTH, height = BPMN_DIMS.TASK_HEIGHT, isExpanded2 = false) {
69471
+ const _el = this.addElement(new Element(elementId, new RoundedRectangleShape(width, height)));
69472
+ _el.semanticType = "subprocess";
69473
+ _el.bpmnType = "bpmn:SubProcess";
69474
+ if (isExpanded2) {
69475
+ _el.textStyle = { fontSize: BPMN_DIMS.FONT_SIZE_TASK, align: "top-left", offset: { x: 5, y: -5, z: 0 }, faceCamera: false };
69476
+ } else {
69477
+ _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 };
69478
+ _el.addIcon(subProcessMarker, "bottom", BPMN_DIMS.ICON_SIZE_SMALL);
69479
+ }
69480
+ return _el;
69481
+ }
69482
+ addCallActivity(elementId, width = BPMN_DIMS.TASK_WIDTH, height = BPMN_DIMS.TASK_HEIGHT) {
69483
+ const _el = this.addElement(new Element(elementId, new RoundedRectangleShape(width, height, 10, 3)));
69484
+ _el.semanticType = "callactivity";
69485
+ _el.bpmnType = "bpmn:CallActivity";
69486
+ _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 };
69487
+ return _el;
69488
+ }
69435
69489
  addTask(elementId, width = BPMN_DIMS.TASK_WIDTH, height = BPMN_DIMS.TASK_HEIGHT) {
69436
69490
  const _el = this.addElement(new Element(elementId, new RoundedRectangleShape(width, height)));
69437
69491
  _el.semanticType = "task";
@@ -69595,16 +69649,20 @@ class BpmnDiagram extends Diagram {
69595
69649
  const dcNamespace = "http://www.omg.org/spec/DD/20100524/DC";
69596
69650
  const diNamespace = "http://www.omg.org/spec/DD/20100524/DI";
69597
69651
  const layoutMap = {};
69598
- const bpmnShapes = xmlDoc.getElementsByTagNameNS(bpmndiNamespace, "BPMNShape");
69652
+ const bpmnDiagrams = xmlDoc.getElementsByTagNameNS(bpmndiNamespace, "BPMNDiagram");
69653
+ const mainDiagram = bpmnDiagrams.length > 0 ? bpmnDiagrams[0] : xmlDoc;
69654
+ const bpmnShapes = mainDiagram.getElementsByTagNameNS(bpmndiNamespace, "BPMNShape");
69599
69655
  for (let i2 = 0; i2 < bpmnShapes.length; i2++) {
69600
69656
  const bpmnElementId = bpmnShapes[i2].getAttribute("bpmnElement");
69657
+ const isExpanded2 = bpmnShapes[i2].getAttribute("isExpanded") === "true";
69601
69658
  const bounds = bpmnShapes[i2].getElementsByTagNameNS(dcNamespace, "Bounds")[0];
69602
69659
  if (bounds) {
69603
69660
  layoutMap[bpmnElementId] = {
69604
69661
  width: parseFloat(bounds.getAttribute("width")),
69605
69662
  height: parseFloat(bounds.getAttribute("height")),
69606
69663
  x: parseFloat(bounds.getAttribute("x")),
69607
- y: parseFloat(bounds.getAttribute("y")) * -1
69664
+ y: parseFloat(bounds.getAttribute("y")) * -1,
69665
+ isExpanded: isExpanded2
69608
69666
  };
69609
69667
  }
69610
69668
  }
@@ -69662,6 +69720,7 @@ class BpmnDiagram extends Diagram {
69662
69720
  const startEvents = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "startEvent");
69663
69721
  for (let i2 = 0; i2 < startEvents.length; i2++) {
69664
69722
  const startEventId = startEvents[i2].getAttribute("id");
69723
+ if (!layoutMap[startEventId]) continue;
69665
69724
  const { width, height } = getDims(startEventId);
69666
69725
  if (startEvents[i2].getElementsByTagNameNS(bpmnNamespace, "messageEventDefinition").length > 0) {
69667
69726
  this.addMessageStartEvent(startEventId, width, height);
@@ -69678,6 +69737,7 @@ class BpmnDiagram extends Diagram {
69678
69737
  const endEvents = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "endEvent");
69679
69738
  for (let i2 = 0; i2 < endEvents.length; i2++) {
69680
69739
  const endEventId = endEvents[i2].getAttribute("id");
69740
+ if (!layoutMap[endEventId]) continue;
69681
69741
  endEvents[i2].getAttribute("name");
69682
69742
  endEvents[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69683
69743
  endEvents[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
@@ -69701,6 +69761,7 @@ class BpmnDiagram extends Diagram {
69701
69761
  for (let i2 = 0; i2 < intermediateCatchEvents.length; i2++) {
69702
69762
  const intermediateCatchEventId = intermediateCatchEvents[i2].getAttribute("id");
69703
69763
  intermediateCatchEvents[i2].getAttribute("name");
69764
+ if (!layoutMap[intermediateCatchEventId]) continue;
69704
69765
  getDims(intermediateCatchEventId);
69705
69766
  if (intermediateCatchEvents[i2].getElementsByTagNameNS(bpmnNamespace, "messageEventDefinition").length > 0) {
69706
69767
  this.addIntermediateMessageCatchEvent(intermediateCatchEventId);
@@ -69720,6 +69781,7 @@ class BpmnDiagram extends Diagram {
69720
69781
  for (let i2 = 0; i2 < intermediateThrowEvents.length; i2++) {
69721
69782
  const intermediateThrowEventId = intermediateThrowEvents[i2].getAttribute("id");
69722
69783
  intermediateThrowEvents[i2].getAttribute("name");
69784
+ if (!layoutMap[intermediateThrowEventId]) continue;
69723
69785
  getDims(intermediateThrowEventId);
69724
69786
  if (intermediateThrowEvents[i2].getElementsByTagNameNS(bpmnNamespace, "messageEventDefinition").length > 0) {
69725
69787
  this.addIntermediateMessageThrowEvent(intermediateThrowEventId);
@@ -69735,12 +69797,42 @@ class BpmnDiagram extends Diagram {
69735
69797
  this.addIntermediateEvent(intermediateThrowEventId);
69736
69798
  }
69737
69799
  }
69800
+ const subProcesses = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "subProcess");
69801
+ for (let i2 = 0; i2 < subProcesses.length; i2++) {
69802
+ const subProcessId = subProcesses[i2].getAttribute("id");
69803
+ const name2 = subProcesses[i2].getAttribute("name");
69804
+ subProcesses[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69805
+ subProcesses[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69806
+ const layout = getRawLayout(subProcessId);
69807
+ const isExpanded2 = layout.isExpanded || false;
69808
+ if (!layoutMap[subProcessId]) continue;
69809
+ let align = BPMN_DIMS.TEXT_ALIGN_TASK;
69810
+ let offset = BPMN_DIMS.TEXT_OFFSET_DEFAULT;
69811
+ let vAlign = "center";
69812
+ if (isExpanded2) {
69813
+ align = "center";
69814
+ vAlign = "top";
69815
+ offset = new Vector3(0, -10, 0);
69816
+ }
69817
+ this.addSubProcess(subProcessId, layout.width, layout.height, isExpanded2).addWrappedText(name2, offset, BPMN_DIMS.FONT_SIZE_TASK, align, layout.width * 0.9, layout.height, vAlign);
69818
+ }
69819
+ const callActivities = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "callActivity");
69820
+ for (let i2 = 0; i2 < callActivities.length; i2++) {
69821
+ const callActivityId = callActivities[i2].getAttribute("id");
69822
+ const name2 = callActivities[i2].getAttribute("name");
69823
+ callActivities[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69824
+ callActivities[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69825
+ if (!layoutMap[callActivityId]) continue;
69826
+ const { width, height } = getDims(callActivityId);
69827
+ this.addCallActivity(callActivityId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69828
+ }
69738
69829
  const tasks = xmlDoc.getElementsByTagNameNS(bpmnNamespace, "task");
69739
69830
  for (let i2 = 0; i2 < tasks.length; i2++) {
69740
69831
  const taskId = tasks[i2].getAttribute("id");
69741
69832
  const name2 = tasks[i2].getAttribute("name");
69742
69833
  tasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69743
69834
  tasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69835
+ if (!layoutMap[taskId]) continue;
69744
69836
  const { width, height } = getDims(taskId);
69745
69837
  this.addTask(taskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69746
69838
  }
@@ -69750,6 +69842,7 @@ class BpmnDiagram extends Diagram {
69750
69842
  const name2 = manualTasks[i2].getAttribute("name");
69751
69843
  manualTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69752
69844
  manualTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69845
+ if (!layoutMap[manualTaskId]) continue;
69753
69846
  const { width, height } = getDims(manualTaskId);
69754
69847
  this.addManualTask(manualTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69755
69848
  }
@@ -69759,6 +69852,7 @@ class BpmnDiagram extends Diagram {
69759
69852
  const name2 = userTasks[i2].getAttribute("name");
69760
69853
  userTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69761
69854
  userTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69855
+ if (!layoutMap[userTaskId]) continue;
69762
69856
  const { width, height } = getDims(userTaskId);
69763
69857
  this.addUserTask(userTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69764
69858
  }
@@ -69768,6 +69862,7 @@ class BpmnDiagram extends Diagram {
69768
69862
  const name2 = scriptTasks[i2].getAttribute("name");
69769
69863
  scriptTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69770
69864
  scriptTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69865
+ if (!layoutMap[scriptTaskId]) continue;
69771
69866
  const { width, height } = getDims(scriptTaskId);
69772
69867
  this.addScriptTask(scriptTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69773
69868
  }
@@ -69777,6 +69872,7 @@ class BpmnDiagram extends Diagram {
69777
69872
  const name2 = businessRuleTasks[i2].getAttribute("name");
69778
69873
  businessRuleTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69779
69874
  businessRuleTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69875
+ if (!layoutMap[businessRuleTaskId]) continue;
69780
69876
  const { width, height } = getDims(businessRuleTaskId);
69781
69877
  this.addBusinessRuleTask(businessRuleTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69782
69878
  }
@@ -69786,6 +69882,7 @@ class BpmnDiagram extends Diagram {
69786
69882
  const name2 = serviceTasks[i2].getAttribute("name");
69787
69883
  serviceTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69788
69884
  serviceTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69885
+ if (!layoutMap[serviceTaskId]) continue;
69789
69886
  const { width, height } = getDims(serviceTaskId);
69790
69887
  this.addServiceTask(serviceTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69791
69888
  }
@@ -69795,6 +69892,7 @@ class BpmnDiagram extends Diagram {
69795
69892
  const name2 = sendTasks[i2].getAttribute("name");
69796
69893
  sendTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69797
69894
  sendTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69895
+ if (!layoutMap[sendTaskId]) continue;
69798
69896
  const { width, height } = getDims(sendTaskId);
69799
69897
  this.addSendTask(sendTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69800
69898
  }
@@ -69804,6 +69902,7 @@ class BpmnDiagram extends Diagram {
69804
69902
  const name2 = receiveTasks[i2].getAttribute("name");
69805
69903
  receiveTasks[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69806
69904
  receiveTasks[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69905
+ if (!layoutMap[receiveTaskId]) continue;
69807
69906
  const { width, height } = getDims(receiveTaskId);
69808
69907
  this.addReceiveTask(receiveTaskId, width, height).addWrappedText(name2, BPMN_DIMS.TEXT_OFFSET_DEFAULT, BPMN_DIMS.FONT_SIZE_TASK, BPMN_DIMS.TEXT_ALIGN_TASK);
69809
69908
  }
@@ -69813,6 +69912,7 @@ class BpmnDiagram extends Diagram {
69813
69912
  inclusiveGateways[i2].getAttribute("name");
69814
69913
  inclusiveGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69815
69914
  inclusiveGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69915
+ if (!layoutMap[gatewayId]) continue;
69816
69916
  const { width, height } = getDims(gatewayId);
69817
69917
  this.addInclusiveGateway(gatewayId, width, height);
69818
69918
  }
@@ -69822,6 +69922,7 @@ class BpmnDiagram extends Diagram {
69822
69922
  exclusiveGateways[i2].getAttribute("name");
69823
69923
  exclusiveGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69824
69924
  exclusiveGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69925
+ if (!layoutMap[gatewayId]) continue;
69825
69926
  const { width, height } = getDims(gatewayId);
69826
69927
  this.addExclusiveGateway(gatewayId, width, height);
69827
69928
  }
@@ -69831,6 +69932,7 @@ class BpmnDiagram extends Diagram {
69831
69932
  parallelGateways[i2].getAttribute("name");
69832
69933
  parallelGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69833
69934
  parallelGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69935
+ if (!layoutMap[gatewayId]) continue;
69834
69936
  const { width, height } = getDims(gatewayId);
69835
69937
  this.addParallelGateway(gatewayId, width, height);
69836
69938
  }
@@ -69840,6 +69942,7 @@ class BpmnDiagram extends Diagram {
69840
69942
  eventBasedGateways[i2].getAttribute("name");
69841
69943
  eventBasedGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69842
69944
  eventBasedGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69945
+ if (!layoutMap[gatewayId]) continue;
69843
69946
  const { width, height } = getDims(gatewayId);
69844
69947
  this.addEventBasedGateway(gatewayId, width, height);
69845
69948
  }
@@ -69849,6 +69952,7 @@ class BpmnDiagram extends Diagram {
69849
69952
  complexGateways[i2].getAttribute("name");
69850
69953
  complexGateways[i2].getElementsByTagNameNS(bpmnNamespace, "incoming");
69851
69954
  complexGateways[i2].getElementsByTagNameNS(bpmnNamespace, "outgoing");
69955
+ if (!layoutMap[gatewayId]) continue;
69852
69956
  const { width, height } = getDims(gatewayId);
69853
69957
  this.addComplexGateway(gatewayId, width, height);
69854
69958
  }
@@ -69864,10 +69968,11 @@ class BpmnDiagram extends Diagram {
69864
69968
  const id = textAnnotations[i2].getAttribute("id");
69865
69969
  const textNode = textAnnotations[i2].getElementsByTagNameNS(bpmnNamespace, "text")[0];
69866
69970
  const text = textNode ? textNode.textContent : "";
69971
+ if (!layoutMap[id]) continue;
69867
69972
  const { width, height } = getDims(id);
69868
69973
  this.addTextAnnotation(id, text, width, height);
69869
69974
  }
69870
- const bpmnShapesToPosition = xmlDoc.getElementsByTagNameNS(bpmndiNamespace, "BPMNShape");
69975
+ const bpmnShapesToPosition = mainDiagram.getElementsByTagNameNS(bpmndiNamespace, "BPMNShape");
69871
69976
  for (let i2 = 0; i2 < bpmnShapesToPosition.length; i2++) {
69872
69977
  const bpmnShape = bpmnShapesToPosition[i2];
69873
69978
  bpmnShape.getAttribute("id");
@@ -69938,7 +70043,7 @@ class BpmnDiagram extends Diagram {
69938
70043
  }
69939
70044
  }
69940
70045
  }
69941
- const bpmnEdges = xmlDoc.getElementsByTagNameNS(bpmndiNamespace, "BPMNEdge");
70046
+ const bpmnEdges = mainDiagram.getElementsByTagNameNS(bpmndiNamespace, "BPMNEdge");
69942
70047
  for (let i2 = 0; i2 < bpmnEdges.length; i2++) {
69943
70048
  const bpmnEdge = bpmnEdges[i2];
69944
70049
  const bpmnEdgeId = bpmnEdge.getAttribute("id");