@valtimo/migration 4.15.3-next-main.14 → 4.16.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.
@@ -26,25 +26,25 @@ export class MigrationComponent {
26
26
  this.processDefinitions = [];
27
27
  this.selectedVersions = {
28
28
  source: [],
29
- target: []
29
+ target: [],
30
30
  };
31
31
  this.selectedId = {
32
32
  source: null,
33
- target: null
33
+ target: null,
34
34
  };
35
35
  this.loaded = {
36
36
  source: false,
37
- target: false
37
+ target: false,
38
38
  };
39
39
  this.fields = {
40
40
  source: {
41
41
  definition: null,
42
- version: null
42
+ version: null,
43
43
  },
44
44
  target: {
45
45
  definition: null,
46
- version: null
47
- }
46
+ version: null,
47
+ },
48
48
  };
49
49
  this.processCount = null;
50
50
  this.uniqueFlowNodeMap = [];
@@ -57,14 +57,16 @@ export class MigrationComponent {
57
57
  ngAfterViewInit() {
58
58
  this.diagram = {
59
59
  source: this.sourceDiagram,
60
- target: this.targetDiagram
60
+ target: this.targetDiagram,
61
61
  };
62
62
  }
63
63
  get taskMappingLength() {
64
64
  return Object.keys(this.taskMapping).length;
65
65
  }
66
66
  loadProcessDefinitions() {
67
- this.processService.getProcessDefinitions().subscribe((processDefinitions) => {
67
+ this.processService
68
+ .getProcessDefinitions()
69
+ .subscribe((processDefinitions) => {
68
70
  this.processDefinitions = processDefinitions;
69
71
  });
70
72
  }
@@ -73,7 +75,9 @@ export class MigrationComponent {
73
75
  this.selectedVersions[type] = [];
74
76
  this.clearProcess(type);
75
77
  if (key) {
76
- this.processService.getProcessDefinitionVersions(key).subscribe((processDefinitionVersions) => {
78
+ this.processService
79
+ .getProcessDefinitionVersions(key)
80
+ .subscribe((processDefinitionVersions) => {
77
81
  this.selectedVersions[type] = processDefinitionVersions;
78
82
  });
79
83
  }
@@ -112,7 +116,8 @@ export class MigrationComponent {
112
116
  const sourceFlowNodeMap = this.sourceDiagram.flowNodeMap;
113
117
  const targetFlowNodeMap = this.targetDiagram.flowNodeMap;
114
118
  if (sourceFlowNodeMap != null && targetFlowNodeMap != null) {
115
- this.uniqueFlowNodeMap = sourceFlowNodeMap.filter(sourceFlowNode => !targetFlowNodeMap.some(targetFlowNode => sourceFlowNode.id === targetFlowNode.id && sourceFlowNode.$type === targetFlowNode.$type));
119
+ this.uniqueFlowNodeMap = sourceFlowNodeMap.filter(sourceFlowNode => !targetFlowNodeMap.some(targetFlowNode => sourceFlowNode.id === targetFlowNode.id &&
120
+ sourceFlowNode.$type === targetFlowNode.$type));
116
121
  }
117
122
  }
118
123
  getFilteredTargetFlowNodeMap(flowNodeType) {
@@ -129,19 +134,21 @@ export class MigrationComponent {
129
134
  }
130
135
  }
131
136
  migrateProcess() {
132
- this.processService.migrateProcess(this.selectedId.source, this.selectedId.target, this.taskMapping).subscribe((res) => {
137
+ this.processService
138
+ .migrateProcess(this.selectedId.source, this.selectedId.target, this.taskMapping)
139
+ .subscribe(res => {
133
140
  this.alertService.success('Process successfully migrated!');
134
141
  this.clearProcess('source');
135
142
  this.clearProcess('target');
136
143
  this.fields = {
137
144
  source: {
138
145
  definition: null,
139
- version: null
146
+ version: null,
140
147
  },
141
148
  target: {
142
149
  definition: null,
143
- version: null
144
- }
150
+ version: null,
151
+ },
145
152
  };
146
153
  }, err => {
147
154
  this.alertService.error('Process migration failed!');
@@ -152,7 +159,7 @@ export class MigrationComponent {
152
159
  MigrationComponent.decorators = [
153
160
  { type: Component, args: [{
154
161
  selector: 'valtimo-migration',
155
- template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"row mb-5\">\n <div class=\"col-12\">\n <div class=\"alert alert-warning pl-2 plr-2\" role=\"alert\">\n <div class=\"icon\"><span class=\"mdi mdi-alert-triangle\"></span></div>\n <div class=\"message\" [innerHTML]=\"'Process migration warning' | translate\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"row mb-5\">\n <div class=\"col-4\">\n <label for=\"sourceDef\">Source Definition</label>\n <select class=\"form-control\" id=\"sourceDef\"\n [ngModel]=\"fields.source.definition\" (ngModelChange)=\"loadProcessDefinitionVersions($event, 'source')\">\n <option [ngValue]=\"null\" selected>- Source Definition -</option>\n <option *ngFor=\"let processDef of processDefinitions\" [ngValue]=\"processDef.key\">{{processDef.name}}</option>\n </select>\n </div>\n <div class=\"col-2\">\n <label for=\"sourceVer\">Source Version</label>\n <select class=\"form-control\" id=\"sourceVer\" [ngModel]=\"fields.source.version\"\n (ngModelChange)=\"loadProcess($event, 'source')\">\n <option [ngValue]=\"null\" selected>- Source Version -</option>\n <option *ngFor=\"let processVer of selectedVersions.source\"\n [ngValue]=\"processVer.id\">{{processVer.version}}</option>\n </select>\n </div>\n <div class=\"col-4\">\n <label for=\"targetDef\">Target Definition</label>\n <select class=\"form-control\" id=\"targetDef\" [ngModel]=\"fields.target.definition\"\n (ngModelChange)=\"loadProcessDefinitionVersions($event, 'target')\">\n <option [ngValue]=\"null\" selected>- Target Definition -</option>\n <option *ngFor=\"let processDef of processDefinitions\" [ngValue]=\"processDef.key\">{{processDef.name}}</option>\n </select>\n </div>\n <div class=\"col-2\">\n <label for=\"targetVer\">Target Version</label>\n <select class=\"form-control\" id=\"targetVer\" [ngModel]=\"fields.target.version\"\n (ngModelChange)=\"loadProcess($event, 'target')\">\n <option [ngValue]=\"null\" selected>- Target Version -</option>\n <option *ngFor=\"let processVer of selectedVersions.target\"\n [ngValue]=\"processVer.id\">{{processVer.version}}</option>\n </select>\n </div>\n </div>\n\n <div class=\"row mb-5\">\n <div class=\"col-6\">\n <valtimo-migration-process-diagram name=\"source\" (loaded)=\"diagramLoaded($event)\"\n #sourceDiagram></valtimo-migration-process-diagram>\n </div>\n <div class=\"col-6\">\n <valtimo-migration-process-diagram name=\"target\" (loaded)=\"diagramLoaded($event)\"\n #targetDiagram></valtimo-migration-process-diagram>\n </div>\n </div>\n <table class=\"table table-striped mb-5\" *ngIf=\"selectedId.source && selectedId.target\">\n <tr *ngFor=\"let node of uniqueFlowNodeMap\">\n <td>{{node.name ? node.name : node.id}}</td>\n <td>\n <select class=\"form-control\" (change)=\"taskMapping[node.id]=$event.target.value\">\n <option [value]=\"null\" disabled selected>- Choose Target -</option>\n <option *ngFor=\"let targetFlowNode of getFilteredTargetFlowNodeMap(node.$type)\"\n [value]=\"targetFlowNode.id\">{{targetFlowNode.name ? targetFlowNode.name : targetFlowNode.id}}</option>\n </select>\n </td>\n </tr>\n </table>\n <hr>\n <div class=\"btn-group mb-5\">\n <button [disabled]=\"(uniqueFlowNodeMap.length !== taskMappingLength && uniqueFlowNodeMap.length > 0) || !loaded.source || !loaded.target\"\n (click)=\"migrateProcess()\"\n class=\"btn btn-primary\">Migrate <span *ngIf=\"processCount !== null\"\n class=\"badge badge-pill badge-secondary\">{{processCount}}</span>\n </button>\n </div>\n </div>\n</div>\n",
162
+ template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"row mb-5\">\n <div class=\"col-12\">\n <div class=\"alert alert-warning pl-2 plr-2\" role=\"alert\">\n <div class=\"icon\"><span class=\"mdi mdi-alert-triangle\"></span></div>\n <div class=\"message\" [innerHTML]=\"'Process migration warning' | translate\"></div>\n </div>\n </div>\n </div>\n <div class=\"row mb-5\">\n <div class=\"col-4\">\n <label for=\"sourceDef\">Source Definition</label>\n <select\n class=\"form-control\"\n id=\"sourceDef\"\n [ngModel]=\"fields.source.definition\"\n (ngModelChange)=\"loadProcessDefinitionVersions($event, 'source')\"\n >\n <option [ngValue]=\"null\" selected>- Source Definition -</option>\n <option *ngFor=\"let processDef of processDefinitions\" [ngValue]=\"processDef.key\">\n {{ processDef.name }}\n </option>\n </select>\n </div>\n <div class=\"col-2\">\n <label for=\"sourceVer\">Source Version</label>\n <select\n class=\"form-control\"\n id=\"sourceVer\"\n [ngModel]=\"fields.source.version\"\n (ngModelChange)=\"loadProcess($event, 'source')\"\n >\n <option [ngValue]=\"null\" selected>- Source Version -</option>\n <option *ngFor=\"let processVer of selectedVersions.source\" [ngValue]=\"processVer.id\">\n {{ processVer.version }}\n </option>\n </select>\n </div>\n <div class=\"col-4\">\n <label for=\"targetDef\">Target Definition</label>\n <select\n class=\"form-control\"\n id=\"targetDef\"\n [ngModel]=\"fields.target.definition\"\n (ngModelChange)=\"loadProcessDefinitionVersions($event, 'target')\"\n >\n <option [ngValue]=\"null\" selected>- Target Definition -</option>\n <option *ngFor=\"let processDef of processDefinitions\" [ngValue]=\"processDef.key\">\n {{ processDef.name }}\n </option>\n </select>\n </div>\n <div class=\"col-2\">\n <label for=\"targetVer\">Target Version</label>\n <select\n class=\"form-control\"\n id=\"targetVer\"\n [ngModel]=\"fields.target.version\"\n (ngModelChange)=\"loadProcess($event, 'target')\"\n >\n <option [ngValue]=\"null\" selected>- Target Version -</option>\n <option *ngFor=\"let processVer of selectedVersions.target\" [ngValue]=\"processVer.id\">\n {{ processVer.version }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"row mb-5\">\n <div class=\"col-6\">\n <valtimo-migration-process-diagram\n name=\"source\"\n (loaded)=\"diagramLoaded($event)\"\n #sourceDiagram\n ></valtimo-migration-process-diagram>\n </div>\n <div class=\"col-6\">\n <valtimo-migration-process-diagram\n name=\"target\"\n (loaded)=\"diagramLoaded($event)\"\n #targetDiagram\n ></valtimo-migration-process-diagram>\n </div>\n </div>\n <table class=\"table table-striped mb-5\" *ngIf=\"selectedId.source && selectedId.target\">\n <tr *ngFor=\"let node of uniqueFlowNodeMap\">\n <td>{{ node.name ? node.name : node.id }}</td>\n <td>\n <select class=\"form-control\" (change)=\"taskMapping[node.id] = $event.target.value\">\n <option [value]=\"null\" disabled selected>- Choose Target -</option>\n <option\n *ngFor=\"let targetFlowNode of getFilteredTargetFlowNodeMap(node.$type)\"\n [value]=\"targetFlowNode.id\"\n >\n {{ targetFlowNode.name ? targetFlowNode.name : targetFlowNode.id }}\n </option>\n </select>\n </td>\n </tr>\n </table>\n <hr />\n <div class=\"btn-group mb-5\">\n <button\n [disabled]=\"\n (uniqueFlowNodeMap.length !== taskMappingLength && uniqueFlowNodeMap.length > 0) ||\n !loaded.source ||\n !loaded.target\n \"\n (click)=\"migrateProcess()\"\n class=\"btn btn-primary\"\n >\n Migrate\n <span *ngIf=\"processCount !== null\" class=\"badge badge-pill badge-secondary\">{{\n processCount\n }}</span>\n </button>\n </div>\n </div>\n</div>\n",
156
163
  styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */"]
157
164
  },] }
158
165
  ];
@@ -165,4 +172,4 @@ MigrationComponent.propDecorators = {
165
172
  sourceDiagram: [{ type: ViewChild, args: ['sourceDiagram',] }],
166
173
  targetDiagram: [{ type: ViewChild, args: ['targetDiagram',] }]
167
174
  };
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbWlncmF0aW9uL3NyYy9saWIvbWlncmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBZ0IsU0FBUyxFQUFVLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDakgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFPakQsTUFBTSxPQUFPLGtCQUFrQjtJQW1DN0IsWUFBb0IsY0FBOEIsRUFBVSxNQUFpQixFQUFVLFlBQTBCO1FBQTdGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpDMUcsdUJBQWtCLEdBQXdCLEVBQUUsQ0FBQztRQUM3QyxxQkFBZ0IsR0FBRztZQUN4QixNQUFNLEVBQUUsRUFBRTtZQUNWLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQztRQUNLLGVBQVUsR0FBRztZQUNsQixNQUFNLEVBQUUsSUFBSTtZQUNaLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUNLLFdBQU0sR0FBRztZQUNkLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDO1FBQ0ssV0FBTSxHQUFHO1lBQ2QsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRSxJ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InNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Byb2Nlc3NTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9wcm9jZXNzJztcbmltcG9ydCB7UHJvY2Vzc0RlZmluaXRpb259IGZyb20gJ0B2YWx0aW1vL2NvbnRyYWN0JztcbmltcG9ydCB7TWlncmF0aW9uUHJvY2Vzc0RpYWdyYW1Db21wb25lbnR9IGZyb20gJy4vbWlncmF0aW9uLXByb2Nlc3MtZGlhZ3JhbS9taWdyYXRpb24tcHJvY2Vzcy1kaWFncmFtLmNvbXBvbmVudCc7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge0FsZXJ0U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tbWlncmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21pZ3JhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21pZ3JhdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1pZ3JhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uczogUHJvY2Vzc0RlZmluaXRpb25bXSA9IFtdO1xuICBwdWJsaWMgc2VsZWN0ZWRWZXJzaW9ucyA9IHtcbiAgICBzb3VyY2U6IFtdLFxuICAgIHRhcmdldDogW11cbiAgfTtcbiAgcHVibGljIHNlbGVjdGVkSWQgPSB7XG4gICAgc291cmNlOiBudWxsLFxuICAgIHRhcmdldDogbnVsbFxuICB9O1xuICBwdWJsaWMgbG9hZGVkID0ge1xuICAgIHNvdXJjZTogZmFsc2UsXG4gICAgdGFyZ2V0OiBmYWxzZVxuICB9O1xuICBwdWJsaWMgZmllbGRzID0ge1xuICAgIHNvdXJjZToge1xuICAgICAgZGVmaW5pdGlvbjogbnVsbCxcbiAgICAgIHZlcnNpb246IG51bGxcbiAgICB9LFxuICAgIHRhcmdldDoge1xuICAgICAgZGVmaW5pdGlvbjogbnVsbCxcbiAgICAgIHZlcnNpb246IG51bGxcbiAgICB9XG4gIH07XG5cbiAgcHVibGljIHByb2Nlc3NDb3VudDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyB1bmlxdWVGbG93Tm9kZU1hcDogYW55W10gPSBbXTtcbiAgcHVibGljIHRhc2tNYXBwaW5nOiBhbnkgPSB7fTtcblxuICBAVmlld0NoaWxkKCdzb3VyY2VEaWFncmFtJykgc291cmNlRGlhZ3JhbTogTWlncmF0aW9uUHJvY2Vzc0RpYWdyYW1Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3RhcmdldERpYWdyYW0nKSB0YXJnZXREaWFncmFtOiBNaWdyYXRpb25Qcm9jZXNzRGlhZ3JhbUNvbXBvbmVudDtcblxuICBwdWJsaWMgZGlhZ3JhbTogYW55ID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByb2Nlc3NTZXJ2aWNlOiBQcm9jZXNzU2VydmljZSwgcHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlciwgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25zKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5kaWFncmFtID0ge1xuICAgICAgc291cmNlOiB0aGlzLnNvdXJjZURpYWdyYW0sXG4gICAgICB0YXJnZXQ6IHRoaXMudGFyZ2V0RGlhZ3JhbVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhc2tNYXBwaW5nTGVuZ3RoKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnRhc2tNYXBwaW5nKS5sZW5ndGg7XG4gIH1cblxuICBsb2FkUHJvY2Vzc0RlZmluaXRpb25zKCkge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc0RlZmluaXRpb25zKCkuc3Vic2NyaWJlKChwcm9jZXNzRGVmaW5pdGlvbnM6IFByb2Nlc3NEZWZpbml0aW9uW10pID0+IHtcbiAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25zID0gcHJvY2Vzc0RlZmluaXRpb25zO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZFByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMoa2V5OiBzdHJpbmcgfCBudWxsLCB0eXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpZWxkc1t0eXBlXS5kZWZpbml0aW9uID0ga2V5O1xuICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uc1t0eXBlXSA9IFtdO1xuICAgIHRoaXMuY2xlYXJQcm9jZXNzKHR5cGUpO1xuICAgIGlmIChrZXkpIHtcbiAgICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucyhrZXkpLnN1YnNjcmliZSgocHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uczogUHJvY2Vzc0RlZmluaXRpb25bXSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmVyc2lvbnNbdHlwZV0gPSBwcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbG9hZFByb2Nlc3MoaWQ6IHN0cmluZyB8IG51bGwsIHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuZmllbGRzW3R5cGVdLnZlcnNpb24gPSBpZDtcbiAgICB0aGlzLmNsZWFyUHJvY2Vzcyh0eXBlKTtcbiAgICBpZiAoaWQpIHtcbiAgICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uWE1MKGlkLCB0eXBlKTtcbiAgICAgIGlmICh0eXBlID09PSAnc291cmNlJykge1xuICAgICAgICB0aGlzLmxvYWRQcm9jZXNzQ291bnQoaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJQcm9jZXNzKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMubG9hZGVkW3R5cGVdID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZElkW3R5cGVdID0gbnVsbDtcbiAgICB0aGlzLmRpYWdyYW1bdHlwZV0uY2xlYXIoKTtcbiAgICBpZiAodHlwZSA9PT0gJ3NvdXJjZScpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0NvdW50ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBsb2FkUHJvY2Vzc0RlZmluaXRpb25YTUwoaWQ6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzRGVmaW5pdGlvblhtbChpZCkuc3Vic2NyaWJlKHhtbCA9PiB7XG4gICAgICB0aGlzLmRpYWdyYW1bdHlwZV0ubG9hZFhtbCh4bWxbJ2JwbW4yMFhtbCddKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZFt0eXBlXSA9IGlkO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZFByb2Nlc3NDb3VudChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzQ291bnQoaWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NDb3VudCA9IHJlc3BvbnNlLmNvdW50O1xuICAgIH0pO1xuICB9XG5cbiAgc2V0VW5pcXVlRmxvd05vZGVNYXAoKSB7XG4gICAgdGhpcy51bmlxdWVGbG93Tm9kZU1hcCA9IFtdO1xuICAgIGNvbnN0IHNvdXJjZUZsb3dOb2RlTWFwID0gdGhpcy5zb3VyY2VEaWFncmFtLmZsb3dOb2RlTWFwO1xuICAgIGNvbnN0IHRhcmdldEZsb3dOb2RlTWFwID0gdGhpcy50YXJnZXREaWFncmFtLmZsb3dOb2RlTWFwO1xuXG4gICAgaWYgKHNvdXJjZUZsb3dOb2RlTWFwICE9IG51bGwgJiYgdGFyZ2V0Rmxvd05vZGVNYXAgIT0gbnVsbCkge1xuICAgICAgdGhpcy51bmlxdWVGbG93Tm9kZU1hcCA9IHNvdXJjZUZsb3dOb2RlTWFwLmZpbHRlcihzb3VyY2VGbG93Tm9kZSA9PlxuICAgICAgICAhdGFyZ2V0Rmxvd05vZGVNYXAuc29tZSh0YXJnZXRGbG93Tm9kZSA9PlxuICAgICAgICAgIHNvdXJjZUZsb3dOb2RlLmlkID09PSB0YXJnZXRGbG93Tm9kZS5pZCAmJiBzb3VyY2VGbG93Tm9kZS4kdHlwZSA9PT0gdGFyZ2V0Rmxvd05vZGUuJHR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWx0ZXJlZFRhcmdldEZsb3dOb2RlTWFwKGZsb3dOb2RlVHlwZSkge1xuICAgIGNvbnN0IHRhcmdldEZsb3dOb2RlTWFwID0gdGhpcy50YXJnZXREaWFncmFtLmZsb3dOb2RlTWFwO1xuICAgIHJldHVybiB0YXJnZXRGbG93Tm9kZU1hcC5maWx0ZXIoZnVuY3Rpb24gKGZsb3dOb2RlKSB7XG4gICAgICByZXR1cm4gZmxvd05vZGUuJHR5cGUgPT09IGZsb3dOb2RlVHlwZTtcbiAgICB9KTtcbiAgfVxuXG4gIGRpYWdyYW1Mb2FkZWQoZGlhZ3JhbU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMubG9hZGVkW2RpYWdyYW1OYW1lXSA9IHRydWU7XG4gICAgaWYgKHRoaXMubG9hZGVkLnNvdXJjZSAmJiB0aGlzLmxvYWRlZC50YXJnZXQpIHtcbiAgICAgIHRoaXMudGFza01hcHBpbmcgPSB7fTtcbiAgICAgIHRoaXMuc2V0VW5pcXVlRmxvd05vZGVNYXAoKTtcbiAgICB9XG4gIH1cblxuICBtaWdyYXRlUHJvY2VzcygpIHtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLm1pZ3JhdGVQcm9jZXNzKHRoaXMuc2VsZWN0ZWRJZC5zb3VyY2UsIHRoaXMuc2VsZWN0ZWRJZC50YXJnZXQsIHRoaXMudGFza01hcHBpbmcpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKCdQcm9jZXNzIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZCEnKTtcbiAgICAgIHRoaXMuY2xlYXJQcm9jZXNzKCdzb3VyY2UnKTtcbiAgICAgIHRoaXMuY2xlYXJQcm9jZXNzKCd0YXJnZXQnKTtcbiAgICAgIHRoaXMuZmllbGRzID0ge1xuICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICBkZWZpbml0aW9uOiBudWxsLFxuICAgICAgICAgIHZlcnNpb246IG51bGxcbiAgICAgICAgfSxcbiAgICAgICAgdGFyZ2V0OiB7XG4gICAgICAgICAgZGVmaW5pdGlvbjogbnVsbCxcbiAgICAgICAgICB2ZXJzaW9uOiBudWxsXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgZXJyID0+IHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKCdQcm9jZXNzIG1pZ3JhdGlvbiBmYWlsZWQhJyk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlcnIpO1xuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvdG1wL2plbmtpbnMtNGMzYmI3NzAvd29ya3NwYWNlL1ZhbHRpbW9fLV9Bbmd1bGFyX0xpYnJhcmllc19tYWluL3Byb2plY3RzL3ZhbHRpbW8vbWlncmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9taWdyYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFnQixTQUFTLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBQyxjQUFjLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDakgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFPakQsTUFBTSxPQUFPLGtCQUFrQjtJQWtDN0IsWUFDVSxjQUE4QixFQUM5QixNQUFpQixFQUNqQixZQUEwQjtRQUYxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXBDN0IsdUJBQWtCLEdBQXdCLEVBQUUsQ0FBQztRQUM3QyxxQkFBZ0IsR0FBRztZQUN4QixNQUFNLEVBQUUsRUFBRTtZQUNWLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQztRQUNLLGVBQVUsR0FBRztZQUNsQixNQUFNLEVBQUUsSUFBSTtZQUNaLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUNLLFdBQU0sR0FBRztZQUNkLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDO1FBQ0ssV0FBTSxHQUFHO1lBQ2QsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRSxJQUFJO2dCQUNo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WUFDVCxZQUFZOzs7NEJBb0NqQixTQUFTLFNBQUMsZUFBZTs0QkFDekIsU0FBUyxTQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcm9jZXNzU2VydmljZSwgUHJvY2Vzc0RlZmluaXRpb259IGZyb20gJ0B2YWx0aW1vL3Byb2Nlc3MnO1xuaW1wb3J0IHtNaWdyYXRpb25Qcm9jZXNzRGlhZ3JhbUNvbXBvbmVudH0gZnJvbSAnLi9taWdyYXRpb24tcHJvY2Vzcy1kaWFncmFtL21pZ3JhdGlvbi1wcm9jZXNzLWRpYWdyYW0uY29tcG9uZW50JztcbmltcG9ydCB7TkdYTG9nZ2VyfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7QWxlcnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1taWdyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWlncmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWlncmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1pZ3JhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvbnM6IFByb2Nlc3NEZWZpbml0aW9uW10gPSBbXTtcbiAgcHVibGljIHNlbGVjdGVkVmVyc2lvbnMgPSB7XG4gICAgc291cmNlOiBbXSxcbiAgICB0YXJnZXQ6IFtdLFxuICB9O1xuICBwdWJsaWMgc2VsZWN0ZWRJZCA9IHtcbiAgICBzb3VyY2U6IG51bGwsXG4gICAgdGFyZ2V0OiBudWxsLFxuICB9O1xuICBwdWJsaWMgbG9hZGVkID0ge1xuICAgIHNvdXJjZTogZmFsc2UsXG4gICAgdGFyZ2V0OiBmYWxzZSxcbiAgfTtcbiAgcHVibGljIGZpZWxkcyA9IHtcbiAgICBzb3VyY2U6IHtcbiAgICAgIGRlZmluaXRpb246IG51bGwsXG4gICAgICB2ZXJzaW9uOiBudWxsLFxuICAgIH0sXG4gICAgdGFyZ2V0OiB7XG4gICAgICBkZWZpbml0aW9uOiBudWxsLFxuICAgICAgdmVyc2lvbjogbnVsbCxcbiAgICB9LFxuICB9O1xuXG4gIHB1YmxpYyBwcm9jZXNzQ291bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgdW5pcXVlRmxvd05vZGVNYXA6IGFueVtdID0gW107XG4gIHB1YmxpYyB0YXNrTWFwcGluZzogYW55ID0ge307XG5cbiAgQFZpZXdDaGlsZCgnc291cmNlRGlhZ3JhbScpIHNvdXJjZURpYWdyYW06IE1pZ3JhdGlvblByb2Nlc3NEaWFncmFtQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd0YXJnZXREaWFncmFtJykgdGFyZ2V0RGlhZ3JhbTogTWlncmF0aW9uUHJvY2Vzc0RpYWdyYW1Db21wb25lbnQ7XG5cbiAgcHVibGljIGRpYWdyYW06IGFueSA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlcixcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWRQcm9jZXNzRGVmaW5pdGlvbnMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmRpYWdyYW0gPSB7XG4gICAgICBzb3VyY2U6IHRoaXMuc291cmNlRGlhZ3JhbSxcbiAgICAgIHRhcmdldDogdGhpcy50YXJnZXREaWFncmFtLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhc2tNYXBwaW5nTGVuZ3RoKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnRhc2tNYXBwaW5nKS5sZW5ndGg7XG4gIH1cblxuICBsb2FkUHJvY2Vzc0RlZmluaXRpb25zKCkge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2VcbiAgICAgIC5nZXRQcm9jZXNzRGVmaW5pdGlvbnMoKVxuICAgICAgLnN1YnNjcmliZSgocHJvY2Vzc0RlZmluaXRpb25zOiBQcm9jZXNzRGVmaW5pdGlvbltdKSA9PiB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25zID0gcHJvY2Vzc0RlZmluaXRpb25zO1xuICAgICAgfSk7XG4gIH1cblxuICBsb2FkUHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucyhrZXk6IHN0cmluZyB8IG51bGwsIHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuZmllbGRzW3R5cGVdLmRlZmluaXRpb24gPSBrZXk7XG4gICAgdGhpcy5zZWxlY3RlZFZlcnNpb25zW3R5cGVdID0gW107XG4gICAgdGhpcy5jbGVhclByb2Nlc3ModHlwZSk7XG4gICAgaWYgKGtleSkge1xuICAgICAgdGhpcy5wcm9jZXNzU2VydmljZVxuICAgICAgICAuZ2V0UHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucyhrZXkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnM6IFByb2Nlc3NEZWZpbml0aW9uW10pID0+IHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmVyc2lvbnNbdHlwZV0gPSBwcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBsb2FkUHJvY2VzcyhpZDogc3RyaW5nIHwgbnVsbCwgdHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5maWVsZHNbdHlwZV0udmVyc2lvbiA9IGlkO1xuICAgIHRoaXMuY2xlYXJQcm9jZXNzKHR5cGUpO1xuICAgIGlmIChpZCkge1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25YTUwoaWQsIHR5cGUpO1xuICAgICAgaWYgKHR5cGUgPT09ICdzb3VyY2UnKSB7XG4gICAgICAgIHRoaXMubG9hZFByb2Nlc3NDb3VudChpZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclByb2Nlc3ModHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2FkZWRbdHlwZV0gPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkSWRbdHlwZV0gPSBudWxsO1xuICAgIHRoaXMuZGlhZ3JhbVt0eXBlXS5jbGVhcigpO1xuICAgIGlmICh0eXBlID09PSAnc291cmNlJykge1xuICAgICAgdGhpcy5wcm9jZXNzQ291bnQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRQcm9jZXNzRGVmaW5pdGlvblhNTChpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLmdldFByb2Nlc3NEZWZpbml0aW9uWG1sKGlkKS5zdWJzY3JpYmUoeG1sID0+IHtcbiAgICAgIHRoaXMuZGlhZ3JhbVt0eXBlXS5sb2FkWG1sKHhtbFsnYnBtbjIwWG1sJ10pO1xuICAgICAgdGhpcy5zZWxlY3RlZElkW3R5cGVdID0gaWQ7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkUHJvY2Vzc0NvdW50KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLmdldFByb2Nlc3NDb3VudChpZCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMucHJvY2Vzc0NvdW50ID0gcmVzcG9uc2UuY291bnQ7XG4gICAgfSk7XG4gIH1cblxuICBzZXRVbmlxdWVGbG93Tm9kZU1hcCgpIHtcbiAgICB0aGlzLnVuaXF1ZUZsb3dOb2RlTWFwID0gW107XG4gICAgY29uc3Qgc291cmNlRmxvd05vZGVNYXAgPSB0aGlzLnNvdXJjZURpYWdyYW0uZmxvd05vZGVNYXA7XG4gICAgY29uc3QgdGFyZ2V0Rmxvd05vZGVNYXAgPSB0aGlzLnRhcmdldERpYWdyYW0uZmxvd05vZGVNYXA7XG5cbiAgICBpZiAoc291cmNlRmxvd05vZGVNYXAgIT0gbnVsbCAmJiB0YXJnZXRGbG93Tm9kZU1hcCAhPSBudWxsKSB7XG4gICAgICB0aGlzLnVuaXF1ZUZsb3dOb2RlTWFwID0gc291cmNlRmxvd05vZGVNYXAuZmlsdGVyKFxuICAgICAgICBzb3VyY2VGbG93Tm9kZSA9PlxuICAgICAgICAgICF0YXJnZXRGbG93Tm9kZU1hcC5zb21lKFxuICAgICAgICAgICAgdGFyZ2V0Rmxvd05vZGUgPT5cbiAgICAgICAgICAgICAgc291cmNlRmxvd05vZGUuaWQgPT09IHRhcmdldEZsb3dOb2RlLmlkICYmXG4gICAgICAgICAgICAgIHNvdXJjZUZsb3dOb2RlLiR0eXBlID09PSB0YXJnZXRGbG93Tm9kZS4kdHlwZVxuICAgICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RmlsdGVyZWRUYXJnZXRGbG93Tm9kZU1hcChmbG93Tm9kZVR5cGUpIHtcbiAgICBjb25zdCB0YXJnZXRGbG93Tm9kZU1hcCA9IHRoaXMudGFyZ2V0RGlhZ3JhbS5mbG93Tm9kZU1hcDtcbiAgICByZXR1cm4gdGFyZ2V0Rmxvd05vZGVNYXAuZmlsdGVyKGZ1bmN0aW9uIChmbG93Tm9kZSkge1xuICAgICAgcmV0dXJuIGZsb3dOb2RlLiR0eXBlID09PSBmbG93Tm9kZVR5cGU7XG4gICAgfSk7XG4gIH1cblxuICBkaWFncmFtTG9hZGVkKGRpYWdyYW1OYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvYWRlZFtkaWFncmFtTmFtZV0gPSB0cnVlO1xuICAgIGlmICh0aGlzLmxvYWRlZC5zb3VyY2UgJiYgdGhpcy5sb2FkZWQudGFyZ2V0KSB7XG4gICAgICB0aGlzLnRhc2tNYXBwaW5nID0ge307XG4gICAgICB0aGlzLnNldFVuaXF1ZUZsb3dOb2RlTWFwKCk7XG4gICAgfVxuICB9XG5cbiAgbWlncmF0ZVByb2Nlc3MoKSB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZVxuICAgICAgLm1pZ3JhdGVQcm9jZXNzKHRoaXMuc2VsZWN0ZWRJZC5zb3VyY2UsIHRoaXMuc2VsZWN0ZWRJZC50YXJnZXQsIHRoaXMudGFza01hcHBpbmcpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoJ1Byb2Nlc3Mgc3VjY2Vzc2Z1bGx5IG1pZ3JhdGVkIScpO1xuICAgICAgICAgIHRoaXMuY2xlYXJQcm9jZXNzKCdzb3VyY2UnKTtcbiAgICAgICAgICB0aGlzLmNsZWFyUHJvY2VzcygndGFyZ2V0Jyk7XG4gICAgICAgICAgdGhpcy5maWVsZHMgPSB7XG4gICAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgICAgZGVmaW5pdGlvbjogbnVsbCxcbiAgICAgICAgICAgICAgdmVyc2lvbjogbnVsbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICAgICAgZGVmaW5pdGlvbjogbnVsbCxcbiAgICAgICAgICAgICAgdmVyc2lvbjogbnVsbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcignUHJvY2VzcyBtaWdyYXRpb24gZmFpbGVkIScpO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -32,9 +32,9 @@ MigrationModule.decorators = [
32
32
  ReactiveFormsModule,
33
33
  WidgetModule,
34
34
  FormsModule,
35
- TranslateModule
35
+ TranslateModule,
36
36
  ],
37
- exports: [MigrationComponent]
37
+ exports: [MigrationComponent],
38
38
  },] }
39
39
  ];
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbWlncmF0aW9uL3NyYy9saWIvbWlncmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUNqSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBZXBELE1BQU0sT0FBTyxlQUFlOzs7WUFaM0IsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLGtCQUFrQixFQUFFLGdDQUFnQyxDQUFDO2dCQUNwRSxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixzQkFBc0I7b0JBQ3RCLG1CQUFtQjtvQkFDbkIsWUFBWTtvQkFDWixXQUFXO29CQUNYLGVBQWU7aUJBQ2hCO2dCQUNELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01pZ3JhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9taWdyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7TWlncmF0aW9uUm91dGluZ01vZHVsZX0gZnJvbSAnLi9taWdyYXRpb24tcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01pZ3JhdGlvblByb2Nlc3NEaWFncmFtQ29tcG9uZW50fSBmcm9tICcuL21pZ3JhdGlvbi1wcm9jZXNzLWRpYWdyYW0vbWlncmF0aW9uLXByb2Nlc3MtZGlhZ3JhbS5jb21wb25lbnQnO1xuaW1wb3J0IHtXaWRnZXRNb2R1bGV9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW01pZ3JhdGlvbkNvbXBvbmVudCwgTWlncmF0aW9uUHJvY2Vzc0RpYWdyYW1Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1pZ3JhdGlvblJvdXRpbmdNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBXaWRnZXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtNaWdyYXRpb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIE1pZ3JhdGlvbk1vZHVsZSB7XG59XG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvdG1wL2plbmtpbnMtNGMzYmI3NzAvd29ya3NwYWNlL1ZhbHRpbW9fLV9Bbmd1bGFyX0xpYnJhcmllc19tYWluL3Byb2plY3RzL3ZhbHRpbW8vbWlncmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9taWdyYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ2pILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFjcEQsTUFBTSxPQUFPLGVBQWU7OztZQVozQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsZ0NBQWdDLENBQUM7Z0JBQ3BFLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLHNCQUFzQjtvQkFDdEIsbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLFdBQVc7b0JBQ1gsZUFBZTtpQkFDaEI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7YUFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWlncmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL21pZ3JhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtNaWdyYXRpb25Sb3V0aW5nTW9kdWxlfSBmcm9tICcuL21pZ3JhdGlvbi1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWlncmF0aW9uUHJvY2Vzc0RpYWdyYW1Db21wb25lbnR9IGZyb20gJy4vbWlncmF0aW9uLXByb2Nlc3MtZGlhZ3JhbS9taWdyYXRpb24tcHJvY2Vzcy1kaWFncmFtLmNvbXBvbmVudCc7XG5pbXBvcnQge1dpZGdldE1vZHVsZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW01pZ3JhdGlvbkNvbXBvbmVudCwgTWlncmF0aW9uUHJvY2Vzc0RpYWdyYW1Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1pZ3JhdGlvblJvdXRpbmdNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBXaWRnZXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbTWlncmF0aW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTWlncmF0aW9uTW9kdWxlIHt9XG4iXX0=
@@ -16,14 +16,13 @@
16
16
  import { Injectable } from '@angular/core';
17
17
  import * as i0 from "@angular/core";
18
18
  export class MigrationService {
19
- constructor() {
20
- }
19
+ constructor() { }
21
20
  }
22
21
  MigrationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MigrationService_Factory() { return new MigrationService(); }, token: MigrationService, providedIn: "root" });
23
22
  MigrationService.decorators = [
24
23
  { type: Injectable, args: [{
25
- providedIn: 'root'
24
+ providedIn: 'root',
26
25
  },] }
27
26
  ];
28
27
  MigrationService.ctorParameters = () => [];
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL21pZ3JhdGlvbi9zcmMvbGliL21pZ3JhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQjtJQUNBLENBQUM7Ozs7WUFORixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNaWdyYXRpb25TZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL3RtcC9qZW5raW5zLTRjM2JiNzcwL3dvcmtzcGFjZS9WYWx0aW1vXy1fQW5ndWxhcl9MaWJyYXJpZXNfbWFpbi9wcm9qZWN0cy92YWx0aW1vL21pZ3JhdGlvbi9zcmMvIiwic291cmNlcyI6WyJsaWIvbWlncmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUt6QyxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLGdCQUFlLENBQUM7Ozs7WUFKakIsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1pZ3JhdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
@@ -19,4 +19,4 @@
19
19
  export * from './lib/migration.service';
20
20
  export * from './lib/migration.component';
21
21
  export * from './lib/migration.module';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbWlncmF0aW9uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUg7O0dBRUc7QUFFSCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbWlncmF0aW9uXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWlncmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWlncmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9taWdyYXRpb24ubW9kdWxlJztcbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIvdG1wL2plbmtpbnMtNGMzYmI3NzAvd29ya3NwYWNlL1ZhbHRpbW9fLV9Bbmd1bGFyX0xpYnJhcmllc19tYWluL3Byb2plY3RzL3ZhbHRpbW8vbWlncmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSDs7R0FFRztBQUVILGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBtaWdyYXRpb25cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9taWdyYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9taWdyYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21pZ3JhdGlvbi5tb2R1bGUnO1xuIl19
@@ -4,4 +4,4 @@
4
4
  export * from './public-api';
5
5
  export { MigrationProcessDiagramComponent as ɵa } from './lib/migration-process-diagram/migration-process-diagram.component';
6
6
  export { MigrationRoutingModule as ɵb } from './lib/migration-routing.module';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdGltby1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL21pZ3JhdGlvbi9zcmMvdmFsdGltby1taWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsZ0NBQWdDLElBQUksRUFBRSxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDM0gsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge01pZ3JhdGlvblByb2Nlc3NEaWFncmFtQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvbWlncmF0aW9uLXByb2Nlc3MtZGlhZ3JhbS9taWdyYXRpb24tcHJvY2Vzcy1kaWFncmFtLmNvbXBvbmVudCc7XG5leHBvcnQge01pZ3JhdGlvblJvdXRpbmdNb2R1bGUgYXMgybVifSBmcm9tICcuL2xpYi9taWdyYXRpb24tcm91dGluZy5tb2R1bGUnOyJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdGltby1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiL3RtcC9qZW5raW5zLTRjM2JiNzcwL3dvcmtzcGFjZS9WYWx0aW1vXy1fQW5ndWxhcl9MaWJyYXJpZXNfbWFpbi9wcm9qZWN0cy92YWx0aW1vL21pZ3JhdGlvbi9zcmMvIiwic291cmNlcyI6WyJ2YWx0aW1vLW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUMzSCxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7TWlncmF0aW9uUHJvY2Vzc0RpYWdyYW1Db21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9taWdyYXRpb24tcHJvY2Vzcy1kaWFncmFtL21pZ3JhdGlvbi1wcm9jZXNzLWRpYWdyYW0uY29tcG9uZW50JztcbmV4cG9ydCB7TWlncmF0aW9uUm91dGluZ01vZHVsZSBhcyDJtWJ9IGZyb20gJy4vbGliL21pZ3JhdGlvbi1yb3V0aW5nLm1vZHVsZSc7Il19
@@ -6,7 +6,7 @@ import { AlertService, WidgetModule } from '@valtimo/components';
6
6
  import { RouterModule } from '@angular/router';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { AuthGuardService } from '@valtimo/security';
9
- import { ROLE_ADMIN } from '@valtimo/contract';
9
+ import { ROLE_ADMIN } from '@valtimo/config';
10
10
  import { ReactiveFormsModule, FormsModule } from '@angular/forms';
11
11
  import { TranslateModule } from '@ngx-translate/core';
12
12
 
@@ -26,13 +26,12 @@ import { TranslateModule } from '@ngx-translate/core';
26
26
  * limitations under the License.
27
27
  */
28
28
  class MigrationService {
29
- constructor() {
30
- }
29
+ constructor() { }
31
30
  }
32
31
  MigrationService.ɵprov = ɵɵdefineInjectable({ factory: function MigrationService_Factory() { return new MigrationService(); }, token: MigrationService, providedIn: "root" });
33
32
  MigrationService.decorators = [
34
33
  { type: Injectable, args: [{
35
- providedIn: 'root'
34
+ providedIn: 'root',
36
35
  },] }
37
36
  ];
38
37
  MigrationService.ctorParameters = () => [];
@@ -77,7 +76,7 @@ class MigrationProcessDiagramComponent {
77
76
  }
78
77
  loadXml(xml) {
79
78
  this.bpmnJS.attachTo(this.el.nativeElement);
80
- this.bpmnJS.importXML(xml, (err) => {
79
+ this.bpmnJS.importXML(xml, err => {
81
80
  this.logger.debug(err);
82
81
  const processElements = this.bpmnJS.getDefinitions().rootElements.filter(function (element) {
83
82
  return element.isExecutable;
@@ -131,25 +130,25 @@ class MigrationComponent {
131
130
  this.processDefinitions = [];
132
131
  this.selectedVersions = {
133
132
  source: [],
134
- target: []
133
+ target: [],
135
134
  };
136
135
  this.selectedId = {
137
136
  source: null,
138
- target: null
137
+ target: null,
139
138
  };
140
139
  this.loaded = {
141
140
  source: false,
142
- target: false
141
+ target: false,
143
142
  };
144
143
  this.fields = {
145
144
  source: {
146
145
  definition: null,
147
- version: null
146
+ version: null,
148
147
  },
149
148
  target: {
150
149
  definition: null,
151
- version: null
152
- }
150
+ version: null,
151
+ },
153
152
  };
154
153
  this.processCount = null;
155
154
  this.uniqueFlowNodeMap = [];
@@ -162,14 +161,16 @@ class MigrationComponent {
162
161
  ngAfterViewInit() {
163
162
  this.diagram = {
164
163
  source: this.sourceDiagram,
165
- target: this.targetDiagram
164
+ target: this.targetDiagram,
166
165
  };
167
166
  }
168
167
  get taskMappingLength() {
169
168
  return Object.keys(this.taskMapping).length;
170
169
  }
171
170
  loadProcessDefinitions() {
172
- this.processService.getProcessDefinitions().subscribe((processDefinitions) => {
171
+ this.processService
172
+ .getProcessDefinitions()
173
+ .subscribe((processDefinitions) => {
173
174
  this.processDefinitions = processDefinitions;
174
175
  });
175
176
  }
@@ -178,7 +179,9 @@ class MigrationComponent {
178
179
  this.selectedVersions[type] = [];
179
180
  this.clearProcess(type);
180
181
  if (key) {
181
- this.processService.getProcessDefinitionVersions(key).subscribe((processDefinitionVersions) => {
182
+ this.processService
183
+ .getProcessDefinitionVersions(key)
184
+ .subscribe((processDefinitionVersions) => {
182
185
  this.selectedVersions[type] = processDefinitionVersions;
183
186
  });
184
187
  }
@@ -217,7 +220,8 @@ class MigrationComponent {
217
220
  const sourceFlowNodeMap = this.sourceDiagram.flowNodeMap;
218
221
  const targetFlowNodeMap = this.targetDiagram.flowNodeMap;
219
222
  if (sourceFlowNodeMap != null && targetFlowNodeMap != null) {
220
- this.uniqueFlowNodeMap = sourceFlowNodeMap.filter(sourceFlowNode => !targetFlowNodeMap.some(targetFlowNode => sourceFlowNode.id === targetFlowNode.id && sourceFlowNode.$type === targetFlowNode.$type));
223
+ this.uniqueFlowNodeMap = sourceFlowNodeMap.filter(sourceFlowNode => !targetFlowNodeMap.some(targetFlowNode => sourceFlowNode.id === targetFlowNode.id &&
224
+ sourceFlowNode.$type === targetFlowNode.$type));
221
225
  }
222
226
  }
223
227
  getFilteredTargetFlowNodeMap(flowNodeType) {
@@ -234,19 +238,21 @@ class MigrationComponent {
234
238
  }
235
239
  }
236
240
  migrateProcess() {
237
- this.processService.migrateProcess(this.selectedId.source, this.selectedId.target, this.taskMapping).subscribe((res) => {
241
+ this.processService
242
+ .migrateProcess(this.selectedId.source, this.selectedId.target, this.taskMapping)
243
+ .subscribe(res => {
238
244
  this.alertService.success('Process successfully migrated!');
239
245
  this.clearProcess('source');
240
246
  this.clearProcess('target');
241
247
  this.fields = {
242
248
  source: {
243
249
  definition: null,
244
- version: null
250
+ version: null,
245
251
  },
246
252
  target: {
247
253
  definition: null,
248
- version: null
249
- }
254
+ version: null,
255
+ },
250
256
  };
251
257
  }, err => {
252
258
  this.alertService.error('Process migration failed!');
@@ -257,7 +263,7 @@ class MigrationComponent {
257
263
  MigrationComponent.decorators = [
258
264
  { type: Component, args: [{
259
265
  selector: 'valtimo-migration',
260
- template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"row mb-5\">\n <div class=\"col-12\">\n <div class=\"alert alert-warning pl-2 plr-2\" role=\"alert\">\n <div class=\"icon\"><span class=\"mdi mdi-alert-triangle\"></span></div>\n <div class=\"message\" [innerHTML]=\"'Process migration warning' | translate\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"row mb-5\">\n <div class=\"col-4\">\n <label for=\"sourceDef\">Source Definition</label>\n <select class=\"form-control\" id=\"sourceDef\"\n [ngModel]=\"fields.source.definition\" (ngModelChange)=\"loadProcessDefinitionVersions($event, 'source')\">\n <option [ngValue]=\"null\" selected>- Source Definition -</option>\n <option *ngFor=\"let processDef of processDefinitions\" [ngValue]=\"processDef.key\">{{processDef.name}}</option>\n </select>\n </div>\n <div class=\"col-2\">\n <label for=\"sourceVer\">Source Version</label>\n <select class=\"form-control\" id=\"sourceVer\" [ngModel]=\"fields.source.version\"\n (ngModelChange)=\"loadProcess($event, 'source')\">\n <option [ngValue]=\"null\" selected>- Source Version -</option>\n <option *ngFor=\"let processVer of selectedVersions.source\"\n [ngValue]=\"processVer.id\">{{processVer.version}}</option>\n </select>\n </div>\n <div class=\"col-4\">\n <label for=\"targetDef\">Target Definition</label>\n <select class=\"form-control\" id=\"targetDef\" [ngModel]=\"fields.target.definition\"\n (ngModelChange)=\"loadProcessDefinitionVersions($event, 'target')\">\n <option [ngValue]=\"null\" selected>- Target Definition -</option>\n <option *ngFor=\"let processDef of processDefinitions\" [ngValue]=\"processDef.key\">{{processDef.name}}</option>\n </select>\n </div>\n <div class=\"col-2\">\n <label for=\"targetVer\">Target Version</label>\n <select class=\"form-control\" id=\"targetVer\" [ngModel]=\"fields.target.version\"\n (ngModelChange)=\"loadProcess($event, 'target')\">\n <option [ngValue]=\"null\" selected>- Target Version -</option>\n <option *ngFor=\"let processVer of selectedVersions.target\"\n [ngValue]=\"processVer.id\">{{processVer.version}}</option>\n </select>\n </div>\n </div>\n\n <div class=\"row mb-5\">\n <div class=\"col-6\">\n <valtimo-migration-process-diagram name=\"source\" (loaded)=\"diagramLoaded($event)\"\n #sourceDiagram></valtimo-migration-process-diagram>\n </div>\n <div class=\"col-6\">\n <valtimo-migration-process-diagram name=\"target\" (loaded)=\"diagramLoaded($event)\"\n #targetDiagram></valtimo-migration-process-diagram>\n </div>\n </div>\n <table class=\"table table-striped mb-5\" *ngIf=\"selectedId.source && selectedId.target\">\n <tr *ngFor=\"let node of uniqueFlowNodeMap\">\n <td>{{node.name ? node.name : node.id}}</td>\n <td>\n <select class=\"form-control\" (change)=\"taskMapping[node.id]=$event.target.value\">\n <option [value]=\"null\" disabled selected>- Choose Target -</option>\n <option *ngFor=\"let targetFlowNode of getFilteredTargetFlowNodeMap(node.$type)\"\n [value]=\"targetFlowNode.id\">{{targetFlowNode.name ? targetFlowNode.name : targetFlowNode.id}}</option>\n </select>\n </td>\n </tr>\n </table>\n <hr>\n <div class=\"btn-group mb-5\">\n <button [disabled]=\"(uniqueFlowNodeMap.length !== taskMappingLength && uniqueFlowNodeMap.length > 0) || !loaded.source || !loaded.target\"\n (click)=\"migrateProcess()\"\n class=\"btn btn-primary\">Migrate <span *ngIf=\"processCount !== null\"\n class=\"badge badge-pill badge-secondary\">{{processCount}}</span>\n </button>\n </div>\n </div>\n</div>\n",
266
+ template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"row mb-5\">\n <div class=\"col-12\">\n <div class=\"alert alert-warning pl-2 plr-2\" role=\"alert\">\n <div class=\"icon\"><span class=\"mdi mdi-alert-triangle\"></span></div>\n <div class=\"message\" [innerHTML]=\"'Process migration warning' | translate\"></div>\n </div>\n </div>\n </div>\n <div class=\"row mb-5\">\n <div class=\"col-4\">\n <label for=\"sourceDef\">Source Definition</label>\n <select\n class=\"form-control\"\n id=\"sourceDef\"\n [ngModel]=\"fields.source.definition\"\n (ngModelChange)=\"loadProcessDefinitionVersions($event, 'source')\"\n >\n <option [ngValue]=\"null\" selected>- Source Definition -</option>\n <option *ngFor=\"let processDef of processDefinitions\" [ngValue]=\"processDef.key\">\n {{ processDef.name }}\n </option>\n </select>\n </div>\n <div class=\"col-2\">\n <label for=\"sourceVer\">Source Version</label>\n <select\n class=\"form-control\"\n id=\"sourceVer\"\n [ngModel]=\"fields.source.version\"\n (ngModelChange)=\"loadProcess($event, 'source')\"\n >\n <option [ngValue]=\"null\" selected>- Source Version -</option>\n <option *ngFor=\"let processVer of selectedVersions.source\" [ngValue]=\"processVer.id\">\n {{ processVer.version }}\n </option>\n </select>\n </div>\n <div class=\"col-4\">\n <label for=\"targetDef\">Target Definition</label>\n <select\n class=\"form-control\"\n id=\"targetDef\"\n [ngModel]=\"fields.target.definition\"\n (ngModelChange)=\"loadProcessDefinitionVersions($event, 'target')\"\n >\n <option [ngValue]=\"null\" selected>- Target Definition -</option>\n <option *ngFor=\"let processDef of processDefinitions\" [ngValue]=\"processDef.key\">\n {{ processDef.name }}\n </option>\n </select>\n </div>\n <div class=\"col-2\">\n <label for=\"targetVer\">Target Version</label>\n <select\n class=\"form-control\"\n id=\"targetVer\"\n [ngModel]=\"fields.target.version\"\n (ngModelChange)=\"loadProcess($event, 'target')\"\n >\n <option [ngValue]=\"null\" selected>- Target Version -</option>\n <option *ngFor=\"let processVer of selectedVersions.target\" [ngValue]=\"processVer.id\">\n {{ processVer.version }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"row mb-5\">\n <div class=\"col-6\">\n <valtimo-migration-process-diagram\n name=\"source\"\n (loaded)=\"diagramLoaded($event)\"\n #sourceDiagram\n ></valtimo-migration-process-diagram>\n </div>\n <div class=\"col-6\">\n <valtimo-migration-process-diagram\n name=\"target\"\n (loaded)=\"diagramLoaded($event)\"\n #targetDiagram\n ></valtimo-migration-process-diagram>\n </div>\n </div>\n <table class=\"table table-striped mb-5\" *ngIf=\"selectedId.source && selectedId.target\">\n <tr *ngFor=\"let node of uniqueFlowNodeMap\">\n <td>{{ node.name ? node.name : node.id }}</td>\n <td>\n <select class=\"form-control\" (change)=\"taskMapping[node.id] = $event.target.value\">\n <option [value]=\"null\" disabled selected>- Choose Target -</option>\n <option\n *ngFor=\"let targetFlowNode of getFilteredTargetFlowNodeMap(node.$type)\"\n [value]=\"targetFlowNode.id\"\n >\n {{ targetFlowNode.name ? targetFlowNode.name : targetFlowNode.id }}\n </option>\n </select>\n </td>\n </tr>\n </table>\n <hr />\n <div class=\"btn-group mb-5\">\n <button\n [disabled]=\"\n (uniqueFlowNodeMap.length !== taskMappingLength && uniqueFlowNodeMap.length > 0) ||\n !loaded.source ||\n !loaded.target\n \"\n (click)=\"migrateProcess()\"\n class=\"btn btn-primary\"\n >\n Migrate\n <span *ngIf=\"processCount !== null\" class=\"badge badge-pill badge-secondary\">{{\n processCount\n }}</span>\n </button>\n </div>\n </div>\n</div>\n",
261
267
  styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */"]
262
268
  },] }
263
269
  ];
@@ -299,11 +305,8 @@ class MigrationRoutingModule {
299
305
  }
300
306
  MigrationRoutingModule.decorators = [
301
307
  { type: NgModule, args: [{
302
- imports: [
303
- CommonModule,
304
- RouterModule.forChild(routes),
305
- ],
306
- exports: [RouterModule]
308
+ imports: [CommonModule, RouterModule.forChild(routes)],
309
+ exports: [RouterModule],
307
310
  },] }
308
311
  ];
309
312
 
@@ -333,9 +336,9 @@ MigrationModule.decorators = [
333
336
  ReactiveFormsModule,
334
337
  WidgetModule,
335
338
  FormsModule,
336
- TranslateModule
339
+ TranslateModule,
337
340
  ],
338
- exports: [MigrationComponent]
341
+ exports: [MigrationComponent],
339
342
  },] }
340
343
  ];
341
344
 
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-migration.js","sources":["../../../../projects/valtimo/migration/src/lib/migration.service.ts","../../../../projects/valtimo/migration/src/lib/migration-process-diagram/migration-process-diagram.component.ts","../../../../projects/valtimo/migration/src/lib/migration.component.ts","../../../../projects/valtimo/migration/src/lib/migration-routing.module.ts","../../../../projects/valtimo/migration/src/lib/migration.module.ts","../../../../projects/valtimo/migration/src/public-api.ts","../../../../projects/valtimo/migration/src/valtimo-migration.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MigrationService {\n\n constructor() {\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\n\nimport * as BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport {NGXLogger} from 'ngx-logger';\n\n@Component({\n selector: 'valtimo-migration-process-diagram',\n templateUrl: './migration-process-diagram.component.html',\n styleUrls: ['./migration-process-diagram.component.scss']\n})\nexport class MigrationProcessDiagramComponent implements OnInit, OnDestroy {\n\n private bpmnJS: BpmnJS;\n public flowNodeMap: any = null;\n\n @ViewChild('ref') public el: ElementRef;\n @Input() name: string;\n @Output() loaded = new EventEmitter();\n\n constructor(private logger: NGXLogger) {\n }\n\n ngOnInit() {\n this.bpmnJS = new BpmnJS();\n this.bpmnJS.on('import.done', ({error}: any) => {\n if (!error) {\n const canvas = this.bpmnJS.get('canvas');\n canvas.zoom('fit-viewport', 'auto');\n\n }\n });\n }\n\n ngOnDestroy() {\n if (this.bpmnJS) {\n this.bpmnJS.destroy();\n }\n }\n\n clear() {\n this.bpmnJS.clear();\n }\n\n public loadXml(xml: string): void {\n this.bpmnJS.attachTo(this.el.nativeElement);\n this.bpmnJS.importXML(xml, (err) => {\n this.logger.debug(err);\n const processElements = this.bpmnJS.getDefinitions().rootElements.filter(function (element) {\n return element.isExecutable;\n });\n this.flowNodeMap = processElements[0].flowElements.filter(function (element) {\n if (element.name === null || element.name === '') {\n element.name = element.id;\n }\n return element.$type !== 'bpmn:SequenceFlow';\n });\n this.loaded.emit(this.name);\n });\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core';\nimport {ProcessService} from '@valtimo/process';\nimport {ProcessDefinition} from '@valtimo/contract';\nimport {MigrationProcessDiagramComponent} from './migration-process-diagram/migration-process-diagram.component';\nimport {NGXLogger} from 'ngx-logger';\nimport {AlertService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-migration',\n templateUrl: './migration.component.html',\n styleUrls: ['./migration.component.scss']\n})\nexport class MigrationComponent implements OnInit, AfterViewInit {\n\n public processDefinitions: ProcessDefinition[] = [];\n public selectedVersions = {\n source: [],\n target: []\n };\n public selectedId = {\n source: null,\n target: null\n };\n public loaded = {\n source: false,\n target: false\n };\n public fields = {\n source: {\n definition: null,\n version: null\n },\n target: {\n definition: null,\n version: null\n }\n };\n\n public processCount: number | null = null;\n public uniqueFlowNodeMap: any[] = [];\n public taskMapping: any = {};\n\n @ViewChild('sourceDiagram') sourceDiagram: MigrationProcessDiagramComponent;\n @ViewChild('targetDiagram') targetDiagram: MigrationProcessDiagramComponent;\n\n public diagram: any = null;\n\n constructor(private processService: ProcessService, private logger: NGXLogger, private alertService: AlertService) {\n }\n\n ngOnInit() {\n this.loadProcessDefinitions();\n }\n\n ngAfterViewInit() {\n this.diagram = {\n source: this.sourceDiagram,\n target: this.targetDiagram\n };\n }\n\n public get taskMappingLength() {\n return Object.keys(this.taskMapping).length;\n }\n\n loadProcessDefinitions() {\n this.processService.getProcessDefinitions().subscribe((processDefinitions: ProcessDefinition[]) => {\n this.processDefinitions = processDefinitions;\n });\n }\n\n loadProcessDefinitionVersions(key: string | null, type: string) {\n this.fields[type].definition = key;\n this.selectedVersions[type] = [];\n this.clearProcess(type);\n if (key) {\n this.processService.getProcessDefinitionVersions(key).subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.selectedVersions[type] = processDefinitionVersions;\n });\n }\n }\n\n loadProcess(id: string | null, type: string) {\n this.fields[type].version = id;\n this.clearProcess(type);\n if (id) {\n this.loadProcessDefinitionXML(id, type);\n if (type === 'source') {\n this.loadProcessCount(id);\n }\n }\n }\n\n private clearProcess(type: string) {\n this.loaded[type] = false;\n this.selectedId[type] = null;\n this.diagram[type].clear();\n if (type === 'source') {\n this.processCount = null;\n }\n }\n\n loadProcessDefinitionXML(id: string, type: string) {\n this.processService.getProcessDefinitionXml(id).subscribe(xml => {\n this.diagram[type].loadXml(xml['bpmn20Xml']);\n this.selectedId[type] = id;\n });\n }\n\n loadProcessCount(id: string) {\n this.processService.getProcessCount(id).subscribe(response => {\n this.processCount = response.count;\n });\n }\n\n setUniqueFlowNodeMap() {\n this.uniqueFlowNodeMap = [];\n const sourceFlowNodeMap = this.sourceDiagram.flowNodeMap;\n const targetFlowNodeMap = this.targetDiagram.flowNodeMap;\n\n if (sourceFlowNodeMap != null && targetFlowNodeMap != null) {\n this.uniqueFlowNodeMap = sourceFlowNodeMap.filter(sourceFlowNode =>\n !targetFlowNodeMap.some(targetFlowNode =>\n sourceFlowNode.id === targetFlowNode.id && sourceFlowNode.$type === targetFlowNode.$type));\n }\n }\n\n getFilteredTargetFlowNodeMap(flowNodeType) {\n const targetFlowNodeMap = this.targetDiagram.flowNodeMap;\n return targetFlowNodeMap.filter(function (flowNode) {\n return flowNode.$type === flowNodeType;\n });\n }\n\n diagramLoaded(diagramName: string) {\n this.loaded[diagramName] = true;\n if (this.loaded.source && this.loaded.target) {\n this.taskMapping = {};\n this.setUniqueFlowNodeMap();\n }\n }\n\n migrateProcess() {\n this.processService.migrateProcess(this.selectedId.source, this.selectedId.target, this.taskMapping).subscribe((res) => {\n this.alertService.success('Process successfully migrated!');\n this.clearProcess('source');\n this.clearProcess('target');\n this.fields = {\n source: {\n definition: null,\n version: null\n },\n target: {\n definition: null,\n version: null\n }\n };\n }, err => {\n this.alertService.error('Process migration failed!');\n this.logger.debug(err);\n });\n }\n\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {MigrationComponent} from './migration.component';\nimport {ROLE_ADMIN} from '@valtimo/contract';\n\nconst routes: Routes = [\n {\n path: 'process-migration',\n component: MigrationComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process migration', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule.forChild(routes),\n ],\n exports: [RouterModule]\n})\nexport class MigrationRoutingModule {\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {MigrationComponent} from './migration.component';\nimport {MigrationRoutingModule} from './migration-routing.module';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MigrationProcessDiagramComponent} from './migration-process-diagram/migration-process-diagram.component';\nimport {WidgetModule} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\n\n\n@NgModule({\n declarations: [MigrationComponent, MigrationProcessDiagramComponent],\n imports: [\n CommonModule,\n MigrationRoutingModule,\n ReactiveFormsModule,\n WidgetModule,\n FormsModule,\n TranslateModule\n ],\n exports: [MigrationComponent]\n})\nexport class MigrationModule {\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of migration\n */\n\nexport * from './lib/migration.service';\nexport * from './lib/migration.component';\nexport * from './lib/migration.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {MigrationProcessDiagramComponent as ɵa} from './lib/migration-process-diagram/migration-process-diagram.component';\nexport {MigrationRoutingModule as ɵb} from './lib/migration-routing.module';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-migration.js","sources":["../../../../projects/valtimo/migration/src/lib/migration.service.ts","../../../../projects/valtimo/migration/src/lib/migration-process-diagram/migration-process-diagram.component.ts","../../../../projects/valtimo/migration/src/lib/migration.component.ts","../../../../projects/valtimo/migration/src/lib/migration-routing.module.ts","../../../../projects/valtimo/migration/src/lib/migration.module.ts","../../../../projects/valtimo/migration/src/public-api.ts","../../../../projects/valtimo/migration/src/valtimo-migration.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MigrationService {\n constructor() {}\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport * as BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport {NGXLogger} from 'ngx-logger';\n\n@Component({\n selector: 'valtimo-migration-process-diagram',\n templateUrl: './migration-process-diagram.component.html',\n styleUrls: ['./migration-process-diagram.component.scss'],\n})\nexport class MigrationProcessDiagramComponent implements OnInit, OnDestroy {\n private bpmnJS: BpmnJS;\n public flowNodeMap: any = null;\n\n @ViewChild('ref') public el: ElementRef;\n @Input() name: string;\n @Output() loaded = new EventEmitter();\n\n constructor(private logger: NGXLogger) {}\n\n ngOnInit() {\n this.bpmnJS = new BpmnJS();\n this.bpmnJS.on('import.done', ({error}: any) => {\n if (!error) {\n const canvas = this.bpmnJS.get('canvas');\n canvas.zoom('fit-viewport', 'auto');\n }\n });\n }\n\n ngOnDestroy() {\n if (this.bpmnJS) {\n this.bpmnJS.destroy();\n }\n }\n\n clear() {\n this.bpmnJS.clear();\n }\n\n public loadXml(xml: string): void {\n this.bpmnJS.attachTo(this.el.nativeElement);\n this.bpmnJS.importXML(xml, err => {\n this.logger.debug(err);\n const processElements = this.bpmnJS.getDefinitions().rootElements.filter(function (element) {\n return element.isExecutable;\n });\n this.flowNodeMap = processElements[0].flowElements.filter(function (element) {\n if (element.name === null || element.name === '') {\n element.name = element.id;\n }\n return element.$type !== 'bpmn:SequenceFlow';\n });\n this.loaded.emit(this.name);\n });\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core';\nimport {ProcessService, ProcessDefinition} from '@valtimo/process';\nimport {MigrationProcessDiagramComponent} from './migration-process-diagram/migration-process-diagram.component';\nimport {NGXLogger} from 'ngx-logger';\nimport {AlertService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-migration',\n templateUrl: './migration.component.html',\n styleUrls: ['./migration.component.scss'],\n})\nexport class MigrationComponent implements OnInit, AfterViewInit {\n public processDefinitions: ProcessDefinition[] = [];\n public selectedVersions = {\n source: [],\n target: [],\n };\n public selectedId = {\n source: null,\n target: null,\n };\n public loaded = {\n source: false,\n target: false,\n };\n public fields = {\n source: {\n definition: null,\n version: null,\n },\n target: {\n definition: null,\n version: null,\n },\n };\n\n public processCount: number | null = null;\n public uniqueFlowNodeMap: any[] = [];\n public taskMapping: any = {};\n\n @ViewChild('sourceDiagram') sourceDiagram: MigrationProcessDiagramComponent;\n @ViewChild('targetDiagram') targetDiagram: MigrationProcessDiagramComponent;\n\n public diagram: any = null;\n\n constructor(\n private processService: ProcessService,\n private logger: NGXLogger,\n private alertService: AlertService\n ) {}\n\n ngOnInit() {\n this.loadProcessDefinitions();\n }\n\n ngAfterViewInit() {\n this.diagram = {\n source: this.sourceDiagram,\n target: this.targetDiagram,\n };\n }\n\n public get taskMappingLength() {\n return Object.keys(this.taskMapping).length;\n }\n\n loadProcessDefinitions() {\n this.processService\n .getProcessDefinitions()\n .subscribe((processDefinitions: ProcessDefinition[]) => {\n this.processDefinitions = processDefinitions;\n });\n }\n\n loadProcessDefinitionVersions(key: string | null, type: string) {\n this.fields[type].definition = key;\n this.selectedVersions[type] = [];\n this.clearProcess(type);\n if (key) {\n this.processService\n .getProcessDefinitionVersions(key)\n .subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.selectedVersions[type] = processDefinitionVersions;\n });\n }\n }\n\n loadProcess(id: string | null, type: string) {\n this.fields[type].version = id;\n this.clearProcess(type);\n if (id) {\n this.loadProcessDefinitionXML(id, type);\n if (type === 'source') {\n this.loadProcessCount(id);\n }\n }\n }\n\n private clearProcess(type: string) {\n this.loaded[type] = false;\n this.selectedId[type] = null;\n this.diagram[type].clear();\n if (type === 'source') {\n this.processCount = null;\n }\n }\n\n loadProcessDefinitionXML(id: string, type: string) {\n this.processService.getProcessDefinitionXml(id).subscribe(xml => {\n this.diagram[type].loadXml(xml['bpmn20Xml']);\n this.selectedId[type] = id;\n });\n }\n\n loadProcessCount(id: string) {\n this.processService.getProcessCount(id).subscribe(response => {\n this.processCount = response.count;\n });\n }\n\n setUniqueFlowNodeMap() {\n this.uniqueFlowNodeMap = [];\n const sourceFlowNodeMap = this.sourceDiagram.flowNodeMap;\n const targetFlowNodeMap = this.targetDiagram.flowNodeMap;\n\n if (sourceFlowNodeMap != null && targetFlowNodeMap != null) {\n this.uniqueFlowNodeMap = sourceFlowNodeMap.filter(\n sourceFlowNode =>\n !targetFlowNodeMap.some(\n targetFlowNode =>\n sourceFlowNode.id === targetFlowNode.id &&\n sourceFlowNode.$type === targetFlowNode.$type\n )\n );\n }\n }\n\n getFilteredTargetFlowNodeMap(flowNodeType) {\n const targetFlowNodeMap = this.targetDiagram.flowNodeMap;\n return targetFlowNodeMap.filter(function (flowNode) {\n return flowNode.$type === flowNodeType;\n });\n }\n\n diagramLoaded(diagramName: string) {\n this.loaded[diagramName] = true;\n if (this.loaded.source && this.loaded.target) {\n this.taskMapping = {};\n this.setUniqueFlowNodeMap();\n }\n }\n\n migrateProcess() {\n this.processService\n .migrateProcess(this.selectedId.source, this.selectedId.target, this.taskMapping)\n .subscribe(\n res => {\n this.alertService.success('Process successfully migrated!');\n this.clearProcess('source');\n this.clearProcess('target');\n this.fields = {\n source: {\n definition: null,\n version: null,\n },\n target: {\n definition: null,\n version: null,\n },\n };\n },\n err => {\n this.alertService.error('Process migration failed!');\n this.logger.debug(err);\n }\n );\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {MigrationComponent} from './migration.component';\nimport {ROLE_ADMIN} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'process-migration',\n component: MigrationComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process migration', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class MigrationRoutingModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {MigrationComponent} from './migration.component';\nimport {MigrationRoutingModule} from './migration-routing.module';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MigrationProcessDiagramComponent} from './migration-process-diagram/migration-process-diagram.component';\nimport {WidgetModule} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [MigrationComponent, MigrationProcessDiagramComponent],\n imports: [\n CommonModule,\n MigrationRoutingModule,\n ReactiveFormsModule,\n WidgetModule,\n FormsModule,\n TranslateModule,\n ],\n exports: [MigrationComponent],\n})\nexport class MigrationModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of migration\n */\n\nexport * from './lib/migration.service';\nexport * from './lib/migration.component';\nexport * from './lib/migration.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {MigrationProcessDiagramComponent as ɵa} from './lib/migration-process-diagram/migration-process-diagram.component';\nexport {MigrationRoutingModule as ɵb} from './lib/migration-routing.module';"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { AfterViewInit, OnInit } from '@angular/core';
2
- import { ProcessService } from '@valtimo/process';
3
- import { ProcessDefinition } from '@valtimo/contract';
2
+ import { ProcessService, ProcessDefinition } from '@valtimo/process';
4
3
  import { MigrationProcessDiagramComponent } from './migration-process-diagram/migration-process-diagram.component';
5
4
  import { NGXLogger } from 'ngx-logger';
6
5
  import { AlertService } from '@valtimo/components';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@valtimo/migration",
3
3
  "license": "EUPL-1.2",
4
- "version": "4.15.3-next-main.14",
4
+ "version": "4.16.0",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^10.0.11",
7
7
  "@angular/core": "^10.0.11"