@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.
Files changed (202) hide show
  1. package/bundles/valtimo-components.umd.js +5089 -0
  2. package/bundles/valtimo-components.umd.js.map +1 -0
  3. package/bundles/valtimo-components.umd.min.js +17 -0
  4. package/bundles/valtimo-components.umd.min.js.map +1 -0
  5. package/esm2015/lib/alert/alert.component.js +142 -0
  6. package/esm2015/lib/alert/alert.module.js +28 -0
  7. package/esm2015/lib/alert/alert.service.js +81 -0
  8. package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.component.js +160 -0
  9. package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.module.js +30 -0
  10. package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.component.js +93 -0
  11. package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.module.js +34 -0
  12. package/esm2015/lib/camunda/form/camunda-form.components.js +37 -0
  13. package/esm2015/lib/camunda/form/camunda-form.module.js +38 -0
  14. package/esm2015/lib/camunda/form/custom/camunda-custom-form.component.js +42 -0
  15. package/esm2015/lib/camunda/form/custom/camunda-custom-form.module.js +34 -0
  16. package/esm2015/lib/camunda/form/generated/camunda-generated-form.component.js +69 -0
  17. package/esm2015/lib/camunda/form/generated/camunda-generated-form.module.js +63 -0
  18. package/esm2015/lib/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.js +28 -0
  19. package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +64 -0
  20. package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield.service.js +67 -0
  21. package/esm2015/lib/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.js +38 -0
  22. package/esm2015/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +66 -0
  23. package/esm2015/lib/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.js +31 -0
  24. package/esm2015/lib/camunda/form/generated/formfield/formfield.model.js +16 -0
  25. package/esm2015/lib/camunda/form/generated/formfield/long/camunda-long-formfield.component.js +28 -0
  26. package/esm2015/lib/camunda/form/generated/formfield/string/camunda-string-formfield.component.js +28 -0
  27. package/esm2015/lib/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.js +28 -0
  28. package/esm2015/lib/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.js +36 -0
  29. package/esm2015/lib/camunda/form/generated/formfield/validation/date.validators.js +60 -0
  30. package/esm2015/lib/card/card.component.js +37 -0
  31. package/esm2015/lib/card/card.module.js +30 -0
  32. package/esm2015/lib/components.module.js +22 -0
  33. package/esm2015/lib/data-list/data-list.component.js +34 -0
  34. package/esm2015/lib/data-list/data-list.module.js +30 -0
  35. package/esm2015/lib/dropzone/dropzone.component.js +143 -0
  36. package/esm2015/lib/dropzone/dropzone.module.js +32 -0
  37. package/esm2015/lib/field-auto-focus/field-auto-focus.directive.js +35 -0
  38. package/esm2015/lib/field-auto-focus/field-auto-focus.module.js +32 -0
  39. package/esm2015/lib/file-size/file-size.module.js +30 -0
  40. package/esm2015/lib/file-size/file-size.pipe.js +45 -0
  41. package/esm2015/lib/filter-sidebar/filter-sidebar.component.js +46 -0
  42. package/esm2015/lib/filter-sidebar/filter-sidebar.module.js +30 -0
  43. package/esm2015/lib/form-io/form-io-builder.component.js +39 -0
  44. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader-edit-form.js +90 -0
  45. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.component.js +72 -0
  46. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.formio.js +26 -0
  47. package/esm2015/lib/form-io/form-io.component.js +160 -0
  48. package/esm2015/lib/form-io/form-io.module.js +56 -0
  49. package/esm2015/lib/form-io/formio-config.js +22 -0
  50. package/esm2015/lib/form-io/services/form-io-dom.service.js +23 -0
  51. package/esm2015/lib/form-io/services/form-io-state.service.js +24 -0
  52. package/esm2015/lib/left-sidebar/left-sidebar.component.js +114 -0
  53. package/esm2015/lib/left-sidebar/left-sidebar.module.js +34 -0
  54. package/esm2015/lib/list/ListFilterPipe.directive.js +35 -0
  55. package/esm2015/lib/list/list.component.js +177 -0
  56. package/esm2015/lib/list/list.module.js +33 -0
  57. package/esm2015/lib/menu/menu-item-text.component.js +36 -0
  58. package/esm2015/lib/menu/menu-routing.module.js +29 -0
  59. package/esm2015/lib/menu/menu.component.js +65 -0
  60. package/esm2015/lib/menu/menu.init.js +34 -0
  61. package/esm2015/lib/menu/menu.module.js +39 -0
  62. package/esm2015/lib/menu/menu.service.js +127 -0
  63. package/esm2015/lib/menu/submenu-item-text.component.js +33 -0
  64. package/esm2015/lib/modal/modal.component.js +48 -0
  65. package/esm2015/lib/modal/modal.module.js +28 -0
  66. package/esm2015/lib/page-header/page-header.component.js +29 -0
  67. package/esm2015/lib/page-header/page-header.module.js +34 -0
  68. package/esm2015/lib/page-title/page-title.component.js +76 -0
  69. package/esm2015/lib/page-title/page-title.module.js +32 -0
  70. package/esm2015/lib/progress-bar/progress-bar.component.js +26 -0
  71. package/esm2015/lib/progress-bar/progress-bar.module.js +30 -0
  72. package/esm2015/lib/right-sidebar/right-sidebar.component.js +131 -0
  73. package/esm2015/lib/right-sidebar/right-sidebar.module.js +49 -0
  74. package/esm2015/lib/searchable-dropdown/searchable-dropdown.component.js +185 -0
  75. package/esm2015/lib/searchable-dropdown/searchable-dropdown.module.js +29 -0
  76. package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.component.js +52 -0
  77. package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.module.js +30 -0
  78. package/esm2015/lib/spinner/spinner.component.js +43 -0
  79. package/esm2015/lib/spinner/spinner.module.js +36 -0
  80. package/esm2015/lib/timeline/timeline.component.js +29 -0
  81. package/esm2015/lib/timeline/timeline.module.js +32 -0
  82. package/esm2015/lib/topbar/topbar.component.js +29 -0
  83. package/esm2015/lib/topbar/topbar.module.js +32 -0
  84. package/esm2015/lib/uploader/uploader-drag-drop.directive.js +49 -0
  85. package/esm2015/lib/uploader/uploader.component.js +70 -0
  86. package/esm2015/lib/uploader/uploader.module.js +33 -0
  87. package/esm2015/lib/version/version.service.js +38 -0
  88. package/esm2015/lib/view-content/type-converters/booleanTypeConverter.js +29 -0
  89. package/esm2015/lib/view-content/type-converters/dateTypeConverter.js +30 -0
  90. package/esm2015/lib/view-content/type-converters/enumTypeConverter.js +24 -0
  91. package/esm2015/lib/view-content/type-converters/relatedFilesTypeConverter.js +24 -0
  92. package/esm2015/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +27 -0
  93. package/esm2015/lib/view-content/type-converters/stringTypeConverter.js +24 -0
  94. package/esm2015/lib/view-content/type-converters/type-converters.model.js +37 -0
  95. package/esm2015/lib/view-content/view-content.service.js +51 -0
  96. package/esm2015/lib/webcam/webcam.component.js +103 -0
  97. package/esm2015/lib/webcam/webcam.module.js +32 -0
  98. package/esm2015/lib/widget/widget.component.js +80 -0
  99. package/esm2015/lib/widget/widget.module.js +30 -0
  100. package/esm2015/public_api.js +84 -0
  101. package/esm2015/valtimo-components.js +27 -0
  102. package/fesm2015/valtimo-components.js +4536 -0
  103. package/fesm2015/valtimo-components.js.map +1 -0
  104. package/lib/alert/alert.component.d.ts +21 -0
  105. package/lib/alert/alert.module.d.ts +2 -0
  106. package/lib/alert/alert.service.d.ts +21 -0
  107. package/lib/bpmn-js-diagram/bpmn-js-diagram.component.d.ts +27 -0
  108. package/lib/bpmn-js-diagram/bpmn-js-diagram.module.d.ts +2 -0
  109. package/lib/breadcrumb-navigation/breadcrumb-navigation.component.d.ts +14 -0
  110. package/lib/breadcrumb-navigation/breadcrumb-navigation.module.d.ts +2 -0
  111. package/lib/camunda/form/camunda-form.components.d.ts +9 -0
  112. package/lib/camunda/form/camunda-form.module.d.ts +2 -0
  113. package/lib/camunda/form/custom/camunda-custom-form.component.d.ts +8 -0
  114. package/lib/camunda/form/custom/camunda-custom-form.module.d.ts +2 -0
  115. package/lib/camunda/form/generated/camunda-generated-form.component.d.ts +19 -0
  116. package/lib/camunda/form/generated/camunda-generated-form.module.d.ts +2 -0
  117. package/lib/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +7 -0
  118. package/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts +13 -0
  119. package/lib/camunda/form/generated/formfield/camunda-formfield.service.d.ts +7 -0
  120. package/lib/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +12 -0
  121. package/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts +14 -0
  122. package/lib/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +10 -0
  123. package/lib/camunda/form/generated/formfield/formfield.model.d.ts +20 -0
  124. package/lib/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts +7 -0
  125. package/lib/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts +7 -0
  126. package/lib/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +7 -0
  127. package/lib/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +10 -0
  128. package/lib/camunda/form/generated/formfield/validation/date.validators.d.ts +3 -0
  129. package/lib/card/card.component.d.ts +16 -0
  130. package/lib/card/card.module.d.ts +2 -0
  131. package/lib/components.module.d.ts +2 -0
  132. package/lib/data-list/data-list.component.d.ts +7 -0
  133. package/lib/data-list/data-list.module.d.ts +2 -0
  134. package/lib/dropzone/dropzone.component.d.ts +38 -0
  135. package/lib/dropzone/dropzone.module.d.ts +2 -0
  136. package/lib/field-auto-focus/field-auto-focus.directive.d.ts +6 -0
  137. package/lib/field-auto-focus/field-auto-focus.module.d.ts +2 -0
  138. package/lib/file-size/file-size.module.d.ts +2 -0
  139. package/lib/file-size/file-size.pipe.d.ts +5 -0
  140. package/lib/filter-sidebar/filter-sidebar.component.d.ts +8 -0
  141. package/lib/filter-sidebar/filter-sidebar.module.d.ts +2 -0
  142. package/lib/form-io/form-io-builder.component.d.ts +8 -0
  143. package/lib/form-io/form-io-uploader/form-io-uploader-edit-form.d.ts +61 -0
  144. package/lib/form-io/form-io-uploader/form-io-uploader.component.d.ts +29 -0
  145. package/lib/form-io/form-io-uploader/form-io-uploader.formio.d.ts +3 -0
  146. package/lib/form-io/form-io.component.d.ts +45 -0
  147. package/lib/form-io/form-io.module.d.ts +2 -0
  148. package/lib/form-io/formio-config.d.ts +6 -0
  149. package/lib/form-io/services/form-io-dom.service.d.ts +6 -0
  150. package/lib/form-io/services/form-io-state.service.d.ts +10 -0
  151. package/lib/left-sidebar/left-sidebar.component.d.ts +34 -0
  152. package/lib/left-sidebar/left-sidebar.module.d.ts +2 -0
  153. package/lib/list/ListFilterPipe.directive.d.ts +4 -0
  154. package/lib/list/list.component.d.ts +43 -0
  155. package/lib/list/list.module.d.ts +2 -0
  156. package/lib/menu/menu-item-text.component.d.ts +4 -0
  157. package/lib/menu/menu-routing.module.d.ts +2 -0
  158. package/lib/menu/menu.component.d.ts +18 -0
  159. package/lib/menu/menu.init.d.ts +3 -0
  160. package/lib/menu/menu.module.d.ts +2 -0
  161. package/lib/menu/menu.service.d.ts +23 -0
  162. package/lib/menu/submenu-item-text.component.d.ts +4 -0
  163. package/lib/modal/modal.component.d.ts +12 -0
  164. package/lib/modal/modal.module.d.ts +2 -0
  165. package/lib/page-header/page-header.component.d.ts +5 -0
  166. package/lib/page-header/page-header.module.d.ts +2 -0
  167. package/lib/page-title/page-title.component.d.ts +19 -0
  168. package/lib/page-title/page-title.module.d.ts +2 -0
  169. package/lib/progress-bar/progress-bar.component.d.ts +2 -0
  170. package/lib/progress-bar/progress-bar.module.d.ts +2 -0
  171. package/lib/right-sidebar/right-sidebar.component.d.ts +34 -0
  172. package/lib/right-sidebar/right-sidebar.module.d.ts +2 -0
  173. package/lib/searchable-dropdown/searchable-dropdown.component.d.ts +39 -0
  174. package/lib/searchable-dropdown/searchable-dropdown.module.d.ts +2 -0
  175. package/lib/searchable-dropdown-select/searchable-dropdown-select.component.d.ts +19 -0
  176. package/lib/searchable-dropdown-select/searchable-dropdown-select.module.d.ts +2 -0
  177. package/lib/spinner/spinner.component.d.ts +9 -0
  178. package/lib/spinner/spinner.module.d.ts +2 -0
  179. package/lib/timeline/timeline.component.d.ts +4 -0
  180. package/lib/timeline/timeline.module.d.ts +2 -0
  181. package/lib/topbar/topbar.component.d.ts +3 -0
  182. package/lib/topbar/topbar.module.d.ts +2 -0
  183. package/lib/uploader/uploader-drag-drop.directive.d.ts +7 -0
  184. package/lib/uploader/uploader.component.d.ts +15 -0
  185. package/lib/uploader/uploader.module.d.ts +2 -0
  186. package/lib/version/version.service.d.ts +8 -0
  187. package/lib/view-content/type-converters/booleanTypeConverter.d.ts +5 -0
  188. package/lib/view-content/type-converters/dateTypeConverter.d.ts +5 -0
  189. package/lib/view-content/type-converters/enumTypeConverter.d.ts +5 -0
  190. package/lib/view-content/type-converters/relatedFilesTypeConverter.d.ts +5 -0
  191. package/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.d.ts +6 -0
  192. package/lib/view-content/type-converters/stringTypeConverter.d.ts +5 -0
  193. package/lib/view-content/type-converters/type-converters.model.d.ts +5 -0
  194. package/lib/view-content/view-content.service.d.ts +8 -0
  195. package/lib/webcam/webcam.component.d.ts +20 -0
  196. package/lib/webcam/webcam.module.d.ts +2 -0
  197. package/lib/widget/widget.component.d.ts +28 -0
  198. package/lib/widget/widget.module.d.ts +2 -0
  199. package/package.json +34 -0
  200. package/public_api.d.ts +65 -0
  201. package/valtimo-components.d.ts +26 -0
  202. 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>&nbsp;&nbsp;Amount of currently active instances of this task.</span>\n <span>&nbsp;&nbsp;|&nbsp;&nbsp;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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtbi1qcy1kaWFncmFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL2JwbW4tanMtZGlhZ3JhbS9icG1uLWpzLWRpYWdyYW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0RBQXNELENBQUM7QUFDL0UsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQ0FBbUMsQ0FBQztBQVE3RCxNQUFNLE9BQU8sc0JBQXNCO0lBaUJqQztRQVhpQixlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFPN0QsZUFBVSxHQUFHLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBSWYsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUNwQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRTNDLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFO29CQUNsQyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUNoRCxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUM7b0JBQ25ILENBQUMsQ0FBQyxDQUFDO2lCQUNKO2dCQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUVwQyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDN0MsUUFBUSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO3dCQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7NEJBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzt5QkFDckI7d0JBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN4QixDQUFDLENBQUMsQ0FBQztvQkFDSCxRQUFRLENBQUMsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTt3QkFDMUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFOzRCQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7eUJBQ3JCO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUNILFFBQVEsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO3dCQUN6QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLFNBQWMsRUFDZCxRQUFhLENBQUM7UUFFbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBRWIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ2pDLFFBQVEsR0FBRywrQkFBK0IsQ0FBQztTQUM1QzthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM1QixTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM5QixRQUFRLEdBQUcsWUFBWSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxTQUFTLEVBQUU7WUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO3FCQUM5RCxxQkFBcUIsRUFBRSxFQUMxQixVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztxQkFDMUUscUJBQXFCLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUN4QixDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztvQkFDdkUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7b0JBQ3hFLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO29CQUMvQixNQUFNLEVBQUUsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDO2lCQUM3QixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDL0M7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsNkJBQTZCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hGO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzVCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDakc7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsR0FBUSxFQUFFLFNBQWM7UUFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDaEIsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxFQUFFLENBQUM7YUFDUjtZQUNELElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsR0FBRzthQUNiO1lBQ0QsSUFBSSxFQUFFLGdEQUFnRCxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxTQUFTO1NBQ3BGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEdBQUc7WUFDVCxVQUFVLEVBQUUsRUFBRTtZQUNkLFVBQVUsRUFBRSxDQUFDO1lBQ2IsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYTtTQUNqQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztZQUMzQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs7WUE5SkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLG1wREFBK0M7O2FBRWhEOzs7O2lCQU9FLFNBQVMsU0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO3lCQUNqQyxNQUFNO3dCQUNOLEtBQUs7OEJBQ0wsS0FBSzsyQkFDTCxLQUFLO3dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIEJwbW5KUyBmcm9tICdicG1uLWpzL2Rpc3QvYnBtbi1uYXZpZ2F0ZWQtdmlld2VyLnByb2R1Y3Rpb24ubWluLmpzJztcbmltcG9ydCAqIGFzIGhlYXRtYXAgZnJvbSAnaGVhdG1hcC5qcy1maXhlZC9idWlsZC9oZWF0bWFwLmpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1icG1uLWpzLWRpYWdyYW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnBtbi1qcy1kaWFncmFtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnBtbi1qcy1kaWFncmFtLmNvbXBvbmVudC5jc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEJwbW5Kc0RpYWdyYW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBicG1uSlM6IEJwbW5KUztcbiAgcHJpdmF0ZSBoZWF0TWFwSW5zdGFuY2U6IGFueTtcblxuICBAVmlld0NoaWxkKCdyZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgZWw6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaW1wb3J0RG9uZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBicG1uMjBYbWw6IGFueTtcbiAgQElucHV0KCkgcHVibGljIGhlYXRtYXBEdXJhdGlvbj86IGFueTtcbiAgQElucHV0KCkgcHVibGljIGhlYXRtYXBDb3VudD86IGFueTtcbiAgQElucHV0KCkgcHVibGljIGhpc3RvcmljQWN0aXZpdHlJbnN0YW5jZXM/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