@processmaker/modeler 1.7.6 → 1.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package-lock.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@processmaker/modeler",
3
- "version": "1.7.6",
3
+ "version": "1.7.7",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
@@ -5862,9 +5862,9 @@
5862
5862
  }
5863
5863
  },
5864
5864
  "loader-utils": {
5865
- "version": "2.0.1",
5866
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.1.tgz",
5867
- "integrity": "sha512-g4miPa9uUrZz4iElkaVJgDFwKJGh8aQGM7pUL4ejXl6cu7kSb30seQOVGNMP6sW8j7DW77X68hJZ+GM7UGhXeQ==",
5865
+ "version": "2.0.2",
5866
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
5867
+ "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
5868
5868
  "dev": true,
5869
5869
  "optional": true,
5870
5870
  "requires": {
@@ -6051,9 +6051,9 @@
6051
6051
  }
6052
6052
  },
6053
6053
  "vue-loader-v16": {
6054
- "version": "npm:vue-loader@16.8.2",
6055
- "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.2.tgz",
6056
- "integrity": "sha512-Nkq+z9mAsMEK+qkXgK+9Ia7D8w9uu9j4ut0IMT5coMfux3rCgIp1QBB1CYwY0M34A1nRMSONEaWXxAAw6xSl/Q==",
6054
+ "version": "npm:vue-loader@16.8.3",
6055
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
6056
+ "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
6057
6057
  "dev": true,
6058
6058
  "optional": true,
6059
6059
  "requires": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@processmaker/modeler",
3
- "version": "1.7.6",
3
+ "version": "1.7.7",
4
4
  "scripts": {
5
5
  "serve": "vue-cli-service serve",
6
6
  "open-cypress": "TZ=UTC cypress open",
@@ -26,6 +26,7 @@ const dontShowOn = [
26
26
  'processmaker-modeler-signal-end-event',
27
27
  'processmaker-modeler-terminate-end-event',
28
28
  'processmaker-modeler-text-annotation',
29
+ 'processmaker-modeler-sequence-flow',
29
30
  ];
30
31
 
31
32
  export default {
@@ -23,11 +23,46 @@ export default class XMLManager {
23
23
  definitions.exporter = 'ProcessMaker Modeler';
24
24
  definitions.exporterVersion = '1.0';
25
25
 
26
+ // Clean broken references when loading definitions
27
+ this.cleanBrokenReferences(definitions);
28
+
26
29
  resolve(definitions);
27
30
  });
28
31
  });
29
32
  }
30
33
 
34
+ cleanBrokenReferences(definitions) {
35
+ const { rootElements, diagrams } = definitions;
36
+ const removed = [];
37
+
38
+ // Remove broken bpmn:SequenceFlow from bpmn:Process
39
+ rootElements.forEach(element => {
40
+ if (element.$type === 'bpmn:Process' && element.flowElements) {
41
+ element.flowElements = element.flowElements.filter(child => {
42
+ if (child.$type === 'bpmn:SequenceFlow') {
43
+ if (!(child.sourceRef && child.targetRef)) {
44
+ removed.push(child);
45
+ }
46
+ return child.sourceRef && child.targetRef;
47
+ }
48
+ return true;
49
+ });
50
+ }
51
+ });
52
+
53
+ // Remove BPMNEdge from bpmndi:BPMNDiagram
54
+ diagrams.forEach(element => {
55
+ if (element.$type === 'bpmndi:BPMNDiagram' && element.plane && element.plane.planeElement) {
56
+ element.plane.planeElement = element.plane.planeElement.filter(child => {
57
+ if (child.$type === 'bpmndi:BPMNEdge') {
58
+ return child.bpmnElement && !removed.includes(child.bpmnElement);
59
+ }
60
+ return true;
61
+ });
62
+ }
63
+ });
64
+ }
65
+
31
66
  download() {
32
67
  if (!this.#definitions) {
33
68
  return;