@valtimo/process-management 5.9.0 → 5.10.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.
- package/esm2020/lib/process-management-builder/process-management-builder.component.mjs +17 -6
- package/esm2020/lib/process-management-list/process-management-list.component.mjs +2 -1
- package/fesm2015/valtimo-process-management.mjs +17 -5
- package/fesm2015/valtimo-process-management.mjs.map +1 -1
- package/fesm2020/valtimo-process-management.mjs +17 -5
- package/fesm2020/valtimo-process-management.mjs.map +1 -1
- package/lib/process-management-builder/process-management-builder.component.d.ts +5 -2
- package/lib/process-management-builder/process-management-builder.component.d.ts.map +1 -1
- package/lib/process-management-list/process-management-list.component.d.ts +1 -1
- package/lib/process-management-list/process-management-list.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { Component, ViewEncapsulation } from '@angular/core';
|
|
17
|
-
import { forkJoin } from 'rxjs';
|
|
17
|
+
import { BehaviorSubject, forkJoin } from 'rxjs';
|
|
18
18
|
import Modeler from 'bpmn-js/lib/Modeler';
|
|
19
|
+
import BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';
|
|
19
20
|
import PropertiesPanelModule from 'bpmn-js-properties-panel';
|
|
20
21
|
import PropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda';
|
|
21
22
|
import CamundaExtensionModule from 'camunda-bpmn-moddle/lib';
|
|
@@ -40,6 +41,8 @@ export class ProcessManagementBuilderComponent {
|
|
|
40
41
|
this.processDefinitionVersions = null;
|
|
41
42
|
this.selectedVersion = null;
|
|
42
43
|
this.processKey = null;
|
|
44
|
+
this.isReadOnlyProcess$ = new BehaviorSubject(false);
|
|
45
|
+
this.isSystemProcess$ = new BehaviorSubject(false);
|
|
43
46
|
this.elementTemplateFiles = ['mailSendTask'];
|
|
44
47
|
}
|
|
45
48
|
ngOnInit() {
|
|
@@ -64,6 +67,8 @@ export class ProcessManagementBuilderComponent {
|
|
|
64
67
|
},
|
|
65
68
|
elementTemplates,
|
|
66
69
|
});
|
|
70
|
+
this.bpmnViewer = new BpmnJS();
|
|
71
|
+
this.bpmnViewer.attachTo('#readOnlyCanvas');
|
|
67
72
|
if (this.processKey) {
|
|
68
73
|
this.loadProcessVersions(this.processKey);
|
|
69
74
|
this.selectedVersion = null;
|
|
@@ -89,6 +94,7 @@ export class ProcessManagementBuilderComponent {
|
|
|
89
94
|
}
|
|
90
95
|
reset() {
|
|
91
96
|
this.bpmnModeler.destroy();
|
|
97
|
+
this.bpmnViewer.destroy();
|
|
92
98
|
this.init();
|
|
93
99
|
}
|
|
94
100
|
download() {
|
|
@@ -111,6 +117,7 @@ export class ProcessManagementBuilderComponent {
|
|
|
111
117
|
})
|
|
112
118
|
.subscribe((xml) => {
|
|
113
119
|
this.bpmnModeler.importXML(xml);
|
|
120
|
+
this.bpmnViewer.importXML(xml);
|
|
114
121
|
});
|
|
115
122
|
}
|
|
116
123
|
getElementTemplates() {
|
|
@@ -145,18 +152,22 @@ export class ProcessManagementBuilderComponent {
|
|
|
145
152
|
return pd1.id === pd2.id;
|
|
146
153
|
}
|
|
147
154
|
loadProcessBpmn() {
|
|
148
|
-
this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(
|
|
149
|
-
this.bpmnModeler.importXML(
|
|
155
|
+
this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(result => {
|
|
156
|
+
this.bpmnModeler.importXML(result['bpmn20Xml']);
|
|
157
|
+
this.bpmnViewer.importXML(result['bpmn20Xml']);
|
|
158
|
+
this.isReadOnlyProcess$.next(result.readOnly);
|
|
159
|
+
this.isSystemProcess$.next(result.systemProcess);
|
|
150
160
|
});
|
|
151
161
|
}
|
|
152
162
|
ngOnDestroy() {
|
|
153
163
|
this.bpmnModeler.destroy();
|
|
164
|
+
this.bpmnViewer.destroy();
|
|
154
165
|
}
|
|
155
166
|
}
|
|
156
167
|
ProcessManagementBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ProcessManagementBuilderComponent, deps: [{ token: i1.HttpClient }, { token: i2.ProcessService }, { token: i3.LayoutService }, { token: i4.AlertService }, { token: i5.ActivatedRoute }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
157
|
-
ProcessManagementBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ProcessManagementBuilderComponent, selector: "valtimo-process-management-builder", ngImport: i0, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-
|
|
168
|
+
ProcessManagementBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ProcessManagementBuilderComponent, selector: "valtimo-process-management-builder", ngImport: i0, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-4\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n <span class=\"badge badge-pill badge-info mr-1\" *ngIf=\"isReadOnlyProcess$ | async\">\n {{ 'processManagement.readOnly' | translate }}\n </span>\n <span class=\"badge badge-pill badge-warning mr-1\" *ngIf=\"isSystemProcess$ | async\">\n {{ 'processManagement.systemProcess' | translate }}\n </span>\n </div>\n <div class=\"col-md-2 offset-md-2\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control select-version-control\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-auto d-flex align-items-end text-right\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 fullscreen-toggle text-right\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async)\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.readOnlySystemProcessWarningMessage'\"\n ></div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async) === false\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.systemProcessWarningMessage'\"\n ></div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div\n id=\"readOnlyCanvas\"\n class=\"col-12\"\n [hidden]=\"(isReadOnlyProcess$ | async) === false\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n", 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 */.versions,.diagram{border:1px solid #dee2e6}.process-title{color:#6b6b6b;font-size:1.5rem}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.modeler{height:90vh}.select-version-control{width:90px}#properties{border-left:1px solid #dee2e6;padding-left:0}#readOnlyCanvas{height:90vh}\n"], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i8.TranslatePipe, "async": i6.AsyncPipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
158
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ProcessManagementBuilderComponent, decorators: [{
|
|
159
170
|
type: Component,
|
|
160
|
-
args: [{ selector: 'valtimo-process-management-builder', encapsulation: ViewEncapsulation.None, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-
|
|
171
|
+
args: [{ selector: 'valtimo-process-management-builder', encapsulation: ViewEncapsulation.None, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-4\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n <span class=\"badge badge-pill badge-info mr-1\" *ngIf=\"isReadOnlyProcess$ | async\">\n {{ 'processManagement.readOnly' | translate }}\n </span>\n <span class=\"badge badge-pill badge-warning mr-1\" *ngIf=\"isSystemProcess$ | async\">\n {{ 'processManagement.systemProcess' | translate }}\n </span>\n </div>\n <div class=\"col-md-2 offset-md-2\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control select-version-control\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-auto d-flex align-items-end text-right\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 fullscreen-toggle text-right\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async)\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.readOnlySystemProcessWarningMessage'\"\n ></div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async) === false\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.systemProcessWarningMessage'\"\n ></div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div\n id=\"readOnlyCanvas\"\n class=\"col-12\"\n [hidden]=\"(isReadOnlyProcess$ | async) === false\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n", 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 */.versions,.diagram{border:1px solid #dee2e6}.process-title{color:#6b6b6b;font-size:1.5rem}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.modeler{height:90vh}.select-version-control{width:90px}#properties{border-left:1px solid #dee2e6;padding-left:0}#readOnlyCanvas{height:90vh}\n"] }]
|
|
161
172
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ProcessService }, { type: i3.LayoutService }, { type: i4.AlertService }, { type: i5.ActivatedRoute }, { type: i5.Router }]; } });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1tYW5hZ2VtZW50LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wcm9jZXNzLW1hbmFnZW1lbnQvc3JjL2xpYi9wcm9jZXNzLW1hbmFnZW1lbnQtYnVpbGRlci9wcm9jZXNzLW1hbmFnZW1lbnQtYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3MtbWFuYWdlbWVudC9zcmMvbGliL3Byb2Nlc3MtbWFuYWdlbWVudC1idWlsZGVyL3Byb2Nlc3MtbWFuYWdlbWVudC1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFLOUUsT0FBTyxFQUFDLFFBQVEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMxQyxPQUFPLHFCQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sd0JBQXdCLE1BQU0sK0NBQStDLENBQUM7QUFDckYsT0FBTyxzQkFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLHVCQUF1QixNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBUWpGLE1BQU0sT0FBTyxpQ0FBaUM7SUFPNUMsWUFDVSxJQUFnQixFQUNoQixjQUE4QixFQUMvQixhQUE0QixFQUMzQixZQUEwQixFQUMxQixLQUFxQixFQUNyQixNQUFjO1FBTGQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVhqQiw4QkFBeUIsR0FBK0IsSUFBSSxDQUFDO1FBQzdELG9CQUFlLEdBQTZCLElBQUksQ0FBQztRQUNqRCxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUNoQyx5QkFBb0IsR0FBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBU3ZELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQXVCLEVBQUUsRUFBRTtZQUN6RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksT0FBTyxDQUFDO2dCQUM3QixTQUFTLEVBQUUsU0FBUztnQkFDcEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsaUJBQWlCLEVBQUU7b0JBQ2pCLHFCQUFxQjtvQkFDckIsd0JBQXdCO29CQUN4QixzQkFBc0I7aUJBQ3ZCO2dCQUNELGVBQWUsRUFBRTtvQkFDZixNQUFNLEVBQUUsYUFBYTtpQkFDdEI7Z0JBQ0QsZ0JBQWdCLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSx1QkFBdUI7aUJBQ2pDO2dCQUNELGdCQUFnQjthQUNqQixDQUFDLENBQUM7WUFDSCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2FBQzdCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxHQUFRLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDM0M7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2lCQUN0QztnQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsR0FBUSxFQUFFLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLEdBQUcsR0FBRywyQkFBMkIsQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSTthQUNOLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLEVBQUUsRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFDO1lBQzlCLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUM7YUFDRCxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVDLFdBQVcsQ0FBQyxJQUFJLENBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsa0NBQWtDLElBQUksT0FBTyxFQUFFO2dCQUMzRCxPQUFPLEVBQUUsRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFDO2dCQUM5QixZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDLENBQ0gsQ0FBQztTQUNIO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDNUUsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDOUMsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsb0JBQTRCO1FBQzlDLElBQUksQ0FBQyxjQUFjO2FBQ2hCLDRCQUE0QixDQUFDLG9CQUFvQixDQUFDO2FBQ2xELFNBQVMsQ0FBQyxDQUFDLHlCQUE4QyxFQUFFLEVBQUU7WUFDNUQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDO1lBQzNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHlCQUF5QixDQUFDLEdBQXNCLEVBQUUsR0FBc0I7UUFDdEUsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDaEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7K0hBMUlVLGlDQUFpQzttSEFBakMsaUNBQWlDLDBFQ25DOUMsbWtKQStHQTs0RkQ1RWEsaUNBQWlDO2tCQU43QyxTQUFTOytCQUNFLG9DQUFvQyxpQkFHL0IsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1Byb2Nlc3NTZXJ2aWNlLCBQcm9jZXNzRGVmaW5pdGlvbn0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcyc7XG5pbXBvcnQge0FsZXJ0U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2ZvcmtKb2luLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TGF5b3V0U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vbGF5b3V0JztcbmltcG9ydCBNb2RlbGVyIGZyb20gJ2JwbW4tanMvbGliL01vZGVsZXInO1xuaW1wb3J0IFByb3BlcnRpZXNQYW5lbE1vZHVsZSBmcm9tICdicG1uLWpzLXByb3BlcnRpZXMtcGFuZWwnO1xuaW1wb3J0IFByb3BlcnRpZXNQcm92aWRlck1vZHVsZSBmcm9tICdicG1uLWpzLXByb3BlcnRpZXMtcGFuZWwvbGliL3Byb3ZpZGVyL2NhbXVuZGEnO1xuaW1wb3J0IENhbXVuZGFFeHRlbnNpb25Nb2R1bGUgZnJvbSAnY2FtdW5kYS1icG1uLW1vZGRsZS9saWInO1xuaW1wb3J0IENhbXVuZGFNb2RkbGVEZXNjcmlwdG9yIGZyb20gJ2NhbXVuZGEtYnBtbi1tb2RkbGUvcmVzb3VyY2VzL2NhbXVuZGEuanNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tcHJvY2Vzcy1tYW5hZ2VtZW50LWJ1aWxkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzcy1tYW5hZ2VtZW50LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzLW1hbmFnZW1lbnQtYnVpbGRlci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzTWFuYWdlbWVudEJ1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBicG1uTW9kZWxlcjtcbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnM6IFByb2Nlc3NEZWZpbml0aW9uW10gfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHNlbGVjdGVkVmVyc2lvbjogUHJvY2Vzc0RlZmluaXRpb24gfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHByb2Nlc3NLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGVsZW1lbnRUZW1wbGF0ZUZpbGVzOiBzdHJpbmdbXSA9IFsnbWFpbFNlbmRUYXNrJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgcHJvY2Vzc1NlcnZpY2U6IFByb2Nlc3NTZXJ2aWNlLFxuICAgIHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBpbml0KCkge1xuICAgIHRoaXMucHJvY2Vzc0tleSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdrZXknKTtcbiAgICBmb3JrSm9pbih0aGlzLmdldEVsZW1lbnRUZW1wbGF0ZXMoKSkuc3Vic2NyaWJlKChlbGVtZW50VGVtcGxhdGVzOiBhbnlbXSkgPT4ge1xuICAgICAgdGhpcy5icG1uTW9kZWxlciA9IG5ldyBNb2RlbGVyKHtcbiAgICAgICAgY29udGFpbmVyOiAnI2NhbnZhcycsXG4gICAgICAgIGhlaWdodDogJzkwdmgnLFxuICAgICAgICBhZGRpdGlvbmFsTW9kdWxlczogW1xuICAgICAgICAgIFByb3BlcnRpZXNQYW5lbE1vZHVsZSxcbiAgICAgICAgICBQcm9wZXJ0aWVzUHJvdmlkZXJNb2R1bGUsXG4gICAgICAgICAgQ2FtdW5kYUV4dGVuc2lvbk1vZHVsZSxcbiAgICAgICAgXSxcbiAgICAgICAgcHJvcGVydGllc1BhbmVsOiB7XG4gICAgICAgICAgcGFyZW50OiAnI3Byb3BlcnRpZXMnLFxuICAgICAgICB9LFxuICAgICAgICBtb2RkbGVFeHRlbnNpb25zOiB7XG4gICAgICAgICAgY2FtdW5kYTogQ2FtdW5kYU1vZGRsZURlc2NyaXB0b3IsXG4gICAgICAgIH0sXG4gICAgICAgIGVsZW1lbnRUZW1wbGF0ZXMsXG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLnByb2Nlc3NLZXkpIHtcbiAgICAgICAgdGhpcy5sb2FkUHJvY2Vzc1ZlcnNpb25zKHRoaXMucHJvY2Vzc0tleSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZEVtcHR5QnBtbigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVwbG95KCk6IHZvaWQge1xuICAgIHRoaXMuYnBtbk1vZGVsZXIuc2F2ZVhNTCgoZXJyOiBhbnksIHhtbDogYW55KSA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLmRlcGxveVByb2Nlc3MoeG1sKS5zdWJzY3JpYmUoYXNkID0+IHtcbiAgICAgICAgaWYgKHRoaXMucHJvY2Vzc0tleSkge1xuICAgICAgICAgIHRoaXMubG9hZFByb2Nlc3NWZXJzaW9ucyh0aGlzLnByb2Nlc3NLZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2Nlc3NlcyddKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKCdEZXBsb3ltZW50IHN1Y2Nlc3NmdWwnKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZlcnNpb24gPSBudWxsO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLmJwbW5Nb2RlbGVyLmRlc3Ryb3koKTtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIGRvd25sb2FkKCkge1xuICAgIHRoaXMuYnBtbk1vZGVsZXIuc2F2ZVhNTCgoZXJyOiBhbnksIHhtbDogYW55KSA9PiB7XG4gICAgICBjb25zdCBmaWxlID0gbmV3IEJsb2IoW3htbF0sIHt0eXBlOiAndGV4dC94bWwnfSk7XG4gICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgbGluay5kb3dubG9hZCA9ICdkaWFncmFtLmJwbW4nO1xuICAgICAgbGluay5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XG4gICAgICBsaW5rLmNsaWNrKCk7XG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTChsaW5rLmhyZWYpO1xuICAgICAgbGluay5yZW1vdmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRFbXB0eUJwbW4oKSB7XG4gICAgY29uc3QgdXJsID0gJy9hc3NldHMvYnBtbi9pbml0aWFsLmJwbW4nO1xuICAgIHRoaXMuaHR0cFxuICAgICAgLmdldCh1cmwsIHtcbiAgICAgICAgaGVhZGVyczoge29ic2VydmU6ICdyZXNwb25zZSd9LFxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKCh4bWw6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmJwbW5Nb2RlbGVyLmltcG9ydFhNTCh4bWwpO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRFbGVtZW50VGVtcGxhdGVzKCk6IE9ic2VydmFibGU8YW55PltdIHtcbiAgICBjb25zdCB0ZW1wbGF0ZU9icyA9IFtdO1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiB0aGlzLmVsZW1lbnRUZW1wbGF0ZUZpbGVzKSB7XG4gICAgICB0ZW1wbGF0ZU9icy5wdXNoKFxuICAgICAgICB0aGlzLmh0dHAuZ2V0KGAvYXNzZXRzL2JwbW4vZWxlbWVudC10ZW1wbGF0ZXMvJHtmaWxlfS5qc29uYCwge1xuICAgICAgICAgIGhlYWRlcnM6IHtvYnNlcnZlOiAncmVzcG9uc2UnfSxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0ZW1wbGF0ZU9icztcbiAgfVxuXG4gIHByaXZhdGUgc2V0TGF0ZXN0VmVyc2lvbigpIHtcbiAgICB0aGlzLnNlbGVjdGVkVmVyc2lvbiA9IHRoaXMucHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucy5yZWR1Y2UoKGFjYywgdmVyc2lvbikgPT5cbiAgICAgIHZlcnNpb24udmVyc2lvbiA+IGFjYy52ZXJzaW9uID8gdmVyc2lvbiA6IGFjY1xuICAgICk7XG4gICAgdGhpcy5sb2FkUHJvY2Vzc0JwbW4oKTtcbiAgfVxuXG4gIGxvYWRQcm9jZXNzVmVyc2lvbnMocHJvY2Vzc0RlZmluaXRpb25LZXk6IHN0cmluZykge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2VcbiAgICAgIC5nZXRQcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zKHByb2Nlc3NEZWZpbml0aW9uS2V5KVxuICAgICAgLnN1YnNjcmliZSgocHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uczogUHJvY2Vzc0RlZmluaXRpb25bXSkgPT4ge1xuICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMgPSBwcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zO1xuICAgICAgICB0aGlzLnNldExhdGVzdFZlcnNpb24oKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgY29tcGFyZVByb2Nlc3NEZWZpbml0aW9ucyhwZDE6IFByb2Nlc3NEZWZpbml0aW9uLCBwZDI6IFByb2Nlc3NEZWZpbml0aW9uKSB7XG4gICAgaWYgKHBkMSA9PT0gbnVsbCAmJiBwZDIgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAocGQxID09PSBudWxsIHx8IHBkMiA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gcGQxLmlkID09PSBwZDIuaWQ7XG4gIH1cblxuICBsb2FkUHJvY2Vzc0JwbW4oKSB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzRGVmaW5pdGlvblhtbCh0aGlzLnNlbGVjdGVkVmVyc2lvbi5pZCkuc3Vic2NyaWJlKHhtbCA9PiB7XG4gICAgICB0aGlzLmJwbW5Nb2RlbGVyLmltcG9ydFhNTCh4bWxbJ2JwbW4yMFhtbCddKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuYnBtbk1vZGVsZXIuZGVzdHJveSgpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJtYi01XCIgW25nQ2xhc3NdPVwieydtYWluLWNvbnRlbnQgcHQtMCc6ICFsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlbn1cIj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7J2NvbnRhaW5lci1mbHVpZCc6ICFsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlbn1cIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImJ0bi1ncm91cCBtdC1tM3B4IG1iLTNcIlxuICAgICAgICAqbmdJZj1cIihzZWxlY3RlZFZlcnNpb24gIT09IG51bGwgfHwgcHJvY2Vzc0tleSA9PT0gbnVsbCkgJiYgIWxheW91dFNlcnZpY2UuaXNGdWxsc2NyZWVuXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc3BhY2VcIiAoY2xpY2spPVwiZG93bmxvYWQoKVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtZGkgbWRpLWRvd25sb2FkIG1yLTFcIj48L2k+e3sgJ3Byb2Nlc3NNYW5hZ2VtZW50LmRvd25sb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zcGFjZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlcGxveSgpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J21yLTAnOiBzZWxlY3RlZFZlcnNpb24gIT09IG51bGx9XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtZGkgbWRpLXVwbG9hZCBtci0xXCI+PC9pPnt7ICdwcm9jZXNzTWFuYWdlbWVudC5kZXBsb3knIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFZlcnNpb24gPT09IG51bGxcIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXIgYnRuLXNwYWNlIG1yLTBcIlxuICAgICAgICAgIChjbGljayk9XCJyZXNldCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtZGkgbWRpLWRlbGV0ZSBtci0xXCI+PC9pPnt7ICdwcm9jZXNzTWFuYWdlbWVudC5jbGVhcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtb2RlbGVyIHBsLTMgcHItMyBtYi0zXCIgW25nQ2xhc3NdPVwieydtdC00JzogIWxheW91dFNlcnZpY2UuaXNGdWxsc2NyZWVufVwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInJvdyBwdC00IHBiLTMgYmctbGlnaHQgdmVyc2lvbnNcIlxuICAgICAgICAqbmdJZj1cInByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J2JvcmRlci1ib3R0b20tMCc6IHNlbGVjdGVkVmVyc2lvbiAhPT0gbnVsbH1cIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiAqbmdJZj1cInByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cInByb2Nlc3MtdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IHByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnNbMF0ubmFtZSB9fVxuICAgICAgICAgIDwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgb2Zmc2V0LW1kLTZcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwicHJvY2Vzc1ZlcnNpb25cIj48c3Ryb25nPlZlcnNpb248L3N0cm9uZz48L2xhYmVsPlxuICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgIGlkPVwicHJvY2Vzc1ZlcnNpb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy0xMDBcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZlcnNpb25cIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkUHJvY2Vzc0JwbW4oKVwiXG4gICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZVByb2Nlc3NEZWZpbml0aW9uc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCIgZGlzYWJsZWQgc2VsZWN0ZWQ+VmVyc2lvbjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvY2Vzc0RlZmluaXRpb24gb2YgcHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uc1wiXG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInByb2Nlc3NEZWZpbml0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgcHJvY2Vzc0RlZmluaXRpb24udmVyc2lvbiB9fVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXggYWxpZ24taXRlbXMtZW5kXCJcbiAgICAgICAgICAqbmdJZj1cIihzZWxlY3RlZFZlcnNpb24gIT09IG51bGwgfHwgcHJvY2Vzc0tleSA9PT0gbnVsbCkgJiYgbGF5b3V0U2VydmljZS5pc0Z1bGxzY3JlZW5cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc3BhY2VcIiAoY2xpY2spPVwiZGVwbG95KClcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktdXBsb2FkIG1yLTFcIj48L2k+e3sgJ3Byb2Nlc3NNYW5hZ2VtZW50LmRlcGxveScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zcGFjZVwiIChjbGljayk9XCJkb3dubG9hZCgpXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtZGkgbWRpLWRvd25sb2FkIG1yLTFcIj48L2lcbiAgICAgICAgICAgICAgPnt7ICdwcm9jZXNzTWFuYWdlbWVudC5kb3dubG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzZWxlY3RlZFZlcnNpb25cIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi1zcGFjZVwiIChjbGljayk9XCJyZXNldCgpXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtZGkgbWRpLWRlbGV0ZSBtci0xXCI+PC9pPnt7ICdwcm9jZXNzTWFuYWdlbWVudC5jbGVhcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRWZXJzaW9uXCJcbiAgICAgICAgICBjbGFzcz1cImNvbC1tZC0xIHRleHQtcmlnaHQgZnVsbHNjcmVlbi10b2dnbGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnb2Zmc2V0LW1kLTInOiAhbGF5b3V0U2VydmljZS5pc0Z1bGxzY3JlZW59XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImZhc1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdmYS1leHBhbmQtYXJyb3dzLWFsdCc6ICFsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlbixcbiAgICAgICAgICAgICAgJ2ZhLWNvbXByZXNzLWFycm93cy1hbHQnOiBsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlblxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwibGF5b3V0U2VydmljZS50b2dnbGVGdWxsc2NyZWVuKClcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtoaWRkZW5dPVwiIXNlbGVjdGVkVmVyc2lvbiAmJiBwcm9jZXNzS2V5XCIgY2xhc3M9XCJyb3cgYmctd2hpdGUgZGlhZ3JhbSBtYi0zXCI+XG4gICAgICAgIDxkaXYgaWQ9XCJjYW52YXNcIiBjbGFzcz1cImNvbC05XCI+PC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJwcm9wZXJ0aWVzXCIgY2xhc3M9XCJjb2wtMyBwci0wXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1tYW5hZ2VtZW50LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wcm9jZXNzLW1hbmFnZW1lbnQvc3JjL2xpYi9wcm9jZXNzLW1hbmFnZW1lbnQtYnVpbGRlci9wcm9jZXNzLW1hbmFnZW1lbnQtYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3MtbWFuYWdlbWVudC9zcmMvbGliL3Byb2Nlc3MtbWFuYWdlbWVudC1idWlsZGVyL3Byb2Nlc3MtbWFuYWdlbWVudC1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFLOUUsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFFM0QsT0FBTyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxNQUFNLE1BQU0sc0RBQXNELENBQUM7QUFDMUUsT0FBTyxxQkFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLHdCQUF3QixNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sc0JBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyx1QkFBdUIsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7OztBQVFqRixNQUFNLE9BQU8saUNBQWlDO0lBVTVDLFlBQ1UsSUFBZ0IsRUFDaEIsY0FBOEIsRUFDL0IsYUFBNEIsRUFDM0IsWUFBMEIsRUFDMUIsS0FBcUIsRUFDckIsTUFBYztRQUxkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FB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LEVBQUU7WUFDdEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDOzsrSEFySlUsaUNBQWlDO21IQUFqQyxpQ0FBaUMsMEVDcEM5QyxxMUxBeUlBOzRGRHJHYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0Usb0NBQW9DLGlCQUcvQixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7UHJvY2Vzc0RlZmluaXRpb24sIFByb2Nlc3NTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9wcm9jZXNzJztcbmltcG9ydCB7QWxlcnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xheW91dFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2xheW91dCc7XG5pbXBvcnQgTW9kZWxlciBmcm9tICdicG1uLWpzL2xpYi9Nb2RlbGVyJztcbmltcG9ydCBCcG1uSlMgZnJvbSAnYnBtbi1qcy9kaXN0L2JwbW4tbmF2aWdhdGVkLXZpZXdlci5wcm9kdWN0aW9uLm1pbi5qcyc7XG5pbXBvcnQgUHJvcGVydGllc1BhbmVsTW9kdWxlIGZyb20gJ2JwbW4tanMtcHJvcGVydGllcy1wYW5lbCc7XG5pbXBvcnQgUHJvcGVydGllc1Byb3ZpZGVyTW9kdWxlIGZyb20gJ2JwbW4tanMtcHJvcGVydGllcy1wYW5lbC9saWIvcHJvdmlkZXIvY2FtdW5kYSc7XG5pbXBvcnQgQ2FtdW5kYUV4dGVuc2lvbk1vZHVsZSBmcm9tICdjYW11bmRhLWJwbW4tbW9kZGxlL2xpYic7XG5pbXBvcnQgQ2FtdW5kYU1vZGRsZURlc2NyaXB0b3IgZnJvbSAnY2FtdW5kYS1icG1uLW1vZGRsZS9yZXNvdXJjZXMvY2FtdW5kYS5qc29uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1wcm9jZXNzLW1hbmFnZW1lbnQtYnVpbGRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLW1hbmFnZW1lbnQtYnVpbGRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2Nlc3MtbWFuYWdlbWVudC1idWlsZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NNYW5hZ2VtZW50QnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGJwbW5Nb2RlbGVyO1xuICBwdWJsaWMgYnBtblZpZXdlcjtcbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnM6IFByb2Nlc3NEZWZpbml0aW9uW10gfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHNlbGVjdGVkVmVyc2lvbjogUHJvY2Vzc0RlZmluaXRpb24gfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHByb2Nlc3NLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgaXNSZWFkT25seVByb2Nlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyBpc1N5c3RlbVByb2Nlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgZWxlbWVudFRlbXBsYXRlRmlsZXM6IHN0cmluZ1tdID0gWydtYWlsU2VuZFRhc2snXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgdGhpcy5wcm9jZXNzS2V5ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2tleScpO1xuICAgIGZvcmtKb2luKHRoaXMuZ2V0RWxlbWVudFRlbXBsYXRlcygpKS5zdWJzY3JpYmUoKGVsZW1lbnRUZW1wbGF0ZXM6IGFueVtdKSA9PiB7XG4gICAgICB0aGlzLmJwbW5Nb2RlbGVyID0gbmV3IE1vZGVsZXIoe1xuICAgICAgICBjb250YWluZXI6ICcjY2FudmFzJyxcbiAgICAgICAgaGVpZ2h0OiAnOTB2aCcsXG4gICAgICAgIGFkZGl0aW9uYWxNb2R1bGVzOiBbXG4gICAgICAgICAgUHJvcGVydGllc1BhbmVsTW9kdWxlLFxuICAgICAgICAgIFByb3BlcnRpZXNQcm92aWRlck1vZHVsZSxcbiAgICAgICAgICBDYW11bmRhRXh0ZW5zaW9uTW9kdWxlLFxuICAgICAgICBdLFxuICAgICAgICBwcm9wZXJ0aWVzUGFuZWw6IHtcbiAgICAgICAgICBwYXJlbnQ6ICcjcHJvcGVydGllcycsXG4gICAgICAgIH0sXG4gICAgICAgIG1vZGRsZUV4dGVuc2lvbnM6IHtcbiAgICAgICAgICBjYW11bmRhOiBDYW11bmRhTW9kZGxlRGVzY3JpcHRvcixcbiAgICAgICAgfSxcbiAgICAgICAgZWxlbWVudFRlbXBsYXRlcyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5icG1uVmlld2VyID0gbmV3IEJwbW5KUygpO1xuICAgICAgdGhpcy5icG1uVmlld2VyLmF0dGFjaFRvKCcjcmVhZE9ubHlDYW52YXMnKTtcbiAgICAgIGlmICh0aGlzLnByb2Nlc3NLZXkpIHtcbiAgICAgICAgdGhpcy5sb2FkUHJvY2Vzc1ZlcnNpb25zKHRoaXMucHJvY2Vzc0tleSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZEVtcHR5QnBtbigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVwbG95KCk6IHZvaWQge1xuICAgIHRoaXMuYnBtbk1vZGVsZXIuc2F2ZVhNTCgoZXJyOiBhbnksIHhtbDogYW55KSA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLmRlcGxveVByb2Nlc3MoeG1sKS5zdWJzY3JpYmUoYXNkID0+IHtcbiAgICAgICAgaWYgKHRoaXMucHJvY2Vzc0tleSkge1xuICAgICAgICAgIHRoaXMubG9hZFByb2Nlc3NWZXJzaW9ucyh0aGlzLnByb2Nlc3NLZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2Nlc3NlcyddKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKCdEZXBsb3ltZW50IHN1Y2Nlc3NmdWwnKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZlcnNpb24gPSBudWxsO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLmJwbW5Nb2RlbGVyLmRlc3Ryb3koKTtcbiAgICB0aGlzLmJwbW5WaWV3ZXIuZGVzdHJveSgpO1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgZG93bmxvYWQoKSB7XG4gICAgdGhpcy5icG1uTW9kZWxlci5zYXZlWE1MKChlcnI6IGFueSwgeG1sOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgQmxvYihbeG1sXSwge3R5cGU6ICd0ZXh0L3htbCd9KTtcbiAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICBsaW5rLmRvd25sb2FkID0gJ2RpYWdyYW0uYnBtbic7XG4gICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICAgIGxpbmsuY2xpY2soKTtcbiAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKGxpbmsuaHJlZik7XG4gICAgICBsaW5rLnJlbW92ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZEVtcHR5QnBtbigpIHtcbiAgICBjb25zdCB1cmwgPSAnL2Fzc2V0cy9icG1uL2luaXRpYWwuYnBtbic7XG4gICAgdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybCwge1xuICAgICAgICBoZWFkZXJzOiB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ30sXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHhtbDogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYnBtbk1vZGVsZXIuaW1wb3J0WE1MKHhtbCk7XG4gICAgICAgIHRoaXMuYnBtblZpZXdlci5pbXBvcnRYTUwoeG1sKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0RWxlbWVudFRlbXBsYXRlcygpOiBPYnNlcnZhYmxlPGFueT5bXSB7XG4gICAgY29uc3QgdGVtcGxhdGVPYnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGhpcy5lbGVtZW50VGVtcGxhdGVGaWxlcykge1xuICAgICAgdGVtcGxhdGVPYnMucHVzaChcbiAgICAgICAgdGhpcy5odHRwLmdldChgL2Fzc2V0cy9icG1uL2VsZW1lbnQtdGVtcGxhdGVzLyR7ZmlsZX0uanNvbmAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ30sXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGVtcGxhdGVPYnM7XG4gIH1cblxuICBwcml2YXRlIHNldExhdGVzdFZlcnNpb24oKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZlcnNpb24gPSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMucmVkdWNlKChhY2MsIHZlcnNpb24pID0+XG4gICAgICB2ZXJzaW9uLnZlcnNpb24gPiBhY2MudmVyc2lvbiA/IHZlcnNpb24gOiBhY2NcbiAgICApO1xuICAgIHRoaXMubG9hZFByb2Nlc3NCcG1uKCk7XG4gIH1cblxuICBsb2FkUHJvY2Vzc1ZlcnNpb25zKHByb2Nlc3NEZWZpbml0aW9uS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlXG4gICAgICAuZ2V0UHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucyhwcm9jZXNzRGVmaW5pdGlvbktleSlcbiAgICAgIC5zdWJzY3JpYmUoKHByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnM6IFByb2Nlc3NEZWZpbml0aW9uW10pID0+IHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zID0gcHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucztcbiAgICAgICAgdGhpcy5zZXRMYXRlc3RWZXJzaW9uKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNvbXBhcmVQcm9jZXNzRGVmaW5pdGlvbnMocGQxOiBQcm9jZXNzRGVmaW5pdGlvbiwgcGQyOiBQcm9jZXNzRGVmaW5pdGlvbikge1xuICAgIGlmIChwZDEgPT09IG51bGwgJiYgcGQyID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHBkMSA9PT0gbnVsbCB8fCBwZDIgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHBkMS5pZCA9PT0gcGQyLmlkO1xuICB9XG5cbiAgbG9hZFByb2Nlc3NCcG1uKCkge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc0RlZmluaXRpb25YbWwodGhpcy5zZWxlY3RlZFZlcnNpb24uaWQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgdGhpcy5icG1uTW9kZWxlci5pbXBvcnRYTUwocmVzdWx0WydicG1uMjBYbWwnXSk7XG4gICAgICB0aGlzLmJwbW5WaWV3ZXIuaW1wb3J0WE1MKHJlc3VsdFsnYnBtbjIwWG1sJ10pO1xuICAgICAgdGhpcy5pc1JlYWRPbmx5UHJvY2VzcyQubmV4dChyZXN1bHQucmVhZE9ubHkpO1xuICAgICAgdGhpcy5pc1N5c3RlbVByb2Nlc3MkLm5leHQocmVzdWx0LnN5c3RlbVByb2Nlc3MpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5icG1uTW9kZWxlci5kZXN0cm95KCk7XG4gICAgdGhpcy5icG1uVmlld2VyLmRlc3Ryb3koKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2IGNsYXNzPVwibWItNVwiIFtuZ0NsYXNzXT1cInsnbWFpbi1jb250ZW50IHB0LTAnOiAhbGF5b3V0U2VydmljZS5pc0Z1bGxzY3JlZW59XCI+XG4gIDxkaXYgW25nQ2xhc3NdPVwieydjb250YWluZXItZmx1aWQnOiAhbGF5b3V0U2VydmljZS5pc0Z1bGxzY3JlZW59XCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJidG4tZ3JvdXAgbXQtbTNweCBtYi0zXCJcbiAgICAgICAgKm5nSWY9XCIoc2VsZWN0ZWRWZXJzaW9uICE9PSBudWxsIHx8IHByb2Nlc3NLZXkgPT09IG51bGwpICYmICFsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlblwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNwYWNlXCIgKGNsaWNrKT1cImRvd25sb2FkKClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS1kb3dubG9hZCBtci0xXCI+PC9pPnt7ICdwcm9jZXNzTWFuYWdlbWVudC5kb3dubG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4tc3BhY2VcIlxuICAgICAgICAgIChjbGljayk9XCJkZXBsb3koKVwiXG4gICAgICAgICAgKm5nSWY9XCIoaXNSZWFkT25seVByb2Nlc3MkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydtci0wJzogc2VsZWN0ZWRWZXJzaW9uICE9PSBudWxsfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS11cGxvYWQgbXItMVwiPjwvaT57eyAncHJvY2Vzc01hbmFnZW1lbnQuZGVwbG95JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRWZXJzaW9uID09PSBudWxsXCJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi1zcGFjZSBtci0wXCJcbiAgICAgICAgICAoY2xpY2spPVwicmVzZXQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS1kZWxldGUgbXItMVwiPjwvaT57eyAncHJvY2Vzc01hbmFnZW1lbnQuY2xlYXInIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibW9kZWxlciBwbC0zIHByLTMgbWItM1wiIFtuZ0NsYXNzXT1cInsnbXQtNCc6ICFsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlbn1cIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJyb3cgcHQtNCBwYi0zIGJnLWxpZ2h0IHZlcnNpb25zXCJcbiAgICAgICAgKm5nSWY9XCJwcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydib3JkZXItYm90dG9tLTAnOiBzZWxlY3RlZFZlcnNpb24gIT09IG51bGx9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCIgKm5nSWY9XCJwcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJwcm9jZXNzLXRpdGxlXCI+XG4gICAgICAgICAgICB7eyBwcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zWzBdLm5hbWUgfX1cbiAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1pbmZvIG1yLTFcIiAqbmdJZj1cImlzUmVhZE9ubHlQcm9jZXNzJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICB7eyAncHJvY2Vzc01hbmFnZW1lbnQucmVhZE9ubHknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS13YXJuaW5nIG1yLTFcIiAqbmdJZj1cImlzU3lzdGVtUHJvY2VzcyQgfCBhc3luY1wiPlxuICAgICAgICAgICAge3sgJ3Byb2Nlc3NNYW5hZ2VtZW50LnN5c3RlbVByb2Nlc3MnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG9mZnNldC1tZC0yXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInByb2Nlc3NWZXJzaW9uXCI+PHN0cm9uZz5WZXJzaW9uPC9zdHJvbmc+PC9sYWJlbD5cbiAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICBpZD1cInByb2Nlc3NWZXJzaW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHNlbGVjdC12ZXJzaW9uLWNvbnRyb2xcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZlcnNpb25cIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkUHJvY2Vzc0JwbW4oKVwiXG4gICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZVByb2Nlc3NEZWZpbml0aW9uc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCIgZGlzYWJsZWQgc2VsZWN0ZWQ+VmVyc2lvbjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvY2Vzc0RlZmluaXRpb24gb2YgcHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uc1wiXG4gICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInByb2Nlc3NEZWZpbml0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgcHJvY2Vzc0RlZmluaXRpb24udmVyc2lvbiB9fVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjb2wtbWQtYXV0byBkLWZsZXggYWxpZ24taXRlbXMtZW5kIHRleHQtcmlnaHRcIlxuICAgICAgICAgICpuZ0lmPVwiKHNlbGVjdGVkVmVyc2lvbiAhPT0gbnVsbCB8fCBwcm9jZXNzS2V5ID09PSBudWxsKSAmJiBsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlblwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zcGFjZVwiIChjbGljayk9XCJkb3dubG9hZCgpXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtZGkgbWRpLWRvd25sb2FkIG1yLTFcIj48L2lcbiAgICAgICAgICAgICAgPnt7ICdwcm9jZXNzTWFuYWdlbWVudC5kb3dubG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4tc3BhY2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVwbG95KClcIlxuICAgICAgICAgICAgICAqbmdJZj1cIihpc1JlYWRPbmx5UHJvY2VzcyQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktdXBsb2FkIG1yLTFcIj48L2k+e3sgJ3Byb2Nlc3NNYW5hZ2VtZW50LmRlcGxveScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzZWxlY3RlZFZlcnNpb25cIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi1zcGFjZVwiIChjbGljayk9XCJyZXNldCgpXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtZGkgbWRpLWRlbGV0ZSBtci0xXCI+PC9pPnt7ICdwcm9jZXNzTWFuYWdlbWVudC5jbGVhcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRWZXJzaW9uXCJcbiAgICAgICAgICBjbGFzcz1cImNvbC1tZC0xIGZ1bGxzY3JlZW4tdG9nZ2xlIHRleHQtcmlnaHRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnb2Zmc2V0LW1kLTInOiAhbGF5b3V0U2VydmljZS5pc0Z1bGxzY3JlZW59XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImZhc1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdmYS1leHBhbmQtYXJyb3dzLWFsdCc6ICFsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlbixcbiAgICAgICAgICAgICAgJ2ZhLWNvbXByZXNzLWFycm93cy1hbHQnOiBsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlblxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwibGF5b3V0U2VydmljZS50b2dnbGVGdWxsc2NyZWVuKClcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiKGlzU3lzdGVtUHJvY2VzcyQgfCBhc3luYykgJiYgKGlzUmVhZE9ubHlQcm9jZXNzJCB8IGFzeW5jKVwiXG4gICAgICAgIGNsYXNzPVwicm93IGJnLXdhcm5pbmcgdGV4dC1ibGFjayBtYi0wIHAtMyB0ZXh0LWNlbnRlclwiXG4gICAgICAgIFt0cmFuc2xhdGVdPVwiJ3Byb2Nlc3NNYW5hZ2VtZW50LnJlYWRPbmx5U3lzdGVtUHJvY2Vzc1dhcm5pbmdNZXNzYWdlJ1wiXG4gICAgICA+PC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiKGlzU3lzdGVtUHJvY2VzcyQgfCBhc3luYykgJiYgKGlzUmVhZE9ubHlQcm9jZXNzJCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgICAgICBjbGFzcz1cInJvdyBiZy13YXJuaW5nIHRleHQtYmxhY2sgbWItMCBwLTMgdGV4dC1jZW50ZXJcIlxuICAgICAgICBbdHJhbnNsYXRlXT1cIidwcm9jZXNzTWFuYWdlbWVudC5zeXN0ZW1Qcm9jZXNzV2FybmluZ01lc3NhZ2UnXCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDxkaXYgW2hpZGRlbl09XCIhc2VsZWN0ZWRWZXJzaW9uICYmIHByb2Nlc3NLZXlcIiBjbGFzcz1cInJvdyBiZy13aGl0ZSBkaWFncmFtIG1iLTNcIj5cbiAgICAgICAgPGRpdiBpZD1cImNhbnZhc1wiIGNsYXNzPVwiY29sLTlcIiBbaGlkZGVuXT1cImlzUmVhZE9ubHlQcm9jZXNzJCB8IGFzeW5jXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJwcm9wZXJ0aWVzXCIgY2xhc3M9XCJjb2wtMyBwci0wXCIgW2hpZGRlbl09XCJpc1JlYWRPbmx5UHJvY2VzcyQgfCBhc3luY1wiPjwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJyZWFkT25seUNhbnZhc1wiXG4gICAgICAgICAgY2xhc3M9XCJjb2wtMTJcIlxuICAgICAgICAgIFtoaWRkZW5dPVwiKGlzUmVhZE9ubHlQcm9jZXNzJCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -27,6 +27,7 @@ export class ProcessManagementListComponent {
|
|
|
27
27
|
this.fields = [
|
|
28
28
|
{ key: 'key', label: 'Key' },
|
|
29
29
|
{ key: 'name', label: 'Name' },
|
|
30
|
+
{ key: 'readOnly', label: 'Read-only' },
|
|
30
31
|
];
|
|
31
32
|
}
|
|
32
33
|
ngOnInit() {
|
|
@@ -47,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
47
48
|
type: Component,
|
|
48
49
|
args: [{ selector: 'valtimo-process-management-list', 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<valtimo-widget>\n <valtimo-list\n [items]=\"processDefinitions\"\n [fields]=\"fields\"\n (rowClicked)=\"editProcessDefinition($event)\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Processes' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Processes' | translate }}</h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n", 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 */\n"] }]
|
|
49
50
|
}], ctorParameters: function () { return [{ type: i1.ProcessService }, { type: i2.Router }]; } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1tYW5hZ2VtZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wcm9jZXNzLW1hbmFnZW1lbnQvc3JjL2xpYi9wcm9jZXNzLW1hbmFnZW1lbnQtbGlzdC9wcm9jZXNzLW1hbmFnZW1lbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3MtbWFuYWdlbWVudC9zcmMvbGliL3Byb2Nlc3MtbWFuYWdlbWVudC1saXN0L3Byb2Nlc3MtbWFuYWdlbWVudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU2hELE1BQU0sT0FBTyw4QkFBOEI7SUFRekMsWUFBb0IsY0FBOEIsRUFBVSxNQUFjO1FBQXRELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFQbkUsdUJBQWtCLEdBQXdCLEVBQUUsQ0FBQztRQUM3QyxXQUFNLEdBQUc7WUFDZCxFQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQztZQUMxQixFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQztZQUM1QixFQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBQztTQUN0QyxDQUFDO0lBRTJFLENBQUM7SUFFOUUsUUFBUTtRQUNOLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQWdDLEVBQUUsRUFBRTtZQUN6RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFCQUFxQixDQUFDLGlCQUFvQztRQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQzs7NEhBdEJVLDhCQUE4QjtnSEFBOUIsOEJBQThCLHVFQ3pCM0Msc21DQStCQTs0RkROYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Byb2Nlc3NEZWZpbml0aW9uLCBQcm9jZXNzU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcyc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1wcm9jZXNzLW1hbmFnZW1lbnQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLW1hbmFnZW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2Nlc3MtbWFuYWdlbWVudC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NNYW5hZ2VtZW50TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvbnM6IFByb2Nlc3NEZWZpbml0aW9uW10gPSBbXTtcbiAgcHVibGljIGZpZWxkcyA9IFtcbiAgICB7a2V5OiAna2V5JywgbGFiZWw6ICdLZXknfSxcbiAgICB7a2V5OiAnbmFtZScsIGxhYmVsOiAnTmFtZSd9LFxuICAgIHtrZXk6ICdyZWFkT25seScsIGxhYmVsOiAnUmVhZC1vbmx5J30sXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25zKCk7XG4gIH1cblxuICBsb2FkUHJvY2Vzc0RlZmluaXRpb25zKCkge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc0RlZmluaXRpb25zKCkuc3Vic2NyaWJlKChwcm9jZXNzRGVmczogUHJvY2Vzc0RlZmluaXRpb25bXSkgPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbnMgPSBwcm9jZXNzRGVmcztcbiAgICB9KTtcbiAgfVxuXG4gIGVkaXRQcm9jZXNzRGVmaW5pdGlvbihwcm9jZXNzRGVmaW5pdGlvbjogUHJvY2Vzc0RlZmluaXRpb24pIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9jZXNzZXMvcHJvY2VzcycsIHByb2Nlc3NEZWZpbml0aW9uLmtleV0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjx2YWx0aW1vLXdpZGdldD5cbiAgPHZhbHRpbW8tbGlzdFxuICAgIFtpdGVtc109XCJwcm9jZXNzRGVmaW5pdGlvbnNcIlxuICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAocm93Q2xpY2tlZCk9XCJlZGl0UHJvY2Vzc0RlZmluaXRpb24oJGV2ZW50KVwiXG4gICAgW2hlYWRlcl09XCJ0cnVlXCJcbiAgICBbdmlld01vZGVdPVwidHJ1ZVwiXG4gICAgW2lzU2VhcmNoYWJsZV09XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgaGVhZGVyPlxuICAgICAgPGgzIGNsYXNzPVwibGlzdC1oZWFkZXItdGl0bGVcIj57eyAnUHJvY2Vzc2VzJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XG4gICAgICA8aDUgY2xhc3M9XCJsaXN0LWhlYWRlci1kZXNjcmlwdGlvblwiPnt7ICdPdmVydmlldyBvZiBhbGwgUHJvY2Vzc2VzJyB8IHRyYW5zbGF0ZSB9fTwvaDU+XG4gICAgPC9kaXY+XG4gIDwvdmFsdGltby1saXN0PlxuPC92YWx0aW1vLXdpZGdldD5cbiJdfQ==
|
|
@@ -13,8 +13,9 @@ import { TranslateModule } from '@ngx-translate/core';
|
|
|
13
13
|
import * as i6 from '@angular/common';
|
|
14
14
|
import { CommonModule } from '@angular/common';
|
|
15
15
|
import { AuthGuardService } from '@valtimo/security';
|
|
16
|
-
import { forkJoin } from 'rxjs';
|
|
16
|
+
import { BehaviorSubject, forkJoin } from 'rxjs';
|
|
17
17
|
import Modeler from 'bpmn-js/lib/Modeler';
|
|
18
|
+
import BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';
|
|
18
19
|
import PropertiesPanelModule from 'bpmn-js-properties-panel';
|
|
19
20
|
import PropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda';
|
|
20
21
|
import CamundaExtensionModule from 'camunda-bpmn-moddle/lib';
|
|
@@ -135,6 +136,7 @@ class ProcessManagementListComponent {
|
|
|
135
136
|
this.fields = [
|
|
136
137
|
{ key: 'key', label: 'Key' },
|
|
137
138
|
{ key: 'name', label: 'Name' },
|
|
139
|
+
{ key: 'readOnly', label: 'Read-only' },
|
|
138
140
|
];
|
|
139
141
|
}
|
|
140
142
|
ngOnInit() {
|
|
@@ -211,6 +213,8 @@ class ProcessManagementBuilderComponent {
|
|
|
211
213
|
this.processDefinitionVersions = null;
|
|
212
214
|
this.selectedVersion = null;
|
|
213
215
|
this.processKey = null;
|
|
216
|
+
this.isReadOnlyProcess$ = new BehaviorSubject(false);
|
|
217
|
+
this.isSystemProcess$ = new BehaviorSubject(false);
|
|
214
218
|
this.elementTemplateFiles = ['mailSendTask'];
|
|
215
219
|
}
|
|
216
220
|
ngOnInit() {
|
|
@@ -235,6 +239,8 @@ class ProcessManagementBuilderComponent {
|
|
|
235
239
|
},
|
|
236
240
|
elementTemplates,
|
|
237
241
|
});
|
|
242
|
+
this.bpmnViewer = new BpmnJS();
|
|
243
|
+
this.bpmnViewer.attachTo('#readOnlyCanvas');
|
|
238
244
|
if (this.processKey) {
|
|
239
245
|
this.loadProcessVersions(this.processKey);
|
|
240
246
|
this.selectedVersion = null;
|
|
@@ -260,6 +266,7 @@ class ProcessManagementBuilderComponent {
|
|
|
260
266
|
}
|
|
261
267
|
reset() {
|
|
262
268
|
this.bpmnModeler.destroy();
|
|
269
|
+
this.bpmnViewer.destroy();
|
|
263
270
|
this.init();
|
|
264
271
|
}
|
|
265
272
|
download() {
|
|
@@ -282,6 +289,7 @@ class ProcessManagementBuilderComponent {
|
|
|
282
289
|
})
|
|
283
290
|
.subscribe((xml) => {
|
|
284
291
|
this.bpmnModeler.importXML(xml);
|
|
292
|
+
this.bpmnViewer.importXML(xml);
|
|
285
293
|
});
|
|
286
294
|
}
|
|
287
295
|
getElementTemplates() {
|
|
@@ -316,19 +324,23 @@ class ProcessManagementBuilderComponent {
|
|
|
316
324
|
return pd1.id === pd2.id;
|
|
317
325
|
}
|
|
318
326
|
loadProcessBpmn() {
|
|
319
|
-
this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(
|
|
320
|
-
this.bpmnModeler.importXML(
|
|
327
|
+
this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(result => {
|
|
328
|
+
this.bpmnModeler.importXML(result['bpmn20Xml']);
|
|
329
|
+
this.bpmnViewer.importXML(result['bpmn20Xml']);
|
|
330
|
+
this.isReadOnlyProcess$.next(result.readOnly);
|
|
331
|
+
this.isSystemProcess$.next(result.systemProcess);
|
|
321
332
|
});
|
|
322
333
|
}
|
|
323
334
|
ngOnDestroy() {
|
|
324
335
|
this.bpmnModeler.destroy();
|
|
336
|
+
this.bpmnViewer.destroy();
|
|
325
337
|
}
|
|
326
338
|
}
|
|
327
339
|
ProcessManagementBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ProcessManagementBuilderComponent, deps: [{ token: i2.HttpClient }, { token: i1$1.ProcessService }, { token: i3.LayoutService }, { token: i2$1.AlertService }, { token: i5.ActivatedRoute }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
-
ProcessManagementBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ProcessManagementBuilderComponent, selector: "valtimo-process-management-builder", ngImport: i0, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-
|
|
340
|
+
ProcessManagementBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ProcessManagementBuilderComponent, selector: "valtimo-process-management-builder", ngImport: i0, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-4\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n <span class=\"badge badge-pill badge-info mr-1\" *ngIf=\"isReadOnlyProcess$ | async\">\n {{ 'processManagement.readOnly' | translate }}\n </span>\n <span class=\"badge badge-pill badge-warning mr-1\" *ngIf=\"isSystemProcess$ | async\">\n {{ 'processManagement.systemProcess' | translate }}\n </span>\n </div>\n <div class=\"col-md-2 offset-md-2\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control select-version-control\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-auto d-flex align-items-end text-right\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 fullscreen-toggle text-right\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async)\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.readOnlySystemProcessWarningMessage'\"\n ></div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async) === false\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.systemProcessWarningMessage'\"\n ></div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div\n id=\"readOnlyCanvas\"\n class=\"col-12\"\n [hidden]=\"(isReadOnlyProcess$ | async) === false\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n", 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 */.versions,.diagram{border:1px solid #dee2e6}.process-title{color:#6b6b6b;font-size:1.5rem}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.modeler{height:90vh}.select-version-control{width:90px}#properties{border-left:1px solid #dee2e6;padding-left:0}#readOnlyCanvas{height:90vh}\n"], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i4.TranslatePipe, "async": i6.AsyncPipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
329
341
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ProcessManagementBuilderComponent, decorators: [{
|
|
330
342
|
type: Component,
|
|
331
|
-
args: [{ selector: 'valtimo-process-management-builder', encapsulation: ViewEncapsulation.None, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-
|
|
343
|
+
args: [{ selector: 'valtimo-process-management-builder', encapsulation: ViewEncapsulation.None, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-4\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n <span class=\"badge badge-pill badge-info mr-1\" *ngIf=\"isReadOnlyProcess$ | async\">\n {{ 'processManagement.readOnly' | translate }}\n </span>\n <span class=\"badge badge-pill badge-warning mr-1\" *ngIf=\"isSystemProcess$ | async\">\n {{ 'processManagement.systemProcess' | translate }}\n </span>\n </div>\n <div class=\"col-md-2 offset-md-2\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control select-version-control\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-auto d-flex align-items-end text-right\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 fullscreen-toggle text-right\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async)\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.readOnlySystemProcessWarningMessage'\"\n ></div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async) === false\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.systemProcessWarningMessage'\"\n ></div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div\n id=\"readOnlyCanvas\"\n class=\"col-12\"\n [hidden]=\"(isReadOnlyProcess$ | async) === false\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n", 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 */.versions,.diagram{border:1px solid #dee2e6}.process-title{color:#6b6b6b;font-size:1.5rem}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.modeler{height:90vh}.select-version-control{width:90px}#properties{border-left:1px solid #dee2e6;padding-left:0}#readOnlyCanvas{height:90vh}\n"] }]
|
|
332
344
|
}], ctorParameters: function () { return [{ type: i2.HttpClient }, { type: i1$1.ProcessService }, { type: i3.LayoutService }, { type: i2$1.AlertService }, { type: i5.ActivatedRoute }, { type: i5.Router }]; } });
|
|
333
345
|
|
|
334
346
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-process-management.mjs","sources":["../../../../projects/valtimo/process-management/src/lib/process-management.service.ts","../../../../projects/valtimo/process-management/src/lib/process-management-upload/process-management-upload.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-upload/process-management-upload.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.html","../../../../projects/valtimo/process-management/src/lib/process-management.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-routing.ts","../../../../projects/valtimo/process-management/src/lib/process-management.module.ts","../../../../projects/valtimo/process-management/src/public-api.ts","../../../../projects/valtimo/process-management/src/valtimo-process-management.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';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessManagementService {\n private valtimoApiConfig: any;\n\n constructor(private configService: ConfigService, private http: HttpClient) {\n this.valtimoApiConfig = configService.config.valtimoApi;\n }\n\n deployBpmn(bpmn: File): Observable<any> {\n const formData: FormData = new FormData();\n formData.append('file', bpmn);\n formData.append('deployment-name', 'valtimoConsoleApp');\n formData.append('deployment-source', 'process application');\n return this.http.post<any>(\n `${this.valtimoApiConfig.endpointUri}camunda-rest/engine/default/deployment/create`,\n formData\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 {Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {ProcessManagementService} from '../process-management.service';\nimport {AlertService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-process-management-upload',\n templateUrl: './process-management-upload.component.html',\n styleUrls: ['./process-management-upload.component.scss'],\n})\nexport class ProcessManagementUploadComponent implements OnInit {\n public bpmn: File | null = null;\n @Output() reload = new EventEmitter();\n @ViewChild('bpmnFile') bpmnFile: ElementRef;\n\n constructor(\n private processManagementService: ProcessManagementService,\n private alertService: AlertService\n ) {}\n\n ngOnInit() {}\n\n onChange(files: FileList): void {\n this.bpmn = files.item(0);\n }\n\n uploadProcessBpmn() {\n this.processManagementService.deployBpmn(this.bpmn).subscribe(\n () => {\n this.bpmn = null;\n this.bpmnFile.nativeElement.value = '';\n this.alertService.success('Deployment successful');\n this.reload.emit();\n },\n error => {\n this.bpmn = null;\n this.bpmnFile.nativeElement.value = '';\n this.alertService.error(`Deployment failed. ${error}`);\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\n<div\n class=\"modal fade\"\n id=\"uploadProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"uploadProcessLabel\"\n aria-hidden=\"true\"\n>\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"uploadProcessLabel\">Upload process</h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <h5>BPMN Model</h5>\n <input\n #bpmnFile\n type=\"file\"\n id=\"file\"\n accept=\".bpmn\"\n (change)=\"onChange($event.target.files)\"\n />\n </div>\n <div class=\"modal-footer\">\n <div class=\"btn-group\">\n <button\n type=\"button\"\n class=\"btn btn-primary btn-space\"\n (click)=\"uploadProcessBpmn()\"\n [disabled]=\"!bpmn\"\n data-dismiss=\"modal\"\n >\n Upload\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\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, OnInit} from '@angular/core';\nimport {ProcessService, ProcessDefinition} from '@valtimo/process';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'valtimo-process-management-list',\n templateUrl: './process-management-list.component.html',\n styleUrls: ['./process-management-list.component.scss'],\n})\nexport class ProcessManagementListComponent implements OnInit {\n public processDefinitions: ProcessDefinition[] = [];\n public fields = [\n {key: 'key', label: 'Key'},\n {key: 'name', label: 'Name'},\n ];\n\n constructor(private processService: ProcessService, private router: Router) {}\n\n ngOnInit() {\n this.loadProcessDefinitions();\n }\n\n loadProcessDefinitions() {\n this.processService.getProcessDefinitions().subscribe((processDefs: ProcessDefinition[]) => {\n this.processDefinitions = processDefs;\n });\n }\n\n editProcessDefinition(processDefinition: ProcessDefinition) {\n this.router.navigate(['/processes/process', processDefinition.key]);\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\n<valtimo-widget>\n <valtimo-list\n [items]=\"processDefinitions\"\n [fields]=\"fields\"\n (rowClicked)=\"editProcessDefinition($event)\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Processes' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Processes' | translate }}</h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\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, OnInit, ViewChild} from '@angular/core';\nimport {ProcessManagementListComponent} from './process-management-list/process-management-list.component';\n\n@Component({\n selector: 'valtimo-process-management',\n templateUrl: './process-management.component.html',\n styleUrls: ['./process-management.component.scss'],\n})\nexport class ProcessManagementComponent implements OnInit {\n @ViewChild('processManagementList') processManagementList: ProcessManagementListComponent;\n\n constructor() {}\n\n ngOnInit() {}\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<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3\">\n <button\n class=\"btn btn-secondary btn-space\"\n data-toggle=\"modal\"\n data-target=\"#uploadProcess\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload process' | translate }}\n </button>\n <button class=\"btn btn-primary btn-space\" [routerLink]=\"'create'\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'Create new Process' | translate }}\n </button>\n </div>\n </div>\n <valtimo-process-management-upload\n (reload)=\"processManagementList.loadProcessDefinitions()\"\n ></valtimo-process-management-upload>\n <valtimo-process-management-list #processManagementList></valtimo-process-management-list>\n </div>\n</div>\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, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {ProcessService, ProcessDefinition} from '@valtimo/process';\nimport {AlertService} from '@valtimo/components';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {forkJoin, Observable} from 'rxjs';\nimport {LayoutService} from '@valtimo/layout';\nimport Modeler from 'bpmn-js/lib/Modeler';\nimport PropertiesPanelModule from 'bpmn-js-properties-panel';\nimport PropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda';\nimport CamundaExtensionModule from 'camunda-bpmn-moddle/lib';\nimport CamundaModdleDescriptor from 'camunda-bpmn-moddle/resources/camunda.json';\n\n@Component({\n selector: 'valtimo-process-management-builder',\n templateUrl: './process-management-builder.component.html',\n styleUrls: ['./process-management-builder.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ProcessManagementBuilderComponent implements OnInit, OnDestroy {\n public bpmnModeler;\n public processDefinitionVersions: ProcessDefinition[] | null = null;\n public selectedVersion: ProcessDefinition | null = null;\n public processKey: string | null = null;\n private elementTemplateFiles: string[] = ['mailSendTask'];\n\n constructor(\n private http: HttpClient,\n private processService: ProcessService,\n public layoutService: LayoutService,\n private alertService: AlertService,\n private route: ActivatedRoute,\n private router: Router\n ) {}\n\n ngOnInit() {\n this.init();\n }\n\n init() {\n this.processKey = this.route.snapshot.paramMap.get('key');\n forkJoin(this.getElementTemplates()).subscribe((elementTemplates: any[]) => {\n this.bpmnModeler = new Modeler({\n container: '#canvas',\n height: '90vh',\n additionalModules: [\n PropertiesPanelModule,\n PropertiesProviderModule,\n CamundaExtensionModule,\n ],\n propertiesPanel: {\n parent: '#properties',\n },\n moddleExtensions: {\n camunda: CamundaModdleDescriptor,\n },\n elementTemplates,\n });\n if (this.processKey) {\n this.loadProcessVersions(this.processKey);\n this.selectedVersion = null;\n } else {\n this.loadEmptyBpmn();\n }\n });\n }\n\n deploy(): void {\n this.bpmnModeler.saveXML((err: any, xml: any) => {\n this.processService.deployProcess(xml).subscribe(asd => {\n if (this.processKey) {\n this.loadProcessVersions(this.processKey);\n } else {\n this.router.navigate(['/processes']);\n }\n this.alertService.success('Deployment successful');\n this.selectedVersion = null;\n });\n });\n }\n\n reset() {\n this.bpmnModeler.destroy();\n this.init();\n }\n\n download() {\n this.bpmnModeler.saveXML((err: any, xml: any) => {\n const file = new Blob([xml], {type: 'text/xml'});\n const link = document.createElement('a');\n link.download = 'diagram.bpmn';\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n });\n }\n\n loadEmptyBpmn() {\n const url = '/assets/bpmn/initial.bpmn';\n this.http\n .get(url, {\n headers: {observe: 'response'},\n responseType: 'text',\n })\n .subscribe((xml: any) => {\n this.bpmnModeler.importXML(xml);\n });\n }\n\n getElementTemplates(): Observable<any>[] {\n const templateObs = [];\n for (const file of this.elementTemplateFiles) {\n templateObs.push(\n this.http.get(`/assets/bpmn/element-templates/${file}.json`, {\n headers: {observe: 'response'},\n responseType: 'json',\n })\n );\n }\n return templateObs;\n }\n\n private setLatestVersion() {\n this.selectedVersion = this.processDefinitionVersions.reduce((acc, version) =>\n version.version > acc.version ? version : acc\n );\n this.loadProcessBpmn();\n }\n\n loadProcessVersions(processDefinitionKey: string) {\n this.processService\n .getProcessDefinitionVersions(processDefinitionKey)\n .subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.processDefinitionVersions = processDefinitionVersions;\n this.setLatestVersion();\n });\n }\n\n compareProcessDefinitions(pd1: ProcessDefinition, pd2: ProcessDefinition) {\n if (pd1 === null && pd2 === null) {\n return true;\n }\n if (pd1 === null || pd2 === null) {\n return false;\n }\n return pd1.id === pd2.id;\n }\n\n loadProcessBpmn() {\n this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(xml => {\n this.bpmnModeler.importXML(xml['bpmn20Xml']);\n });\n }\n\n ngOnDestroy() {\n this.bpmnModeler.destroy();\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\n<div class=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-2\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n </div>\n <div class=\"col-md-1 offset-md-6\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control w-100\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-2 d-flex align-items-end\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"deploy()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button class=\"btn btn-secondary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 text-right fullscreen-toggle\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\"></div>\n </div>\n </div>\n </div>\n</div>\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 {ProcessManagementComponent} from './process-management.component';\nimport {ProcessManagementBuilderComponent} from './process-management-builder/process-management-builder.component';\nimport {ROLE_ADMIN} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'processes',\n component: ProcessManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Processes', roles: [ROLE_ADMIN]},\n },\n {\n path: 'processes/create',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Create new Process', roles: [ROLE_ADMIN]},\n },\n {\n path: 'processes/process/:key',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process details', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ProcessManagementRoutingModule {}\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 {ProcessManagementComponent} from './process-management.component';\nimport {ProcessManagementRoutingModule} from './process-management-routing';\nimport {CommonModule} from '@angular/common';\nimport {ProcessManagementBuilderComponent} from './process-management-builder/process-management-builder.component';\nimport {ProcessManagementListComponent} from './process-management-list/process-management-list.component';\nimport {ListModule, WidgetModule} from '@valtimo/components';\nimport {FormsModule} from '@angular/forms';\nimport {ProcessManagementUploadComponent} from './process-management-upload/process-management-upload.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [\n ProcessManagementComponent,\n ProcessManagementBuilderComponent,\n ProcessManagementListComponent,\n ProcessManagementUploadComponent,\n ],\n imports: [\n CommonModule,\n ProcessManagementRoutingModule,\n WidgetModule,\n ListModule,\n FormsModule,\n TranslateModule,\n ],\n exports: [ProcessManagementComponent],\n})\nexport class ProcessManagementModule {}\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 process-management\n */\n\nexport * from './lib/process-management.module';\nexport * from './lib/process-management.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ProcessManagementService","i2","i1","i3","i1.ProcessManagementUploadComponent","i2.ProcessManagementListComponent","i4","i8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-process-management.mjs","sources":["../../../../projects/valtimo/process-management/src/lib/process-management.service.ts","../../../../projects/valtimo/process-management/src/lib/process-management-upload/process-management-upload.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-upload/process-management-upload.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.html","../../../../projects/valtimo/process-management/src/lib/process-management.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-routing.ts","../../../../projects/valtimo/process-management/src/lib/process-management.module.ts","../../../../projects/valtimo/process-management/src/public-api.ts","../../../../projects/valtimo/process-management/src/valtimo-process-management.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';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessManagementService {\n private valtimoApiConfig: any;\n\n constructor(private configService: ConfigService, private http: HttpClient) {\n this.valtimoApiConfig = configService.config.valtimoApi;\n }\n\n deployBpmn(bpmn: File): Observable<any> {\n const formData: FormData = new FormData();\n formData.append('file', bpmn);\n formData.append('deployment-name', 'valtimoConsoleApp');\n formData.append('deployment-source', 'process application');\n return this.http.post<any>(\n `${this.valtimoApiConfig.endpointUri}camunda-rest/engine/default/deployment/create`,\n formData\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 {Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {ProcessManagementService} from '../process-management.service';\nimport {AlertService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-process-management-upload',\n templateUrl: './process-management-upload.component.html',\n styleUrls: ['./process-management-upload.component.scss'],\n})\nexport class ProcessManagementUploadComponent implements OnInit {\n public bpmn: File | null = null;\n @Output() reload = new EventEmitter();\n @ViewChild('bpmnFile') bpmnFile: ElementRef;\n\n constructor(\n private processManagementService: ProcessManagementService,\n private alertService: AlertService\n ) {}\n\n ngOnInit() {}\n\n onChange(files: FileList): void {\n this.bpmn = files.item(0);\n }\n\n uploadProcessBpmn() {\n this.processManagementService.deployBpmn(this.bpmn).subscribe(\n () => {\n this.bpmn = null;\n this.bpmnFile.nativeElement.value = '';\n this.alertService.success('Deployment successful');\n this.reload.emit();\n },\n error => {\n this.bpmn = null;\n this.bpmnFile.nativeElement.value = '';\n this.alertService.error(`Deployment failed. ${error}`);\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\n<div\n class=\"modal fade\"\n id=\"uploadProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"uploadProcessLabel\"\n aria-hidden=\"true\"\n>\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"uploadProcessLabel\">Upload process</h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <h5>BPMN Model</h5>\n <input\n #bpmnFile\n type=\"file\"\n id=\"file\"\n accept=\".bpmn\"\n (change)=\"onChange($event.target.files)\"\n />\n </div>\n <div class=\"modal-footer\">\n <div class=\"btn-group\">\n <button\n type=\"button\"\n class=\"btn btn-primary btn-space\"\n (click)=\"uploadProcessBpmn()\"\n [disabled]=\"!bpmn\"\n data-dismiss=\"modal\"\n >\n Upload\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\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, OnInit} from '@angular/core';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'valtimo-process-management-list',\n templateUrl: './process-management-list.component.html',\n styleUrls: ['./process-management-list.component.scss'],\n})\nexport class ProcessManagementListComponent implements OnInit {\n public processDefinitions: ProcessDefinition[] = [];\n public fields = [\n {key: 'key', label: 'Key'},\n {key: 'name', label: 'Name'},\n {key: 'readOnly', label: 'Read-only'},\n ];\n\n constructor(private processService: ProcessService, private router: Router) {}\n\n ngOnInit() {\n this.loadProcessDefinitions();\n }\n\n loadProcessDefinitions() {\n this.processService.getProcessDefinitions().subscribe((processDefs: ProcessDefinition[]) => {\n this.processDefinitions = processDefs;\n });\n }\n\n editProcessDefinition(processDefinition: ProcessDefinition) {\n this.router.navigate(['/processes/process', processDefinition.key]);\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\n<valtimo-widget>\n <valtimo-list\n [items]=\"processDefinitions\"\n [fields]=\"fields\"\n (rowClicked)=\"editProcessDefinition($event)\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Processes' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Processes' | translate }}</h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\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, OnInit, ViewChild} from '@angular/core';\nimport {ProcessManagementListComponent} from './process-management-list/process-management-list.component';\n\n@Component({\n selector: 'valtimo-process-management',\n templateUrl: './process-management.component.html',\n styleUrls: ['./process-management.component.scss'],\n})\nexport class ProcessManagementComponent implements OnInit {\n @ViewChild('processManagementList') processManagementList: ProcessManagementListComponent;\n\n constructor() {}\n\n ngOnInit() {}\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<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3\">\n <button\n class=\"btn btn-secondary btn-space\"\n data-toggle=\"modal\"\n data-target=\"#uploadProcess\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload process' | translate }}\n </button>\n <button class=\"btn btn-primary btn-space\" [routerLink]=\"'create'\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'Create new Process' | translate }}\n </button>\n </div>\n </div>\n <valtimo-process-management-upload\n (reload)=\"processManagementList.loadProcessDefinitions()\"\n ></valtimo-process-management-upload>\n <valtimo-process-management-list #processManagementList></valtimo-process-management-list>\n </div>\n</div>\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, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\nimport {AlertService} from '@valtimo/components';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {BehaviorSubject, forkJoin, Observable} from 'rxjs';\nimport {LayoutService} from '@valtimo/layout';\nimport Modeler from 'bpmn-js/lib/Modeler';\nimport BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport PropertiesPanelModule from 'bpmn-js-properties-panel';\nimport PropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda';\nimport CamundaExtensionModule from 'camunda-bpmn-moddle/lib';\nimport CamundaModdleDescriptor from 'camunda-bpmn-moddle/resources/camunda.json';\n\n@Component({\n selector: 'valtimo-process-management-builder',\n templateUrl: './process-management-builder.component.html',\n styleUrls: ['./process-management-builder.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ProcessManagementBuilderComponent implements OnInit, OnDestroy {\n public bpmnModeler;\n public bpmnViewer;\n public processDefinitionVersions: ProcessDefinition[] | null = null;\n public selectedVersion: ProcessDefinition | null = null;\n public processKey: string | null = null;\n public isReadOnlyProcess$ = new BehaviorSubject<boolean>(false);\n public isSystemProcess$ = new BehaviorSubject<boolean>(false);\n private elementTemplateFiles: string[] = ['mailSendTask'];\n\n constructor(\n private http: HttpClient,\n private processService: ProcessService,\n public layoutService: LayoutService,\n private alertService: AlertService,\n private route: ActivatedRoute,\n private router: Router\n ) {}\n\n ngOnInit() {\n this.init();\n }\n\n init() {\n this.processKey = this.route.snapshot.paramMap.get('key');\n forkJoin(this.getElementTemplates()).subscribe((elementTemplates: any[]) => {\n this.bpmnModeler = new Modeler({\n container: '#canvas',\n height: '90vh',\n additionalModules: [\n PropertiesPanelModule,\n PropertiesProviderModule,\n CamundaExtensionModule,\n ],\n propertiesPanel: {\n parent: '#properties',\n },\n moddleExtensions: {\n camunda: CamundaModdleDescriptor,\n },\n elementTemplates,\n });\n this.bpmnViewer = new BpmnJS();\n this.bpmnViewer.attachTo('#readOnlyCanvas');\n if (this.processKey) {\n this.loadProcessVersions(this.processKey);\n this.selectedVersion = null;\n } else {\n this.loadEmptyBpmn();\n }\n });\n }\n\n deploy(): void {\n this.bpmnModeler.saveXML((err: any, xml: any) => {\n this.processService.deployProcess(xml).subscribe(asd => {\n if (this.processKey) {\n this.loadProcessVersions(this.processKey);\n } else {\n this.router.navigate(['/processes']);\n }\n this.alertService.success('Deployment successful');\n this.selectedVersion = null;\n });\n });\n }\n\n reset() {\n this.bpmnModeler.destroy();\n this.bpmnViewer.destroy();\n this.init();\n }\n\n download() {\n this.bpmnModeler.saveXML((err: any, xml: any) => {\n const file = new Blob([xml], {type: 'text/xml'});\n const link = document.createElement('a');\n link.download = 'diagram.bpmn';\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n });\n }\n\n loadEmptyBpmn() {\n const url = '/assets/bpmn/initial.bpmn';\n this.http\n .get(url, {\n headers: {observe: 'response'},\n responseType: 'text',\n })\n .subscribe((xml: any) => {\n this.bpmnModeler.importXML(xml);\n this.bpmnViewer.importXML(xml);\n });\n }\n\n getElementTemplates(): Observable<any>[] {\n const templateObs = [];\n for (const file of this.elementTemplateFiles) {\n templateObs.push(\n this.http.get(`/assets/bpmn/element-templates/${file}.json`, {\n headers: {observe: 'response'},\n responseType: 'json',\n })\n );\n }\n return templateObs;\n }\n\n private setLatestVersion() {\n this.selectedVersion = this.processDefinitionVersions.reduce((acc, version) =>\n version.version > acc.version ? version : acc\n );\n this.loadProcessBpmn();\n }\n\n loadProcessVersions(processDefinitionKey: string) {\n this.processService\n .getProcessDefinitionVersions(processDefinitionKey)\n .subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.processDefinitionVersions = processDefinitionVersions;\n this.setLatestVersion();\n });\n }\n\n compareProcessDefinitions(pd1: ProcessDefinition, pd2: ProcessDefinition) {\n if (pd1 === null && pd2 === null) {\n return true;\n }\n if (pd1 === null || pd2 === null) {\n return false;\n }\n return pd1.id === pd2.id;\n }\n\n loadProcessBpmn() {\n this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(result => {\n this.bpmnModeler.importXML(result['bpmn20Xml']);\n this.bpmnViewer.importXML(result['bpmn20Xml']);\n this.isReadOnlyProcess$.next(result.readOnly);\n this.isSystemProcess$.next(result.systemProcess);\n });\n }\n\n ngOnDestroy() {\n this.bpmnModeler.destroy();\n this.bpmnViewer.destroy();\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\n<div class=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-4\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n <span class=\"badge badge-pill badge-info mr-1\" *ngIf=\"isReadOnlyProcess$ | async\">\n {{ 'processManagement.readOnly' | translate }}\n </span>\n <span class=\"badge badge-pill badge-warning mr-1\" *ngIf=\"isSystemProcess$ | async\">\n {{ 'processManagement.systemProcess' | translate }}\n </span>\n </div>\n <div class=\"col-md-2 offset-md-2\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control select-version-control\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-auto d-flex align-items-end text-right\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 fullscreen-toggle text-right\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async)\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.readOnlySystemProcessWarningMessage'\"\n ></div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async) === false\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.systemProcessWarningMessage'\"\n ></div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div\n id=\"readOnlyCanvas\"\n class=\"col-12\"\n [hidden]=\"(isReadOnlyProcess$ | async) === false\"\n ></div>\n </div>\n </div>\n </div>\n</div>\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 {ProcessManagementComponent} from './process-management.component';\nimport {ProcessManagementBuilderComponent} from './process-management-builder/process-management-builder.component';\nimport {ROLE_ADMIN} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'processes',\n component: ProcessManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Processes', roles: [ROLE_ADMIN]},\n },\n {\n path: 'processes/create',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Create new Process', roles: [ROLE_ADMIN]},\n },\n {\n path: 'processes/process/:key',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process details', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ProcessManagementRoutingModule {}\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 {ProcessManagementComponent} from './process-management.component';\nimport {ProcessManagementRoutingModule} from './process-management-routing';\nimport {CommonModule} from '@angular/common';\nimport {ProcessManagementBuilderComponent} from './process-management-builder/process-management-builder.component';\nimport {ProcessManagementListComponent} from './process-management-list/process-management-list.component';\nimport {ListModule, WidgetModule} from '@valtimo/components';\nimport {FormsModule} from '@angular/forms';\nimport {ProcessManagementUploadComponent} from './process-management-upload/process-management-upload.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [\n ProcessManagementComponent,\n ProcessManagementBuilderComponent,\n ProcessManagementListComponent,\n ProcessManagementUploadComponent,\n ],\n imports: [\n CommonModule,\n ProcessManagementRoutingModule,\n WidgetModule,\n ListModule,\n FormsModule,\n TranslateModule,\n ],\n exports: [ProcessManagementComponent],\n})\nexport class ProcessManagementModule {}\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 process-management\n */\n\nexport * from './lib/process-management.module';\nexport * from './lib/process-management.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ProcessManagementService","i2","i1","i3","i1.ProcessManagementUploadComponent","i2.ProcessManagementListComponent","i4","i8"],"mappings":"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"}
|
|
@@ -13,8 +13,9 @@ import { TranslateModule } from '@ngx-translate/core';
|
|
|
13
13
|
import * as i6 from '@angular/common';
|
|
14
14
|
import { CommonModule } from '@angular/common';
|
|
15
15
|
import { AuthGuardService } from '@valtimo/security';
|
|
16
|
-
import { forkJoin } from 'rxjs';
|
|
16
|
+
import { BehaviorSubject, forkJoin } from 'rxjs';
|
|
17
17
|
import Modeler from 'bpmn-js/lib/Modeler';
|
|
18
|
+
import BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';
|
|
18
19
|
import PropertiesPanelModule from 'bpmn-js-properties-panel';
|
|
19
20
|
import PropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda';
|
|
20
21
|
import CamundaExtensionModule from 'camunda-bpmn-moddle/lib';
|
|
@@ -135,6 +136,7 @@ class ProcessManagementListComponent {
|
|
|
135
136
|
this.fields = [
|
|
136
137
|
{ key: 'key', label: 'Key' },
|
|
137
138
|
{ key: 'name', label: 'Name' },
|
|
139
|
+
{ key: 'readOnly', label: 'Read-only' },
|
|
138
140
|
];
|
|
139
141
|
}
|
|
140
142
|
ngOnInit() {
|
|
@@ -211,6 +213,8 @@ class ProcessManagementBuilderComponent {
|
|
|
211
213
|
this.processDefinitionVersions = null;
|
|
212
214
|
this.selectedVersion = null;
|
|
213
215
|
this.processKey = null;
|
|
216
|
+
this.isReadOnlyProcess$ = new BehaviorSubject(false);
|
|
217
|
+
this.isSystemProcess$ = new BehaviorSubject(false);
|
|
214
218
|
this.elementTemplateFiles = ['mailSendTask'];
|
|
215
219
|
}
|
|
216
220
|
ngOnInit() {
|
|
@@ -235,6 +239,8 @@ class ProcessManagementBuilderComponent {
|
|
|
235
239
|
},
|
|
236
240
|
elementTemplates,
|
|
237
241
|
});
|
|
242
|
+
this.bpmnViewer = new BpmnJS();
|
|
243
|
+
this.bpmnViewer.attachTo('#readOnlyCanvas');
|
|
238
244
|
if (this.processKey) {
|
|
239
245
|
this.loadProcessVersions(this.processKey);
|
|
240
246
|
this.selectedVersion = null;
|
|
@@ -260,6 +266,7 @@ class ProcessManagementBuilderComponent {
|
|
|
260
266
|
}
|
|
261
267
|
reset() {
|
|
262
268
|
this.bpmnModeler.destroy();
|
|
269
|
+
this.bpmnViewer.destroy();
|
|
263
270
|
this.init();
|
|
264
271
|
}
|
|
265
272
|
download() {
|
|
@@ -282,6 +289,7 @@ class ProcessManagementBuilderComponent {
|
|
|
282
289
|
})
|
|
283
290
|
.subscribe((xml) => {
|
|
284
291
|
this.bpmnModeler.importXML(xml);
|
|
292
|
+
this.bpmnViewer.importXML(xml);
|
|
285
293
|
});
|
|
286
294
|
}
|
|
287
295
|
getElementTemplates() {
|
|
@@ -316,19 +324,23 @@ class ProcessManagementBuilderComponent {
|
|
|
316
324
|
return pd1.id === pd2.id;
|
|
317
325
|
}
|
|
318
326
|
loadProcessBpmn() {
|
|
319
|
-
this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(
|
|
320
|
-
this.bpmnModeler.importXML(
|
|
327
|
+
this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(result => {
|
|
328
|
+
this.bpmnModeler.importXML(result['bpmn20Xml']);
|
|
329
|
+
this.bpmnViewer.importXML(result['bpmn20Xml']);
|
|
330
|
+
this.isReadOnlyProcess$.next(result.readOnly);
|
|
331
|
+
this.isSystemProcess$.next(result.systemProcess);
|
|
321
332
|
});
|
|
322
333
|
}
|
|
323
334
|
ngOnDestroy() {
|
|
324
335
|
this.bpmnModeler.destroy();
|
|
336
|
+
this.bpmnViewer.destroy();
|
|
325
337
|
}
|
|
326
338
|
}
|
|
327
339
|
ProcessManagementBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ProcessManagementBuilderComponent, deps: [{ token: i2.HttpClient }, { token: i1$1.ProcessService }, { token: i3.LayoutService }, { token: i2$1.AlertService }, { token: i5.ActivatedRoute }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
-
ProcessManagementBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ProcessManagementBuilderComponent, selector: "valtimo-process-management-builder", ngImport: i0, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-
|
|
340
|
+
ProcessManagementBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ProcessManagementBuilderComponent, selector: "valtimo-process-management-builder", ngImport: i0, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-4\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n <span class=\"badge badge-pill badge-info mr-1\" *ngIf=\"isReadOnlyProcess$ | async\">\n {{ 'processManagement.readOnly' | translate }}\n </span>\n <span class=\"badge badge-pill badge-warning mr-1\" *ngIf=\"isSystemProcess$ | async\">\n {{ 'processManagement.systemProcess' | translate }}\n </span>\n </div>\n <div class=\"col-md-2 offset-md-2\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control select-version-control\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-auto d-flex align-items-end text-right\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 fullscreen-toggle text-right\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async)\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.readOnlySystemProcessWarningMessage'\"\n ></div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async) === false\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.systemProcessWarningMessage'\"\n ></div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div\n id=\"readOnlyCanvas\"\n class=\"col-12\"\n [hidden]=\"(isReadOnlyProcess$ | async) === false\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n", 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 */.versions,.diagram{border:1px solid #dee2e6}.process-title{color:#6b6b6b;font-size:1.5rem}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.modeler{height:90vh}.select-version-control{width:90px}#properties{border-left:1px solid #dee2e6;padding-left:0}#readOnlyCanvas{height:90vh}\n"], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i4.TranslatePipe, "async": i6.AsyncPipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
329
341
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ProcessManagementBuilderComponent, decorators: [{
|
|
330
342
|
type: Component,
|
|
331
|
-
args: [{ selector: 'valtimo-process-management-builder', encapsulation: ViewEncapsulation.None, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-
|
|
343
|
+
args: [{ selector: 'valtimo-process-management-builder', encapsulation: ViewEncapsulation.None, 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=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-4\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n <span class=\"badge badge-pill badge-info mr-1\" *ngIf=\"isReadOnlyProcess$ | async\">\n {{ 'processManagement.readOnly' | translate }}\n </span>\n <span class=\"badge badge-pill badge-warning mr-1\" *ngIf=\"isSystemProcess$ | async\">\n {{ 'processManagement.systemProcess' | translate }}\n </span>\n </div>\n <div class=\"col-md-2 offset-md-2\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control select-version-control\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-auto d-flex align-items-end text-right\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 fullscreen-toggle text-right\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async)\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.readOnlySystemProcessWarningMessage'\"\n ></div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async) === false\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.systemProcessWarningMessage'\"\n ></div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div\n id=\"readOnlyCanvas\"\n class=\"col-12\"\n [hidden]=\"(isReadOnlyProcess$ | async) === false\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n", 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 */.versions,.diagram{border:1px solid #dee2e6}.process-title{color:#6b6b6b;font-size:1.5rem}.fullscreen-toggle{font-size:2rem}.fullscreen-toggle>i{cursor:pointer}.modeler{height:90vh}.select-version-control{width:90px}#properties{border-left:1px solid #dee2e6;padding-left:0}#readOnlyCanvas{height:90vh}\n"] }]
|
|
332
344
|
}], ctorParameters: function () { return [{ type: i2.HttpClient }, { type: i1$1.ProcessService }, { type: i3.LayoutService }, { type: i2$1.AlertService }, { type: i5.ActivatedRoute }, { type: i5.Router }]; } });
|
|
333
345
|
|
|
334
346
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-process-management.mjs","sources":["../../../../projects/valtimo/process-management/src/lib/process-management.service.ts","../../../../projects/valtimo/process-management/src/lib/process-management-upload/process-management-upload.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-upload/process-management-upload.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.html","../../../../projects/valtimo/process-management/src/lib/process-management.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-routing.ts","../../../../projects/valtimo/process-management/src/lib/process-management.module.ts","../../../../projects/valtimo/process-management/src/public-api.ts","../../../../projects/valtimo/process-management/src/valtimo-process-management.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';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessManagementService {\n private valtimoApiConfig: any;\n\n constructor(private configService: ConfigService, private http: HttpClient) {\n this.valtimoApiConfig = configService.config.valtimoApi;\n }\n\n deployBpmn(bpmn: File): Observable<any> {\n const formData: FormData = new FormData();\n formData.append('file', bpmn);\n formData.append('deployment-name', 'valtimoConsoleApp');\n formData.append('deployment-source', 'process application');\n return this.http.post<any>(\n `${this.valtimoApiConfig.endpointUri}camunda-rest/engine/default/deployment/create`,\n formData\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 {Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {ProcessManagementService} from '../process-management.service';\nimport {AlertService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-process-management-upload',\n templateUrl: './process-management-upload.component.html',\n styleUrls: ['./process-management-upload.component.scss'],\n})\nexport class ProcessManagementUploadComponent implements OnInit {\n public bpmn: File | null = null;\n @Output() reload = new EventEmitter();\n @ViewChild('bpmnFile') bpmnFile: ElementRef;\n\n constructor(\n private processManagementService: ProcessManagementService,\n private alertService: AlertService\n ) {}\n\n ngOnInit() {}\n\n onChange(files: FileList): void {\n this.bpmn = files.item(0);\n }\n\n uploadProcessBpmn() {\n this.processManagementService.deployBpmn(this.bpmn).subscribe(\n () => {\n this.bpmn = null;\n this.bpmnFile.nativeElement.value = '';\n this.alertService.success('Deployment successful');\n this.reload.emit();\n },\n error => {\n this.bpmn = null;\n this.bpmnFile.nativeElement.value = '';\n this.alertService.error(`Deployment failed. ${error}`);\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\n<div\n class=\"modal fade\"\n id=\"uploadProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"uploadProcessLabel\"\n aria-hidden=\"true\"\n>\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"uploadProcessLabel\">Upload process</h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <h5>BPMN Model</h5>\n <input\n #bpmnFile\n type=\"file\"\n id=\"file\"\n accept=\".bpmn\"\n (change)=\"onChange($event.target.files)\"\n />\n </div>\n <div class=\"modal-footer\">\n <div class=\"btn-group\">\n <button\n type=\"button\"\n class=\"btn btn-primary btn-space\"\n (click)=\"uploadProcessBpmn()\"\n [disabled]=\"!bpmn\"\n data-dismiss=\"modal\"\n >\n Upload\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\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, OnInit} from '@angular/core';\nimport {ProcessService, ProcessDefinition} from '@valtimo/process';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'valtimo-process-management-list',\n templateUrl: './process-management-list.component.html',\n styleUrls: ['./process-management-list.component.scss'],\n})\nexport class ProcessManagementListComponent implements OnInit {\n public processDefinitions: ProcessDefinition[] = [];\n public fields = [\n {key: 'key', label: 'Key'},\n {key: 'name', label: 'Name'},\n ];\n\n constructor(private processService: ProcessService, private router: Router) {}\n\n ngOnInit() {\n this.loadProcessDefinitions();\n }\n\n loadProcessDefinitions() {\n this.processService.getProcessDefinitions().subscribe((processDefs: ProcessDefinition[]) => {\n this.processDefinitions = processDefs;\n });\n }\n\n editProcessDefinition(processDefinition: ProcessDefinition) {\n this.router.navigate(['/processes/process', processDefinition.key]);\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\n<valtimo-widget>\n <valtimo-list\n [items]=\"processDefinitions\"\n [fields]=\"fields\"\n (rowClicked)=\"editProcessDefinition($event)\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Processes' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Processes' | translate }}</h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\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, OnInit, ViewChild} from '@angular/core';\nimport {ProcessManagementListComponent} from './process-management-list/process-management-list.component';\n\n@Component({\n selector: 'valtimo-process-management',\n templateUrl: './process-management.component.html',\n styleUrls: ['./process-management.component.scss'],\n})\nexport class ProcessManagementComponent implements OnInit {\n @ViewChild('processManagementList') processManagementList: ProcessManagementListComponent;\n\n constructor() {}\n\n ngOnInit() {}\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<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3\">\n <button\n class=\"btn btn-secondary btn-space\"\n data-toggle=\"modal\"\n data-target=\"#uploadProcess\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload process' | translate }}\n </button>\n <button class=\"btn btn-primary btn-space\" [routerLink]=\"'create'\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'Create new Process' | translate }}\n </button>\n </div>\n </div>\n <valtimo-process-management-upload\n (reload)=\"processManagementList.loadProcessDefinitions()\"\n ></valtimo-process-management-upload>\n <valtimo-process-management-list #processManagementList></valtimo-process-management-list>\n </div>\n</div>\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, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {ProcessService, ProcessDefinition} from '@valtimo/process';\nimport {AlertService} from '@valtimo/components';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {forkJoin, Observable} from 'rxjs';\nimport {LayoutService} from '@valtimo/layout';\nimport Modeler from 'bpmn-js/lib/Modeler';\nimport PropertiesPanelModule from 'bpmn-js-properties-panel';\nimport PropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda';\nimport CamundaExtensionModule from 'camunda-bpmn-moddle/lib';\nimport CamundaModdleDescriptor from 'camunda-bpmn-moddle/resources/camunda.json';\n\n@Component({\n selector: 'valtimo-process-management-builder',\n templateUrl: './process-management-builder.component.html',\n styleUrls: ['./process-management-builder.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ProcessManagementBuilderComponent implements OnInit, OnDestroy {\n public bpmnModeler;\n public processDefinitionVersions: ProcessDefinition[] | null = null;\n public selectedVersion: ProcessDefinition | null = null;\n public processKey: string | null = null;\n private elementTemplateFiles: string[] = ['mailSendTask'];\n\n constructor(\n private http: HttpClient,\n private processService: ProcessService,\n public layoutService: LayoutService,\n private alertService: AlertService,\n private route: ActivatedRoute,\n private router: Router\n ) {}\n\n ngOnInit() {\n this.init();\n }\n\n init() {\n this.processKey = this.route.snapshot.paramMap.get('key');\n forkJoin(this.getElementTemplates()).subscribe((elementTemplates: any[]) => {\n this.bpmnModeler = new Modeler({\n container: '#canvas',\n height: '90vh',\n additionalModules: [\n PropertiesPanelModule,\n PropertiesProviderModule,\n CamundaExtensionModule,\n ],\n propertiesPanel: {\n parent: '#properties',\n },\n moddleExtensions: {\n camunda: CamundaModdleDescriptor,\n },\n elementTemplates,\n });\n if (this.processKey) {\n this.loadProcessVersions(this.processKey);\n this.selectedVersion = null;\n } else {\n this.loadEmptyBpmn();\n }\n });\n }\n\n deploy(): void {\n this.bpmnModeler.saveXML((err: any, xml: any) => {\n this.processService.deployProcess(xml).subscribe(asd => {\n if (this.processKey) {\n this.loadProcessVersions(this.processKey);\n } else {\n this.router.navigate(['/processes']);\n }\n this.alertService.success('Deployment successful');\n this.selectedVersion = null;\n });\n });\n }\n\n reset() {\n this.bpmnModeler.destroy();\n this.init();\n }\n\n download() {\n this.bpmnModeler.saveXML((err: any, xml: any) => {\n const file = new Blob([xml], {type: 'text/xml'});\n const link = document.createElement('a');\n link.download = 'diagram.bpmn';\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n });\n }\n\n loadEmptyBpmn() {\n const url = '/assets/bpmn/initial.bpmn';\n this.http\n .get(url, {\n headers: {observe: 'response'},\n responseType: 'text',\n })\n .subscribe((xml: any) => {\n this.bpmnModeler.importXML(xml);\n });\n }\n\n getElementTemplates(): Observable<any>[] {\n const templateObs = [];\n for (const file of this.elementTemplateFiles) {\n templateObs.push(\n this.http.get(`/assets/bpmn/element-templates/${file}.json`, {\n headers: {observe: 'response'},\n responseType: 'json',\n })\n );\n }\n return templateObs;\n }\n\n private setLatestVersion() {\n this.selectedVersion = this.processDefinitionVersions.reduce((acc, version) =>\n version.version > acc.version ? version : acc\n );\n this.loadProcessBpmn();\n }\n\n loadProcessVersions(processDefinitionKey: string) {\n this.processService\n .getProcessDefinitionVersions(processDefinitionKey)\n .subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.processDefinitionVersions = processDefinitionVersions;\n this.setLatestVersion();\n });\n }\n\n compareProcessDefinitions(pd1: ProcessDefinition, pd2: ProcessDefinition) {\n if (pd1 === null && pd2 === null) {\n return true;\n }\n if (pd1 === null || pd2 === null) {\n return false;\n }\n return pd1.id === pd2.id;\n }\n\n loadProcessBpmn() {\n this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(xml => {\n this.bpmnModeler.importXML(xml['bpmn20Xml']);\n });\n }\n\n ngOnDestroy() {\n this.bpmnModeler.destroy();\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\n<div class=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-2\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n </div>\n <div class=\"col-md-1 offset-md-6\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control w-100\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-2 d-flex align-items-end\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"deploy()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button class=\"btn btn-secondary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 text-right fullscreen-toggle\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\"></div>\n </div>\n </div>\n </div>\n</div>\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 {ProcessManagementComponent} from './process-management.component';\nimport {ProcessManagementBuilderComponent} from './process-management-builder/process-management-builder.component';\nimport {ROLE_ADMIN} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'processes',\n component: ProcessManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Processes', roles: [ROLE_ADMIN]},\n },\n {\n path: 'processes/create',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Create new Process', roles: [ROLE_ADMIN]},\n },\n {\n path: 'processes/process/:key',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process details', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ProcessManagementRoutingModule {}\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 {ProcessManagementComponent} from './process-management.component';\nimport {ProcessManagementRoutingModule} from './process-management-routing';\nimport {CommonModule} from '@angular/common';\nimport {ProcessManagementBuilderComponent} from './process-management-builder/process-management-builder.component';\nimport {ProcessManagementListComponent} from './process-management-list/process-management-list.component';\nimport {ListModule, WidgetModule} from '@valtimo/components';\nimport {FormsModule} from '@angular/forms';\nimport {ProcessManagementUploadComponent} from './process-management-upload/process-management-upload.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [\n ProcessManagementComponent,\n ProcessManagementBuilderComponent,\n ProcessManagementListComponent,\n ProcessManagementUploadComponent,\n ],\n imports: [\n CommonModule,\n ProcessManagementRoutingModule,\n WidgetModule,\n ListModule,\n FormsModule,\n TranslateModule,\n ],\n exports: [ProcessManagementComponent],\n})\nexport class ProcessManagementModule {}\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 process-management\n */\n\nexport * from './lib/process-management.module';\nexport * from './lib/process-management.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ProcessManagementService","i2","i1","i3","i1.ProcessManagementUploadComponent","i2.ProcessManagementListComponent","i4","i8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-process-management.mjs","sources":["../../../../projects/valtimo/process-management/src/lib/process-management.service.ts","../../../../projects/valtimo/process-management/src/lib/process-management-upload/process-management-upload.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-upload/process-management-upload.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.html","../../../../projects/valtimo/process-management/src/lib/process-management.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.ts","../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.html","../../../../projects/valtimo/process-management/src/lib/process-management-routing.ts","../../../../projects/valtimo/process-management/src/lib/process-management.module.ts","../../../../projects/valtimo/process-management/src/public-api.ts","../../../../projects/valtimo/process-management/src/valtimo-process-management.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';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessManagementService {\n private valtimoApiConfig: any;\n\n constructor(private configService: ConfigService, private http: HttpClient) {\n this.valtimoApiConfig = configService.config.valtimoApi;\n }\n\n deployBpmn(bpmn: File): Observable<any> {\n const formData: FormData = new FormData();\n formData.append('file', bpmn);\n formData.append('deployment-name', 'valtimoConsoleApp');\n formData.append('deployment-source', 'process application');\n return this.http.post<any>(\n `${this.valtimoApiConfig.endpointUri}camunda-rest/engine/default/deployment/create`,\n formData\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 {Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {ProcessManagementService} from '../process-management.service';\nimport {AlertService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-process-management-upload',\n templateUrl: './process-management-upload.component.html',\n styleUrls: ['./process-management-upload.component.scss'],\n})\nexport class ProcessManagementUploadComponent implements OnInit {\n public bpmn: File | null = null;\n @Output() reload = new EventEmitter();\n @ViewChild('bpmnFile') bpmnFile: ElementRef;\n\n constructor(\n private processManagementService: ProcessManagementService,\n private alertService: AlertService\n ) {}\n\n ngOnInit() {}\n\n onChange(files: FileList): void {\n this.bpmn = files.item(0);\n }\n\n uploadProcessBpmn() {\n this.processManagementService.deployBpmn(this.bpmn).subscribe(\n () => {\n this.bpmn = null;\n this.bpmnFile.nativeElement.value = '';\n this.alertService.success('Deployment successful');\n this.reload.emit();\n },\n error => {\n this.bpmn = null;\n this.bpmnFile.nativeElement.value = '';\n this.alertService.error(`Deployment failed. ${error}`);\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\n<div\n class=\"modal fade\"\n id=\"uploadProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"uploadProcessLabel\"\n aria-hidden=\"true\"\n>\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"uploadProcessLabel\">Upload process</h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <h5>BPMN Model</h5>\n <input\n #bpmnFile\n type=\"file\"\n id=\"file\"\n accept=\".bpmn\"\n (change)=\"onChange($event.target.files)\"\n />\n </div>\n <div class=\"modal-footer\">\n <div class=\"btn-group\">\n <button\n type=\"button\"\n class=\"btn btn-primary btn-space\"\n (click)=\"uploadProcessBpmn()\"\n [disabled]=\"!bpmn\"\n data-dismiss=\"modal\"\n >\n Upload\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\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, OnInit} from '@angular/core';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'valtimo-process-management-list',\n templateUrl: './process-management-list.component.html',\n styleUrls: ['./process-management-list.component.scss'],\n})\nexport class ProcessManagementListComponent implements OnInit {\n public processDefinitions: ProcessDefinition[] = [];\n public fields = [\n {key: 'key', label: 'Key'},\n {key: 'name', label: 'Name'},\n {key: 'readOnly', label: 'Read-only'},\n ];\n\n constructor(private processService: ProcessService, private router: Router) {}\n\n ngOnInit() {\n this.loadProcessDefinitions();\n }\n\n loadProcessDefinitions() {\n this.processService.getProcessDefinitions().subscribe((processDefs: ProcessDefinition[]) => {\n this.processDefinitions = processDefs;\n });\n }\n\n editProcessDefinition(processDefinition: ProcessDefinition) {\n this.router.navigate(['/processes/process', processDefinition.key]);\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\n<valtimo-widget>\n <valtimo-list\n [items]=\"processDefinitions\"\n [fields]=\"fields\"\n (rowClicked)=\"editProcessDefinition($event)\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Processes' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Processes' | translate }}</h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\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, OnInit, ViewChild} from '@angular/core';\nimport {ProcessManagementListComponent} from './process-management-list/process-management-list.component';\n\n@Component({\n selector: 'valtimo-process-management',\n templateUrl: './process-management.component.html',\n styleUrls: ['./process-management.component.scss'],\n})\nexport class ProcessManagementComponent implements OnInit {\n @ViewChild('processManagementList') processManagementList: ProcessManagementListComponent;\n\n constructor() {}\n\n ngOnInit() {}\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<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3\">\n <button\n class=\"btn btn-secondary btn-space\"\n data-toggle=\"modal\"\n data-target=\"#uploadProcess\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload process' | translate }}\n </button>\n <button class=\"btn btn-primary btn-space\" [routerLink]=\"'create'\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'Create new Process' | translate }}\n </button>\n </div>\n </div>\n <valtimo-process-management-upload\n (reload)=\"processManagementList.loadProcessDefinitions()\"\n ></valtimo-process-management-upload>\n <valtimo-process-management-list #processManagementList></valtimo-process-management-list>\n </div>\n</div>\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, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\nimport {AlertService} from '@valtimo/components';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {BehaviorSubject, forkJoin, Observable} from 'rxjs';\nimport {LayoutService} from '@valtimo/layout';\nimport Modeler from 'bpmn-js/lib/Modeler';\nimport BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport PropertiesPanelModule from 'bpmn-js-properties-panel';\nimport PropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda';\nimport CamundaExtensionModule from 'camunda-bpmn-moddle/lib';\nimport CamundaModdleDescriptor from 'camunda-bpmn-moddle/resources/camunda.json';\n\n@Component({\n selector: 'valtimo-process-management-builder',\n templateUrl: './process-management-builder.component.html',\n styleUrls: ['./process-management-builder.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ProcessManagementBuilderComponent implements OnInit, OnDestroy {\n public bpmnModeler;\n public bpmnViewer;\n public processDefinitionVersions: ProcessDefinition[] | null = null;\n public selectedVersion: ProcessDefinition | null = null;\n public processKey: string | null = null;\n public isReadOnlyProcess$ = new BehaviorSubject<boolean>(false);\n public isSystemProcess$ = new BehaviorSubject<boolean>(false);\n private elementTemplateFiles: string[] = ['mailSendTask'];\n\n constructor(\n private http: HttpClient,\n private processService: ProcessService,\n public layoutService: LayoutService,\n private alertService: AlertService,\n private route: ActivatedRoute,\n private router: Router\n ) {}\n\n ngOnInit() {\n this.init();\n }\n\n init() {\n this.processKey = this.route.snapshot.paramMap.get('key');\n forkJoin(this.getElementTemplates()).subscribe((elementTemplates: any[]) => {\n this.bpmnModeler = new Modeler({\n container: '#canvas',\n height: '90vh',\n additionalModules: [\n PropertiesPanelModule,\n PropertiesProviderModule,\n CamundaExtensionModule,\n ],\n propertiesPanel: {\n parent: '#properties',\n },\n moddleExtensions: {\n camunda: CamundaModdleDescriptor,\n },\n elementTemplates,\n });\n this.bpmnViewer = new BpmnJS();\n this.bpmnViewer.attachTo('#readOnlyCanvas');\n if (this.processKey) {\n this.loadProcessVersions(this.processKey);\n this.selectedVersion = null;\n } else {\n this.loadEmptyBpmn();\n }\n });\n }\n\n deploy(): void {\n this.bpmnModeler.saveXML((err: any, xml: any) => {\n this.processService.deployProcess(xml).subscribe(asd => {\n if (this.processKey) {\n this.loadProcessVersions(this.processKey);\n } else {\n this.router.navigate(['/processes']);\n }\n this.alertService.success('Deployment successful');\n this.selectedVersion = null;\n });\n });\n }\n\n reset() {\n this.bpmnModeler.destroy();\n this.bpmnViewer.destroy();\n this.init();\n }\n\n download() {\n this.bpmnModeler.saveXML((err: any, xml: any) => {\n const file = new Blob([xml], {type: 'text/xml'});\n const link = document.createElement('a');\n link.download = 'diagram.bpmn';\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n });\n }\n\n loadEmptyBpmn() {\n const url = '/assets/bpmn/initial.bpmn';\n this.http\n .get(url, {\n headers: {observe: 'response'},\n responseType: 'text',\n })\n .subscribe((xml: any) => {\n this.bpmnModeler.importXML(xml);\n this.bpmnViewer.importXML(xml);\n });\n }\n\n getElementTemplates(): Observable<any>[] {\n const templateObs = [];\n for (const file of this.elementTemplateFiles) {\n templateObs.push(\n this.http.get(`/assets/bpmn/element-templates/${file}.json`, {\n headers: {observe: 'response'},\n responseType: 'json',\n })\n );\n }\n return templateObs;\n }\n\n private setLatestVersion() {\n this.selectedVersion = this.processDefinitionVersions.reduce((acc, version) =>\n version.version > acc.version ? version : acc\n );\n this.loadProcessBpmn();\n }\n\n loadProcessVersions(processDefinitionKey: string) {\n this.processService\n .getProcessDefinitionVersions(processDefinitionKey)\n .subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.processDefinitionVersions = processDefinitionVersions;\n this.setLatestVersion();\n });\n }\n\n compareProcessDefinitions(pd1: ProcessDefinition, pd2: ProcessDefinition) {\n if (pd1 === null && pd2 === null) {\n return true;\n }\n if (pd1 === null || pd2 === null) {\n return false;\n }\n return pd1.id === pd2.id;\n }\n\n loadProcessBpmn() {\n this.processService.getProcessDefinitionXml(this.selectedVersion.id).subscribe(result => {\n this.bpmnModeler.importXML(result['bpmn20Xml']);\n this.bpmnViewer.importXML(result['bpmn20Xml']);\n this.isReadOnlyProcess$.next(result.readOnly);\n this.isSystemProcess$.next(result.systemProcess);\n });\n }\n\n ngOnDestroy() {\n this.bpmnModeler.destroy();\n this.bpmnViewer.destroy();\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\n<div class=\"mb-5\" [ngClass]=\"{'main-content pt-0': !layoutService.isFullscreen}\">\n <div [ngClass]=\"{'container-fluid': !layoutService.isFullscreen}\">\n <div class=\"text-right\">\n <div\n class=\"btn-group mt-m3px mb-3\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && !layoutService.isFullscreen\"\n >\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i>{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n [ngClass]=\"{'mr-0': selectedVersion !== null}\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button\n *ngIf=\"selectedVersion === null\"\n class=\"btn btn-danger btn-space mr-0\"\n (click)=\"reset()\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n\n <div class=\"modeler pl-3 pr-3 mb-3\" [ngClass]=\"{'mt-4': !layoutService.isFullscreen}\">\n <div\n class=\"row pt-4 pb-3 bg-light versions\"\n *ngIf=\"processDefinitionVersions\"\n [ngClass]=\"{'border-bottom-0': selectedVersion !== null}\"\n >\n <div class=\"col-md-4\" *ngIf=\"processDefinitionVersions.length > 0\">\n <h2 class=\"process-title\">\n {{ processDefinitionVersions[0].name }}\n </h2>\n <span class=\"badge badge-pill badge-info mr-1\" *ngIf=\"isReadOnlyProcess$ | async\">\n {{ 'processManagement.readOnly' | translate }}\n </span>\n <span class=\"badge badge-pill badge-warning mr-1\" *ngIf=\"isSystemProcess$ | async\">\n {{ 'processManagement.systemProcess' | translate }}\n </span>\n </div>\n <div class=\"col-md-2 offset-md-2\">\n <label for=\"processVersion\"><strong>Version</strong></label>\n <select\n id=\"processVersion\"\n class=\"form-control select-version-control\"\n [(ngModel)]=\"selectedVersion\"\n (change)=\"loadProcessBpmn()\"\n [compareWith]=\"compareProcessDefinitions\"\n >\n <option [ngValue]=\"null\" disabled selected>Version</option>\n <option\n *ngFor=\"let processDefinition of processDefinitionVersions\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.version }}\n </option>\n </select>\n </div>\n <div\n class=\"col-md-auto d-flex align-items-end text-right\"\n *ngIf=\"(selectedVersion !== null || processKey === null) && layoutService.isFullscreen\"\n >\n <div class=\"btn-group\">\n <button class=\"btn btn-primary btn-space\" (click)=\"download()\">\n <i class=\"icon mdi mdi-download mr-1\"></i\n >{{ 'processManagement.download' | translate }}\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"deploy()\"\n *ngIf=\"(isReadOnlyProcess$ | async) === false\"\n >\n <i class=\"icon mdi mdi-upload mr-1\"></i>{{ 'processManagement.deploy' | translate }}\n </button>\n <button *ngIf=\"!selectedVersion\" class=\"btn btn-danger btn-space\" (click)=\"reset()\">\n <i class=\"icon mdi mdi-delete mr-1\"></i>{{ 'processManagement.clear' | translate }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"selectedVersion\"\n class=\"col-md-1 fullscreen-toggle text-right\"\n [ngClass]=\"{'offset-md-2': !layoutService.isFullscreen}\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-expand-arrows-alt': !layoutService.isFullscreen,\n 'fa-compress-arrows-alt': layoutService.isFullscreen\n }\"\n (click)=\"layoutService.toggleFullscreen()\"\n ></i>\n </div>\n </div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async)\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.readOnlySystemProcessWarningMessage'\"\n ></div>\n <div\n *ngIf=\"(isSystemProcess$ | async) && (isReadOnlyProcess$ | async) === false\"\n class=\"row bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'processManagement.systemProcessWarningMessage'\"\n ></div>\n <div [hidden]=\"!selectedVersion && processKey\" class=\"row bg-white diagram mb-3\">\n <div id=\"canvas\" class=\"col-9\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div id=\"properties\" class=\"col-3 pr-0\" [hidden]=\"isReadOnlyProcess$ | async\"></div>\n <div\n id=\"readOnlyCanvas\"\n class=\"col-12\"\n [hidden]=\"(isReadOnlyProcess$ | async) === false\"\n ></div>\n </div>\n </div>\n </div>\n</div>\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 {ProcessManagementComponent} from './process-management.component';\nimport {ProcessManagementBuilderComponent} from './process-management-builder/process-management-builder.component';\nimport {ROLE_ADMIN} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'processes',\n component: ProcessManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Processes', roles: [ROLE_ADMIN]},\n },\n {\n path: 'processes/create',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Create new Process', roles: [ROLE_ADMIN]},\n },\n {\n path: 'processes/process/:key',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process details', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ProcessManagementRoutingModule {}\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 {ProcessManagementComponent} from './process-management.component';\nimport {ProcessManagementRoutingModule} from './process-management-routing';\nimport {CommonModule} from '@angular/common';\nimport {ProcessManagementBuilderComponent} from './process-management-builder/process-management-builder.component';\nimport {ProcessManagementListComponent} from './process-management-list/process-management-list.component';\nimport {ListModule, WidgetModule} from '@valtimo/components';\nimport {FormsModule} from '@angular/forms';\nimport {ProcessManagementUploadComponent} from './process-management-upload/process-management-upload.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [\n ProcessManagementComponent,\n ProcessManagementBuilderComponent,\n ProcessManagementListComponent,\n ProcessManagementUploadComponent,\n ],\n imports: [\n CommonModule,\n ProcessManagementRoutingModule,\n WidgetModule,\n ListModule,\n FormsModule,\n TranslateModule,\n ],\n exports: [ProcessManagementComponent],\n})\nexport class ProcessManagementModule {}\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 process-management\n */\n\nexport * from './lib/process-management.module';\nexport * from './lib/process-management.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ProcessManagementService","i2","i1","i3","i1.ProcessManagementUploadComponent","i2.ProcessManagementListComponent","i4","i8"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import {
|
|
3
|
+
import { ProcessDefinition, ProcessService } from '@valtimo/process';
|
|
4
4
|
import { AlertService } from '@valtimo/components';
|
|
5
5
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
6
|
-
import { Observable } from 'rxjs';
|
|
6
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
7
7
|
import { LayoutService } from '@valtimo/layout';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare class ProcessManagementBuilderComponent implements OnInit, OnDestroy {
|
|
@@ -14,9 +14,12 @@ export declare class ProcessManagementBuilderComponent implements OnInit, OnDest
|
|
|
14
14
|
private route;
|
|
15
15
|
private router;
|
|
16
16
|
bpmnModeler: any;
|
|
17
|
+
bpmnViewer: any;
|
|
17
18
|
processDefinitionVersions: ProcessDefinition[] | null;
|
|
18
19
|
selectedVersion: ProcessDefinition | null;
|
|
19
20
|
processKey: string | null;
|
|
21
|
+
isReadOnlyProcess$: BehaviorSubject<boolean>;
|
|
22
|
+
isSystemProcess$: BehaviorSubject<boolean>;
|
|
20
23
|
private elementTemplateFiles;
|
|
21
24
|
constructor(http: HttpClient, processService: ProcessService, layoutService: LayoutService, alertService: AlertService, route: ActivatedRoute, router: Router);
|
|
22
25
|
ngOnInit(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-management-builder.component.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,SAAS,EAAE,MAAM,EAAoB,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"process-management-builder.component.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/process-management/src/lib/process-management-builder/process-management-builder.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,SAAS,EAAE,MAAM,EAAoB,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,eAAe,EAAY,UAAU,EAAC,MAAM,MAAM,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;;AAQ9C,qBAMa,iCAAkC,YAAW,MAAM,EAAE,SAAS;IAWvE,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,cAAc;IACf,aAAa,EAAE,aAAa;IACnC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IAfT,WAAW,MAAC;IACZ,UAAU,MAAC;IACX,yBAAyB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAQ;IAC7D,eAAe,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IACjD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,kBAAkB,2BAAuC;IACzD,gBAAgB,2BAAuC;IAC9D,OAAO,CAAC,oBAAoB,CAA8B;gBAGhD,IAAI,EAAE,UAAU,EAChB,cAAc,EAAE,cAAc,EAC/B,aAAa,EAAE,aAAa,EAC3B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,MAAM;IAGxB,QAAQ;IAIR,IAAI;IA8BJ,MAAM,IAAI,IAAI;IAcd,KAAK;IAML,QAAQ;IAYR,aAAa;IAab,mBAAmB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;IAaxC,OAAO,CAAC,gBAAgB;IAOxB,mBAAmB,CAAC,oBAAoB,EAAE,MAAM;IAShD,yBAAyB,CAAC,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB;IAUxE,eAAe;IASf,WAAW;yCAlJA,iCAAiC;2CAAjC,iCAAiC;CAsJ7C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { ProcessDefinition, ProcessService } from '@valtimo/process';
|
|
3
3
|
import { Router } from '@angular/router';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class ProcessManagementListComponent implements OnInit {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-management-list.component.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,MAAM,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"process-management-list.component.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/process-management/src/lib/process-management-list/process-management-list.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,MAAM,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;;AAEvC,qBAKa,8BAA+B,YAAW,MAAM;IAQ/C,OAAO,CAAC,cAAc;IAAkB,OAAO,CAAC,MAAM;IAP3D,kBAAkB,EAAE,iBAAiB,EAAE,CAAM;IAC7C,MAAM;;;QAIX;gBAEkB,cAAc,EAAE,cAAc,EAAU,MAAM,EAAE,MAAM;IAE1E,QAAQ;IAIR,sBAAsB;IAMtB,qBAAqB,CAAC,iBAAiB,EAAE,iBAAiB;yCApB/C,8BAA8B;2CAA9B,8BAA8B;CAuB1C"}
|