@valtimo/dossier 10.7.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/{esm2020 → esm2022}/lib/components/note-modal/note-modal.component.mjs +5 -5
  2. package/esm2022/lib/dossier-assign-user/dossier-assign-user.component.mjs +98 -0
  3. package/esm2022/lib/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.mjs +75 -0
  4. package/esm2022/lib/dossier-detail/dossier-detail.component.mjs +175 -0
  5. package/{esm2020 → esm2022}/lib/dossier-detail/tab/audit/audit.component.mjs +5 -5
  6. package/{esm2020 → esm2022}/lib/dossier-detail/tab/contact-moments/contact-moments.component.mjs +4 -4
  7. package/esm2022/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +146 -0
  8. package/{esm2020 → esm2022}/lib/dossier-detail/tab/documents/documents.component.mjs +4 -4
  9. package/esm2022/lib/dossier-detail/tab/notes/notes.component.mjs +166 -0
  10. package/esm2022/lib/dossier-detail/tab/object-type/object-type.component.mjs +121 -0
  11. package/esm2022/lib/dossier-detail/tab/progress/progress.component.mjs +52 -0
  12. package/esm2022/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +136 -0
  13. package/esm2022/lib/dossier-detail/tab/summary/summary.component.mjs +130 -0
  14. package/esm2022/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +112 -0
  15. package/esm2022/lib/dossier-list/dossier-list.component.mjs +371 -0
  16. package/esm2022/lib/dossier-list-actions/dossier-list-actions.component.mjs +84 -0
  17. package/esm2022/lib/dossier-process-start-modal/dossier-process-start-modal.component.mjs +133 -0
  18. package/{esm2020 → esm2022}/lib/dossier-routing.module.mjs +5 -5
  19. package/esm2022/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +116 -0
  20. package/{esm2020 → esm2022}/lib/dossier-update/dossier-update.component.mjs +5 -5
  21. package/esm2022/lib/dossier.module.mjs +282 -0
  22. package/esm2022/lib/dossier.service.mjs +58 -0
  23. package/esm2022/lib/models/candidate-user.model.mjs +17 -0
  24. package/{esm2020 → esm2022}/lib/models/dossier-parameters.model.mjs +1 -1
  25. package/esm2022/lib/models/index.mjs +21 -0
  26. package/esm2022/lib/permissions/dossier.permissions.mjs +55 -0
  27. package/esm2022/lib/permissions/index.mjs +17 -0
  28. package/esm2022/lib/services/dossier-bulk-assign.service.mjs +35 -0
  29. package/esm2022/lib/services/dossier-column.service.mjs +98 -0
  30. package/esm2022/lib/services/dossier-list-assignee.service.mjs +89 -0
  31. package/esm2022/lib/services/dossier-list-pagination.service.mjs +119 -0
  32. package/esm2022/lib/services/dossier-list-search.service.mjs +59 -0
  33. package/esm2022/lib/services/dossier-list.service.mjs +74 -0
  34. package/esm2022/lib/services/dossier-parameter.service.mjs +165 -0
  35. package/{esm2020 → esm2022}/lib/services/file-sort.service.mjs +4 -4
  36. package/esm2022/lib/services/index.mjs +25 -0
  37. package/esm2022/lib/services/notes.service.mjs +76 -0
  38. package/{esm2020 → esm2022}/lib/services/zaakobjecten.service.mjs +4 -4
  39. package/{esm2020 → esm2022}/lib/tab.service.mjs +4 -4
  40. package/esm2022/public_api.mjs +36 -0
  41. package/fesm2022/valtimo-dossier.mjs +3681 -0
  42. package/fesm2022/valtimo-dossier.mjs.map +1 -0
  43. package/lib/components/note-modal/note-modal.component.d.ts +3 -3
  44. package/lib/components/note-modal/note-modal.component.d.ts.map +1 -1
  45. package/lib/dossier-assign-user/dossier-assign-user.component.d.ts +12 -18
  46. package/lib/dossier-assign-user/dossier-assign-user.component.d.ts.map +1 -1
  47. package/lib/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts +22 -0
  48. package/lib/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts.map +1 -0
  49. package/lib/dossier-detail/dossier-detail.component.d.ts +34 -31
  50. package/lib/dossier-detail/dossier-detail.component.d.ts.map +1 -1
  51. package/lib/dossier-detail/tab/audit/audit.component.d.ts +1 -1
  52. package/lib/dossier-detail/tab/contact-moments/contact-moments.component.d.ts +1 -1
  53. package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts +2 -3
  54. package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -1
  55. package/lib/dossier-detail/tab/documents/documents.component.d.ts +1 -1
  56. package/lib/dossier-detail/tab/notes/notes.component.d.ts +19 -12
  57. package/lib/dossier-detail/tab/notes/notes.component.d.ts.map +1 -1
  58. package/lib/dossier-detail/tab/object-type/object-type.component.d.ts +3 -3
  59. package/lib/dossier-detail/tab/object-type/object-type.component.d.ts.map +1 -1
  60. package/lib/dossier-detail/tab/progress/progress.component.d.ts +1 -1
  61. package/lib/dossier-detail/tab/progress/progress.component.d.ts.map +1 -1
  62. package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts +2 -2
  63. package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +1 -1
  64. package/lib/dossier-detail/tab/summary/summary.component.d.ts +8 -4
  65. package/lib/dossier-detail/tab/summary/summary.component.d.ts.map +1 -1
  66. package/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts +3 -3
  67. package/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts.map +1 -1
  68. package/lib/dossier-list/dossier-list.component.d.ts +52 -24
  69. package/lib/dossier-list/dossier-list.component.d.ts.map +1 -1
  70. package/lib/dossier-list-actions/dossier-list-actions.component.d.ts +5 -6
  71. package/lib/dossier-list-actions/dossier-list-actions.component.d.ts.map +1 -1
  72. package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts +4 -7
  73. package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -1
  74. package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts +4 -7
  75. package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +1 -1
  76. package/lib/dossier-update/dossier-update.component.d.ts +1 -1
  77. package/lib/dossier.module.d.ts +31 -31
  78. package/lib/dossier.module.d.ts.map +1 -1
  79. package/lib/dossier.service.d.ts +5 -1
  80. package/lib/dossier.service.d.ts.map +1 -1
  81. package/lib/models/candidate-user.model.d.ts +7 -0
  82. package/lib/models/candidate-user.model.d.ts.map +1 -0
  83. package/lib/models/dossier-parameters.model.d.ts +0 -1
  84. package/lib/models/dossier-parameters.model.d.ts.map +1 -1
  85. package/lib/models/index.d.ts +3 -2
  86. package/lib/models/index.d.ts.map +1 -1
  87. package/lib/models/search.model.d.ts +3 -3
  88. package/lib/models/search.model.d.ts.map +1 -1
  89. package/lib/permissions/dossier.permissions.d.ts +14 -0
  90. package/lib/permissions/dossier.permissions.d.ts.map +1 -0
  91. package/lib/permissions/index.d.ts +2 -0
  92. package/lib/permissions/index.d.ts.map +1 -0
  93. package/lib/services/dossier-bulk-assign.service.d.ts +17 -0
  94. package/lib/services/dossier-bulk-assign.service.d.ts.map +1 -0
  95. package/lib/services/dossier-column.service.d.ts +1 -1
  96. package/lib/services/dossier-column.service.d.ts.map +1 -1
  97. package/lib/services/dossier-list-assignee.service.d.ts +5 -4
  98. package/lib/services/dossier-list-assignee.service.d.ts.map +1 -1
  99. package/lib/services/dossier-list-pagination.service.d.ts +1 -1
  100. package/lib/services/dossier-list-pagination.service.d.ts.map +1 -1
  101. package/lib/services/dossier-list-search.service.d.ts +0 -3
  102. package/lib/services/dossier-list-search.service.d.ts.map +1 -1
  103. package/lib/services/dossier-list.service.d.ts +6 -0
  104. package/lib/services/dossier-list.service.d.ts.map +1 -1
  105. package/lib/services/dossier-parameter.service.d.ts.map +1 -1
  106. package/lib/services/index.d.ts +1 -0
  107. package/lib/services/index.d.ts.map +1 -1
  108. package/lib/services/notes.service.d.ts.map +1 -1
  109. package/lib/services/zaakobjecten.service.d.ts.map +1 -1
  110. package/package.json +13 -19
  111. package/public_api.d.ts +10 -9
  112. package/public_api.d.ts.map +1 -1
  113. package/esm2020/lib/dossier-assign-user/dossier-assign-user.component.mjs +0 -126
  114. package/esm2020/lib/dossier-detail/dossier-detail.component.mjs +0 -175
  115. package/esm2020/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +0 -147
  116. package/esm2020/lib/dossier-detail/tab/notes/notes.component.mjs +0 -153
  117. package/esm2020/lib/dossier-detail/tab/object-type/object-type.component.mjs +0 -122
  118. package/esm2020/lib/dossier-detail/tab/progress/progress.component.mjs +0 -51
  119. package/esm2020/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +0 -134
  120. package/esm2020/lib/dossier-detail/tab/summary/summary.component.mjs +0 -124
  121. package/esm2020/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +0 -113
  122. package/esm2020/lib/dossier-list/dossier-list.component.mjs +0 -224
  123. package/esm2020/lib/dossier-list-actions/dossier-list-actions.component.mjs +0 -86
  124. package/esm2020/lib/dossier-process-start-modal/dossier-process-start-modal.component.mjs +0 -192
  125. package/esm2020/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +0 -181
  126. package/esm2020/lib/dossier.module.mjs +0 -259
  127. package/esm2020/lib/dossier.service.mjs +0 -50
  128. package/esm2020/lib/models/index.mjs +0 -20
  129. package/esm2020/lib/services/dossier-column.service.mjs +0 -100
  130. package/esm2020/lib/services/dossier-list-assignee.service.mjs +0 -82
  131. package/esm2020/lib/services/dossier-list-pagination.service.mjs +0 -116
  132. package/esm2020/lib/services/dossier-list-search.service.mjs +0 -66
  133. package/esm2020/lib/services/dossier-list.service.mjs +0 -56
  134. package/esm2020/lib/services/dossier-parameter.service.mjs +0 -167
  135. package/esm2020/lib/services/index.mjs +0 -24
  136. package/esm2020/lib/services/notes.service.mjs +0 -76
  137. package/esm2020/public_api.mjs +0 -35
  138. package/fesm2015/valtimo-dossier.mjs +0 -3348
  139. package/fesm2015/valtimo-dossier.mjs.map +0 -1
  140. package/fesm2020/valtimo-dossier.mjs +0 -3447
  141. package/fesm2020/valtimo-dossier.mjs.map +0 -1
  142. /package/{esm2020 → esm2022}/lib/dossier-detail-tab-enum.mjs +0 -0
  143. /package/{esm2020 → esm2022}/lib/dossier.config.mjs +0 -0
  144. /package/{esm2020 → esm2022}/lib/models/notes.model.mjs +0 -0
  145. /package/{esm2020 → esm2022}/lib/models/search.model.mjs +0 -0
  146. /package/{esm2020 → esm2022}/lib/models/tabs.model.mjs +0 -0
  147. /package/{esm2020 → esm2022}/lib/models/zaakobjecten.model.mjs +0 -0
  148. /package/{esm2020 → esm2022}/valtimo-dossier.mjs +0 -0
