@valtimo/components 4.15.2-next-main.8
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/bundles/valtimo-components.umd.js +5089 -0
- package/bundles/valtimo-components.umd.js.map +1 -0
- package/bundles/valtimo-components.umd.min.js +17 -0
- package/bundles/valtimo-components.umd.min.js.map +1 -0
- package/esm2015/lib/alert/alert.component.js +142 -0
- package/esm2015/lib/alert/alert.module.js +28 -0
- package/esm2015/lib/alert/alert.service.js +81 -0
- package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.component.js +160 -0
- package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.module.js +30 -0
- package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.component.js +93 -0
- package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.module.js +34 -0
- package/esm2015/lib/camunda/form/camunda-form.components.js +37 -0
- package/esm2015/lib/camunda/form/camunda-form.module.js +38 -0
- package/esm2015/lib/camunda/form/custom/camunda-custom-form.component.js +42 -0
- package/esm2015/lib/camunda/form/custom/camunda-custom-form.module.js +34 -0
- package/esm2015/lib/camunda/form/generated/camunda-generated-form.component.js +69 -0
- package/esm2015/lib/camunda/form/generated/camunda-generated-form.module.js +63 -0
- package/esm2015/lib/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.js +28 -0
- package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +64 -0
- package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield.service.js +67 -0
- package/esm2015/lib/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.js +38 -0
- package/esm2015/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +66 -0
- package/esm2015/lib/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.js +31 -0
- package/esm2015/lib/camunda/form/generated/formfield/formfield.model.js +16 -0
- package/esm2015/lib/camunda/form/generated/formfield/long/camunda-long-formfield.component.js +28 -0
- package/esm2015/lib/camunda/form/generated/formfield/string/camunda-string-formfield.component.js +28 -0
- package/esm2015/lib/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.js +28 -0
- package/esm2015/lib/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.js +36 -0
- package/esm2015/lib/camunda/form/generated/formfield/validation/date.validators.js +60 -0
- package/esm2015/lib/card/card.component.js +37 -0
- package/esm2015/lib/card/card.module.js +30 -0
- package/esm2015/lib/components.module.js +22 -0
- package/esm2015/lib/data-list/data-list.component.js +34 -0
- package/esm2015/lib/data-list/data-list.module.js +30 -0
- package/esm2015/lib/dropzone/dropzone.component.js +143 -0
- package/esm2015/lib/dropzone/dropzone.module.js +32 -0
- package/esm2015/lib/field-auto-focus/field-auto-focus.directive.js +35 -0
- package/esm2015/lib/field-auto-focus/field-auto-focus.module.js +32 -0
- package/esm2015/lib/file-size/file-size.module.js +30 -0
- package/esm2015/lib/file-size/file-size.pipe.js +45 -0
- package/esm2015/lib/filter-sidebar/filter-sidebar.component.js +46 -0
- package/esm2015/lib/filter-sidebar/filter-sidebar.module.js +30 -0
- package/esm2015/lib/form-io/form-io-builder.component.js +39 -0
- package/esm2015/lib/form-io/form-io-uploader/form-io-uploader-edit-form.js +90 -0
- package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.component.js +72 -0
- package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.formio.js +26 -0
- package/esm2015/lib/form-io/form-io.component.js +160 -0
- package/esm2015/lib/form-io/form-io.module.js +56 -0
- package/esm2015/lib/form-io/formio-config.js +22 -0
- package/esm2015/lib/form-io/services/form-io-dom.service.js +23 -0
- package/esm2015/lib/form-io/services/form-io-state.service.js +24 -0
- package/esm2015/lib/left-sidebar/left-sidebar.component.js +114 -0
- package/esm2015/lib/left-sidebar/left-sidebar.module.js +34 -0
- package/esm2015/lib/list/ListFilterPipe.directive.js +35 -0
- package/esm2015/lib/list/list.component.js +177 -0
- package/esm2015/lib/list/list.module.js +33 -0
- package/esm2015/lib/menu/menu-item-text.component.js +36 -0
- package/esm2015/lib/menu/menu-routing.module.js +29 -0
- package/esm2015/lib/menu/menu.component.js +65 -0
- package/esm2015/lib/menu/menu.init.js +34 -0
- package/esm2015/lib/menu/menu.module.js +39 -0
- package/esm2015/lib/menu/menu.service.js +127 -0
- package/esm2015/lib/menu/submenu-item-text.component.js +33 -0
- package/esm2015/lib/modal/modal.component.js +48 -0
- package/esm2015/lib/modal/modal.module.js +28 -0
- package/esm2015/lib/page-header/page-header.component.js +29 -0
- package/esm2015/lib/page-header/page-header.module.js +34 -0
- package/esm2015/lib/page-title/page-title.component.js +76 -0
- package/esm2015/lib/page-title/page-title.module.js +32 -0
- package/esm2015/lib/progress-bar/progress-bar.component.js +26 -0
- package/esm2015/lib/progress-bar/progress-bar.module.js +30 -0
- package/esm2015/lib/right-sidebar/right-sidebar.component.js +131 -0
- package/esm2015/lib/right-sidebar/right-sidebar.module.js +49 -0
- package/esm2015/lib/searchable-dropdown/searchable-dropdown.component.js +185 -0
- package/esm2015/lib/searchable-dropdown/searchable-dropdown.module.js +29 -0
- package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.component.js +52 -0
- package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.module.js +30 -0
- package/esm2015/lib/spinner/spinner.component.js +43 -0
- package/esm2015/lib/spinner/spinner.module.js +36 -0
- package/esm2015/lib/timeline/timeline.component.js +29 -0
- package/esm2015/lib/timeline/timeline.module.js +32 -0
- package/esm2015/lib/topbar/topbar.component.js +29 -0
- package/esm2015/lib/topbar/topbar.module.js +32 -0
- package/esm2015/lib/uploader/uploader-drag-drop.directive.js +49 -0
- package/esm2015/lib/uploader/uploader.component.js +70 -0
- package/esm2015/lib/uploader/uploader.module.js +33 -0
- package/esm2015/lib/version/version.service.js +38 -0
- package/esm2015/lib/view-content/type-converters/booleanTypeConverter.js +29 -0
- package/esm2015/lib/view-content/type-converters/dateTypeConverter.js +30 -0
- package/esm2015/lib/view-content/type-converters/enumTypeConverter.js +24 -0
- package/esm2015/lib/view-content/type-converters/relatedFilesTypeConverter.js +24 -0
- package/esm2015/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +27 -0
- package/esm2015/lib/view-content/type-converters/stringTypeConverter.js +24 -0
- package/esm2015/lib/view-content/type-converters/type-converters.model.js +37 -0
- package/esm2015/lib/view-content/view-content.service.js +51 -0
- package/esm2015/lib/webcam/webcam.component.js +103 -0
- package/esm2015/lib/webcam/webcam.module.js +32 -0
- package/esm2015/lib/widget/widget.component.js +80 -0
- package/esm2015/lib/widget/widget.module.js +30 -0
- package/esm2015/public_api.js +84 -0
- package/esm2015/valtimo-components.js +27 -0
- package/fesm2015/valtimo-components.js +4536 -0
- package/fesm2015/valtimo-components.js.map +1 -0
- package/lib/alert/alert.component.d.ts +21 -0
- package/lib/alert/alert.module.d.ts +2 -0
- package/lib/alert/alert.service.d.ts +21 -0
- package/lib/bpmn-js-diagram/bpmn-js-diagram.component.d.ts +27 -0
- package/lib/bpmn-js-diagram/bpmn-js-diagram.module.d.ts +2 -0
- package/lib/breadcrumb-navigation/breadcrumb-navigation.component.d.ts +14 -0
- package/lib/breadcrumb-navigation/breadcrumb-navigation.module.d.ts +2 -0
- package/lib/camunda/form/camunda-form.components.d.ts +9 -0
- package/lib/camunda/form/camunda-form.module.d.ts +2 -0
- package/lib/camunda/form/custom/camunda-custom-form.component.d.ts +8 -0
- package/lib/camunda/form/custom/camunda-custom-form.module.d.ts +2 -0
- package/lib/camunda/form/generated/camunda-generated-form.component.d.ts +19 -0
- package/lib/camunda/form/generated/camunda-generated-form.module.d.ts +2 -0
- package/lib/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +7 -0
- package/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts +13 -0
- package/lib/camunda/form/generated/formfield/camunda-formfield.service.d.ts +7 -0
- package/lib/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +12 -0
- package/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts +14 -0
- package/lib/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +10 -0
- package/lib/camunda/form/generated/formfield/formfield.model.d.ts +20 -0
- package/lib/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts +7 -0
- package/lib/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts +7 -0
- package/lib/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +7 -0
- package/lib/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +10 -0
- package/lib/camunda/form/generated/formfield/validation/date.validators.d.ts +3 -0
- package/lib/card/card.component.d.ts +16 -0
- package/lib/card/card.module.d.ts +2 -0
- package/lib/components.module.d.ts +2 -0
- package/lib/data-list/data-list.component.d.ts +7 -0
- package/lib/data-list/data-list.module.d.ts +2 -0
- package/lib/dropzone/dropzone.component.d.ts +38 -0
- package/lib/dropzone/dropzone.module.d.ts +2 -0
- package/lib/field-auto-focus/field-auto-focus.directive.d.ts +6 -0
- package/lib/field-auto-focus/field-auto-focus.module.d.ts +2 -0
- package/lib/file-size/file-size.module.d.ts +2 -0
- package/lib/file-size/file-size.pipe.d.ts +5 -0
- package/lib/filter-sidebar/filter-sidebar.component.d.ts +8 -0
- package/lib/filter-sidebar/filter-sidebar.module.d.ts +2 -0
- package/lib/form-io/form-io-builder.component.d.ts +8 -0
- package/lib/form-io/form-io-uploader/form-io-uploader-edit-form.d.ts +61 -0
- package/lib/form-io/form-io-uploader/form-io-uploader.component.d.ts +29 -0
- package/lib/form-io/form-io-uploader/form-io-uploader.formio.d.ts +3 -0
- package/lib/form-io/form-io.component.d.ts +45 -0
- package/lib/form-io/form-io.module.d.ts +2 -0
- package/lib/form-io/formio-config.d.ts +6 -0
- package/lib/form-io/services/form-io-dom.service.d.ts +6 -0
- package/lib/form-io/services/form-io-state.service.d.ts +10 -0
- package/lib/left-sidebar/left-sidebar.component.d.ts +34 -0
- package/lib/left-sidebar/left-sidebar.module.d.ts +2 -0
- package/lib/list/ListFilterPipe.directive.d.ts +4 -0
- package/lib/list/list.component.d.ts +43 -0
- package/lib/list/list.module.d.ts +2 -0
- package/lib/menu/menu-item-text.component.d.ts +4 -0
- package/lib/menu/menu-routing.module.d.ts +2 -0
- package/lib/menu/menu.component.d.ts +18 -0
- package/lib/menu/menu.init.d.ts +3 -0
- package/lib/menu/menu.module.d.ts +2 -0
- package/lib/menu/menu.service.d.ts +23 -0
- package/lib/menu/submenu-item-text.component.d.ts +4 -0
- package/lib/modal/modal.component.d.ts +12 -0
- package/lib/modal/modal.module.d.ts +2 -0
- package/lib/page-header/page-header.component.d.ts +5 -0
- package/lib/page-header/page-header.module.d.ts +2 -0
- package/lib/page-title/page-title.component.d.ts +19 -0
- package/lib/page-title/page-title.module.d.ts +2 -0
- package/lib/progress-bar/progress-bar.component.d.ts +2 -0
- package/lib/progress-bar/progress-bar.module.d.ts +2 -0
- package/lib/right-sidebar/right-sidebar.component.d.ts +34 -0
- package/lib/right-sidebar/right-sidebar.module.d.ts +2 -0
- package/lib/searchable-dropdown/searchable-dropdown.component.d.ts +39 -0
- package/lib/searchable-dropdown/searchable-dropdown.module.d.ts +2 -0
- package/lib/searchable-dropdown-select/searchable-dropdown-select.component.d.ts +19 -0
- package/lib/searchable-dropdown-select/searchable-dropdown-select.module.d.ts +2 -0
- package/lib/spinner/spinner.component.d.ts +9 -0
- package/lib/spinner/spinner.module.d.ts +2 -0
- package/lib/timeline/timeline.component.d.ts +4 -0
- package/lib/timeline/timeline.module.d.ts +2 -0
- package/lib/topbar/topbar.component.d.ts +3 -0
- package/lib/topbar/topbar.module.d.ts +2 -0
- package/lib/uploader/uploader-drag-drop.directive.d.ts +7 -0
- package/lib/uploader/uploader.component.d.ts +15 -0
- package/lib/uploader/uploader.module.d.ts +2 -0
- package/lib/version/version.service.d.ts +8 -0
- package/lib/view-content/type-converters/booleanTypeConverter.d.ts +5 -0
- package/lib/view-content/type-converters/dateTypeConverter.d.ts +5 -0
- package/lib/view-content/type-converters/enumTypeConverter.d.ts +5 -0
- package/lib/view-content/type-converters/relatedFilesTypeConverter.d.ts +5 -0
- package/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.d.ts +6 -0
- package/lib/view-content/type-converters/stringTypeConverter.d.ts +5 -0
- package/lib/view-content/type-converters/type-converters.model.d.ts +5 -0
- package/lib/view-content/view-content.service.d.ts +8 -0
- package/lib/webcam/webcam.component.d.ts +20 -0
- package/lib/webcam/webcam.module.d.ts +2 -0
- package/lib/widget/widget.component.d.ts +28 -0
- package/lib/widget/widget.module.d.ts +2 -0
- package/package.json +34 -0
- package/public_api.d.ts +65 -0
- package/valtimo-components.d.ts +26 -0
- package/valtimo-components.metadata.json +1 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component } from '@angular/core';
|
|
17
|
+
import { AlertType } from '@valtimo/contract';
|
|
18
|
+
import { AlertService } from './alert.service';
|
|
19
|
+
export class AlertComponent {
|
|
20
|
+
constructor(alertService) {
|
|
21
|
+
this.alertService = alertService;
|
|
22
|
+
this.alerts = [];
|
|
23
|
+
this.autoCloseInMS = 5000;
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
}
|
|
27
|
+
ngAfterContentInit() {
|
|
28
|
+
this.subscription = this.alertService.onAlert()
|
|
29
|
+
.subscribe(alert => {
|
|
30
|
+
if (!alert.message) {
|
|
31
|
+
// clear alerts when an empty alert is received
|
|
32
|
+
this.alerts = [];
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// set empty array when an empty alert confirmations is received
|
|
36
|
+
if (!alert.confirmations) {
|
|
37
|
+
alert.confirmations = [];
|
|
38
|
+
}
|
|
39
|
+
// add alert to array if not exist
|
|
40
|
+
const alertExist = this.alerts.filter(x => x.message === alert.message);
|
|
41
|
+
if (alertExist.length === 0) {
|
|
42
|
+
this.alerts.push(alert);
|
|
43
|
+
}
|
|
44
|
+
if (this.inModal(alert)) {
|
|
45
|
+
setTimeout(() => {
|
|
46
|
+
this.openModal();
|
|
47
|
+
}, 300);
|
|
48
|
+
}
|
|
49
|
+
// auto close except alert confirmations not empty
|
|
50
|
+
if (this.autoCloseInMS > 0 && alert.confirmations.length === 0) {
|
|
51
|
+
setTimeout(() => {
|
|
52
|
+
this.removeAlert(alert);
|
|
53
|
+
}, this.autoCloseInMS);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
closeModal() {
|
|
58
|
+
$('#modalNotification').modal('hide');
|
|
59
|
+
}
|
|
60
|
+
openModal() {
|
|
61
|
+
$('#modalNotification').modal('show');
|
|
62
|
+
}
|
|
63
|
+
alertConfirm(alert, confirm) {
|
|
64
|
+
alert.confirm = confirm;
|
|
65
|
+
this.alertService.emitAlertConfirmEvent(alert);
|
|
66
|
+
this.removeAlert(alert);
|
|
67
|
+
}
|
|
68
|
+
ngOnDestroy() {
|
|
69
|
+
// unsubscribe to avoid memory leaks
|
|
70
|
+
this.subscription.unsubscribe();
|
|
71
|
+
}
|
|
72
|
+
removeAlert(alert) {
|
|
73
|
+
if (this.inModal(alert)) {
|
|
74
|
+
this.closeModal();
|
|
75
|
+
}
|
|
76
|
+
// remove specified alert from array
|
|
77
|
+
this.alerts = this.alerts.filter(x => x.message !== alert.message);
|
|
78
|
+
}
|
|
79
|
+
inModal(alert) {
|
|
80
|
+
if (!alert) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
// return true based on AlertType.ModalNotification
|
|
84
|
+
switch (alert.type) {
|
|
85
|
+
case AlertType.ModalNotification:
|
|
86
|
+
return true;
|
|
87
|
+
default:
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
cssClass(alert) {
|
|
92
|
+
if (!alert) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
// return css class based on alert type
|
|
96
|
+
switch (alert.type) {
|
|
97
|
+
case AlertType.Success:
|
|
98
|
+
return 'alert alert-success';
|
|
99
|
+
case AlertType.Error:
|
|
100
|
+
return 'alert alert-danger';
|
|
101
|
+
case AlertType.Info:
|
|
102
|
+
return 'alert alert-info';
|
|
103
|
+
case AlertType.Warning:
|
|
104
|
+
return 'alert alert-warning';
|
|
105
|
+
case AlertType.Notification:
|
|
106
|
+
return 'alert alert-light';
|
|
107
|
+
case AlertType.ModalNotification:
|
|
108
|
+
return 'alert alert-light';
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
cssIconClass(alert) {
|
|
112
|
+
if (!alert) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
// return css class based on alert type
|
|
116
|
+
switch (alert.type) {
|
|
117
|
+
case AlertType.Success:
|
|
118
|
+
return 'mdi mdi-check';
|
|
119
|
+
case AlertType.Error:
|
|
120
|
+
return 'mdi mdi-close-circle-o';
|
|
121
|
+
case AlertType.Info:
|
|
122
|
+
return 'mdi mdi-info-outline';
|
|
123
|
+
case AlertType.Warning:
|
|
124
|
+
return 'mdi mdi-alert-triangle';
|
|
125
|
+
case AlertType.Notification:
|
|
126
|
+
return 'mdi mdi-notifications';
|
|
127
|
+
case AlertType.ModalNotification:
|
|
128
|
+
return 'mdi mdi-notifications';
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
AlertComponent.decorators = [
|
|
133
|
+
{ type: Component, args: [{
|
|
134
|
+
selector: 'valtimo-alert',
|
|
135
|
+
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 *ngFor=\"let alert of alerts\" class=\"{{cssClass(alert)}} rounded-0 m-0 alert-dismissable\">\n\n <div *ngIf=\"inModal(alert)\">\n <!-- Modal -->\n <div class=\"modal fade\" id=\"modalNotification\" tabindex=\"-1\" role=\"dialog\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-body p-0\">\n <button class=\"close\" type=\"button\" (click)=\"removeAlert(alert)\"><span class=\"mdi mdi-close\" aria-hidden=\"true\"></span></button>\n <div class=\"icon\"><span class=\"{{ alert.iconClass || cssIconClass(alert) }}\"></span></div>\n <div class=\"message\">\n <div [innerHTML]=\"alert.message\"></div>\n </div>\n </div>\n <div class=\"modal-footer pt-0\" *ngIf=\"alert.confirmations?.length\">\n <button class=\"{{ confirmation.class }} mr-2\"\n *ngFor=\"let confirmation of alert.confirmations\"\n (click)=\"alertConfirm(alert, confirmation.value)\">{{ confirmation.label }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"!inModal(alert)\" class=\"alert-block\">\n <div class=\"icon\"><span class=\"{{ alert.iconClass || cssIconClass(alert) }}\"></span></div>\n <div class=\"message\">\n <div [innerHTML]=\"alert.message\"></div>\n <div class=\"mt-3\" *ngIf=\"alert.confirmations?.length\">\n <button class=\"{{ confirmation.class }} mr-2\"\n *ngFor=\"let confirmation of alert.confirmations\"\n (click)=\"alertConfirm(alert, confirmation.value)\">{{ confirmation.label }}</button>\n </div>\n </div>\n <button class=\"close\" type=\"button\" (click)=\"removeAlert(alert)\"><span class=\"mdi mdi-close\" aria-hidden=\"true\"></span></button>\n </div>\n</div>\n",
|
|
136
|
+
styles: [".alert-block{display:flex;flex-direction:row;justify-content:space-between}.alert-block .message{width:100%}.alert-block .icon{align-items:center;display:flex}.alert .message{font-size:1.1rem!important;line-height:1.5rem!important;padding:2rem 5rem 2rem 2rem!important}.alert .close{color:#fff!important;opacity:1!important;padding:2rem 2rem 0 0!important;right:0!important}.alert .icon{padding-left:2rem!important}.alert-warning{color:#404040!important}.alert-light .close,.alert-warning .close{color:#404040!important;opacity:1!important}"]
|
|
137
|
+
},] }
|
|
138
|
+
];
|
|
139
|
+
AlertComponent.ctorParameters = () => [
|
|
140
|
+
{ type: AlertService }
|
|
141
|
+
];
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFtQixTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBUSxTQUFTLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFTN0MsTUFBTSxPQUFPLGNBQWM7SUFLdkIsWUFDWSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUx0QyxXQUFNLEdBQVksRUFBRSxDQUFDO1FBT2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUU7YUFDMUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBRWYsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLCtDQUErQztnQkFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLE9BQU87YUFDVjtZQUVELGdFQUFnRTtZQUNoRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsS0FBSyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7YUFDNUI7WUFFRCxrQ0FBa0M7WUFDbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FB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TztTQUNWO1FBRUQsdUNBQXVDO1FBQ3ZDLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtZQUNoQixLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNsQixPQUFPLGVBQWUsQ0FBQztZQUMzQixLQUFLLFNBQVMsQ0FBQyxLQUFLO2dCQUNoQixPQUFPLHdCQUF3QixDQUFDO1lBQ3BDLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQ2YsT0FBTyxzQkFBc0IsQ0FBQztZQUNsQyxLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNsQixPQUFPLHdCQUF3QixDQUFDO1lBQ3BDLEtBQUssU0FBUyxDQUFDLFlBQVk7Z0JBQ3ZCLE9BQU8sdUJBQXVCLENBQUM7WUFDbkMsS0FBSyxTQUFTLENBQUMsaUJBQWlCO2dCQUM1QixPQUFPLHVCQUF1QixDQUFDO1NBQ3RDO0lBQ0wsQ0FBQzs7O1lBMUlKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsOC9FQUFxQzs7YUFFeEM7OztZQVJPLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0FmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBbGVydCwgQWxlcnRUeXBlfSBmcm9tICdAdmFsdGltby9jb250cmFjdCc7XG5pbXBvcnQge0FsZXJ0U2VydmljZX0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcblxuZGVjbGFyZSB2YXIgJDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2YWx0aW1vLWFsZXJ0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FsZXJ0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBhbGVydHM6IEFsZXJ0W10gPSBbXTtcbiAgICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBhdXRvQ2xvc2VJbk1TOiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmF1dG9DbG9zZUluTVMgPSA1MDAwO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmFsZXJ0U2VydmljZS5vbkFsZXJ0KClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYWxlcnQgPT4ge1xuXG4gICAgICAgICAgICAgICAgaWYgKCFhbGVydC5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIGFsZXJ0cyB3aGVuIGFuIGVtcHR5IGFsZXJ0IGlzIHJlY2VpdmVkXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBzZXQgZW1wdHkgYXJyYXkgd2hlbiBhbiBlbXB0eSBhbGVydCBjb25maXJtYXRpb25zIGlzIHJlY2VpdmVkXG4gICAgICAgICAgICAgICAgaWYgKCFhbGVydC5jb25maXJtYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0LmNvbmZpcm1hdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBhZGQgYWxlcnQgdG8gYXJyYXkgaWYgbm90IGV4aXN0XG4gICAgICAgICAgICAgICAgY29uc3QgYWxlcnRFeGlzdCA9IHRoaXMuYWxlcnRzLmZpbHRlcih4ID0+IHgubWVzc2FnZSA9PT0gYWxlcnQubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgaWYgKGFsZXJ0RXhpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRzLnB1c2goYWxlcnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmluTW9kYWwoYWxlcnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBhdXRvIGNsb3NlIGV4Y2VwdCBhbGVydCBjb25maXJtYXRpb25zIG5vdCBlbXB0eVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9DbG9zZUluTVMgPiAwICYmIGFsZXJ0LmNvbmZpcm1hdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVBbGVydChhbGVydCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIHRoaXMuYXV0b0Nsb3NlSW5NUyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2xvc2VNb2RhbCgpIHtcbiAgICAgICAgJCgnI21vZGFsTm90aWZpY2F0aW9uJykubW9kYWwoJ2hpZGUnKTtcbiAgICB9XG5cbiAgICBvcGVuTW9kYWwoKSB7XG4gICAgICAgICQoJyNtb2RhbE5vdGlmaWNhdGlvbicpLm1vZGFsKCdzaG93Jyk7XG4gICAgfVxuXG4gICAgYWxlcnRDb25maXJtKGFsZXJ0OiBBbGVydCwgY29uZmlybTogYW55KSB7XG4gICAgICAgIGFsZXJ0LmNvbmZpcm0gPSBjb25maXJtO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lbWl0QWxlcnRDb25maXJtRXZlbnQoYWxlcnQpO1xuICAgICAgICB0aGlzLnJlbW92ZUFsZXJ0KGFsZXJ0KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gdW5zdWJzY3JpYmUgdG8gYXZvaWQgbWVtb3J5IGxlYWtzXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQWxlcnQoYWxlcnQ6IEFsZXJ0KSB7XG4gICAgICAgIGlmICh0aGlzLmluTW9kYWwoYWxlcnQpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyByZW1vdmUgc3BlY2lmaWVkIGFsZXJ0IGZyb20gYXJyYXlcbiAgICAgICAgdGhpcy5hbGVydHMgPSB0aGlzLmFsZXJ0cy5maWx0ZXIoeCA9PiB4Lm1lc3NhZ2UgIT09IGFsZXJ0Lm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGluTW9kYWwoYWxlcnQ6IEFsZXJ0KSB7XG4gICAgICAgIGlmICghYWxlcnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJldHVybiB0cnVlIGJhc2VkIG9uIEFsZXJ0VHlwZS5Nb2RhbE5vdGlmaWNhdGlvblxuICAgICAgICBzd2l0Y2ggKGFsZXJ0LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQWxlcnRUeXBlLk1vZGFsTm90aWZpY2F0aW9uOlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjc3NDbGFzcyhhbGVydDogQWxlcnQpIHtcbiAgICAgICAgaWYgKCFhbGVydCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIGNzcyBjbGFzcyBiYXNlZCBvbiBhbGVydCB0eXBlXG4gICAgICAgIHN3aXRjaCAoYWxlcnQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBBbGVydFR5cGUuU3VjY2VzczpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2FsZXJ0IGFsZXJ0LXN1Y2Nlc3MnO1xuICAgICAgICAgICAgY2FzZSBBbGVydFR5cGUuRXJyb3I6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdhbGVydCBhbGVydC1kYW5nZXInO1xuICAgICAgICAgICAgY2FzZSBBbGVydFR5cGUuSW5mbzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2FsZXJ0IGFsZXJ0LWluZm8nO1xuICAgICAgICAgICAgY2FzZSBBbGVydFR5cGUuV2FybmluZzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2FsZXJ0IGFsZXJ0LXdhcm5pbmcnO1xuICAgICAgICAgICAgY2FzZSBBbGVydFR5cGUuTm90aWZpY2F0aW9uOlxuICAgICAgICAgICAgICAgIHJldHVybiAnYWxlcnQgYWxlcnQtbGlnaHQnO1xuICAgICAgICAgICAgY2FzZSBBbGVydFR5cGUuTW9kYWxOb3RpZmljYXRpb246XG4gICAgICAgICAgICAgICAgcmV0dXJuICdhbGVydCBhbGVydC1saWdodCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjc3NJY29uQ2xhc3MoYWxlcnQ6IEFsZXJ0KSB7XG4gICAgICAgIGlmICghYWxlcnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJldHVybiBjc3MgY2xhc3MgYmFzZWQgb24gYWxlcnQgdHlwZVxuICAgICAgICBzd2l0Y2ggKGFsZXJ0LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQWxlcnRUeXBlLlN1Y2Nlc3M6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdtZGkgbWRpLWNoZWNrJztcbiAgICAgICAgICAgIGNhc2UgQWxlcnRUeXBlLkVycm9yOlxuICAgICAgICAgICAgICAgIHJldHVybiAnbWRpIG1kaS1jbG9zZS1jaXJjbGUtbyc7XG4gICAgICAgICAgICBjYXNlIEFsZXJ0VHlwZS5JbmZvOlxuICAgICAgICAgICAgICAgIHJldHVybiAnbWRpIG1kaS1pbmZvLW91dGxpbmUnO1xuICAgICAgICAgICAgY2FzZSBBbGVydFR5cGUuV2FybmluZzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ21kaSBtZGktYWxlcnQtdHJpYW5nbGUnO1xuICAgICAgICAgICAgY2FzZSBBbGVydFR5cGUuTm90aWZpY2F0aW9uOlxuICAgICAgICAgICAgICAgIHJldHVybiAnbWRpIG1kaS1ub3RpZmljYXRpb25zJztcbiAgICAgICAgICAgIGNhc2UgQWxlcnRUeXBlLk1vZGFsTm90aWZpY2F0aW9uOlxuICAgICAgICAgICAgICAgIHJldHVybiAnbWRpIG1kaS1ub3RpZmljYXRpb25zJztcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { NgModule } from '@angular/core';
|
|
17
|
+
import { CommonModule } from '@angular/common';
|
|
18
|
+
import { AlertComponent } from './alert.component';
|
|
19
|
+
export class AlertModule {
|
|
20
|
+
}
|
|
21
|
+
AlertModule.decorators = [
|
|
22
|
+
{ type: NgModule, args: [{
|
|
23
|
+
imports: [CommonModule],
|
|
24
|
+
declarations: [AlertComponent],
|
|
25
|
+
exports: [AlertComponent]
|
|
26
|
+
},] }
|
|
27
|
+
];
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvYWxlcnQvYWxlcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBT2pELE1BQU0sT0FBTyxXQUFXOzs7WUFMdkIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDO2dCQUM5QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBbGVydENvbXBvbmVudH0gZnJvbSAnLi9hbGVydC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbQWxlcnRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQWxlcnRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0TW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { EventEmitter, Injectable } from '@angular/core';
|
|
17
|
+
import { NavigationStart, Router } from '@angular/router';
|
|
18
|
+
import { Subject } from 'rxjs';
|
|
19
|
+
import { Alert, AlertType } from '@valtimo/contract';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
import * as i1 from "@angular/router";
|
|
22
|
+
export class AlertService {
|
|
23
|
+
constructor(router) {
|
|
24
|
+
this.router = router;
|
|
25
|
+
this.confirmed = new EventEmitter();
|
|
26
|
+
this.subject = new Subject();
|
|
27
|
+
// clear alert messages on route change unless 'keepAfterRouteChange' flag is true
|
|
28
|
+
this.router.events.subscribe(event => {
|
|
29
|
+
if (event instanceof NavigationStart) {
|
|
30
|
+
// clear alert messages
|
|
31
|
+
this.clear();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
// enable subscribing to alerts observable
|
|
36
|
+
onAlert() {
|
|
37
|
+
return this.subject.asObservable();
|
|
38
|
+
}
|
|
39
|
+
// convenience methods
|
|
40
|
+
success(message, confirmations, iconClass) {
|
|
41
|
+
this.alert(new Alert({ message, type: AlertType.Success, confirmations, iconClass }));
|
|
42
|
+
}
|
|
43
|
+
error(message, confirmations, iconClass) {
|
|
44
|
+
this.alert(new Alert({ message, type: AlertType.Error, confirmations, iconClass }));
|
|
45
|
+
}
|
|
46
|
+
info(message, confirmations, iconClass) {
|
|
47
|
+
this.alert(new Alert({ message, type: AlertType.Info, confirmations, iconClass }));
|
|
48
|
+
}
|
|
49
|
+
warning(message, confirmations, iconClass) {
|
|
50
|
+
this.alert(new Alert({ message, type: AlertType.Warning, confirmations, iconClass }));
|
|
51
|
+
}
|
|
52
|
+
notification(message, confirmations, iconClass) {
|
|
53
|
+
this.alert(new Alert({ message, type: AlertType.Notification, confirmations, iconClass }));
|
|
54
|
+
}
|
|
55
|
+
modalNotification(message, confirmations, iconClass) {
|
|
56
|
+
this.alert(new Alert({ message, type: AlertType.ModalNotification, confirmations, iconClass }));
|
|
57
|
+
}
|
|
58
|
+
// main alert method
|
|
59
|
+
alert(alert) {
|
|
60
|
+
this.subject.next(alert);
|
|
61
|
+
}
|
|
62
|
+
// clear alerts
|
|
63
|
+
clear() {
|
|
64
|
+
this.subject.next(new Alert({}));
|
|
65
|
+
}
|
|
66
|
+
// emit confirm
|
|
67
|
+
emitAlertConfirmEvent(alert) {
|
|
68
|
+
this.confirmed.emit(alert);
|
|
69
|
+
}
|
|
70
|
+
getAlertConfirmChangeEmitter() {
|
|
71
|
+
return this.confirmed;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
AlertService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AlertService_Factory() { return new AlertService(i0.ɵɵinject(i1.Router)); }, token: AlertService, providedIn: "root" });
|
|
75
|
+
AlertService.decorators = [
|
|
76
|
+
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
77
|
+
];
|
|
78
|
+
AlertService.ctorParameters = () => [
|
|
79
|
+
{ type: Router }
|
|
80
|
+
];
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2FsZXJ0L2FsZXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBR25ELE1BQU0sT0FBTyxZQUFZO0lBSXZCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBSDNCLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVMsQ0FBQztRQUdyQyxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25DLElBQUksS0FBSyxZQUFZLGVBQWUsRUFBRTtnQkFDcEMsdUJBQXVCO2dCQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsT0FBTyxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQzVELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBZSxFQUFFLGFBQW1CLEVBQUUsU0FBa0I7UUFDeEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixLQUFLLENBQUMsS0FBWTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtJQUNmLEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlO0lBQ2YscUJBQXFCLENBQUMsS0FBWTtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsNEJBQTRCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOzs7O1lBOURGLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OztZQUpQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWxlcnQsIEFsZXJ0VHlwZX0gZnJvbSAnQHZhbHRpbW8vY29udHJhY3QnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBBbGVydFNlcnZpY2Uge1xuICBwdWJsaWMgY29uZmlybWVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJpdmF0ZSBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8QWxlcnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIC8vIGNsZWFyIGFsZXJ0IG1lc3NhZ2VzIG9uIHJvdXRlIGNoYW5nZSB1bmxlc3MgJ2tlZXBBZnRlclJvdXRlQ2hhbmdlJyBmbGFnIGlzIHRydWVcbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAvLyBjbGVhciBhbGVydCBtZXNzYWdlc1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBlbmFibGUgc3Vic2NyaWJpbmcgdG8gYWxlcnRzIG9ic2VydmFibGVcbiAgb25BbGVydCgpOiBPYnNlcnZhYmxlPEFsZXJ0PiB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8vIGNvbnZlbmllbmNlIG1ldGhvZHNcbiAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIGNvbmZpcm1hdGlvbnM/OiBhbnksIGljb25DbGFzcz86IHN0cmluZykge1xuICAgIHRoaXMuYWxlcnQobmV3IEFsZXJ0KHttZXNzYWdlLCB0eXBlOiBBbGVydFR5cGUuU3VjY2VzcywgY29uZmlybWF0aW9ucywgaWNvbkNsYXNzfSkpO1xuICB9XG5cbiAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBjb25maXJtYXRpb25zPzogYW55LCBpY29uQ2xhc3M/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFsZXJ0KG5ldyBBbGVydCh7bWVzc2FnZSwgdHlwZTogQWxlcnRUeXBlLkVycm9yLCBjb25maXJtYXRpb25zLCBpY29uQ2xhc3N9KSk7XG4gIH1cblxuICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgY29uZmlybWF0aW9ucz86IGFueSwgaWNvbkNsYXNzPzogc3RyaW5nKSB7XG4gICAgdGhpcy5hbGVydChuZXcgQWxlcnQoe21lc3NhZ2UsIHR5cGU6IEFsZXJ0VHlwZS5JbmZvLCBjb25maXJtYXRpb25zLCBpY29uQ2xhc3N9KSk7XG4gIH1cblxuICB3YXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgY29uZmlybWF0aW9ucz86IGFueSwgaWNvbkNsYXNzPzogc3RyaW5nKSB7XG4gICAgdGhpcy5hbGVydChuZXcgQWxlcnQoe21lc3NhZ2UsIHR5cGU6IEFsZXJ0VHlwZS5XYXJuaW5nLCBjb25maXJtYXRpb25zLCBpY29uQ2xhc3N9KSk7XG4gIH1cblxuICBub3RpZmljYXRpb24obWVzc2FnZTogc3RyaW5nLCBjb25maXJtYXRpb25zPzogYW55LCBpY29uQ2xhc3M/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFsZXJ0KG5ldyBBbGVydCh7bWVzc2FnZSwgdHlwZTogQWxlcnRUeXBlLk5vdGlmaWNhdGlvbiwgY29uZmlybWF0aW9ucywgaWNvbkNsYXNzfSkpO1xuICB9XG5cbiAgbW9kYWxOb3RpZmljYXRpb24obWVzc2FnZTogc3RyaW5nLCBjb25maXJtYXRpb25zPzogYW55LCBpY29uQ2xhc3M/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFsZXJ0KG5ldyBBbGVydCh7bWVzc2FnZSwgdHlwZTogQWxlcnRUeXBlLk1vZGFsTm90aWZpY2F0aW9uLCBjb25maXJtYXRpb25zLCBpY29uQ2xhc3N9KSk7XG4gIH1cblxuICAvLyBtYWluIGFsZXJ0IG1ldGhvZFxuICBhbGVydChhbGVydDogQWxlcnQpIHtcbiAgICB0aGlzLnN1YmplY3QubmV4dChhbGVydCk7XG4gIH1cblxuICAvLyBjbGVhciBhbGVydHNcbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQobmV3IEFsZXJ0KHt9KSk7XG4gIH1cblxuICAvLyBlbWl0IGNvbmZpcm1cbiAgZW1pdEFsZXJ0Q29uZmlybUV2ZW50KGFsZXJ0OiBBbGVydCkge1xuICAgIHRoaXMuY29uZmlybWVkLmVtaXQoYWxlcnQpO1xuICB9XG5cbiAgZ2V0QWxlcnRDb25maXJtQ2hhbmdlRW1pdHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maXJtZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component, ElementRef, Input, Output, ViewChild, EventEmitter } from '@angular/core';
|
|
17
|
+
import * as BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';
|
|
18
|
+
import * as heatmap from 'heatmap.js-fixed/build/heatmap.js';
|
|
19
|
+
export class BpmnJsDiagramComponent {
|
|
20
|
+
constructor() {
|
|
21
|
+
this.importDone = new EventEmitter();
|
|
22
|
+
this.heatPoints = { data: [] };
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.bpmnJS = new BpmnJS();
|
|
26
|
+
this.bpmnJS.on('import.done', ({ error }) => {
|
|
27
|
+
if (!error) {
|
|
28
|
+
const canvas = this.bpmnJS.get('canvas'), eventBus = this.bpmnJS.get('eventBus');
|
|
29
|
+
if (this.historicActivityInstances) {
|
|
30
|
+
this.historicActivityInstances.forEach(instance => {
|
|
31
|
+
canvas.addMarker(instance.activityId, instance.endTime ? 'highlight-overlay-past' : 'highlight-overlay-current');
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
canvas.zoom('fit-viewport', 'auto');
|
|
35
|
+
if (this.heatmapDuration || this.heatmapCount) {
|
|
36
|
+
eventBus.on('canvas.init', () => {
|
|
37
|
+
if (this.heatmapMode) {
|
|
38
|
+
this.clearHeatmap();
|
|
39
|
+
}
|
|
40
|
+
this.getHeatmapData();
|
|
41
|
+
});
|
|
42
|
+
eventBus.on('canvas.viewbox.changing', () => {
|
|
43
|
+
if (this.heatmapMode) {
|
|
44
|
+
this.clearHeatmap();
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
eventBus.on('canvas.viewbox.changed', () => {
|
|
48
|
+
this.getHeatmapData();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
ngAfterContentInit() {
|
|
55
|
+
this.bpmnJS.importXML(this.bpmn20Xml);
|
|
56
|
+
this.bpmnJS.attachTo(this.el.nativeElement);
|
|
57
|
+
}
|
|
58
|
+
getHeatmapData() {
|
|
59
|
+
let inputData, valueKey;
|
|
60
|
+
this.heatPoints = { data: [] };
|
|
61
|
+
this.min = 0;
|
|
62
|
+
this.max = 0;
|
|
63
|
+
if (this.heatmapDuration) {
|
|
64
|
+
inputData = this.heatmapDuration;
|
|
65
|
+
valueKey = 'averageDurationInMilliseconds';
|
|
66
|
+
}
|
|
67
|
+
else if (this.heatmapCount) {
|
|
68
|
+
inputData = this.heatmapCount;
|
|
69
|
+
valueKey = 'totalCount';
|
|
70
|
+
}
|
|
71
|
+
if (inputData) {
|
|
72
|
+
Object.keys(inputData).forEach(key => {
|
|
73
|
+
const diagramContainer = this.el.nativeElement.querySelector('svg')
|
|
74
|
+
.getBoundingClientRect(), diagramElm = this.el.nativeElement.querySelector(`g[data-element-id=${key}]`)
|
|
75
|
+
.getBoundingClientRect();
|
|
76
|
+
this.setMax(key);
|
|
77
|
+
this.heatPoints.data.push({
|
|
78
|
+
x: Math.round(diagramElm.x - diagramContainer.x + diagramElm.width / 2),
|
|
79
|
+
y: Math.round(diagramElm.y - diagramContainer.y + diagramElm.height / 2),
|
|
80
|
+
value: inputData[key][valueKey],
|
|
81
|
+
radius: diagramElm.width / 2
|
|
82
|
+
});
|
|
83
|
+
if (inputData[key].count > 0) {
|
|
84
|
+
this.addCounterActiveOverlays(key, inputData);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
if (this.heatmapMode) {
|
|
88
|
+
this.showHeatmap();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
setMax(key) {
|
|
93
|
+
if (this.heatmapDuration) {
|
|
94
|
+
this.max = Math.max(this.heatmapDuration[key].averageDurationInMilliseconds, this.max);
|
|
95
|
+
}
|
|
96
|
+
else if (this.heatmapCount) {
|
|
97
|
+
this.max = Math.max(this.heatmapCount[key].totalCount + this.heatmapCount[key].count, this.max);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
addCounterActiveOverlays(key, inputData) {
|
|
101
|
+
const overlays = this.bpmnJS.get('overlays');
|
|
102
|
+
overlays.add(key, {
|
|
103
|
+
position: {
|
|
104
|
+
bottom: -10,
|
|
105
|
+
left: 0
|
|
106
|
+
},
|
|
107
|
+
show: {
|
|
108
|
+
minZoom: 0,
|
|
109
|
+
maxZoom: 5.0
|
|
110
|
+
},
|
|
111
|
+
html: `<span class="badge badge-pill badge-primary">${inputData[key].count}</span>`
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
showHeatmap() {
|
|
115
|
+
this.heatMapInstance = heatmap.create({
|
|
116
|
+
radius: 54,
|
|
117
|
+
blur: .70,
|
|
118
|
+
maxOpacity: .4,
|
|
119
|
+
minOpacity: 0,
|
|
120
|
+
container: this.el.nativeElement
|
|
121
|
+
});
|
|
122
|
+
this.heatMapInstance.setData({
|
|
123
|
+
min: this.min,
|
|
124
|
+
max: this.max,
|
|
125
|
+
data: this.heatPoints.data
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
clearHeatmap() {
|
|
129
|
+
this.heatMapInstance.setData({ data: [] });
|
|
130
|
+
}
|
|
131
|
+
toggleHeatmap() {
|
|
132
|
+
this.heatmapMode = !this.heatmapMode;
|
|
133
|
+
if (this.heatmapMode) {
|
|
134
|
+
this.showHeatmap();
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.clearHeatmap();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
ngOnDestroy() {
|
|
141
|
+
this.bpmnJS.destroy();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
BpmnJsDiagramComponent.decorators = [
|
|
145
|
+
{ type: Component, args: [{
|
|
146
|
+
selector: 'valtimo-bpmn-js-diagram',
|
|
147
|
+
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=\"p-4\" *ngIf=\"heatmapDuration || heatmapCount\">\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input type=\"checkbox\" id=\"toggleHeatmap\" [checked]=\"heatmapMode\" (click)=\"toggleHeatmap()\"><span>\n <label for=\"toggleHeatmap\"></label></span>\n </div>\n</div>\n\n<div #ref class=\"diagram-container\"></div>\n\n<div *ngIf=\"historicActivityInstances\" class=\"p-4 text-center legenda-holder\">\n <span><div class=\"legenda highlight-overlay-past\"></div> Executed tasks</span>\n <span class=\"ml-3\"><div class=\"legenda highlight-overlay-current\"></div> Current tasks</span>\n</div>\n\n<div *ngIf=\"heatmapDuration || heatmapCount\" class=\"p-4 text-center legenda-holder\">\n <span><span class=\"badge badge-pill badge-primary\">N</span> Amount of currently active instances of this task.</span>\n <span> | Red/yellow/green orbs: The amount of times the task is executed in comparison to the other tasks.</span>\n</div>\n",
|
|
148
|
+
styles: [""]
|
|
149
|
+
},] }
|
|
150
|
+
];
|
|
151
|
+
BpmnJsDiagramComponent.ctorParameters = () => [];
|
|
152
|
+
BpmnJsDiagramComponent.propDecorators = {
|
|
153
|
+
el: [{ type: ViewChild, args: ['ref', { static: true },] }],
|
|
154
|
+
importDone: [{ type: Output }],
|
|
155
|
+
bpmn20Xml: [{ type: Input }],
|
|
156
|
+
heatmapDuration: [{ type: Input }],
|
|
157
|
+
heatmapCount: [{ type: Input }],
|
|
158
|
+
historicActivityInstances: [{ type: Input }]
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtbi1qcy1kaWFncmFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2JwbW4tanMtZGlhZ3JhbS9icG1uLWpzLWRpYWdyYW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0RBQXNELENBQUM7QUFDL0UsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQ0FBbUMsQ0FBQztBQVE3RCxNQUFNLE9BQU8sc0JBQXNCO0lBaUJqQztRQVhpQixlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFPN0QsZUFBVSxHQUFHLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBSWYsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUNwQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRTNDLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFO29CQUNsQyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUNoRCxNQUFNLENBQUMs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O2lCQU9FLFNBQVMsU0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO3lCQUNqQyxNQUFNO3dCQUNOLEtBQUs7OEJBQ0wsS0FBSzsyQkFDTCxLQUFLO3dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIEJwbW5KUyBmcm9tICdicG1uLWpzL2Rpc3QvYnBtbi1uYXZpZ2F0ZWQtdmlld2VyLnByb2R1Y3Rpb24ubWluLmpzJztcbmltcG9ydCAqIGFzIGhlYXRtYXAgZnJvbSAnaGVhdG1hcC5qcy1maXhlZC9idWlsZC9oZWF0bWFwLmpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1icG1uLWpzLWRpYWdyYW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnBtbi1qcy1kaWFncmFtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnBtbi1qcy1kaWFncmFtLmNvbXBvbmVudC5jc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEJwbW5Kc0RpYWdyYW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBicG1uSlM6IEJwbW5KUztcbiAgcHJpdmF0ZSBoZWF0TWFwSW5zdGFuY2U6IGFueTtcblxuICBAVmlld0NoaWxkKCdyZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgZWw6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaW1wb3J0RG9uZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBicG1uMjBYbWw6IGFueTtcbiAgQElucHV0KCkgcHVibGljIGhlYXRtYXBEdXJhdGlvbj86IGFueTtcbiAgQElucHV0KCkgcHVibGljIGhlYXRtYXBDb3VudD86IGFueTtcbiAgQElucHV0KCkgcHVibGljIGhpc3RvcmljQWN0aXZpdHlJbnN0YW5jZXM/OiBhbnk7XG5cbiAgcHVibGljIGhlYXRtYXBNb2RlOiBib29sZWFuO1xuICBwdWJsaWMgaGVhdFBvaW50cyA9IHtkYXRhOiBbXX07XG4gIHB1YmxpYyBtaW46IG51bWJlcjtcbiAgcHVibGljIG1heDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5icG1uSlMgPSBuZXcgQnBtbkpTKCk7XG4gICAgdGhpcy5icG1uSlMub24oJ2ltcG9ydC5kb25lJywgKHtlcnJvcn0pID0+IHtcbiAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgY29uc3QgY2FudmFzID0gdGhpcy5icG1uSlMuZ2V0KCdjYW52YXMnKVxuICAgICAgICAgICwgZXZlbnRCdXMgPSB0aGlzLmJwbW5KUy5nZXQoJ2V2ZW50QnVzJyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGlzdG9yaWNBY3Rpdml0eUluc3RhbmNlcykge1xuICAgICAgICAgIHRoaXMuaGlzdG9yaWNBY3Rpdml0eUluc3RhbmNlcy5mb3JFYWNoKGluc3RhbmNlID0+IHtcbiAgICAgICAgICAgIGNhbnZhcy5hZGRNYXJrZXIoaW5zdGFuY2UuYWN0aXZpdHlJZCwgaW5zdGFuY2UuZW5kVGltZSA/ICdoaWdobGlnaHQtb3ZlcmxheS1wYXN0JyA6ICdoaWdobGlnaHQtb3ZlcmxheS1jdXJyZW50Jyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjYW52YXMuem9vbSgnZml0LXZpZXdwb3J0JywgJ2F1dG8nKTtcblxuICAgICAgICBpZiAodGhpcy5oZWF0bWFwRHVyYXRpb24gfHwgdGhpcy5oZWF0bWFwQ291bnQpIHtcbiAgICAgICAgICBldmVudEJ1cy5vbignY2FudmFzLmluaXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5oZWF0bWFwTW9kZSkge1xuICAgICAgICAgICAgICB0aGlzLmNsZWFySGVhdG1hcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nZXRIZWF0bWFwRGF0YSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV2ZW50QnVzLm9uKCdjYW52YXMudmlld2JveC5jaGFuZ2luZycsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhlYXRtYXBNb2RlKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJIZWF0bWFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZXZlbnRCdXMub24oJ2NhbnZhcy52aWV3Ym94LmNoYW5nZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldEhlYXRtYXBEYXRhKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJwbW5KUy5pbXBvcnRYTUwodGhpcy5icG1uMjBYbWwpO1xuICAgIHRoaXMuYnBtbkpTLmF0dGFjaFRvKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBnZXRIZWF0bWFwRGF0YSgpIHtcbiAgICBsZXQgaW5wdXREYXRhOiBhbnlcbiAgICAgICwgdmFsdWVLZXk6IGFueTtcblxuICAgIHRoaXMuaGVhdFBvaW50cyA9IHtkYXRhOiBbXX07XG4gICAgdGhpcy5taW4gPSAwO1xuICAgIHRoaXMubWF4ID0gMDtcblxuICAgIGlmICh0aGlzLmhlYXRtYXBEdXJhdGlvbikge1xuICAgICAgaW5wdXREYXRhID0gdGhpcy5oZWF0bWFwRHVyYXRpb247XG4gICAgICB2YWx1ZUtleSA9ICdhdmVyYWdlRHVyYXRpb25Jbk1pbGxpc2Vjb25kcyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhlYXRtYXBDb3VudCkge1xuICAgICAgaW5wdXREYXRhID0gdGhpcy5oZWF0bWFwQ291bnQ7XG4gICAgICB2YWx1ZUtleSA9ICd0b3RhbENvdW50JztcbiAgICB9XG5cbiAgICBpZiAoaW5wdXREYXRhKSB7XG4gICAgICBPYmplY3Qua2V5cyhpbnB1dERhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgY29uc3QgZGlhZ3JhbUNvbnRhaW5lciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzdmcnKVxuICAgICAgICAgICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgIGRpYWdyYW1FbG0gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgZ1tkYXRhLWVsZW1lbnQtaWQ9JHtrZXl9XWApXG4gICAgICAgICAgICAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHRoaXMuc2V0TWF4KGtleSk7XG4gICAgICAgIHRoaXMuaGVhdFBvaW50cy5kYXRhLnB1c2goe1xuICAgICAgICAgIHg6IE1hdGgucm91bmQoZGlhZ3JhbUVsbS54IC0gZGlhZ3JhbUNvbnRhaW5lci54ICsgZGlhZ3JhbUVsbS53aWR0aCAvIDIpLFxuICAgICAgICAgIHk6IE1hdGgucm91bmQoZGlhZ3JhbUVsbS55IC0gZGlhZ3JhbUNvbnRhaW5lci55ICsgZGlhZ3JhbUVsbS5oZWlnaHQgLyAyKSxcbiAgICAgICAgICB2YWx1ZTogaW5wdXREYXRhW2tleV1bdmFsdWVLZXldLFxuICAgICAgICAgIHJhZGl1czogZGlhZ3JhbUVsbS53aWR0aCAvIDJcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpbnB1dERhdGFba2V5XS5jb3VudCA+IDApIHtcbiAgICAgICAgICB0aGlzLmFkZENvdW50ZXJBY3RpdmVPdmVybGF5cyhrZXksIGlucHV0RGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5oZWF0bWFwTW9kZSkge1xuICAgICAgICB0aGlzLnNob3dIZWF0bWFwKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0TWF4KGtleTogYW55KSB7XG4gICAgaWYgKHRoaXMuaGVhdG1hcER1cmF0aW9uKSB7XG4gICAgICB0aGlzLm1heCA9IE1hdGgubWF4KHRoaXMuaGVhdG1hcER1cmF0aW9uW2tleV0uYXZlcmFnZUR1cmF0aW9uSW5NaWxsaXNlY29uZHMsIHRoaXMubWF4KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGVhdG1hcENvdW50KSB7XG4gICAgICB0aGlzLm1heCA9IE1hdGgubWF4KHRoaXMuaGVhdG1hcENvdW50W2tleV0udG90YWxDb3VudCArIHRoaXMuaGVhdG1hcENvdW50W2tleV0uY291bnQsIHRoaXMubWF4KTtcbiAgICB9XG4gIH1cblxuICBhZGRDb3VudGVyQWN0aXZlT3ZlcmxheXMoa2V5OiBhbnksIGlucHV0RGF0YTogYW55KSB7XG4gICAgY29uc3Qgb3ZlcmxheXMgPSB0aGlzLmJwbW5KUy5nZXQoJ292ZXJsYXlzJyk7XG4gICAgb3ZlcmxheXMuYWRkKGtleSwge1xuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgYm90dG9tOiAtMTAsXG4gICAgICAgIGxlZnQ6IDBcbiAgICAgIH0sXG4gICAgICBzaG93OiB7XG4gICAgICAgIG1pblpvb206IDAsXG4gICAgICAgIG1heFpvb206IDUuMFxuICAgICAgfSxcbiAgICAgIGh0bWw6IGA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLXBpbGwgYmFkZ2UtcHJpbWFyeVwiPiR7aW5wdXREYXRhW2tleV0uY291bnR9PC9zcGFuPmBcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dIZWF0bWFwKCkge1xuICAgIHRoaXMuaGVhdE1hcEluc3RhbmNlID0gaGVhdG1hcC5jcmVhdGUoe1xuICAgICAgcmFkaXVzOiA1NCxcbiAgICAgIGJsdXI6IC43MCxcbiAgICAgIG1heE9wYWNpdHk6IC40LFxuICAgICAgbWluT3BhY2l0eTogMCxcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5lbC5uYXRpdmVFbGVtZW50XG4gICAgfSk7XG4gICAgdGhpcy5oZWF0TWFwSW5zdGFuY2Uuc2V0RGF0YSh7XG4gICAgICBtaW46IHRoaXMubWluLFxuICAgICAgbWF4OiB0aGlzLm1heCxcbiAgICAgIGRhdGE6IHRoaXMuaGVhdFBvaW50cy5kYXRhXG4gICAgfSk7XG4gIH1cblxuICBjbGVhckhlYXRtYXAoKSB7XG4gICAgdGhpcy5oZWF0TWFwSW5zdGFuY2Uuc2V0RGF0YSh7ZGF0YTogW119KTtcbiAgfVxuXG4gIHRvZ2dsZUhlYXRtYXAoKSB7XG4gICAgdGhpcy5oZWF0bWFwTW9kZSA9ICF0aGlzLmhlYXRtYXBNb2RlO1xuICAgIGlmICh0aGlzLmhlYXRtYXBNb2RlKSB7XG4gICAgICB0aGlzLnNob3dIZWF0bWFwKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xlYXJIZWF0bWFwKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5icG1uSlMuZGVzdHJveSgpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { NgModule } from '@angular/core';
|
|
17
|
+
import { CommonModule } from '@angular/common';
|
|
18
|
+
import { BpmnJsDiagramComponent } from './bpmn-js-diagram.component';
|
|
19
|
+
export class BpmnJsDiagramModule {
|
|
20
|
+
}
|
|
21
|
+
BpmnJsDiagramModule.decorators = [
|
|
22
|
+
{ type: NgModule, args: [{
|
|
23
|
+
declarations: [BpmnJsDiagramComponent],
|
|
24
|
+
imports: [
|
|
25
|
+
CommonModule
|
|
26
|
+
],
|
|
27
|
+
exports: [BpmnJsDiagramComponent]
|
|
28
|
+
},] }
|
|
29
|
+
];
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtbi1qcy1kaWFncmFtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2JwbW4tanMtZGlhZ3JhbS9icG1uLWpzLWRpYWdyYW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFVckUsTUFBTSxPQUFPLG1CQUFtQjs7O1lBUi9CLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDdEMsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJwbW5Kc0RpYWdyYW1Db21wb25lbnQgfSBmcm9tICcuL2JwbW4tanMtZGlhZ3JhbS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtCcG1uSnNEaWFncmFtQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbQnBtbkpzRGlhZ3JhbUNvbXBvbmVudF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBCcG1uSnNEaWFncmFtTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component } from '@angular/core';
|
|
17
|
+
import { ActivatedRoute, NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router';
|
|
18
|
+
import { filter, map } from 'rxjs/operators';
|
|
19
|
+
import { Subscription } from 'rxjs';
|
|
20
|
+
export class BreadcrumbNavigationComponent {
|
|
21
|
+
constructor(router, route) {
|
|
22
|
+
this.router = router;
|
|
23
|
+
this.route = route;
|
|
24
|
+
this.breadcrumbs = [];
|
|
25
|
+
this.appTitle = 'Valtimo';
|
|
26
|
+
this.routerSub = Subscription.EMPTY;
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
this.setBreadcrumbs(this.route);
|
|
30
|
+
this.routerSub = this.router.events
|
|
31
|
+
.pipe(filter(event => event instanceof NavigationEnd))
|
|
32
|
+
.pipe(map(() => this.route))
|
|
33
|
+
.pipe(map((route) => {
|
|
34
|
+
while (route.firstChild) {
|
|
35
|
+
route = route.firstChild;
|
|
36
|
+
}
|
|
37
|
+
return route;
|
|
38
|
+
}))
|
|
39
|
+
.pipe(filter(route => route.outlet === PRIMARY_OUTLET))
|
|
40
|
+
.subscribe(route => {
|
|
41
|
+
this.setBreadcrumbs(route);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
setBreadcrumbs(route) {
|
|
45
|
+
while (route.firstChild) {
|
|
46
|
+
route = route.firstChild;
|
|
47
|
+
}
|
|
48
|
+
if (route.outlet === PRIMARY_OUTLET) {
|
|
49
|
+
const snapshot = route.snapshot;
|
|
50
|
+
const activeRoute = {
|
|
51
|
+
url: snapshot.url.join('/'),
|
|
52
|
+
path: snapshot.routeConfig.path,
|
|
53
|
+
label: snapshot.data['title'],
|
|
54
|
+
params: snapshot.params
|
|
55
|
+
};
|
|
56
|
+
this.generateBreadcrumbs(activeRoute);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
generateBreadcrumbs(activeBreadcrumb) {
|
|
60
|
+
this.breadcrumbs = [];
|
|
61
|
+
this.router.config.map(routerConfig => {
|
|
62
|
+
if (activeBreadcrumb.path.indexOf(routerConfig.path + '/') === 0
|
|
63
|
+
&& activeBreadcrumb.path !== routerConfig.path
|
|
64
|
+
&& routerConfig.path !== '') {
|
|
65
|
+
const parentRoute = {
|
|
66
|
+
url: routerConfig.path.replace(/:(.+?)\b/g, (_, p1) => activeBreadcrumb.params[p1]),
|
|
67
|
+
path: routerConfig.path,
|
|
68
|
+
label: routerConfig.data['title'],
|
|
69
|
+
params: activeBreadcrumb.params
|
|
70
|
+
};
|
|
71
|
+
const exist = this.breadcrumbs.findIndex(item => item.url === parentRoute.url);
|
|
72
|
+
if (exist === -1) {
|
|
73
|
+
this.breadcrumbs.push(parentRoute);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
ngOnDestroy() {
|
|
79
|
+
this.routerSub.unsubscribe();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
BreadcrumbNavigationComponent.decorators = [
|
|
83
|
+
{ type: Component, args: [{
|
|
84
|
+
selector: 'valtimo-breadcrumb-navigation',
|
|
85
|
+
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<nav aria-label=\"breadcrumb\" role=\"navigation\">\n <ol class=\"breadcrumb page-head-nav\">\n <li class=\"breadcrumb-item\">\n <a [routerLink]=\"['/']\">{{ appTitle }}</a>\n </li>\n <li class=\"breadcrumb-item\" *ngFor=\"let item of breadcrumbs\">\n <a [routerLink]=\"[item.url]\">{{ item.label | translate }}</a>\n </li>\n </ol>\n</nav>\n",
|
|
86
|
+
styles: [""]
|
|
87
|
+
},] }
|
|
88
|
+
];
|
|
89
|
+
BreadcrumbNavigationComponent.ctorParameters = () => [
|
|
90
|
+
{ type: Router },
|
|
91
|
+
{ type: ActivatedRoute }
|
|
92
|
+
];
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2JyZWFkY3J1bWItbmF2aWdhdGlvbi9icmVhZGNydW1iLW5hdmlnYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RGLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU9sQyxNQUFNLE9BQU8sNkJBQTZCO0lBTXhDLFlBQ1UsTUFBYyxFQUNkLEtBQXFCO1FBRHJCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQU54QixnQkFBVyxHQUFlLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQUcsU0FBUyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBTXZDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQzthQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FB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ViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFBSSU1BUllfT1VUTEVULCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2ZpbHRlciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tYnJlYWRjcnVtYi1uYXZpZ2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWItbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JyZWFkY3J1bWItbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYk5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGJyZWFkY3J1bWJzOiBBcnJheTxhbnk+ID0gW107XG4gIHB1YmxpYyBhcHBUaXRsZSA9ICdWYWx0aW1vJztcbiAgcHJpdmF0ZSByb3V0ZXJTdWIgPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0QnJlYWRjcnVtYnModGhpcy5yb3V0ZSk7XG4gICAgdGhpcy5yb3V0ZXJTdWIgPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnBpcGUobWFwKCgpID0+IHRoaXMucm91dGUpKVxuICAgICAgLnBpcGUobWFwKChyb3V0ZSkgPT4ge1xuICAgICAgICB3aGlsZSAocm91dGUuZmlyc3RDaGlsZCkge1xuICAgICAgICAgIHJvdXRlID0gcm91dGUuZmlyc3RDaGlsZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgICB9KSlcbiAgICAgIC5waXBlKGZpbHRlcihyb3V0ZSA9PiByb3V0ZS5vdXRsZXQgPT09IFBSSU1BUllfT1VUTEVUKSlcbiAgICAgIC5zdWJzY3JpYmUocm91dGUgPT4ge1xuICAgICAgICB0aGlzLnNldEJyZWFkY3J1bWJzKHJvdXRlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRCcmVhZGNydW1icyhyb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICB3aGlsZSAocm91dGUuZmlyc3RDaGlsZCkge1xuICAgICAgcm91dGUgPSByb3V0ZS5maXJzdENoaWxkO1xuICAgIH1cbiAgICBpZiAocm91dGUub3V0bGV0ID09PSBQUklNQVJZX09VVExFVCkge1xuICAgICAgY29uc3Qgc25hcHNob3QgPSByb3V0ZS5zbmFwc2hvdDtcbiAgICAgIGNvbnN0IGFjdGl2ZVJvdXRlID0ge1xuICAgICAgICB1cmw6IHNuYXBzaG90LnVybC5qb2luKCcvJyksXG4gICAgICAgIHBhdGg6IHNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGgsXG4gICAgICAgIGxhYmVsOiBzbmFwc2hvdC5kYXRhWyd0aXRsZSddLFxuICAgICAgICBwYXJhbXM6IHNuYXBzaG90LnBhcmFtc1xuICAgICAgfTtcbiAgICAgIHRoaXMuZ2VuZXJhdGVCcmVhZGNydW1icyhhY3RpdmVSb3V0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUJyZWFkY3J1bWJzKGFjdGl2ZUJyZWFkY3J1bWI6IGFueSkge1xuICAgIHRoaXMuYnJlYWRjcnVtYnMgPSBbXTtcbiAgICB0aGlzLnJvdXRlci5jb25maWcubWFwKHJvdXRlckNvbmZpZyA9PiB7XG4gICAgICBpZiAoYWN0aXZlQnJlYWRjcnVtYi5wYXRoLmluZGV4T2Yocm91dGVyQ29uZmlnLnBhdGggKyAnLycpID09PSAwXG4gICAgICAgICYmIGFjdGl2ZUJyZWFkY3J1bWIucGF0aCAhPT0gcm91dGVyQ29uZmlnLnBhdGhcbiAgICAgICAgJiYgcm91dGVyQ29uZmlnLnBhdGggIT09ICcnXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgcGFyZW50Um91dGUgPSB7XG4gICAgICAgICAgdXJsOiByb3V0ZXJDb25maWcucGF0aC5yZXBsYWNlKC86KC4rPylcXGIvZywgKF8sIHAxKSA9PiBhY3RpdmVCcmVhZGNydW1iLnBhcmFtc1twMV0pLFxuICAgICAgICAgIHBhdGg6IHJvdXRlckNvbmZpZy5wYXRoLFxuICAgICAgICAgIGxhYmVsOiByb3V0ZXJDb25maWcuZGF0YVsndGl0bGUnXSxcbiAgICAgICAgICBwYXJhbXM6IGFjdGl2ZUJyZWFkY3J1bWIucGFyYW1zXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGV4aXN0ID0gdGhpcy5icmVhZGNydW1icy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLnVybCA9PT0gcGFyZW50Um91dGUudXJsKTtcbiAgICAgICAgaWYgKGV4aXN0ID09PSAtMSkge1xuICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYnMucHVzaChwYXJlbnRSb3V0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucm91dGVyU3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxufVxuIl19
|