@@ -0,0 +1,121 @@
1
+ /*
2
+ * Copyright 2015-2023 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, ViewChild } from '@angular/core';
17
+ import { BehaviorSubject, combineLatest, map, of, switchMap, tap } from 'rxjs';
18
+ import { take } from 'rxjs/operators';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "@angular/router";
21
+ import * as i2 from "../../../services/zaakobjecten.service";
22
+ import * as i3 from "@valtimo/components";
23
+ import * as i4 from "@angular/common";
24
+ import * as i5 from "@ngx-translate/core";
25
+ export class DossierDetailTabObjectTypeComponent {
26
+ constructor(route, zaakobjectenService, modalService) {
27
+ this.route = route;
28
+ this.zaakobjectenService = zaakobjectenService;
29
+ this.modalService = modalService;
30
+ this.documentId$ = this.route.params.pipe(map(params => params.documentId));
31
+ this.objecttypes$ = this.documentId$.pipe(switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId)));
32
+ this.objectName$ = this.route.params.pipe(map(() => {
33
+ const currentUrl = window.location.href;
34
+ const splitUrl = currentUrl.split('/');
35
+ const lastUrlPart = splitUrl[splitUrl.length - 1];
36
+ return lastUrlPart;
37
+ }));
38
+ this.selectedObjecttypeUrl$ = combineLatest([
39
+ this.objecttypes$,
40
+ this.objectName$,
41
+ ]).pipe(map(([objectTypes, objectName]) => {
42
+ const currentType = objectTypes?.find(type => type?.name.toLowerCase() === objectName?.toLowerCase());
43
+ const currentTypeUrl = currentType?.url;
44
+ if (objectTypes && objectName && currentTypeUrl)
45
+ return currentTypeUrl;
46
+ return '';
47
+ }));
48
+ this.loading$ = new BehaviorSubject(true);
49
+ this.hasData$ = new BehaviorSubject(false);
50
+ this.objects$ = combineLatest([
51
+ this.documentId$,
52
+ this.selectedObjecttypeUrl$,
53
+ ]).pipe(switchMap(([documentId, selectedObjecttypeUrl]) => documentId && selectedObjecttypeUrl
54
+ ? this.zaakobjectenService.getDocumentObjectsOfType(documentId, selectedObjecttypeUrl).pipe(map(objects => objects.map(object => ({ ...object, title: object.title || '-' }))), tap(() => {
55
+ this.loading$.next(false);
56
+ this.hasData$.next(true);
57
+ }))
58
+ : of(null).pipe(tap(() => {
59
+ this.loading$.next(false);
60
+ this.hasData$.next(false);
61
+ }))));
62
+ this.columns$ = new BehaviorSubject([
63
+ {
64
+ labelTranslationKey: 'dossier.zaakobjecten.index',
65
+ dataKey: 'index',
66
+ },
67
+ {
68
+ labelTranslationKey: 'dossier.zaakobjecten.registrationAt',
69
+ dataKey: 'registrationAt',
70
+ },
71
+ {
72
+ labelTranslationKey: 'dossier.zaakobjecten.title',
73
+ dataKey: 'title',
74
+ },
75
+ ]);
76
+ this.objectForm$ = new BehaviorSubject(null);
77
+ this.noFormDefinitionComponent$ = new BehaviorSubject(false);
78
+ }
79
+ rowClicked(object) {
80
+ this.documentId$.pipe(take(1)).subscribe(documentId => {
81
+ this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(res => {
82
+ const definition = res.formDefinition;
83
+ definition.components = definition.components.map(component => ({
84
+ ...component,
85
+ disabled: true,
86
+ }));
87
+ this.setModalData(definition);
88
+ }, () => {
89
+ this.setModalData();
90
+ });
91
+ });
92
+ }
93
+ hide() {
94
+ this.modalService.closeModal(() => {
95
+ this.objectForm$.next(null);
96
+ });
97
+ }
98
+ show() {
99
+ this.modalService.openModal(this.viewObjectModal);
100
+ }
101
+ setModalData(definition) {
102
+ if (definition) {
103
+ this.objectForm$.next(definition);
104
+ this.noFormDefinitionComponent$.next(false);
105
+ }
106
+ else {
107
+ this.noFormDefinitionComponent$.next(true);
108
+ }
109
+ this.show();
110
+ }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabObjectTypeComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.ZaakobjectenService }, { token: i3.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierDetailTabObjectTypeComponent, selector: "valtimo-object-type", viewQueries: [{ propertyName: "viewObjectModal", first: true, predicate: ["viewObjectModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", styles: ["/*!\n * Copyright 2015-2023 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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i3.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "component", type: i3.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { kind: "component", type: i3.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "component", type: i3.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabObjectTypeComponent, decorators: [{
115
+ type: Component,
116
+ args: [{ selector: 'valtimo-object-type', template: "<!--\n ~ Copyright 2015-2023 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<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
117
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.ZaakobjectenService }, { type: i3.ModalService }]; }, propDecorators: { viewObjectModal: [{
118
+ type: ViewChild,
119
+ args: ['viewObjectModal']
120
+ }] } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXR5cGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvZG9zc2llci1kZXRhaWwvdGFiL29iamVjdC10eXBlL29iamVjdC10eXBlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2Rvc3NpZXItZGV0YWlsL3RhYi9vYmplY3QtdHlwZS9vYmplY3QtdHlwZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd6RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFRcEMsTUFBTSxPQUFPLG1DQUFtQztJQW1GOUMsWUFDbUIsS0FBcUIsRUFDckIsbUJBQXdDLEVBQ3hDLFlBQTBCO1FBRjFCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFuRjVCLGdCQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBRXZFLGlCQUFZLEdBQXNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN0RixTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDckYsQ0FBQztRQUVPLGdCQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDeEMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVsRCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRU8sMkJBQXNCLEdBQXVCLGFBQWEsQ0FBQztZQUNsRSxJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsV0FBVztTQUNqQixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxXQUFXLEdBQUcsV0FBVyxFQUFFLElBQUksQ0FDbkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FDL0QsQ0FBQztZQUVGLE1BQU0sY0FBYyxHQUFHLFdBQVcsRUFBRSxHQUFHLENBQUM7WUFFeEMsSUFBSSxXQUFXLElBQUksVUFBVSxJQUFJLGNBQWM7Z0JBQUUsT0FBTyxjQUFjLENBQUM7WUFFdkUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRU8sYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRTlDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUUvQyxhQUFRLEdBQXlDLGFBQWEsQ0FBQztZQUN0RSxJQUFJLENBQUMsV0FBVztZQUNoQixJQUFJLENBQUMsc0JBQXNCO1NBQzVCLENBQUMsQ0FBQyxJQUFJLENBQ0wsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUscUJBQXFCLENBQUMsRUFBRSxFQUFFLENBQ2hELFVBQVUsSUFBSSxxQkFBcUI7WUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQ3ZGLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2hGLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUNIO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ1gsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQ0gsQ0FDTixDQUNGLENBQUM7UUFFTyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQXFCO1lBQzFEO2dCQUNFLG1CQUFtQixFQUFFLDRCQUE0QjtnQkFDakQsT0FBTyxFQUFFLE9BQU87YUFDakI7WUFDRDtnQkFDRSxtQkFBbUIsRUFBRSxxQ0FBcUM7Z0JBQzFELE9BQU8sRUFBRSxnQkFBZ0I7YUFDMUI7WUFDRDtnQkFDRSxtQkFBbUIsRUFBRSw0QkFBNEI7Z0JBQ2pELE9BQU8sRUFBRSxPQUFPO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO1FBRU0sZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxDQUFDLENBQUM7UUFFM0QsK0JBQTBCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFRdkUsQ0FBQztJQUVKLFVBQVUsQ0FBQyxNQUFrQjtRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUMxRSxHQUFHLENBQUMsRUFBRTtnQkFDSixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDO2dCQUN0QyxVQUFVLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDOUQsR0FBRyxTQUFTO29CQUNaLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQyxDQUFDO2dCQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxFQUNELEdBQUcsRUFBRTtnQkFDSCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLElBQUk7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLFlBQVksQ0FBQyxVQUF1QjtRQUMxQyxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNMLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUM7UUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDOytHQTlIVSxtQ0FBbUM7bUdBQW5DLG1DQUFtQywrS0M5QmhELGtpRUEyREE7OzRGRDdCYSxtQ0FBbUM7a0JBTC9DLFNBQVM7K0JBQ0UscUJBQXFCO2tLQUtELGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtaYWFrb2JqZWN0ZW5TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy96YWFrb2JqZWN0ZW4uc2VydmljZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtaYWFrT2JqZWN0LCBaYWFrT2JqZWN0VHlwZX0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Vk1vZGFsQ29tcG9uZW50LCBNb2RhbFNlcnZpY2UsIFRhYmxlQ29sdW1ufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtGb3JtaW9Gb3JtfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLW9iamVjdC10eXBlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC10eXBlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LXR5cGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckRldGFpbFRhYk9iamVjdFR5cGVDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCd2aWV3T2JqZWN0TW9kYWwnKSB2aWV3T2JqZWN0TW9kYWw6IFZNb2RhbENvbXBvbmVudDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50SWQkID0gdGhpcy5yb3V0ZS5wYXJhbXMucGlwZShtYXAocGFyYW1zID0+IHBhcmFtcy5kb2N1bWVudElkKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvYmplY3R0eXBlcyQ6IE9ic2VydmFibGU8QXJyYXk8WmFha09iamVjdFR5cGU+PiA9IHRoaXMuZG9jdW1lbnRJZCQucGlwZShcbiAgICBzd2l0Y2hNYXAoZG9jdW1lbnRJZCA9PiB0aGlzLnphYWtvYmplY3RlblNlcnZpY2UuZ2V0RG9jdW1lbnRPYmplY3RUeXBlcyhkb2N1bWVudElkKSlcbiAgKTtcblxuICByZWFkb25seSBvYmplY3ROYW1lJCA9IHRoaXMucm91dGUucGFyYW1zLnBpcGUoXG4gICAgbWFwKCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgIGNvbnN0IHNwbGl0VXJsID0gY3VycmVudFVybC5zcGxpdCgnLycpO1xuICAgICAgY29uc3QgbGFzdFVybFBhcnQgPSBzcGxpdFVybFtzcGxpdFVybC5sZW5ndGggLSAxXTtcblxuICAgICAgcmV0dXJuIGxhc3RVcmxQYXJ0O1xuICAgIH0pXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRPYmplY3R0eXBlVXJsJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3R0eXBlcyQsXG4gICAgdGhpcy5vYmplY3ROYW1lJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtvYmplY3RUeXBlcywgb2JqZWN0TmFtZV0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRUeXBlID0gb2JqZWN0VHlwZXM/LmZpbmQoXG4gICAgICAgIHR5cGUgPT4gdHlwZT8ubmFtZS50b0xvd2VyQ2FzZSgpID09PSBvYmplY3ROYW1lPy50b0xvd2VyQ2FzZSgpXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjdXJyZW50VHlwZVVybCA9IGN1cnJlbnRUeXBlPy51cmw7XG5cbiAgICAgIGlmIChvYmplY3RUeXBlcyAmJiBvYmplY3ROYW1lICYmIGN1cnJlbnRUeXBlVXJsKSByZXR1cm4gY3VycmVudFR5cGVVcmw7XG5cbiAgICAgIHJldHVybiAnJztcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICByZWFkb25seSBoYXNEYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IG9iamVjdHMkOiBPYnNlcnZhYmxlPEFycmF5PFphYWtPYmplY3Q+IHwgbnVsbD4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRvY3VtZW50SWQkLFxuICAgIHRoaXMuc2VsZWN0ZWRPYmplY3R0eXBlVXJsJCxcbiAgXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtkb2N1bWVudElkLCBzZWxlY3RlZE9iamVjdHR5cGVVcmxdKSA9PlxuICAgICAgZG9jdW1lbnRJZCAmJiBzZWxlY3RlZE9iamVjdHR5cGVVcmxcbiAgICAgICAgPyB0aGlzLnphYWtvYmplY3RlblNlcnZpY2UuZ2V0RG9jdW1lbnRPYmplY3RzT2ZUeXBlKGRvY3VtZW50SWQsIHNlbGVjdGVkT2JqZWN0dHlwZVVybCkucGlwZShcbiAgICAgICAgICAgIG1hcChvYmplY3RzID0+IG9iamVjdHMubWFwKG9iamVjdCA9PiAoey4uLm9iamVjdCwgdGl0bGU6IG9iamVjdC50aXRsZSB8fCAnLSd9KSkpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgdGhpcy5oYXNEYXRhJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIDogb2YobnVsbCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIHRoaXMuaGFzRGF0YSQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmVhZG9ubHkgY29sdW1ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PFRhYmxlQ29sdW1uPj4oW1xuICAgIHtcbiAgICAgIGxhYmVsVHJhbnNsYXRpb25LZXk6ICdkb3NzaWVyLnphYWtvYmplY3Rlbi5pbmRleCcsXG4gICAgICBkYXRhS2V5OiAnaW5kZXgnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWxUcmFuc2xhdGlvbktleTogJ2Rvc3NpZXIuemFha29iamVjdGVuLnJlZ2lzdHJhdGlvbkF0JyxcbiAgICAgIGRhdGFLZXk6ICdyZWdpc3RyYXRpb25BdCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbFRyYW5zbGF0aW9uS2V5OiAnZG9zc2llci56YWFrb2JqZWN0ZW4udGl0bGUnLFxuICAgICAgZGF0YUtleTogJ3RpdGxlJyxcbiAgICB9LFxuICBdKTtcblxuICByZWFkb25seSBvYmplY3RGb3JtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybWlvRm9ybSB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IG5vRm9ybURlZmluaXRpb25Db21wb25lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgaGFzRGF0YTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHphYWtvYmplY3RlblNlcnZpY2U6IFphYWtvYmplY3RlblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZVxuICApIHt9XG5cbiAgcm93Q2xpY2tlZChvYmplY3Q6IFphYWtPYmplY3QpOiB2b2lkIHtcbiAgICB0aGlzLmRvY3VtZW50SWQkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGRvY3VtZW50SWQgPT4ge1xuICAgICAgdGhpcy56YWFrb2JqZWN0ZW5TZXJ2aWNlLmdldE9iamVjdFR5cGVGb3JtKGRvY3VtZW50SWQsIG9iamVjdC51cmwpLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICBjb25zdCBkZWZpbml0aW9uID0gcmVzLmZvcm1EZWZpbml0aW9uO1xuICAgICAgICAgIGRlZmluaXRpb24uY29tcG9uZW50cyA9IGRlZmluaXRpb24uY29tcG9uZW50cy5tYXAoY29tcG9uZW50ID0+ICh7XG4gICAgICAgICAgICAuLi5jb21wb25lbnQsXG4gICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgdGhpcy5zZXRNb2RhbERhdGEoZGVmaW5pdGlvbik7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNldE1vZGFsRGF0YSgpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jbG9zZU1vZGFsKCgpID0+IHtcbiAgICAgIHRoaXMub2JqZWN0Rm9ybSQubmV4dChudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdygpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuTW9kYWwodGhpcy52aWV3T2JqZWN0TW9kYWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRNb2RhbERhdGEoZGVmaW5pdGlvbj86IEZvcm1pb0Zvcm0pOiB2b2lkIHtcbiAgICBpZiAoZGVmaW5pdGlvbikge1xuICAgICAgdGhpcy5vYmplY3RGb3JtJC5uZXh0KGRlZmluaXRpb24pO1xuICAgICAgdGhpcy5ub0Zvcm1EZWZpbml0aW9uQ29tcG9uZW50JC5uZXh0KGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub0Zvcm1EZWZpbml0aW9uQ29tcG9uZW50JC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgb2JqZWN0czogb2JqZWN0cyQgfCBhc3luYyxcbiAgICBjb2x1bW5zOiBjb2x1bW5zJCB8IGFzeW5jLFxuICAgIGxvYWRpbmc6IGxvYWRpbmckIHwgYXN5bmMsXG4gICAgaGFzRGF0YTogaGFzRGF0YSQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4+XG4gIDx2LXRhYmxlXG4gICAgKm5nSWY9XCJvYnMuaGFzRGF0YSB8fCBvYnMubG9hZGluZ1wiXG4gICAgW2xvYWRpbmddPVwib2JzLmxvYWRpbmdcIlxuICAgIFtpdGVtc109XCJvYnMub2JqZWN0c1wiXG4gICAgW2NvbHVtbnNdPVwib2JzLmNvbHVtbnNcIlxuICAgIFtzaG93RWRpdEJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgZWRpdEJ1dHRvblRyYW5zbGF0aW9uS2V5PVwiZG9zc2llci56YWFrb2JqZWN0ZW4ub2JqZWN0VHlwZS52aWV3T2JqZWN0XCJcbiAgICBbYW1vdW50T2ZMb2FkaW5nUm93c109XCIyXCJcbiAgICBbaXRlbXNUcmFuc2xhdGlvbktleV09XCIncGx1Z2luTWFuYWdlbWVudC50YWJsZUl0ZW1zVGV4dCdcIlxuICAgIFtzaG93UGFnaW5hdGlvbl09XCJmYWxzZVwiXG4gICAgKGVkaXRCdXR0b25DbGlja2VkKT1cInJvd0NsaWNrZWQoJGV2ZW50KVwiXG4gID48L3YtdGFibGU+XG5cbiAgPHYtcGFyYWdyYXBoICpuZ0lmPVwiIW9icy5oYXNEYXRhICYmICFvYnMubG9hZGluZ1wiIFtjZW50ZXJdPVwidHJ1ZVwiPnt7XG4gICAgJ2Rvc3NpZXIuemFha29iamVjdGVuLm5vT2JqZWN0VHlwZScgfCB0cmFuc2xhdGVcbiAgfX08L3YtcGFyYWdyYXBoPlxuPC9uZy1jb250YWluZXI+XG5cbjx2LW1vZGFsICN2aWV3T2JqZWN0TW9kYWwgKGNsb3NlRXZlbnQpPVwiaGlkZSgpXCIgW2hpZGVGb290ZXJdPVwidHJ1ZVwiIFttYXhXaWR0aFB4XT1cIjc1MFwiPlxuICA8ZGl2IHJvbGU9XCJoZWFkZXJcIj5cbiAgICA8di10aXRsZSBbbWFyZ2luXT1cImZhbHNlXCIgdHlwZT1cImgyXCIgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgW2NlbnRlcl09XCJ0cnVlXCI+e3tcbiAgICAgIG9iamVjdE5hbWUkIHwgYXN5bmNcbiAgICB9fTwvdi10aXRsZT5cbiAgPC9kaXY+XG5cbiAgPGRpdiByb2xlPVwiY29udGVudFwiPlxuICAgIDx2YWx0aW1vLWZvcm0taW9cbiAgICAgICpuZ0lmPVwiKG5vRm9ybURlZmluaXRpb25Db21wb25lbnQkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICBbZm9ybV09XCJvYmplY3RGb3JtJCB8IGFzeW5jXCJcbiAgICA+PC92YWx0aW1vLWZvcm0taW8+XG4gICAgPHYtcGFyYWdyYXBoICpuZ0lmPVwibm9Gb3JtRGVmaW5pdGlvbkNvbXBvbmVudCQgfCBhc3luY1wiIFtjZW50ZXJdPVwidHJ1ZVwiPnt7XG4gICAgICAnZG9zc2llci56YWFrb2JqZWN0ZW4ubm9Gb3JtRGVmaW5pdGlvbkNvbXBvbmVudCcgfCB0cmFuc2xhdGVcbiAgICB9fTwvdi1wYXJhZ3JhcGg+XG4gIDwvZGl2PlxuPC92LW1vZGFsPlxuIl19
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Copyright 2015-2023 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 * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/router";
19
+ import * as i2 from "@valtimo/document";
20
+ import * as i3 from "@angular/common";
21
+ import * as i4 from "@valtimo/process";
22
+ import * as i5 from "@angular/forms";
23
+ import * as i6 from "carbon-components-angular";
24
+ import * as i7 from "@ngx-translate/core";
25
+ export class DossierDetailTabProgressComponent {
26
+ constructor(route, documentService) {
27
+ this.route = route;
28
+ this.documentService = documentService;
29
+ const snapshot = this.route.snapshot.paramMap;
30
+ this.documentId = snapshot.get('documentId') || '';
31
+ }
32
+ ngOnInit() {
33
+ this.documentService
34
+ .findProcessDocumentInstances(this.documentId)
35
+ .subscribe(processDocumentInstances => {
36
+ this.processDocumentInstances = processDocumentInstances.sort((a, b) => a.isActive === b.isActive ? 0 : a.isActive ? -1 : 1);
37
+ if (processDocumentInstances.length > 0) {
38
+ this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;
39
+ }
40
+ });
41
+ }
42
+ loadProcessInstance(processInstanceId) {
43
+ this.selectedProcessInstanceId = processInstanceId;
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabProgressComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierDetailTabProgressComponent, selector: "valtimo-dossier-detail-tab-progress", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"full-height-tab-content\"\n *ngIf=\"\n processDocumentInstances && processDocumentInstances.length > 0;\n else emptyProcessDocumentInstances\n \"\n>\n <div class=\"col-3\">\n <label><strong>Process</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option\n *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\"\n >\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram\n [processInstanceId]=\"selectedProcessInstanceId\"\n ></valtimo-process-diagram>\n</div>\n\n<ng-template #emptyProcessDocumentInstances>\n <span> {{ 'progress.noProcessDocumentInstances' | translate }}</span>\n</ng-template>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ProcessDiagramComponent, selector: "valtimo-process-diagram", inputs: ["processDefinitionKey", "processInstanceId"], outputs: ["importDone"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.Option, selector: "option" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabProgressComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'valtimo-dossier-detail-tab-progress', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"full-height-tab-content\"\n *ngIf=\"\n processDocumentInstances && processDocumentInstances.length > 0;\n else emptyProcessDocumentInstances\n \"\n>\n <div class=\"col-3\">\n <label><strong>Process</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option\n *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\"\n >\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram\n [processInstanceId]=\"selectedProcessInstanceId\"\n ></valtimo-process-diagram>\n</div>\n\n<ng-template #emptyProcessDocumentInstances>\n <span> {{ 'progress.noProcessDocumentInstances' | translate }}</span>\n</ng-template>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}\n"] }]
51
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.DocumentService }]; } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvZG9zc2llci1kZXRhaWwvdGFiL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2Rvc3NpZXItZGV0YWlsL3RhYi9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQVVoRCxNQUFNLE9BQU8saUNBQWlDO0lBSzVDLFlBQ1UsS0FBcUIsRUFDckIsZUFBZ0M7UUFEaEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRXhDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWU7YUFDakIsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUM3QyxTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ3JFLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNwRCxDQUFDO1lBQ0YsSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2FBQ25GO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsaUJBQXlCO1FBQ2xELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxpQkFBaUIsQ0FBQztJQUNyRCxDQUFDOytHQTVCVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQywyRUMxQjlDLHNsREE0Q0E7OzRGRGxCYSxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0UscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7UHJvY2Vzc0RvY3VtZW50SW5zdGFuY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItcHJvZ3Jlc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9ncmVzcy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJEZXRhaWxUYWJQcm9ncmVzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBwcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXM6IFByb2Nlc3NEb2N1bWVudEluc3RhbmNlW107XG4gIHB1YmxpYyBzZWxlY3RlZFByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudElkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZVxuICApIHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXA7XG4gICAgdGhpcy5kb2N1bWVudElkID0gc25hcHNob3QuZ2V0KCdkb2N1bWVudElkJykgfHwgJyc7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZVxuICAgICAgLmZpbmRQcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXModGhpcy5kb2N1bWVudElkKVxuICAgICAgLnN1YnNjcmliZShwcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXMgPT4ge1xuICAgICAgICB0aGlzLnByb2Nlc3NEb2N1bWVudEluc3RhbmNlcyA9IHByb2Nlc3NEb2N1bWVudEluc3RhbmNlcy5zb3J0KChhLCBiKSA9PlxuICAgICAgICAgIGEuaXNBY3RpdmUgPT09IGIuaXNBY3RpdmUgPyAwIDogYS5pc0FjdGl2ZSA/IC0xIDogMVxuICAgICAgICApO1xuICAgICAgICBpZiAocHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvY2Vzc0luc3RhbmNlSWQgPSBwcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXNbMF0uaWQucHJvY2Vzc0luc3RhbmNlSWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxvYWRQcm9jZXNzSW5zdGFuY2UocHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzSW5zdGFuY2VJZCA9IHByb2Nlc3NJbnN0YW5jZUlkO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXZcbiAgY2xhc3M9XCJmdWxsLWhlaWdodC10YWItY29udGVudFwiXG4gICpuZ0lmPVwiXG4gICAgcHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzICYmIHByb2Nlc3NEb2N1bWVudEluc3RhbmNlcy5sZW5ndGggPiAwO1xuICAgIGVsc2UgZW1wdHlQcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXNcbiAgXCJcbj5cbiAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgPGxhYmVsPjxzdHJvbmc+UHJvY2Vzczwvc3Ryb25nPjwvbGFiZWxcbiAgICA+PGJyIC8+XG4gICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIChjaGFuZ2UpPVwibG9hZFByb2Nlc3NJbnN0YW5jZSgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiPlxuICAgICAgPG9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgcHJvY2Vzc0RvY3VtZW50SW5zdGFuY2Ugb2YgcHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzXCJcbiAgICAgICAgW3ZhbHVlXT1cInByb2Nlc3NEb2N1bWVudEluc3RhbmNlLmlkLnByb2Nlc3NJbnN0YW5jZUlkXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkUHJvY2Vzc0luc3RhbmNlSWQgPT09IHByb2Nlc3NEb2N1bWVudEluc3RhbmNlLmlkLnByb2Nlc3NJbnN0YW5jZUlkXCJcbiAgICAgID5cbiAgICAgICAge3sgcHJvY2Vzc0RvY3VtZW50SW5zdGFuY2UucHJvY2Vzc05hbWUgfX1cbiAgICAgIDwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cbiAgPHZhbHRpbW8tcHJvY2Vzcy1kaWFncmFtXG4gICAgW3Byb2Nlc3NJbnN0YW5jZUlkXT1cInNlbGVjdGVkUHJvY2Vzc0luc3RhbmNlSWRcIlxuICA+PC92YWx0aW1vLXByb2Nlc3MtZGlhZ3JhbT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2VtcHR5UHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzPlxuICA8c3Bhbj4ge3sgJ3Byb2dyZXNzLm5vUHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,136 @@
1
+ /*
2
+ * Copyright 2015-2023 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 { map, switchMap } from 'rxjs/operators';
18
+ import { BehaviorSubject, combineLatest } from 'rxjs';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "@angular/router";
21
+ import * as i2 from "@valtimo/document";
22
+ import * as i3 from "ngx-toastr";
23
+ import * as i4 from "@valtimo/resource";
24
+ import * as i5 from "@valtimo/components";
25
+ import * as i6 from "@ngx-translate/core";
26
+ import * as i7 from "@valtimo/config";
27
+ import * as i8 from "../../../services";
28
+ import * as i9 from "@angular/common";
29
+ export class DossierDetailTabS3DocumentsComponent {
30
+ constructor(route, documentService, toastrService, uploadProviderService, downloadService, promptService, translateService, configService, fileSortService) {
31
+ this.route = route;
32
+ this.documentService = documentService;
33
+ this.toastrService = toastrService;
34
+ this.uploadProviderService = uploadProviderService;
35
+ this.downloadService = downloadService;
36
+ this.promptService = promptService;
37
+ this.translateService = translateService;
38
+ this.configService = configService;
39
+ this.fileSortService = fileSortService;
40
+ this.maxFileSize = this.configService?.config?.caseFileSizeUploadLimitMB || 5;
41
+ this.acceptedFiles = this.configService?.config?.caseFileUploadAcceptedFiles || null;
42
+ this.fields = [
43
+ { key: 'fileName', label: 'File name' },
44
+ { key: 'sizeInBytes', label: 'Size in bytes' },
45
+ { key: 'createdOn', label: 'Created on', viewType: 'date' },
46
+ { key: 'createdBy', label: 'Created by' },
47
+ ];
48
+ this.actions = [
49
+ {
50
+ columnName: '',
51
+ iconClass: 'mdi mdi-open-in-new',
52
+ callback: this.downloadDocument.bind(this),
53
+ },
54
+ {
55
+ columnName: '',
56
+ iconClass: 'mdi mdi-delete',
57
+ callback: this.removeRelatedFile.bind(this),
58
+ },
59
+ ];
60
+ this.uploading$ = new BehaviorSubject(false);
61
+ this.refetch$ = new BehaviorSubject(null);
62
+ this.relatedFiles$ = this.refetch$.pipe(switchMap(() => combineLatest([
63
+ this.documentService.getDocument(this.documentId),
64
+ this.translateService.stream('key'),
65
+ ])), map(([document]) => {
66
+ const relatedFiles = document?.relatedFiles || [];
67
+ const translatedFiles = relatedFiles.map(file => ({
68
+ ...file,
69
+ createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),
70
+ }));
71
+ return translatedFiles || [];
72
+ }), map(relatedFiles => this.fileSortService.sortRelatedFilesByDateDescending(relatedFiles)));
73
+ const snapshot = this.route.snapshot.paramMap;
74
+ this.documentId = snapshot.get('documentId') || '';
75
+ this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';
76
+ }
77
+ ngOnInit() {
78
+ this.refetchDocuments();
79
+ }
80
+ fileSelected(file) {
81
+ this.uploading$.next(true);
82
+ this.uploadProviderService
83
+ .uploadFile(file, this.documentDefinitionName, this.documentId)
84
+ .pipe(switchMap(resourceFile => this.documentService.assignResource(this.documentId, resourceFile.data.resourceId)))
85
+ .subscribe({
86
+ next: () => {
87
+ this.toastrService.success('Successfully uploaded document to dossier');
88
+ this.refetchDocuments();
89
+ this.uploading$.next(false);
90
+ },
91
+ error: () => {
92
+ this.toastrService.error('Failed to upload document to dossier');
93
+ this.uploading$.next(false);
94
+ },
95
+ });
96
+ }
97
+ downloadDocument(relatedFile) {
98
+ this.uploadProviderService
99
+ .getResource(relatedFile.fileId)
100
+ .subscribe((resource) => {
101
+ this.downloadService.downloadFile(resource.url, resource.resource.name);
102
+ });
103
+ }
104
+ removeRelatedFile(relatedFile) {
105
+ this.promptService.openPrompt({
106
+ headerText: this.translateService.instant('dossier.deleteConfirmation.title'),
107
+ bodyText: this.translateService.instant('dossier.deleteConfirmation.description'),
108
+ cancelButtonText: this.translateService.instant('dossier.deleteConfirmation.cancel'),
109
+ confirmButtonText: this.translateService.instant('dossier.deleteConfirmation.delete'),
110
+ cancelMdiIcon: 'cancel',
111
+ confirmMdiIcon: 'delete',
112
+ cancelButtonType: 'secondary',
113
+ confirmButtonType: 'primary',
114
+ closeOnConfirm: true,
115
+ closeOnCancel: true,
116
+ confirmCallBackFunction: () => {
117
+ this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(() => {
118
+ this.toastrService.success('Successfully removed document from dossier');
119
+ this.refetchDocuments();
120
+ }, () => {
121
+ this.toastrService.error('Failed to remove document from dossier');
122
+ });
123
+ },
124
+ });
125
+ }
126
+ refetchDocuments() {
127
+ this.refetch$.next(null);
128
+ }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabS3DocumentsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.DocumentService }, { token: i3.ToastrService }, { token: i4.UploadProviderService }, { token: i4.DownloadService }, { token: i5.PromptService }, { token: i6.TranslateService }, { token: i7.ConfigService }, { token: i8.FileSortService }], target: i0.ɵɵFactoryTarget.Component }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierDetailTabS3DocumentsComponent, selector: "valtimo-dossier-detail-tab-s3-documents", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n", styles: ["/*!\n * Copyright 2015-2023 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"], dependencies: [{ kind: "component", type: i5.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i5.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i5.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
131
+ }
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabS3DocumentsComponent, decorators: [{
133
+ type: Component,
134
+ args: [{ selector: 'valtimo-dossier-detail-tab-s3-documents', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
135
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.DocumentService }, { type: i3.ToastrService }, { type: i4.UploadProviderService }, { type: i4.DownloadService }, { type: i5.PromptService }, { type: i6.TranslateService }, { type: i7.ConfigService }, { type: i8.FileSortService }]; } });
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2Rvc3NpZXItZGV0YWlsL3RhYi9zMy1kb2N1bWVudHMvczMtZG9jdW1lbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2Rvc3NpZXItZGV0YWlsL3RhYi9zMy1kb2N1bWVudHMvczMtZG9jdW1lbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUtoRCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVdoRSxNQUFNLE9BQU8sb0NBQW9DO0lBNkMvQyxZQUNtQixLQUFxQixFQUNyQixlQUFnQyxFQUNoQyxhQUE0QixFQUM1QixxQkFBNEMsRUFDNUMsZUFBZ0MsRUFDaEMsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLGVBQWdDO1FBUmhDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFB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QUF3QyxDQUFDO1lBQ2pGLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUM7WUFDcEYsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQztZQUNyRixhQUFhLEVBQUUsUUFBUTtZQUN2QixjQUFjLEVBQUUsUUFBUTtZQUN4QixnQkFBZ0IsRUFBRSxXQUFXO1lBQzdCLGlCQUFpQixFQUFFLFNBQVM7WUFDNUIsY0FBYyxFQUFFLElBQUk7WUFDcEIsYUFBYSxFQUFFLElBQUk7WUFDbkIsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO2dCQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQ2hGLEdBQUcsRUFBRTtvQkFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO29CQUN6RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQyxFQUNELEdBQUcsRUFBRTtvQkFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO2dCQUNyRSxDQUFDLENBQ0YsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBNUhVLG9DQUFvQzttR0FBcEMsb0NBQW9DLCtFQ2pDakQsczZDQTRDQTs7NEZEWGEsb0NBQW9DO2tCQUxoRCxTQUFTOytCQUNFLHlDQUF5QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlLCBSZWxhdGVkRmlsZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtEb3dubG9hZFNlcnZpY2UsIFJlc291cmNlRHRvLCBVcGxvYWRQcm92aWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3Jlc291cmNlJztcbmltcG9ydCB7VG9hc3RyU2VydmljZX0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtQcm9tcHRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7RmlsZVNvcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFiLXMzLWRvY3VtZW50cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zMy1kb2N1bWVudHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zMy1kb2N1bWVudHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckRldGFpbFRhYlMzRG9jdW1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50SWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG1heEZpbGVTaXplOiBudW1iZXIgPSB0aGlzLmNvbmZpZ1NlcnZpY2U/LmNvbmZpZz8uY2FzZUZpbGVTaXplVXBsb2FkTGltaXRNQiB8fCA1O1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXB0ZWRGaWxlczogc3RyaW5nID1cbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2U/LmNvbmZpZz8uY2FzZUZpbGVVcGxvYWRBY2NlcHRlZEZpbGVzIHx8IG51bGw7XG4gIHB1YmxpYyBmaWVsZHMgPSBbXG4gICAge2tleTogJ2ZpbGVOYW1lJywgbGFiZWw6ICdGaWxlIG5hbWUnfSxcbiAgICB7a2V5OiAnc2l6ZUluQnl0ZXMnLCBsYWJlbDogJ1NpemUgaW4gYnl0ZXMnfSxcbiAgICB7a2V5OiAnY3JlYXRlZE9uJywgbGFiZWw6ICdDcmVhdGVkIG9uJywgdmlld1R5cGU6ICdkYXRlJ30sXG4gICAge2tleTogJ2NyZWF0ZWRCeScsIGxhYmVsOiAnQ3JlYXRlZCBieSd9LFxuICBdO1xuICBwdWJsaWMgYWN0aW9ucyA9IFtcbiAgICB7XG4gICAgICBjb2x1bW5OYW1lOiAnJyxcbiAgICAgIGljb25DbGFzczogJ21kaSBtZGktb3Blbi1pbi1uZXcnLFxuICAgICAgY2FsbGJhY2s6IHRoaXMuZG93bmxvYWREb2N1bWVudC5iaW5kKHRoaXMpLFxuICAgIH0sXG4gICAge1xuICAgICAgY29sdW1uTmFtZTogJycsXG4gICAgICBpY29uQ2xhc3M6ICdtZGkgbWRpLWRlbGV0ZScsXG4gICAgICBjYWxsYmFjazogdGhpcy5yZW1vdmVSZWxhdGVkRmlsZS5iaW5kKHRoaXMpLFxuICAgIH0sXG4gIF07XG4gIHJlYWRvbmx5IHVwbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZWZldGNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWxhdGVkRmlsZXMkOiBPYnNlcnZhYmxlPEFycmF5PFJlbGF0ZWRGaWxlPj4gPSB0aGlzLnJlZmV0Y2gkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZ2V0RG9jdW1lbnQodGhpcy5kb2N1bWVudElkKSxcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gICAgICBdKVxuICAgICksXG4gICAgbWFwKChbZG9jdW1lbnRdKSA9PiB7XG4gICAgICBjb25zdCByZWxhdGVkRmlsZXMgPSBkb2N1bWVudD8ucmVsYXRlZEZpbGVzIHx8IFtdO1xuICAgICAgY29uc3QgdHJhbnNsYXRlZEZpbGVzID0gcmVsYXRlZEZpbGVzLm1hcChmaWxlID0+ICh7XG4gICAgICAgIC4uLmZpbGUsXG4gICAgICAgIGNyZWF0ZWRCeTogZmlsZS5jcmVhdGVkQnkgfHwgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2xpc3QuYXV0b21hdGljYWxseUdlbmVyYXRlZCcpLFxuICAgICAgfSkpO1xuXG4gICAgICByZXR1cm4gdHJhbnNsYXRlZEZpbGVzIHx8IFtdO1xuICAgIH0pLFxuICAgIG1hcChyZWxhdGVkRmlsZXMgPT4gdGhpcy5maWxlU29ydFNlcnZpY2Uuc29ydFJlbGF0ZWRGaWxlc0J5RGF0ZURlc2NlbmRpbmcocmVsYXRlZEZpbGVzKSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVwbG9hZFByb3ZpZGVyU2VydmljZTogVXBsb2FkUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG93bmxvYWRTZXJ2aWNlOiBEb3dubG9hZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlU29ydFNlcnZpY2U6IEZpbGVTb3J0U2VydmljZVxuICApIHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXA7XG4gICAgdGhpcy5kb2N1bWVudElkID0gc25hcHNob3QuZ2V0KCdkb2N1bWVudElkJykgfHwgJyc7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gc25hcHNob3QuZ2V0KCdkb2N1bWVudERlZmluaXRpb25OYW1lJykgfHwgJyc7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZmV0Y2hEb2N1bWVudHMoKTtcbiAgfVxuXG4gIGZpbGVTZWxlY3RlZChmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLnVwbG9hZFByb3ZpZGVyU2VydmljZVxuICAgICAgLnVwbG9hZEZpbGUoZmlsZSwgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lLCB0aGlzLmRvY3VtZW50SWQpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHJlc291cmNlRmlsZSA9PlxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmFzc2lnblJlc291cmNlKHRoaXMuZG9jdW1lbnRJZCwgcmVzb3VyY2VGaWxlLmRhdGEucmVzb3VyY2VJZClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcygnU3VjY2Vzc2Z1bGx5IHVwbG9hZGVkIGRvY3VtZW50IHRvIGRvc3NpZXInKTtcbiAgICAgICAgICB0aGlzLnJlZmV0Y2hEb2N1bWVudHMoKTtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKCdGYWlsZWQgdG8gdXBsb2FkIGRvY3VtZW50IHRvIGRvc3NpZXInKTtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGRvd25sb2FkRG9jdW1lbnQocmVsYXRlZEZpbGU6IFJlbGF0ZWRGaWxlKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRQcm92aWRlclNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShyZWxhdGVkRmlsZS5maWxlSWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXNvdXJjZTogUmVzb3VyY2VEdG8pID0+IHtcbiAgICAgICAgdGhpcy5kb3dubG9hZFNlcnZpY2UuZG93bmxvYWRGaWxlKHJlc291cmNlLnVybCwgcmVzb3VyY2UucmVzb3VyY2UubmFtZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZVJlbGF0ZWRGaWxlKHJlbGF0ZWRGaWxlOiBSZWxhdGVkRmlsZSkge1xuICAgIHRoaXMucHJvbXB0U2VydmljZS5vcGVuUHJvbXB0KHtcbiAgICAgIGhlYWRlclRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdkb3NzaWVyLmRlbGV0ZUNvbmZpcm1hdGlvbi50aXRsZScpLFxuICAgICAgYm9keVRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdkb3NzaWVyLmRlbGV0ZUNvbmZpcm1hdGlvbi5kZXNjcmlwdGlvbicpLFxuICAgICAgY2FuY2VsQnV0dG9uVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIuZGVsZXRlQ29uZmlybWF0aW9uLmNhbmNlbCcpLFxuICAgICAgY29uZmlybUJ1dHRvblRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdkb3NzaWVyLmRlbGV0ZUNvbmZpcm1hdGlvbi5kZWxldGUnKSxcbiAgICAgIGNhbmNlbE1kaUljb246ICdjYW5jZWwnLFxuICAgICAgY29uZmlybU1kaUljb246ICdkZWxldGUnLFxuICAgICAgY2FuY2VsQnV0dG9uVHlwZTogJ3NlY29uZGFyeScsXG4gICAgICBjb25maXJtQnV0dG9uVHlwZTogJ3ByaW1hcnknLFxuICAgICAgY2xvc2VPbkNvbmZpcm06IHRydWUsXG4gICAgICBjbG9zZU9uQ2FuY2VsOiB0cnVlLFxuICAgICAgY29uZmlybUNhbGxCYWNrRnVuY3Rpb246ICgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UucmVtb3ZlUmVzb3VyY2UodGhpcy5kb2N1bWVudElkLCByZWxhdGVkRmlsZS5maWxlSWQpLnN1YnNjcmliZShcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcygnU3VjY2Vzc2Z1bGx5IHJlbW92ZWQgZG9jdW1lbnQgZnJvbSBkb3NzaWVyJyk7XG4gICAgICAgICAgICB0aGlzLnJlZmV0Y2hEb2N1bWVudHMoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcignRmFpbGVkIHRvIHJlbW92ZSBkb2N1bWVudCBmcm9tIGRvc3NpZXInKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZldGNoRG9jdW1lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMucmVmZXRjaCQubmV4dChudWxsKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48dmFsdGltby1kcm9wem9uZVxuICAoZmlsZVNlbGVjdGVkKT1cImZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgW2FjY2VwdGVkRmlsZXNdPVwiYWNjZXB0ZWRGaWxlc1wiXG4gIFtoaWRlRmlsZVByZXZpZXddPVwidHJ1ZVwiXG4gIFtoaWRlVGl0bGVdPVwidHJ1ZVwiXG4gIFttYXhGaWxlU2l6ZV09XCJtYXhGaWxlU2l6ZVwiXG4gIFtzaG93TWF4RmlsZVNpemVdPVwidHJ1ZVwiXG4gIFtjYW1lcmFdPVwiZmFsc2VcIlxuICBbdXBsb2FkaW5nXT1cInVwbG9hZGluZyQgfCBhc3luY1wiXG4+PC92YWx0aW1vLWRyb3B6b25lPlxuXG48dmFsdGltby13aWRnZXQ+XG4gIDx2YWx0aW1vLWxpc3RcbiAgICBbZmllbGRzXT1cImZpZWxkc1wiXG4gICAgW2l0ZW1zXT1cInJlbGF0ZWRGaWxlcyQgfCBhc3luY1wiXG4gICAgW2hlYWRlcl09XCJ0cnVlXCJcbiAgICBbaXNTZWFyY2hhYmxlXT1cInRydWVcIlxuICAgIFt2aWV3TW9kZV09XCJ0cnVlXCJcbiAgICBbYWN0aW9uc109XCJhY3Rpb25zXCJcbiAgPlxuICAgIDxkaXYgaGVhZGVyPlxuICAgICAgPGgzIGNsYXNzPVwibGlzdC1oZWFkZXItdGl0bGVcIj57eyAnUmVsYXRlZCBkb2N1bWVudHMnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgIDxoNSBjbGFzcz1cImxpc3QtaGVhZGVyLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgIHt7ICdPdmVydmlldyBvZiBhbGwgZG9jdW1lbnRzIGluIHRoaXMgZG9zc2llcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvaDU+XG4gICAgPC9kaXY+XG4gIDwvdmFsdGltby1saXN0PlxuPC92YWx0aW1vLXdpZGdldD5cbiJdfQ==
@@ -0,0 +1,130 @@
1
+ /*
2
+ * Copyright 2015-2023 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, ViewChild, ViewEncapsulation, } from '@angular/core';
17
+ import { CAN_VIEW_TASK_PERMISSION, TASK_DETAIL_PERMISSION_RESOURCE, } from '@valtimo/task';
18
+ import { FormioOptionsImpl } from '@valtimo/components';
19
+ import moment from 'moment';
20
+ import { BehaviorSubject, combineLatest, of, Subscription, switchMap } from 'rxjs';
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@angular/router";
23
+ import * as i2 from "@valtimo/document";
24
+ import * as i3 from "@valtimo/task";
25
+ import * as i4 from "@valtimo/process";
26
+ import * as i5 from "@valtimo/form";
27
+ import * as i6 from "@valtimo/security";
28
+ import * as i7 from "@valtimo/access-control";
29
+ import * as i8 from "@angular/common";
30
+ import * as i9 from "@valtimo/components";
31
+ import * as i10 from "@ng-bootstrap/ng-bootstrap";
32
+ import * as i11 from "carbon-components-angular";
33
+ import * as i12 from "@ngx-translate/core";
34
+ moment.locale(localStorage.getItem('langKey') || '');
35
+ moment.defaultFormat = 'DD MMM YYYY HH:mm';
36
+ export class DossierDetailTabSummaryComponent {
37
+ constructor(router, documentService, taskService, processService, el, renderer, route, formService, userProviderService, permissionService) {
38
+ this.router = router;
39
+ this.documentService = documentService;
40
+ this.taskService = taskService;
41
+ this.processService = processService;
42
+ this.el = el;
43
+ this.renderer = renderer;
44
+ this.route = route;
45
+ this.formService = formService;
46
+ this.userProviderService = userProviderService;
47
+ this.permissionService = permissionService;
48
+ this.processDocumentInstances = [];
49
+ this.tasks = [];
50
+ this.formDefinition = null;
51
+ this.roles = [];
52
+ this.loadingTasks$ = new BehaviorSubject(true);
53
+ this._subscriptions = new Subscription();
54
+ this.snapshot = this.route.snapshot.paramMap;
55
+ this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';
56
+ this.documentId = this.snapshot.get('documentId') || '';
57
+ this.options = new FormioOptionsImpl();
58
+ this.options.disableAlerts = true;
59
+ }
60
+ ngOnInit() {
61
+ this.moment = moment;
62
+ this.init();
63
+ }
64
+ ngOnDestroy() {
65
+ this._subscriptions.unsubscribe();
66
+ }
67
+ init() {
68
+ this._subscriptions.add(this.documentService.getDocument(this.documentId).subscribe(document => {
69
+ this.document = document;
70
+ }));
71
+ this._subscriptions.add(this.formService
72
+ .getFormDefinitionByNamePreFilled(`${this.documentDefinitionName}.summary`, this.documentId)
73
+ .subscribe(formDefinition => {
74
+ this.formDefinition = formDefinition;
75
+ }));
76
+ this._subscriptions.add(this.userProviderService.getUserSubject().subscribe(user => {
77
+ this.roles = user.roles;
78
+ this.tasks = [];
79
+ this.loadProcessDocumentInstances(this.documentId);
80
+ }));
81
+ }
82
+ loadProcessDocumentInstances(documentId) {
83
+ this._subscriptions.add(this.documentService
84
+ .findProcessDocumentInstances(documentId)
85
+ .subscribe(processDocumentInstances => {
86
+ this.processDocumentInstances = processDocumentInstances;
87
+ this.processDocumentInstances.forEach(instance => {
88
+ this.loadProcessInstanceTasks(instance.id.processInstanceId);
89
+ });
90
+ }));
91
+ }
92
+ rowTaskClick(task) {
93
+ this.taskDetail.openTaskDetails(task);
94
+ }
95
+ loadProcessInstanceTasks(processInstanceId) {
96
+ this._subscriptions.add(this.processService
97
+ .getProcessInstanceTasks(processInstanceId)
98
+ .pipe(switchMap(tasks => combineLatest([
99
+ of(tasks),
100
+ ...tasks.map(task => this.permissionService.requestPermission(CAN_VIEW_TASK_PERMISSION, {
101
+ resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
102
+ identifier: task.id,
103
+ })),
104
+ ])))
105
+ .subscribe(res => {
106
+ const tasks = res[0];
107
+ const permissions = res.filter((_, index) => index !== 0);
108
+ if (tasks != null) {
109
+ tasks.forEach((task, taskIndex) => {
110
+ task.createdUnix = this.moment(task.created).unix();
111
+ task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');
112
+ task.isLocked = !permissions[taskIndex];
113
+ });
114
+ this.tasks = this.tasks.concat(tasks);
115
+ this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);
116
+ }
117
+ this.loadingTasks$.next(false);
118
+ }));
119
+ }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabSummaryComponent, deps: [{ token: i1.Router }, { token: i2.DocumentService }, { token: i3.TaskService }, { token: i4.ProcessService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.ActivatedRoute }, { token: i5.FormService }, { token: i6.UserProviderService }, { token: i7.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierDetailTabSummaryComponent, selector: "valtimo-dossier-detail-tab-summary", viewQueries: [{ propertyName: "taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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=\"container-fluid\" *ngIf=\"{loadingTasks: loadingTasks$ | async} as obs\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">{{ 'summary.userTasks' | translate }}</h4>\n <ng-container *ngIf=\"!obs.loadingTasks; else loadingTasksTemplate\">\n <ng-container *ngIf=\"!tasks.length\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n\n <ng-container *ngFor=\"let task of tasks\">\n <valtimo-widget>\n <div\n *ngIf=\"!task.isLocked\"\n class=\"p-3 clickable hoverable\"\n (click)=\"rowTaskClick(task)\"\n >\n <span class=\"float-right badge badge-pill badge-primary\">{{\n 'summary.taskOpen' | translate\n }}</span>\n <strong>{{ task.name }}</strong>\n <div class=\"mt-1\">{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n </ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n\n<ng-template #loadingTasksTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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 */.hoverable:hover{background-color:#eee}.summaryForm .formio-component{margin-bottom:0!important}.summaryForm .formio-component div[ref=element] .form-control{height:24px!important;background-color:#fff;border:0px;margin:0;padding:0!important;font-size:13px}.summaryForm .formio-field div[ref=element] .form-control{font-weight:400}.summaryForm .formio-value div[ref=element] .form-control{font-weight:700}.user-tasks-title{margin-top:0;margin-bottom:12px;font-weight:400;color:#000;height:20px}.loading-container{display:flex;width:100%;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i9.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i9.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i3.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "directive", type: i10.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i11.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabSummaryComponent, decorators: [{
124
+ type: Component,
125
+ args: [{ selector: 'valtimo-dossier-detail-tab-summary', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2023 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=\"container-fluid\" *ngIf=\"{loadingTasks: loadingTasks$ | async} as obs\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">{{ 'summary.userTasks' | translate }}</h4>\n <ng-container *ngIf=\"!obs.loadingTasks; else loadingTasksTemplate\">\n <ng-container *ngIf=\"!tasks.length\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n\n <ng-container *ngFor=\"let task of tasks\">\n <valtimo-widget>\n <div\n *ngIf=\"!task.isLocked\"\n class=\"p-3 clickable hoverable\"\n (click)=\"rowTaskClick(task)\"\n >\n <span class=\"float-right badge badge-pill badge-primary\">{{\n 'summary.taskOpen' | translate\n }}</span>\n <strong>{{ task.name }}</strong>\n <div class=\"mt-1\">{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n </ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n\n<ng-template #loadingTasksTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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 */.hoverable:hover{background-color:#eee}.summaryForm .formio-component{margin-bottom:0!important}.summaryForm .formio-component div[ref=element] .form-control{height:24px!important;background-color:#fff;border:0px;margin:0;padding:0!important;font-size:13px}.summaryForm .formio-field div[ref=element] .form-control{font-weight:400}.summaryForm .formio-value div[ref=element] .form-control{font-weight:700}.user-tasks-title{margin-top:0;margin-bottom:12px;font-weight:400;color:#000;height:20px}.loading-container{display:flex;width:100%;justify-content:center}\n"] }]
126
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.DocumentService }, { type: i3.TaskService }, { type: i4.ProcessService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.ActivatedRoute }, { type: i5.FormService }, { type: i6.UserProviderService }, { type: i7.PermissionService }]; }, propDecorators: { taskDetail: [{
127
+ type: ViewChild,
128
+ args: ['taskDetail']
129
+ }] } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9kb3NzaWVyLWRldGFpbC90YWIvc3VtbWFyeS9zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2Rvc3NpZXItZGV0YWlsL3RhYi9zdW1tYXJ5L3N1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUtULFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUNMLHdCQUF3QixFQUN4QiwrQkFBK0IsR0FHaEMsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGlCQUFpQixFQUF1QixNQUFNLHFCQUFxQixDQUFDO0FBQzVFLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUc1QixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFHakYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUM7QUFRM0MsTUFBTSxPQUFPLGdDQUFnQztJQWUzQyxZQUNtQixNQUFjLEVBQ2QsZUFBZ0MsRUFDaEMsV0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsRUFBYyxFQUNkLFFBQW1CLEVBQ25CLEtBQXFCLEVBQ3JCLFdBQXdCLEVBQ3hCLG1CQUF3QyxFQUN4QyxpQkFBb0M7UUFUcEMsV0FBTSxHQUFO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LElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3BELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDOUQ7WUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ0osQ0FBQzsrR0FySFUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0Msb0xDbkQ3QyxpckdBbUZBOzs0RkRoQ2EsZ0NBQWdDO2tCQU41QyxTQUFTOytCQUNFLG9DQUFvQyxpQkFHL0IsaUJBQWlCLENBQUMsSUFBSTs0VkFHWixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcm9jZXNzSW5zdGFuY2VUYXNrLCBQcm9jZXNzU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBQYXJhbU1hcCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEb2N1bWVudCwgRG9jdW1lbnRTZXJ2aWNlLCBQcm9jZXNzRG9jdW1lbnRJbnN0YW5jZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtcbiAgQ0FOX1ZJRVdfVEFTS19QRVJNSVNTSU9OLFxuICBUQVNLX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFLFxuICBUYXNrRGV0YWlsTW9kYWxDb21wb25lbnQsXG4gIFRhc2tTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby90YXNrJztcbmltcG9ydCB7Rm9ybVNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2Zvcm0nO1xuaW1wb3J0IHtGb3JtaW9PcHRpb25zSW1wbCwgVmFsdGltb0Zvcm1pb09wdGlvbnN9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtGb3JtaW9Gb3JtfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHtVc2VyUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgb2YsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7UGVybWlzc2lvblNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2FjY2Vzcy1jb250cm9sJztcblxubW9tZW50LmxvY2FsZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ0tleScpIHx8ICcnKTtcbm1vbWVudC5kZWZhdWx0Rm9ybWF0ID0gJ0REIE1NTSBZWVlZIEhIOm1tJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItc3VtbWFyeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3VtbWFyeS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyRGV0YWlsVGFiU3VtbWFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgndGFza0RldGFpbCcpIHRhc2tEZXRhaWw6IFRhc2tEZXRhaWxNb2RhbENvbXBvbmVudDtcbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgcHVibGljIGRvY3VtZW50SWQ6IHN0cmluZztcbiAgcHVibGljIHByb2Nlc3NEb2N1bWVudEluc3RhbmNlczogUHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VbXSA9IFtdO1xuICBwcml2YXRlIHNuYXBzaG90OiBQYXJhbU1hcDtcbiAgcHVibGljIHRhc2tzOiBQcm9jZXNzSW5zdGFuY2VUYXNrW10gPSBbXTtcbiAgcHVibGljIG1vbWVudDtcbiAgcHVibGljIGZvcm1EZWZpbml0aW9uOiBGb3JtaW9Gb3JtID0gbnVsbDtcbiAgcHVibGljIG9wdGlvbnM6IFZhbHRpbW9Gb3JtaW9PcHRpb25zO1xuICBwdWJsaWMgcm9sZXM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nVGFza3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXNrU2VydmljZTogVGFza1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc25hcHNob3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwO1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9IHRoaXMuc25hcHNob3QuZ2V0KCdkb2N1bWVudERlZmluaXRpb25OYW1lJykgfHwgJyc7XG4gICAgdGhpcy5kb2N1bWVudElkID0gdGhpcy5zbmFwc2hvdC5nZXQoJ2RvY3VtZW50SWQnKSB8fCAnJztcbiAgICB0aGlzLm9wdGlvbnMgPSBuZXcgRm9ybWlvT3B0aW9uc0ltcGwoKTtcbiAgICB0aGlzLm9wdGlvbnMuZGlzYWJsZUFsZXJ0cyA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tb21lbnQgPSBtb21lbnQ7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG4gIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZ2V0RG9jdW1lbnQodGhpcy5kb2N1bWVudElkKS5zdWJzY3JpYmUoZG9jdW1lbnQgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZm9ybVNlcnZpY2VcbiAgICAgICAgLmdldEZvcm1EZWZpbml0aW9uQnlOYW1lUHJlRmlsbGVkKGAke3RoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZX0uc3VtbWFyeWAsIHRoaXMuZG9jdW1lbnRJZClcbiAgICAgICAgLnN1YnNjcmliZShmb3JtRGVmaW5pdGlvbiA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtRGVmaW5pdGlvbiA9IGZvcm1EZWZpbml0aW9uO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudXNlclByb3ZpZGVyU2VydmljZS5nZXRVc2VyU3ViamVjdCgpLnN1YnNjcmliZSh1c2VyID0+IHtcbiAgICAgICAgdGhpcy5yb2xlcyA9IHVzZXIucm9sZXM7XG4gICAgICAgIHRoaXMudGFza3MgPSBbXTtcbiAgICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzKHRoaXMuZG9jdW1lbnRJZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFByb2Nlc3NEb2N1bWVudEluc3RhbmNlcyhkb2N1bWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAgIC5maW5kUHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzKGRvY3VtZW50SWQpXG4gICAgICAgIC5zdWJzY3JpYmUocHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzID0+IHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NEb2N1bWVudEluc3RhbmNlcyA9IHByb2Nlc3NEb2N1bWVudEluc3RhbmNlcztcbiAgICAgICAgICB0aGlzLnByb2Nlc3NEb2N1bWVudEluc3RhbmNlcy5mb3JFYWNoKGluc3RhbmNlID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZFByb2Nlc3NJbnN0YW5jZVRhc2tzKGluc3RhbmNlLmlkLnByb2Nlc3NJbnN0YW5jZUlkKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJvd1Rhc2tDbGljayh0YXNrOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tEZXRhaWwub3BlblRhc2tEZXRhaWxzKHRhc2spO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUHJvY2Vzc0luc3RhbmNlVGFza3MocHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5wcm9jZXNzU2VydmljZVxuICAgICAgICAuZ2V0UHJvY2Vzc0luc3RhbmNlVGFza3MocHJvY2Vzc0luc3RhbmNlSWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCh0YXNrcyA9PlxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgIG9mKHRhc2tzKSxcbiAgICAgICAgICAgICAgLi4udGFza3MubWFwKHRhc2sgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9WSUVXX1RBU0tfUEVSTUlTU0lPTiwge1xuICAgICAgICAgICAgICAgICAgcmVzb3VyY2U6IFRBU0tfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UudGFzayxcbiAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6IHRhc2suaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBjb25zdCB0YXNrcyA9IHJlc1swXTtcbiAgICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IHJlcy5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPT0gMCk7XG5cbiAgICAgICAgICBpZiAodGFza3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGFza3MuZm9yRWFjaCgodGFzaywgdGFza0luZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHRhc2suY3JlYXRlZFVuaXggPSB0aGlzLm1vbWVudCh0YXNrLmNyZWF0ZWQpLnVuaXgoKTtcbiAgICAgICAgICAgICAgdGFzay5jcmVhdGVkID0gdGhpcy5tb21lbnQodGFzay5jcmVhdGVkKS5mb3JtYXQoJ0REIE1NTSBZWVlZIEhIOm1tJyk7XG4gICAgICAgICAgICAgIHRhc2suaXNMb2NrZWQgPSAhcGVybWlzc2lvbnNbdGFza0luZGV4XTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy50YXNrcyA9IHRoaXMudGFza3MuY29uY2F0KHRhc2tzKTtcbiAgICAgICAgICAgIHRoaXMudGFza3Muc29ydCgodDEsIHQyKSA9PiB0Mi5jcmVhdGVkVW5peCAtIHQxLmNyZWF0ZWRVbml4KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmxvYWRpbmdUYXNrcyQubmV4dChmYWxzZSk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCIgKm5nSWY9XCJ7bG9hZGluZ1Rhc2tzOiBsb2FkaW5nVGFza3MkIHwgYXN5bmN9IGFzIG9ic1wiPlxuICA8ZGl2IGNsYXNzPVwicm93IHB5LTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZC04IGNvbC14bC05XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZG9jdW1lbnRcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImZvcm1EZWZpbml0aW9uXCIgY2xhc3M9XCJzdW1tYXJ5Rm9ybVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+XG4gICAgICAgICAgICA8dmFsdGltby1mb3JtLWlvIFtmb3JtXT1cImZvcm1EZWZpbml0aW9uXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiPjwvdmFsdGltby1mb3JtLWlvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLUN1cnJlbnQgdXNlciB0YXNrcyByaWdodCBzaWRlLS0+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtNCBjb2wteGwtM1wiPlxuICAgICAgPGg0IGNsYXNzPVwidXNlci10YXNrcy10aXRsZVwiPnt7ICdzdW1tYXJ5LnVzZXJUYXNrcycgfCB0cmFuc2xhdGUgfX08L2g0PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvYnMubG9hZGluZ1Rhc2tzOyBlbHNlIGxvYWRpbmdUYXNrc1RlbXBsYXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGFza3MubGVuZ3RoXCI+XG4gICAgICAgICAgPHZhbHRpbW8td2lkZ2V0PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZmxvYXQtbGVmdFwiIHNyYz1cImFzc2V0cy9hdWRpdC0yLnBuZ1wiIGhlaWdodD1cIjI1XCIgLz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbG9hdC1yaWdodFwiPnt7ICdzdW1tYXJ5LnVzZXJUYXNrc0RvbmVTdGF0ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC92YWx0aW1vLXdpZGdldD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFzayBvZiB0YXNrc1wiPlxuICAgICAgICAgIDx2YWx0aW1vLXdpZGdldD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCIhdGFzay5pc0xvY2tlZFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicC0zIGNsaWNrYWJsZSBob3ZlcmFibGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicm93VGFza0NsaWNrKHRhc2spXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbG9hdC1yaWdodCBiYWRnZSBiYWRnZS1waWxsIGJhZGdlLXByaW1hcnlcIj57e1xuICAgICAgICAgICAgICAgICdzdW1tYXJ5LnRhc2tPcGVuJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0YXNrLm5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTFcIj57eyAnc3VtbWFyeS50YXNrQ3JlYXRlZCcgfCB0cmFuc2xhdGUgfX0ge3sgdGFzay5jcmVhdGVkIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTMgaG92ZXJhYmxlXCIgKm5nSWY9XCJ0YXNrLmlzTG9ja2VkXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbG9hdC1yaWdodCBiYWRnZSBiYWRnZS1waWxsIGJhZGdlLXNlY29uZGFyeSBiZy1ncmV5XCJcbiAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3sgJ3N1bW1hcnkudGFza0xvY2tlZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktbG9ja1wiPjwvaT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHRhc2submFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8ZGl2Pnt7ICdzdW1tYXJ5LnRhc2tDcmVhdGVkJyB8IHRyYW5zbGF0ZSB9fSB7eyB0YXNrLmNyZWF0ZWQgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdmFsdGltby13aWRnZXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDx2YWx0aW1vLXRhc2stZGV0YWlsLW1vZGFsXG4gICAgICAgICN0YXNrRGV0YWlsXG4gICAgICAgIChmb3JtU3VibWl0KT1cImluaXQoKVwiXG4gICAgICAgIChhc3NpZ25tZW50T2ZUYXNrQ2hhbmdlZCk9XCJpbml0KClcIlxuICAgICAgPjwvdmFsdGltby10YXNrLWRldGFpbC1tb2RhbD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVGFza3NUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgPGNkcy1sb2FkaW5nIHNpemU9XCJzbVwiPjwvY2RzLWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==