@valtimo/dossier 10.8.0 → 11.1.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 (223) hide show
  1. package/esm2022/lib/components/dossier-assign-user/dossier-assign-user.component.mjs +98 -0
  2. package/esm2022/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.mjs +75 -0
  3. package/esm2022/lib/components/dossier-detail/dossier-detail.component.mjs +191 -0
  4. package/esm2022/lib/components/dossier-detail/tab/audit/audit.component.mjs +76 -0
  5. package/esm2022/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.mjs +86 -0
  6. package/esm2022/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +146 -0
  7. package/esm2022/lib/components/dossier-detail/tab/documents/documents.component.mjs +41 -0
  8. package/esm2022/lib/components/dossier-detail/tab/formio/formio.component.mjs +61 -0
  9. package/esm2022/lib/components/dossier-detail/tab/notes/notes.component.mjs +166 -0
  10. package/esm2022/lib/components/dossier-detail/tab/object-type/object-type.component.mjs +121 -0
  11. package/esm2022/lib/components/dossier-detail/tab/progress/progress.component.mjs +52 -0
  12. package/esm2022/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.mjs +136 -0
  13. package/esm2022/lib/components/dossier-detail/tab/summary/summary.component.mjs +134 -0
  14. package/esm2022/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +112 -0
  15. package/esm2022/lib/components/dossier-list/dossier-list.component.mjs +370 -0
  16. package/esm2022/lib/components/dossier-list-actions/dossier-list-actions.component.mjs +84 -0
  17. package/esm2022/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.mjs +132 -0
  18. package/esm2022/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +116 -0
  19. package/esm2022/lib/components/dossier-update/dossier-update.component.mjs +113 -0
  20. package/{esm2020 → esm2022}/lib/components/note-modal/note-modal.component.mjs +5 -5
  21. package/esm2022/lib/constants/case-tab-token.mjs +19 -0
  22. package/esm2022/lib/constants/index.mjs +3 -0
  23. package/esm2022/lib/constants/tab.mjs +42 -0
  24. package/esm2022/lib/dossier-routing.module.mjs +76 -0
  25. package/esm2022/lib/dossier.module.mjs +288 -0
  26. package/esm2022/lib/models/candidate-user.model.mjs +17 -0
  27. package/esm2022/lib/models/dossier-detail-tab.model.mjs +27 -0
  28. package/{esm2020 → esm2022}/lib/models/dossier-parameters.model.mjs +1 -1
  29. package/esm2022/lib/models/index.mjs +23 -0
  30. package/esm2022/lib/models/tab-api.model.mjs +23 -0
  31. package/esm2022/lib/models/tabs.model.mjs +116 -0
  32. package/esm2022/lib/permissions/dossier-detail.permissions.mjs +55 -0
  33. package/esm2022/lib/permissions/index.mjs +17 -0
  34. package/esm2022/lib/pipes/index.mjs +17 -0
  35. package/esm2022/lib/pipes/tab-translate/index.mjs +18 -0
  36. package/esm2022/lib/pipes/tab-translate/tab-translate-pipe.module.mjs +33 -0
  37. package/esm2022/lib/pipes/tab-translate/tab-translate.pipe.mjs +41 -0
  38. package/esm2022/lib/services/dossier-bulk-assign.service.mjs +35 -0
  39. package/esm2022/lib/services/dossier-column.service.mjs +98 -0
  40. package/esm2022/lib/services/dossier-list-assignee.service.mjs +89 -0
  41. package/esm2022/lib/services/dossier-list-pagination.service.mjs +119 -0
  42. package/esm2022/lib/services/dossier-list-search.service.mjs +59 -0
  43. package/esm2022/lib/services/dossier-list.service.mjs +74 -0
  44. package/esm2022/lib/services/dossier-parameter.service.mjs +165 -0
  45. package/esm2022/lib/services/dossier-tab-api.service.mjs +23 -0
  46. package/esm2022/lib/services/dossier-tab.service.mjs +130 -0
  47. package/esm2022/lib/services/dossier.service.mjs +58 -0
  48. package/{esm2020 → esm2022}/lib/services/file-sort.service.mjs +4 -4
  49. package/esm2022/lib/services/index.mjs +27 -0
  50. package/esm2022/lib/services/notes.service.mjs +76 -0
  51. package/{esm2020 → esm2022}/lib/services/zaakobjecten.service.mjs +4 -4
  52. package/esm2022/public_api.mjs +34 -0
  53. package/fesm2022/valtimo-dossier.mjs +3979 -0
  54. package/fesm2022/valtimo-dossier.mjs.map +1 -0
  55. package/lib/components/dossier-assign-user/dossier-assign-user.component.d.ts +28 -0
  56. package/lib/components/dossier-assign-user/dossier-assign-user.component.d.ts.map +1 -0
  57. package/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts +22 -0
  58. package/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts.map +1 -0
  59. package/lib/{dossier-detail → components/dossier-detail}/dossier-detail.component.d.ts +36 -33
  60. package/lib/components/dossier-detail/dossier-detail.component.d.ts.map +1 -0
  61. package/lib/{dossier-detail → components/dossier-detail}/tab/audit/audit.component.d.ts +1 -1
  62. package/lib/components/dossier-detail/tab/audit/audit.component.d.ts.map +1 -0
  63. package/lib/{dossier-detail → components/dossier-detail}/tab/contact-moments/contact-moments.component.d.ts +1 -1
  64. package/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.d.ts.map +1 -0
  65. package/lib/{dossier-detail → components/dossier-detail}/tab/documenten-api-documents/documenten-api-documents.component.d.ts +3 -4
  66. package/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -0
  67. package/lib/{dossier-detail → components/dossier-detail}/tab/documents/documents.component.d.ts +1 -1
  68. package/lib/components/dossier-detail/tab/documents/documents.component.d.ts.map +1 -0
  69. package/lib/components/dossier-detail/tab/formio/formio.component.d.ts +20 -0
  70. package/lib/components/dossier-detail/tab/formio/formio.component.d.ts.map +1 -0
  71. package/lib/{dossier-detail → components/dossier-detail}/tab/notes/notes.component.d.ts +19 -12
  72. package/lib/components/dossier-detail/tab/notes/notes.component.d.ts.map +1 -0
  73. package/lib/{dossier-detail → components/dossier-detail}/tab/object-type/object-type.component.d.ts +5 -5
  74. package/lib/components/dossier-detail/tab/object-type/object-type.component.d.ts.map +1 -0
  75. package/lib/{dossier-detail → components/dossier-detail}/tab/progress/progress.component.d.ts +1 -1
  76. package/lib/components/dossier-detail/tab/progress/progress.component.d.ts.map +1 -0
  77. package/lib/{dossier-detail → components/dossier-detail}/tab/s3-documents/s3-documents.component.d.ts +3 -3
  78. package/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +1 -0
  79. package/lib/{dossier-detail → components/dossier-detail}/tab/summary/summary.component.d.ts +8 -4
  80. package/lib/components/dossier-detail/tab/summary/summary.component.d.ts.map +1 -0
  81. package/lib/{dossier-detail → components/dossier-detail}/tab/zaakobjecten/zaakobjecten.component.d.ts +5 -5
  82. package/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts.map +1 -0
  83. package/lib/components/dossier-list/dossier-list.component.d.ts +94 -0
  84. package/lib/components/dossier-list/dossier-list.component.d.ts.map +1 -0
  85. package/lib/{dossier-list-actions → components/dossier-list-actions}/dossier-list-actions.component.d.ts +6 -7
  86. package/lib/components/dossier-list-actions/dossier-list-actions.component.d.ts.map +1 -0
  87. package/lib/{dossier-process-start-modal → components/dossier-process-start-modal}/dossier-process-start-modal.component.d.ts +4 -7
  88. package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -0
  89. package/lib/{dossier-supporting-process-start-modal → components/dossier-supporting-process-start-modal}/dossier-supporting-process-start-modal.component.d.ts +4 -7
  90. package/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +1 -0
  91. package/lib/{dossier-update → components/dossier-update}/dossier-update.component.d.ts +2 -2
  92. package/lib/components/dossier-update/dossier-update.component.d.ts.map +1 -0
  93. package/lib/components/note-modal/note-modal.component.d.ts +3 -3
  94. package/lib/components/note-modal/note-modal.component.d.ts.map +1 -1
  95. package/lib/constants/case-tab-token.d.ts +5 -0
  96. package/lib/constants/case-tab-token.d.ts.map +1 -0
  97. package/lib/constants/index.d.ts +3 -0
  98. package/lib/constants/index.d.ts.map +1 -0
  99. package/lib/constants/tab.d.ts +7 -0
  100. package/lib/constants/tab.d.ts.map +1 -0
  101. package/lib/dossier-routing.module.d.ts.map +1 -1
  102. package/lib/dossier.module.d.ts +35 -33
  103. package/lib/dossier.module.d.ts.map +1 -1
  104. package/lib/models/candidate-user.model.d.ts +7 -0
  105. package/lib/models/candidate-user.model.d.ts.map +1 -0
  106. package/lib/models/dossier-detail-tab.model.d.ts +18 -0
  107. package/lib/models/dossier-detail-tab.model.d.ts.map +1 -0
  108. package/lib/models/dossier-parameters.model.d.ts +0 -1
  109. package/lib/models/dossier-parameters.model.d.ts.map +1 -1
  110. package/lib/models/index.d.ts +5 -2
  111. package/lib/models/index.d.ts.map +1 -1
  112. package/lib/models/search.model.d.ts +3 -3
  113. package/lib/models/search.model.d.ts.map +1 -1
  114. package/lib/models/tab-api.model.d.ts +13 -0
  115. package/lib/models/tab-api.model.d.ts.map +1 -0
  116. package/lib/models/tabs.model.d.ts +11 -10
  117. package/lib/models/tabs.model.d.ts.map +1 -1
  118. package/lib/permissions/dossier-detail.permissions.d.ts +14 -0
  119. package/lib/permissions/dossier-detail.permissions.d.ts.map +1 -0
  120. package/lib/permissions/index.d.ts +2 -0
  121. package/lib/permissions/index.d.ts.map +1 -0
  122. package/lib/pipes/index.d.ts +2 -0
  123. package/lib/pipes/index.d.ts.map +1 -0
  124. package/lib/pipes/tab-translate/index.d.ts +3 -0
  125. package/lib/pipes/tab-translate/index.d.ts.map +1 -0
  126. package/lib/pipes/tab-translate/tab-translate-pipe.module.d.ts +9 -0
  127. package/lib/pipes/tab-translate/tab-translate-pipe.module.d.ts.map +1 -0
  128. package/lib/pipes/tab-translate/tab-translate.pipe.d.ts +13 -0
  129. package/lib/pipes/tab-translate/tab-translate.pipe.d.ts.map +1 -0
  130. package/lib/services/dossier-bulk-assign.service.d.ts +17 -0
  131. package/lib/services/dossier-bulk-assign.service.d.ts.map +1 -0
  132. package/lib/services/dossier-column.service.d.ts +1 -1
  133. package/lib/services/dossier-column.service.d.ts.map +1 -1
  134. package/lib/services/dossier-list-assignee.service.d.ts +5 -4
  135. package/lib/services/dossier-list-assignee.service.d.ts.map +1 -1
  136. package/lib/services/dossier-list-pagination.service.d.ts +2 -2
  137. package/lib/services/dossier-list-pagination.service.d.ts.map +1 -1
  138. package/lib/services/dossier-list-search.service.d.ts +0 -3
  139. package/lib/services/dossier-list-search.service.d.ts.map +1 -1
  140. package/lib/services/dossier-list.service.d.ts +6 -0
  141. package/lib/services/dossier-list.service.d.ts.map +1 -1
  142. package/lib/services/dossier-parameter.service.d.ts.map +1 -1
  143. package/lib/services/dossier-tab-api.service.d.ts +15 -0
  144. package/lib/services/dossier-tab-api.service.d.ts.map +1 -0
  145. package/lib/services/dossier-tab.service.d.ts +31 -0
  146. package/lib/services/dossier-tab.service.d.ts.map +1 -0
  147. package/lib/{dossier.service.d.ts → services/dossier.service.d.ts} +5 -1
  148. package/lib/services/dossier.service.d.ts.map +1 -0
  149. package/lib/services/index.d.ts +4 -1
  150. package/lib/services/index.d.ts.map +1 -1
  151. package/lib/services/notes.service.d.ts.map +1 -1
  152. package/lib/services/zaakobjecten.service.d.ts.map +1 -1
  153. package/package.json +13 -19
  154. package/public_api.d.ts +13 -14
  155. package/public_api.d.ts.map +1 -1
  156. package/esm2020/lib/dossier-assign-user/dossier-assign-user.component.mjs +0 -126
  157. package/esm2020/lib/dossier-detail/dossier-detail.component.mjs +0 -175
  158. package/esm2020/lib/dossier-detail/tab/audit/audit.component.mjs +0 -76
  159. package/esm2020/lib/dossier-detail/tab/contact-moments/contact-moments.component.mjs +0 -86
  160. package/esm2020/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +0 -147
  161. package/esm2020/lib/dossier-detail/tab/documents/documents.component.mjs +0 -41
  162. package/esm2020/lib/dossier-detail/tab/notes/notes.component.mjs +0 -153
  163. package/esm2020/lib/dossier-detail/tab/object-type/object-type.component.mjs +0 -122
  164. package/esm2020/lib/dossier-detail/tab/progress/progress.component.mjs +0 -51
  165. package/esm2020/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +0 -134
  166. package/esm2020/lib/dossier-detail/tab/summary/summary.component.mjs +0 -124
  167. package/esm2020/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +0 -113
  168. package/esm2020/lib/dossier-detail-tab-enum.mjs +0 -26
  169. package/esm2020/lib/dossier-list/dossier-list.component.mjs +0 -224
  170. package/esm2020/lib/dossier-list-actions/dossier-list-actions.component.mjs +0 -86
  171. package/esm2020/lib/dossier-process-start-modal/dossier-process-start-modal.component.mjs +0 -192
  172. package/esm2020/lib/dossier-routing.module.mjs +0 -66
  173. package/esm2020/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +0 -181
  174. package/esm2020/lib/dossier-update/dossier-update.component.mjs +0 -113
  175. package/esm2020/lib/dossier.config.mjs +0 -29
  176. package/esm2020/lib/dossier.module.mjs +0 -259
  177. package/esm2020/lib/dossier.service.mjs +0 -50
  178. package/esm2020/lib/models/index.mjs +0 -20
  179. package/esm2020/lib/models/tabs.model.mjs +0 -112
  180. package/esm2020/lib/services/dossier-column.service.mjs +0 -100
  181. package/esm2020/lib/services/dossier-list-assignee.service.mjs +0 -82
  182. package/esm2020/lib/services/dossier-list-pagination.service.mjs +0 -116
  183. package/esm2020/lib/services/dossier-list-search.service.mjs +0 -66
  184. package/esm2020/lib/services/dossier-list.service.mjs +0 -56
  185. package/esm2020/lib/services/dossier-parameter.service.mjs +0 -167
  186. package/esm2020/lib/services/index.mjs +0 -24
  187. package/esm2020/lib/services/notes.service.mjs +0 -76
  188. package/esm2020/lib/tab.service.mjs +0 -80
  189. package/esm2020/public_api.mjs +0 -35
  190. package/fesm2015/valtimo-dossier.mjs +0 -3348
  191. package/fesm2015/valtimo-dossier.mjs.map +0 -1
  192. package/fesm2020/valtimo-dossier.mjs +0 -3447
  193. package/fesm2020/valtimo-dossier.mjs.map +0 -1
  194. package/lib/dossier-assign-user/dossier-assign-user.component.d.ts +0 -34
  195. package/lib/dossier-assign-user/dossier-assign-user.component.d.ts.map +0 -1
  196. package/lib/dossier-detail/dossier-detail.component.d.ts.map +0 -1
  197. package/lib/dossier-detail/tab/audit/audit.component.d.ts.map +0 -1
  198. package/lib/dossier-detail/tab/contact-moments/contact-moments.component.d.ts.map +0 -1
  199. package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts.map +0 -1
  200. package/lib/dossier-detail/tab/documents/documents.component.d.ts.map +0 -1
  201. package/lib/dossier-detail/tab/notes/notes.component.d.ts.map +0 -1
  202. package/lib/dossier-detail/tab/object-type/object-type.component.d.ts.map +0 -1
  203. package/lib/dossier-detail/tab/progress/progress.component.d.ts.map +0 -1
  204. package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +0 -1
  205. package/lib/dossier-detail/tab/summary/summary.component.d.ts.map +0 -1
  206. package/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts.map +0 -1
  207. package/lib/dossier-detail-tab-enum.d.ts +0 -10
  208. package/lib/dossier-detail-tab-enum.d.ts.map +0 -1
  209. package/lib/dossier-list/dossier-list.component.d.ts +0 -66
  210. package/lib/dossier-list/dossier-list.component.d.ts.map +0 -1
  211. package/lib/dossier-list-actions/dossier-list-actions.component.d.ts.map +0 -1
  212. package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +0 -1
  213. package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +0 -1
  214. package/lib/dossier-update/dossier-update.component.d.ts.map +0 -1
  215. package/lib/dossier.config.d.ts +0 -4
  216. package/lib/dossier.config.d.ts.map +0 -1
  217. package/lib/dossier.service.d.ts.map +0 -1
  218. package/lib/tab.service.d.ts +0 -21
  219. package/lib/tab.service.d.ts.map +0 -1
  220. /package/{esm2020 → esm2022}/lib/models/notes.model.mjs +0 -0
  221. /package/{esm2020 → esm2022}/lib/models/search.model.mjs +0 -0
  222. /package/{esm2020 → esm2022}/lib/models/zaakobjecten.model.mjs +0 -0
  223. /package/{esm2020 → esm2022}/valtimo-dossier.mjs +0 -0
@@ -0,0 +1,76 @@
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, EventEmitter, Output } from '@angular/core';
17
+ import { TimelineItemImpl } from '@valtimo/components';
18
+ import moment from 'moment';
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-spinner";
23
+ import * as i4 from "@angular/common";
24
+ import * as i5 from "@valtimo/components";
25
+ import * as i6 from "@ng-bootstrap/ng-bootstrap";
26
+ import * as i7 from "@ngx-translate/core";
27
+ moment.locale(localStorage.getItem('langKey') || '');
28
+ moment.defaultFormat = 'DD MMM YYYY HH:mm';
29
+ export class DossierDetailTabAuditComponent {
30
+ constructor(route, documentService, spinnerService) {
31
+ this.route = route;
32
+ this.documentService = documentService;
33
+ this.spinnerService = spinnerService;
34
+ this.paginationClicked = new EventEmitter();
35
+ this.defaultAuditPage = 0;
36
+ this.spinnerService.show('auditSpinner');
37
+ const snapshot = this.route.snapshot.paramMap;
38
+ this.documentId = snapshot.get('documentId') || '';
39
+ }
40
+ static getTranslationKey(auditEvent) {
41
+ const classNameArray = auditEvent.className.split('.');
42
+ const eventName = classNameArray[classNameArray.length - 1];
43
+ return 'events.' + eventName;
44
+ }
45
+ ngOnInit() {
46
+ this.loadAuditPage(this.defaultAuditPage);
47
+ }
48
+ loadAuditPage(pageNumber) {
49
+ this.documentService.getAuditLog(this.documentId, pageNumber).subscribe(page => {
50
+ const timelineItems = [];
51
+ page.content.forEach(auditRecord => {
52
+ const occurredOn = moment(auditRecord.metaData.occurredOn);
53
+ const fromNow = occurredOn.fromNow();
54
+ timelineItems.push(new TimelineItemImpl(occurredOn.format('DD MMM YYYY'), occurredOn.format('HH:mm'), auditRecord.metaData.user, fromNow, DossierDetailTabAuditComponent.getTranslationKey(auditRecord.auditEvent), auditRecord.auditEvent));
55
+ });
56
+ this.timelineItems = timelineItems;
57
+ this.spinnerService.hide('auditSpinner');
58
+ this.pagination = page;
59
+ this.pagination.number += 1;
60
+ });
61
+ }
62
+ onChangePagination(page) {
63
+ this.paginationClicked.emit(page);
64
+ this.currentAuditPage = page - 1;
65
+ this.loadAuditPage(this.currentAuditPage);
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabAuditComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.DocumentService }, { token: i3.NgxSpinnerService }], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierDetailTabAuditComponent, selector: "valtimo-dossier-detail-tab-audit", outputs: { paginationClicked: "paginationClicked" }, 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 *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n</div>\n<valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n>\n</valtimo-spinner>\n<div\n class=\"pagination-holder audit-pagination bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && pagination.totalElements > pagination.size\"\n>\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.number, total: pagination.totalPages}\n }}</strong>\n <br />\n {{\n pagination.totalElements === 1\n ? ('list.showingResult' | translate: {number: pagination.content.length})\n : ('list.showingResults'\n | translate: {number: pagination.content.length, total: pagination.totalElements})\n }}\n </div>\n <div class=\"col-8\">\n <ngb-pagination\n *ngIf=\"pagination.totalElements > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.totalElements\"\n [(page)]=\"pagination.number\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"onChangePagination(pagination.number)\"\n ></ngb-pagination>\n </div>\n</div>\n", styles: [".audit-pagination{margin:0 -1.923rem -1.923rem!important;border-top:1px solid #dee2e6}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.TimelineComponent, selector: "valtimo-timeline", inputs: ["items", "actions"] }, { kind: "component", type: i5.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i6.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabAuditComponent, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'valtimo-dossier-detail-tab-audit', 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 *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n</div>\n<valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n>\n</valtimo-spinner>\n<div\n class=\"pagination-holder audit-pagination bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && pagination.totalElements > pagination.size\"\n>\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.number, total: pagination.totalPages}\n }}</strong>\n <br />\n {{\n pagination.totalElements === 1\n ? ('list.showingResult' | translate: {number: pagination.content.length})\n : ('list.showingResults'\n | translate: {number: pagination.content.length, total: pagination.totalElements})\n }}\n </div>\n <div class=\"col-8\">\n <ngb-pagination\n *ngIf=\"pagination.totalElements > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.totalElements\"\n [(page)]=\"pagination.number\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"onChangePagination(pagination.number)\"\n ></ngb-pagination>\n </div>\n</div>\n", styles: [".audit-pagination{margin:0 -1.923rem -1.923rem!important;border-top:1px solid #dee2e6}\n"] }]
73
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.DocumentService }, { type: i3.NgxSpinnerService }]; }, propDecorators: { paginationClicked: [{
74
+ type: Output
75
+ }] } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvYXVkaXQvYXVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvYXVkaXQvYXVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFlLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7QUFLNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUM7QUFPM0MsTUFBTSxPQUFPLDhCQUE4QjtJQVN6QyxZQUNVLEtBQXFCLEVBQ3JCLGVBQWdDLEVBQ2hDLGNBQWlDO1FBRmpDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFYakMsc0JBQWlCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFLNUQscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBUTNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsVUFBc0I7UUFDckQsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWtCO1FBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdFLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDakMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzNELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckMsYUFBYSxDQUFDLElBQUksQ0FDaEIsSUFBSSxnQkFBZ0IsQ0FDbEIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFDaEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDMUIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ3pCLE9BQU8sRUFDUCw4QkFBOEIsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQ3hFLFdBQVcsQ0FBQyxVQUFVLENBQ3ZCLENBQ0YsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQixDQUFDLElBQUk7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7K0dBekRVLDhCQUE4QjttR0FBOUIsOEJBQThCLDZIQy9CM0MsOCtEQXdEQTs7NEZEekJhLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSxrQ0FBa0M7bUtBS2xDLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGltZWxpbmVJdGVtLCBUaW1lbGluZUl0ZW1JbXBsfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZSwgQXVkaXRFdmVudH0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtOZ3hTcGlubmVyU2VydmljZX0gZnJvbSAnbmd4LXNwaW5uZXInO1xuXG5tb21lbnQubG9jYWxlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5nS2V5JykgfHwgJycpO1xubW9tZW50LmRlZmF1bHRGb3JtYXQgPSAnREQgTU1NIFlZWVkgSEg6bW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItZGV0YWlsLXRhYi1hdWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1ZGl0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckRldGFpbFRhYkF1ZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpIHBhZ2luYXRpb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgdGltZWxpbmVJdGVtczogVGltZWxpbmVJdGVtW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBwdWJsaWMgcGFnaW5hdGlvbjogYW55O1xuICBwcml2YXRlIGRlZmF1bHRBdWRpdFBhZ2UgPSAwO1xuICBwcml2YXRlIGN1cnJlbnRBdWRpdFBhZ2U6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3Bpbm5lclNlcnZpY2U6IE5neFNwaW5uZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygnYXVkaXRTcGlubmVyJyk7XG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwO1xuICAgIHRoaXMuZG9jdW1lbnRJZCA9IHNuYXBzaG90LmdldCgnZG9jdW1lbnRJZCcpIHx8ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0VHJhbnNsYXRpb25LZXkoYXVkaXRFdmVudDogQXVkaXRFdmVudCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZUFycmF5ID0gYXVkaXRFdmVudC5jbGFzc05hbWUuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBldmVudE5hbWUgPSBjbGFzc05hbWVBcnJheVtjbGFzc05hbWVBcnJheS5sZW5ndGggLSAxXTtcbiAgICByZXR1cm4gJ2V2ZW50cy4nICsgZXZlbnROYW1lO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkQXVkaXRQYWdlKHRoaXMuZGVmYXVsdEF1ZGl0UGFnZSk7XG4gIH1cblxuICBwdWJsaWMgbG9hZEF1ZGl0UGFnZShwYWdlTnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRBdWRpdExvZyh0aGlzLmRvY3VtZW50SWQsIHBhZ2VOdW1iZXIpLnN1YnNjcmliZShwYWdlID0+IHtcbiAgICAgIGNvbnN0IHRpbWVsaW5lSXRlbXMgPSBbXTtcbiAgICAgIHBhZ2UuY29udGVudC5mb3JFYWNoKGF1ZGl0UmVjb3JkID0+IHtcbiAgICAgICAgY29uc3Qgb2NjdXJyZWRPbiA9IG1vbWVudChhdWRpdFJlY29yZC5tZXRhRGF0YS5vY2N1cnJlZE9uKTtcbiAgICAgICAgY29uc3QgZnJvbU5vdyA9IG9jY3VycmVkT24uZnJvbU5vdygpO1xuICAgICAgICB0aW1lbGluZUl0ZW1zLnB1c2goXG4gICAgICAgICAgbmV3IFRpbWVsaW5lSXRlbUltcGwoXG4gICAgICAgICAgICBvY2N1cnJlZE9uLmZvcm1hdCgnREQgTU1NIFlZWVknKSxcbiAgICAgICAgICAgIG9jY3VycmVkT24uZm9ybWF0KCdISDptbScpLFxuICAgICAgICAgICAgYXVkaXRSZWNvcmQubWV0YURhdGEudXNlcixcbiAgICAgICAgICAgIGZyb21Ob3csXG4gICAgICAgICAgICBEb3NzaWVyRGV0YWlsVGFiQXVkaXRDb21wb25lbnQuZ2V0VHJhbnNsYXRpb25LZXkoYXVkaXRSZWNvcmQuYXVkaXRFdmVudCksXG4gICAgICAgICAgICBhdWRpdFJlY29yZC5hdWRpdEV2ZW50XG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnRpbWVsaW5lSXRlbXMgPSB0aW1lbGluZUl0ZW1zO1xuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCdhdWRpdFNwaW5uZXInKTtcbiAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHBhZ2U7XG4gICAgICB0aGlzLnBhZ2luYXRpb24ubnVtYmVyICs9IDE7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2VQYWdpbmF0aW9uKHBhZ2UpIHtcbiAgICB0aGlzLnBhZ2luYXRpb25DbGlja2VkLmVtaXQocGFnZSk7XG4gICAgdGhpcy5jdXJyZW50QXVkaXRQYWdlID0gcGFnZSAtIDE7XG4gICAgdGhpcy5sb2FkQXVkaXRQYWdlKHRoaXMuY3VycmVudEF1ZGl0UGFnZSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdiAqbmdJZj1cInRpbWVsaW5lSXRlbXNcIj5cbiAgPHZhbHRpbW8tdGltZWxpbmUgW2l0ZW1zXT1cInRpbWVsaW5lSXRlbXNcIj48L3ZhbHRpbW8tdGltZWxpbmU+XG48L2Rpdj5cbjx2YWx0aW1vLXNwaW5uZXJcbiAgW3VzZUJvb3RzdHJhcFNwaW5uZXJdPVwiZmFsc2VcIlxuICBuYW1lPVwiYXVkaXRTcGlubmVyXCJcbiAgYmRDb2xvcj1cInJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zNSlcIlxuICBjb2xvcj1cIiMyNjQyNTFcIlxuICB0eXBlPVwic3F1YXJlLWplbGx5LWJveFwiXG4+XG48L3ZhbHRpbW8tc3Bpbm5lcj5cbjxkaXZcbiAgY2xhc3M9XCJwYWdpbmF0aW9uLWhvbGRlciBhdWRpdC1wYWdpbmF0aW9uIGJnLWxpZ2h0IHB4LTQgcHQtNCBwYi0yIG92ZXJmbG93LWF1dG8gcm93IG1yLTAgbWwtMFwiXG4gICpuZ0lmPVwicGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uLnRvdGFsRWxlbWVudHMgPiBwYWdpbmF0aW9uLnNpemVcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxvYXQtbGVmdCBwYWdlLWNvdW50IGNvbC00XCI+XG4gICAgPHN0cm9uZz57e1xuICAgICAgJ2xpc3QuY3VycmVudFBhZ2UnIHwgdHJhbnNsYXRlOiB7Y3VycmVudDogcGFnaW5hdGlvbi5udW1iZXIsIHRvdGFsOiBwYWdpbmF0aW9uLnRvdGFsUGFnZXN9XG4gICAgfX08L3N0cm9uZz5cbiAgICA8YnIgLz5cbiAgICB7e1xuICAgICAgcGFnaW5hdGlvbi50b3RhbEVsZW1lbnRzID09PSAxXG4gICAgICAgID8gKCdsaXN0LnNob3dpbmdSZXN1bHQnIHwgdHJhbnNsYXRlOiB7bnVtYmVyOiBwYWdpbmF0aW9uLmNvbnRlbnQubGVuZ3RofSlcbiAgICAgICAgOiAoJ2xpc3Quc2hvd2luZ1Jlc3VsdHMnXG4gICAgICAgICAgfCB0cmFuc2xhdGU6IHtudW1iZXI6IHBhZ2luYXRpb24uY29udGVudC5sZW5ndGgsIHRvdGFsOiBwYWdpbmF0aW9uLnRvdGFsRWxlbWVudHN9KVxuICAgIH19XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sLThcIj5cbiAgICA8bmdiLXBhZ2luYXRpb25cbiAgICAgICpuZ0lmPVwicGFnaW5hdGlvbi50b3RhbEVsZW1lbnRzID4gcGFnaW5hdGlvbi5zaXplXCJcbiAgICAgIGNsYXNzPVwiZmxvYXQtcmlnaHRcIlxuICAgICAgW2NvbGxlY3Rpb25TaXplXT1cInBhZ2luYXRpb24udG90YWxFbGVtZW50c1wiXG4gICAgICBbKHBhZ2UpXT1cInBhZ2luYXRpb24ubnVtYmVyXCJcbiAgICAgIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uLnNpemVcIlxuICAgICAgW21heFNpemVdPVwicGFnaW5hdGlvbi5zaXplXCJcbiAgICAgIFtyb3RhdGVdPVwidHJ1ZVwiXG4gICAgICAocGFnZUNoYW5nZSk9XCJvbkNoYW5nZVBhZ2luYXRpb24ocGFnaW5hdGlvbi5udW1iZXIpXCJcbiAgICA+PC9uZ2ItcGFnaW5hdGlvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,86 @@
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 moment from 'moment';
18
+ import { BehaviorSubject, combineLatest } from 'rxjs';
19
+ import { TimelineItemImpl } from '@valtimo/components';
20
+ import { map, switchMap, take } from 'rxjs/operators';
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@valtimo/contact-moment";
23
+ import * as i2 from "@valtimo/components";
24
+ import * as i3 from "@ngx-translate/core";
25
+ import * as i4 from "@angular/common";
26
+ import * as i5 from "@angular/forms";
27
+ moment.locale(localStorage.getItem('langKey') || '');
28
+ export class DossierDetailTabContactMomentsComponent {
29
+ constructor(contactMomentService, alertService, translateService) {
30
+ this.contactMomentService = contactMomentService;
31
+ this.alertService = alertService;
32
+ this.translateService = translateService;
33
+ this.refetchContactMoments$ = new BehaviorSubject('');
34
+ this.contactMoments$ = this.refetchContactMoments$.pipe(switchMap(() => this.contactMomentService.getContactMoments()), map(contactMoments => contactMoments.map(contactMoment => {
35
+ const registratieDatum = moment(contactMoment.registratiedatum);
36
+ return new TimelineItemImpl(registratieDatum.format('DD MMM YYYY'), registratieDatum.format('HH:mm'), contactMoment.medewerkerIdentificatie.achternaam, contactMoment.kanaal, contactMoment.tekst, null);
37
+ })));
38
+ this.text$ = new BehaviorSubject('');
39
+ this.channel$ = new BehaviorSubject('MAIL');
40
+ this.requestData$ = combineLatest([this.text$, this.channel$]);
41
+ this.valid$ = this.requestData$.pipe(map(([text, channel]) => !!(text && channel)));
42
+ this.disabled$ = new BehaviorSubject(false);
43
+ }
44
+ textChange(text) {
45
+ this.text$.next(text);
46
+ }
47
+ buttonClick() {
48
+ this.modal.show();
49
+ }
50
+ saveNote() {
51
+ this.disable();
52
+ this.requestData$.pipe(take(1)).subscribe(([text, channel]) => {
53
+ this.contactMomentService.saveContactMoment({ kanaal: channel, tekst: text }).subscribe(() => {
54
+ this.alertService.success(this.translateService.instant('dossier.contactMoments.saveSuccess'));
55
+ this.enable();
56
+ this.clear();
57
+ this.modal.hide();
58
+ this.refetchContactMoments();
59
+ }, () => {
60
+ this.enable();
61
+ });
62
+ });
63
+ }
64
+ disable() {
65
+ this.disabled$.next(true);
66
+ }
67
+ enable() {
68
+ this.disabled$.next(false);
69
+ }
70
+ clear() {
71
+ this.text$.next('');
72
+ }
73
+ refetchContactMoments() {
74
+ this.refetchContactMoments$.next('');
75
+ }
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabContactMomentsComponent, deps: [{ token: i1.ContactMomentService }, { token: i2.AlertService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
77
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierDetailTabContactMomentsComponent, selector: "valtimo-dossier-detail-tab-contact-moments", viewQueries: [{ propertyName: "modal", first: true, predicate: ["contactMomentsNoteModal"], 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=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\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 */.contact-moments-container{display:flex;flex-direction:column}.button-container{display:inline;align-self:flex-end}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TimelineComponent, selector: "valtimo-timeline", inputs: ["items", "actions"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "component", type: i2.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
78
+ }
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabContactMomentsComponent, decorators: [{
80
+ type: Component,
81
+ args: [{ selector: 'valtimo-dossier-detail-tab-contact-moments', 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=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\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 */.contact-moments-container{display:flex;flex-direction:column}.button-container{display:inline;align-self:flex-end}\n"] }]
82
+ }], ctorParameters: function () { return [{ type: i1.ContactMomentService }, { type: i2.AlertService }, { type: i3.TranslateService }]; }, propDecorators: { modal: [{
83
+ type: ViewChild,
84
+ args: ['contactMomentsNoteModal']
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1tb21lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL2NvbnRhY3QtbW9tZW50cy9jb250YWN0LW1vbWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvY29udGFjdC1tb21lbnRzL2NvbnRhY3QtbW9tZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBc0IsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUErQixnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBSXBELE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQU9yRCxNQUFNLE9BQU8sdUNBQXVDO0lBNkJsRCxZQUNtQixvQkFBMEMsRUFDMUMsWUFBMEIsRUFDMUIsZ0JBQWtDO1FBRmxDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTdCNUMsMkJBQXNCLEdB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SSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBOUVVLHVDQUF1QzttR0FBdkMsdUNBQXVDLG9NQ2hDcEQsaXNGQW9GQTs7NEZEcERhLHVDQUF1QztrQkFMbkQsU0FBUzsrQkFDRSw0Q0FBNEM7cUtBS2hCLEtBQUs7c0JBQTFDLFNBQVM7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRhY3RNb21lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb250YWN0LW1vbWVudCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01vZGFsQ29tcG9uZW50LCBUaW1lbGluZUl0ZW0sIFRpbWVsaW5lSXRlbUltcGx9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBbGVydFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxubW9tZW50LmxvY2FsZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ0tleScpIHx8ICcnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItY29udGFjdC1tb21lbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3QtbW9tZW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRhY3QtbW9tZW50cy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyRGV0YWlsVGFiQ29udGFjdE1vbWVudHNDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdjb250YWN0TW9tZW50c05vdGVNb2RhbCcpIG1vZGFsOiBNb2RhbENvbXBvbmVudDtcblxuICByZWFkb25seSByZWZldGNoQ29udGFjdE1vbWVudHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIHJlYWRvbmx5IGNvbnRhY3RNb21lbnRzJDogT2JzZXJ2YWJsZTxBcnJheTxUaW1lbGluZUl0ZW0+PiA9IHRoaXMucmVmZXRjaENvbnRhY3RNb21lbnRzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNvbnRhY3RNb21lbnRTZXJ2aWNlLmdldENvbnRhY3RNb21lbnRzKCkpLFxuICAgIG1hcChjb250YWN0TW9tZW50cyA9PlxuICAgICAgY29udGFjdE1vbWVudHMubWFwKGNvbnRhY3RNb21lbnQgPT4ge1xuICAgICAgICBjb25zdCByZWdpc3RyYXRpZURhdHVtID0gbW9tZW50KGNvbnRhY3RNb21lbnQucmVnaXN0cmF0aWVkYXR1bSk7XG4gICAgICAgIHJldHVybiBuZXcgVGltZWxpbmVJdGVtSW1wbChcbiAgICAgICAgICByZWdpc3RyYXRpZURhdHVtLmZvcm1hdCgnREQgTU1NIFlZWVknKSxcbiAgICAgICAgICByZWdpc3RyYXRpZURhdHVtLmZvcm1hdCgnSEg6bW0nKSxcbiAgICAgICAgICBjb250YWN0TW9tZW50Lm1lZGV3ZXJrZXJJZGVudGlmaWNhdGllLmFjaHRlcm5hYW0sXG4gICAgICAgICAgY29udGFjdE1vbWVudC5rYW5hYWwsXG4gICAgICAgICAgY29udGFjdE1vbWVudC50ZWtzdCxcbiAgICAgICAgICBudWxsXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICByZWFkb25seSB0ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGNoYW5uZWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdNQUlMJyk7XG4gIHJlYWRvbmx5IHJlcXVlc3REYXRhJDogT2JzZXJ2YWJsZTxBcnJheTxzdHJpbmc+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMudGV4dCQsIHRoaXMuY2hhbm5lbCRdKTtcbiAgcmVhZG9ubHkgdmFsaWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5yZXF1ZXN0RGF0YSQucGlwZShcbiAgICBtYXAoKFt0ZXh0LCBjaGFubmVsXSkgPT4gISEodGV4dCAmJiBjaGFubmVsKSlcbiAgKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250YWN0TW9tZW50U2VydmljZTogQ29udGFjdE1vbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHRleHRDaGFuZ2UodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0JC5uZXh0KHRleHQpO1xuICB9XG5cbiAgYnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbC5zaG93KCk7XG4gIH1cblxuICBzYXZlTm90ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMucmVxdWVzdERhdGEkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChbdGV4dCwgY2hhbm5lbF0pID0+IHtcbiAgICAgIHRoaXMuY29udGFjdE1vbWVudFNlcnZpY2Uuc2F2ZUNvbnRhY3RNb21lbnQoe2thbmFhbDogY2hhbm5lbCwgdGVrc3Q6IHRleHR9KS5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIuY29udGFjdE1vbWVudHMuc2F2ZVN1Y2Nlc3MnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgICAgICAgdGhpcy5yZWZldGNoQ29udGFjdE1vbWVudHMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpc2FibGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnRleHQkLm5leHQoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZldGNoQ29udGFjdE1vbWVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5yZWZldGNoQ29udGFjdE1vbWVudHMkLm5leHQoJycpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJjb250YWN0LW1vbWVudHMtY29udGFpbmVyXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb21lbnRzXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPHZhbHRpbW8tbW9kYWxcbiAgI2NvbnRhY3RNb21lbnRzTm90ZU1vZGFsXG4gIFt0aXRsZV09XCInZG9zc2llci5jb250YWN0TW9tZW50cy5wb3B1cFRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gIFtzaG93Rm9vdGVyXT1cInRydWVcIlxuICBbZWxlbWVudElkXT1cIidjb250YWN0LW1vbWVudHMtbW9kYWwnXCJcbj5cbiAgPGRpdiBjbGFzcz1cIm10LTJcIiBib2R5PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGZvb3Rlcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC92YWx0aW1vLW1vZGFsPlxuXG48bmctdGVtcGxhdGUgI2JvZHk+XG4gIDxmb3JtPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zIGNvbC1mb3JtLWxhYmVsIHRleHQtc20tcmlnaHRcIiBmb3I9XCJib2R5XCI+XG4gICAgICAgIHt7ICdkb3NzaWVyLmNvbnRhY3RNb21lbnRzLm5vdGVUZXh0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTggY29sLWxnLTZcIj5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgaWQ9XCJib2R5XCJcbiAgICAgICAgICBuYW1lPVwiYm9keVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwidGV4dCQgfCBhc3luY1wiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGV4dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXI+XG4gIDxidXR0b25cbiAgICAqbmdJZj1cIihkaXNhYmxlZCQgfCBhc3luYykgPT09IGZhbHNlOyBlbHNlIGxvYWRpbmdcIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiKHZhbGlkJCB8IGFzeW5jKSA9PT0gZmFsc2UgfHwgKGRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgKGNsaWNrKT1cInNhdmVOb3RlKClcIlxuICA+XG4gICAge3sgJ2Rvc3NpZXIuY29udGFjdE1vbWVudHMuc2F2ZUJ1dHRvblRleHQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICA8dmFsdGltby1zcGlubmVyIFtub01hcmdpblRvcF09XCJ0cnVlXCI+PC92YWx0aW1vLXNwaW5uZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnM+XG4gIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgbXQtbTNweCBtYi0zIGJ1dHRvbi1jb250YWluZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zcGFjZVwiIChjbGljayk9XCJidXR0b25DbGljaygpXCI+XG4gICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS1ub3RlLXBsdXNcIj48L2k+XG4gICAgICAmbmJzcDt7eyAnZG9zc2llci5jb250YWN0TW9tZW50cy5tYWtlTm90ZUJ1dHRvbicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vbWVudHM+XG4gIDxkaXYgKm5nSWY9XCJjb250YWN0TW9tZW50cyQgfCBhc3luYyBhcyBjb250YWN0TW9tZW50czsgZWxzZSBsb2FkaW5nXCI+XG4gICAgPHZhbHRpbW8tdGltZWxpbmUgW2l0ZW1zXT1cImNvbnRhY3RNb21lbnRzXCI+PC92YWx0aW1vLXRpbWVsaW5lPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,146 @@
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 { catchError, map, switchMap, take, tap } from 'rxjs/operators';
18
+ import { BehaviorSubject, combineLatest, of, Subject } from 'rxjs';
19
+ import moment from 'moment';
20
+ import * as i0 from "@angular/core";
21
+ import * as i1 from "@angular/router";
22
+ import * as i2 from "@valtimo/document";
23
+ import * as i3 from "ngx-toastr";
24
+ import * as i4 from "@valtimo/resource";
25
+ import * as i5 from "@valtimo/components";
26
+ import * as i6 from "@ngx-translate/core";
27
+ import * as i7 from "@valtimo/config";
28
+ import * as i8 from "@valtimo/security";
29
+ import * as i9 from "../../../../services/file-sort.service";
30
+ import * as i10 from "@angular/common";
31
+ import * as i11 from "carbon-components-angular";
32
+ export class DossierDetailTabDocumentenApiDocumentsComponent {
33
+ constructor(route, documentService, toastrService, uploadProviderService, downloadService, promptService, translateService, configService, userProviderService, fileSortService) {
34
+ this.route = route;
35
+ this.documentService = documentService;
36
+ this.toastrService = toastrService;
37
+ this.uploadProviderService = uploadProviderService;
38
+ this.downloadService = downloadService;
39
+ this.promptService = promptService;
40
+ this.translateService = translateService;
41
+ this.configService = configService;
42
+ this.userProviderService = userProviderService;
43
+ this.fileSortService = fileSortService;
44
+ this.maxFileSize = this.configService?.config?.caseFileSizeUploadLimitMB || 5;
45
+ this.acceptedFiles = this.configService?.config?.caseFileUploadAcceptedFiles || null;
46
+ this.fields = [
47
+ { key: 'fileName', label: 'File name' },
48
+ { key: 'sizeInBytes', label: 'Size in bytes' },
49
+ { key: 'createdOn', label: 'Created on' },
50
+ { key: 'createdBy', label: 'Created by' },
51
+ ];
52
+ this.uploadProcessLinkedSet = false;
53
+ this.uploading$ = new BehaviorSubject(false);
54
+ this.showModal$ = new Subject();
55
+ this.hideModal$ = new Subject();
56
+ this.modalDisabled$ = new BehaviorSubject(false);
57
+ this.fileToBeUploaded$ = new BehaviorSubject(null);
58
+ this.loading$ = new BehaviorSubject(true);
59
+ this.refetch$ = new BehaviorSubject(null);
60
+ this.relatedFiles$ = this.refetch$.pipe(switchMap(() => combineLatest([
61
+ this.documentService.getZakenApiDocuments(this.documentId),
62
+ this.translateService.stream('key'),
63
+ ])), map(([relatedFiles]) => {
64
+ const translatedFiles = relatedFiles?.map(file => ({
65
+ ...file,
66
+ createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),
67
+ }));
68
+ return translatedFiles || [];
69
+ }), map(relatedFiles => this.fileSortService.sortRelatedFilesByDateDescending(relatedFiles)), map(relatedFiles => {
70
+ moment.locale(this.translateService.currentLang);
71
+ return relatedFiles.map(file => ({
72
+ ...file,
73
+ createdOn: moment(new Date(file.createdOn)).format('L'),
74
+ }));
75
+ }), tap(() => this.loading$.next(false)), catchError(() => {
76
+ this.showZaakLinkWarning = true;
77
+ return of([]);
78
+ }));
79
+ this.downloadingFileIndexes$ = new BehaviorSubject([]);
80
+ const snapshot = this.route.snapshot.paramMap;
81
+ this.documentId = snapshot.get('documentId') || '';
82
+ this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';
83
+ }
84
+ ngOnInit() {
85
+ this.refetchDocuments();
86
+ this.setUploadProcessLinked();
87
+ this.isUserAdmin();
88
+ }
89
+ fileSelected(file) {
90
+ this.fileToBeUploaded$.next(file);
91
+ this.showModal$.next(null);
92
+ }
93
+ downloadDocument(relatedFile, index) {
94
+ this.downloadingFileIndexes$.pipe(take(1)).subscribe(indexes => {
95
+ this.downloadingFileIndexes$.next([...indexes, index]);
96
+ const finished$ = this.downloadService.downloadFile(`/api/v1/documenten-api/${relatedFile.pluginConfigurationId}/files/${relatedFile.fileId}/download`, relatedFile.fileName);
97
+ finished$.pipe(take(1)).subscribe(() => {
98
+ this.downloadingFileIndexes$.next(this.downloadingFileIndexes$.getValue().filter(downloadIndex => downloadIndex !== index));
99
+ });
100
+ });
101
+ }
102
+ metadataSet(metadata) {
103
+ this.uploading$.next(true);
104
+ this.hideModal$.next(null);
105
+ this.fileToBeUploaded$
106
+ .pipe(take(1))
107
+ .pipe(tap(file => {
108
+ this.uploadProviderService
109
+ .uploadFileWithMetadata(file, this.documentId, metadata)
110
+ .subscribe(res => {
111
+ this.refetchDocuments();
112
+ this.uploading$.next(false);
113
+ this.fileToBeUploaded$.next(null);
114
+ });
115
+ }))
116
+ .subscribe();
117
+ }
118
+ indexesIncludeIndex(indexes, index) {
119
+ return indexes.includes(index);
120
+ }
121
+ isUserAdmin() {
122
+ this.userProviderService.getUserSubject().subscribe(userIdentity => {
123
+ this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');
124
+ }, error => {
125
+ this.isAdmin = false;
126
+ });
127
+ }
128
+ refetchDocuments() {
129
+ this.refetch$.next(null);
130
+ }
131
+ setUploadProcessLinked() {
132
+ this.uploadProviderService.checkUploadProcessLink(this.documentDefinitionName).subscribe(linked => {
133
+ this.uploadProcessLinked = linked;
134
+ this.uploadProcessLinkedSet = true;
135
+ }, () => {
136
+ this.uploadProcessLinkedSet = true;
137
+ });
138
+ }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabDocumentenApiDocumentsComponent, 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.UserProviderService }, { token: i9.FileSortService }], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierDetailTabDocumentenApiDocumentsComponent, selector: "valtimo-dossier-detail-tab-documenten-api-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<ng-container *ngIf=\"{loading: loading$ | async} as obs\">\n <div *ngIf=\"uploadProcessLinkedSet && !uploadProcessLinked\">\n <div\n *ngIf=\"isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <div *ngIf=\"showZaakLinkWarning\">\n <div\n [translate]=\"'dossier.documenten.noZaakFound'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n\n <valtimo-dropzone\n *ngIf=\"!obs.loading\"\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [camera]=\"false\"\n [disabled]=\"\n !uploadProcessLinkedSet || !uploadProcessLinked || obs.loading || showZaakLinkWarning\n \"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"true\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n\n <valtimo-widget>\n <valtimo-list\n [ngClass]=\"{hidden: obs.loading}\"\n [fields]=\"fields\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [items]=\"relatedFiles$ | async\"\n [viewMode]=\"true\"\n [lastColumnTemplate]=\"downloadButton\"\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 <ng-container *ngTemplateOutlet=\"loading; context: {loading: obs.loading}\"></ng-container>\n </valtimo-widget>\n</ng-container>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hide$]=\"hideModal$\"\n [show$]=\"showModal$\"\n></valtimo-documenten-api-metadata-modal>\n\n<ng-template #loading let-loading=\"loading\">\n <div *ngIf=\"loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #downloadButton let-index=\"index\" let-item=\"item\">\n <div\n class=\"download-button-container\"\n *ngIf=\"{isDownloading: indexesIncludeIndex(downloadingFileIndexes$ | async, index)} as vars\"\n >\n <button\n *ngIf=\"!vars.isDownloading\"\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"downloadDocument(item, index)\"\n >\n {{ 'interface.download' | translate\n }}<svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n <cds-loading size=\"sm\" *ngIf=\"vars.isDownloading\"></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 */.hidden{display:none}.loading-container{padding:var(--cds-grid-margin);display:flex;align-items:center;justify-content:center}.download-button-container{display:flex;width:100%;flex-direction:row;justify-content:flex-end;align-items:center;min-height:32px}\n"], dependencies: [{ kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { 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: "component", type: i5.DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["show$", "hide$", "disabled$", "file$", "documentTitle", "disableDocumentTitle", "filename", "disableFilename", "author", "disableAuthor", "status", "disableStatus", "language", "disableLanguage", "documentType", "disableDocumentType", "description", "disableDescription", "confidentialityLevel", "disableConfidentialityLevel"], outputs: ["metadata"] }, { kind: "component", type: i11.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i11.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i11.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
141
+ }
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabDocumentenApiDocumentsComponent, decorators: [{
143
+ type: Component,
144
+ args: [{ selector: 'valtimo-dossier-detail-tab-documenten-api-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<ng-container *ngIf=\"{loading: loading$ | async} as obs\">\n <div *ngIf=\"uploadProcessLinkedSet && !uploadProcessLinked\">\n <div\n *ngIf=\"isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <div *ngIf=\"showZaakLinkWarning\">\n <div\n [translate]=\"'dossier.documenten.noZaakFound'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n\n <valtimo-dropzone\n *ngIf=\"!obs.loading\"\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [camera]=\"false\"\n [disabled]=\"\n !uploadProcessLinkedSet || !uploadProcessLinked || obs.loading || showZaakLinkWarning\n \"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"true\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n\n <valtimo-widget>\n <valtimo-list\n [ngClass]=\"{hidden: obs.loading}\"\n [fields]=\"fields\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [items]=\"relatedFiles$ | async\"\n [viewMode]=\"true\"\n [lastColumnTemplate]=\"downloadButton\"\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 <ng-container *ngTemplateOutlet=\"loading; context: {loading: obs.loading}\"></ng-container>\n </valtimo-widget>\n</ng-container>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hide$]=\"hideModal$\"\n [show$]=\"showModal$\"\n></valtimo-documenten-api-metadata-modal>\n\n<ng-template #loading let-loading=\"loading\">\n <div *ngIf=\"loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #downloadButton let-index=\"index\" let-item=\"item\">\n <div\n class=\"download-button-container\"\n *ngIf=\"{isDownloading: indexesIncludeIndex(downloadingFileIndexes$ | async, index)} as vars\"\n >\n <button\n *ngIf=\"!vars.isDownloading\"\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"downloadDocument(item, index)\"\n >\n {{ 'interface.download' | translate\n }}<svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n <cds-loading size=\"sm\" *ngIf=\"vars.isDownloading\"></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 */.hidden{display:none}.loading-container{padding:var(--cds-grid-margin);display:flex;align-items:center;justify-content:center}.download-button-container{display:flex;width:100%;flex-direction:row;justify-content:flex-end;align-items:center;min-height:32px}\n"] }]
145
+ }], 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.UserProviderService }, { type: i9.FileSortService }]; } });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL2RvY3VtZW50ZW4tYXBpLWRvY3VtZW50cy9kb2N1bWVudGVuLWFwaS1kb2N1bWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvZG9jdW1lbnRlbi1hcGktZG9jdW1lbnRzL2RvY3VtZW50ZW4tYXBpLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFLaEQsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBTTdFLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU81QixNQUFNLE9BQU8sK0NBQStDO0lBMEQxRCxZQUNtQixLQUFxQixFQUNyQixlQUFnQyxFQUNoQyxhQUE0QixFQUM1QixxQkFBNEMsRUFDNUMsZUFBZ0MsRUFDaEMsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxlQUFnQztRQVRoQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsa0JB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O1FBQ1AsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBc0IsRUFBRSxLQUFhO1FBQ3ZELE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUNqRCxZQUFZLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxFQUNELEtBQUssQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsQ0FDdEYsTUFBTSxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDckMsQ0FBQyxFQUNELEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDckMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOytHQXhKVSwrQ0FBK0M7bUdBQS9DLCtDQUErQywyRkNuQzVELGsrR0F3R0E7OzRGRHJFYSwrQ0FBK0M7a0JBTDNELFNBQVM7K0JBQ0UscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2UsIFJlbGF0ZWRGaWxlLCBSZWxhdGVkRmlsZUxpc3RJdGVtfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge0Rvd25sb2FkU2VydmljZSwgVXBsb2FkUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9yZXNvdXJjZSc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7RG9jdW1lbnRlbkFwaU1ldGFkYXRhLCBQcm9tcHRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VXNlclByb3ZpZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vc2VjdXJpdHknO1xuaW1wb3J0IHtGaWxlU29ydFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2ZpbGUtc29ydC5zZXJ2aWNlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItZG9jdW1lbnRlbi1hcGktZG9jdW1lbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50ZW4tYXBpLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50ZW4tYXBpLWRvY3VtZW50cy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyRGV0YWlsVGFiRG9jdW1lbnRlbkFwaURvY3VtZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudElkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBtYXhGaWxlU2l6ZTogbnVtYmVyID0gdGhpcy5jb25maWdTZXJ2aWNlPy5jb25maWc/LmNhc2VGaWxlU2l6ZVVwbG9hZExpbWl0TUIgfHwgNTtcbiAgcHVibGljIHJlYWRvbmx5IGFjY2VwdGVkRmlsZXM6IHN0cmluZyA9XG4gICAgdGhpcy5jb25maWdTZXJ2aWNlPy5jb25maWc/LmNhc2VGaWxlVXBsb2FkQWNjZXB0ZWRGaWxlcyB8fCBudWxsO1xuICBwdWJsaWMgZmllbGRzID0gW1xuICAgIHtrZXk6ICdmaWxlTmFtZScsIGxhYmVsOiAnRmlsZSBuYW1lJ30sXG4gICAge2tleTogJ3NpemVJbkJ5dGVzJywgbGFiZWw6ICdTaXplIGluIGJ5dGVzJ30sXG4gICAge2tleTogJ2NyZWF0ZWRPbicsIGxhYmVsOiAnQ3JlYXRlZCBvbid9LFxuICAgIHtrZXk6ICdjcmVhdGVkQnknLCBsYWJlbDogJ0NyZWF0ZWQgYnknfSxcbiAgXTtcblxuICBwdWJsaWMgc2hvd1phYWtMaW5rV2FybmluZzogYm9vbGVhbjtcbiAgcHVibGljIGlzQWRtaW46IGJvb2xlYW47XG4gIHB1YmxpYyB1cGxvYWRQcm9jZXNzTGlua2VkU2V0ID0gZmFsc2U7XG4gIHB1YmxpYyB1cGxvYWRQcm9jZXNzTGlua2VkITogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93TW9kYWwkID0gbmV3IFN1YmplY3Q8bnVsbD4oKTtcbiAgcmVhZG9ubHkgaGlkZU1vZGFsJCA9IG5ldyBTdWJqZWN0PG51bGw+KCk7XG4gIHJlYWRvbmx5IG1vZGFsRGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGZpbGVUb0JlVXBsb2FkZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWxlIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZWZldGNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHJlbGF0ZWRGaWxlcyQ6IE9ic2VydmFibGU8QXJyYXk8UmVsYXRlZEZpbGVMaXN0SXRlbT4+ID0gdGhpcy5yZWZldGNoJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldFpha2VuQXBpRG9jdW1lbnRzKHRoaXMuZG9jdW1lbnRJZCksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICAgICAgXSlcbiAgICApLFxuICAgIG1hcCgoW3JlbGF0ZWRGaWxlc10pID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZWRGaWxlcyA9IHJlbGF0ZWRGaWxlcz8ubWFwKGZpbGUgPT4gKHtcbiAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgY3JlYXRlZEJ5OiBmaWxlLmNyZWF0ZWRCeSB8fCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnbGlzdC5hdXRvbWF0aWNhbGx5R2VuZXJhdGVkJyksXG4gICAgICB9KSk7XG5cbiAgICAgIHJldHVybiB0cmFuc2xhdGVkRmlsZXMgfHwgW107XG4gICAgfSksXG4gICAgbWFwKHJlbGF0ZWRGaWxlcyA9PiB0aGlzLmZpbGVTb3J0U2VydmljZS5zb3J0UmVsYXRlZEZpbGVzQnlEYXRlRGVzY2VuZGluZyhyZWxhdGVkRmlsZXMpKSxcbiAgICBtYXAocmVsYXRlZEZpbGVzID0+IHtcbiAgICAgIG1vbWVudC5sb2NhbGUodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKTtcblxuICAgICAgcmV0dXJuIHJlbGF0ZWRGaWxlcy5tYXAoZmlsZSA9PiAoe1xuICAgICAgICAuLi5maWxlLFxuICAgICAgICBjcmVhdGVkT246IG1vbWVudChuZXcgRGF0ZShmaWxlLmNyZWF0ZWRPbikpLmZvcm1hdCgnTCcpLFxuICAgICAgfSkpO1xuICAgIH0pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKSxcbiAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd1phYWtMaW5rV2FybmluZyA9IHRydWU7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH0pXG4gICk7XG5cbiAgcmVhZG9ubHkgZG93bmxvYWRpbmdGaWxlSW5kZXhlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PG51bWJlcj4+KFtdKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVwbG9hZFByb3ZpZGVyU2VydmljZTogVXBsb2FkUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG93bmxvYWRTZXJ2aWNlOiBEb3dubG9hZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZVNvcnRTZXJ2aWNlOiBGaWxlU29ydFNlcnZpY2VcbiAgKSB7XG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwO1xuICAgIHRoaXMuZG9jdW1lbnRJZCA9IHNuYXBzaG90LmdldCgnZG9jdW1lbnRJZCcpIHx8ICcnO1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9IHNuYXBzaG90LmdldCgnZG9jdW1lbnREZWZpbml0aW9uTmFtZScpIHx8ICcnO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWZldGNoRG9jdW1lbnRzKCk7XG4gICAgdGhpcy5zZXRVcGxvYWRQcm9jZXNzTGlua2VkKCk7XG4gICAgdGhpcy5pc1VzZXJBZG1pbigpO1xuICB9XG5cbiAgZmlsZVNlbGVjdGVkKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVUb0JlVXBsb2FkZWQkLm5leHQoZmlsZSk7XG4gICAgdGhpcy5zaG93TW9kYWwkLm5leHQobnVsbCk7XG4gIH1cblxuICBkb3dubG9hZERvY3VtZW50KHJlbGF0ZWRGaWxlOiBSZWxhdGVkRmlsZSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZG93bmxvYWRpbmdGaWxlSW5kZXhlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoaW5kZXhlcyA9PiB7XG4gICAgICB0aGlzLmRvd25sb2FkaW5nRmlsZUluZGV4ZXMkLm5leHQoWy4uLmluZGV4ZXMsIGluZGV4XSk7XG5cbiAgICAgIGNvbnN0IGZpbmlzaGVkJDogT2JzZXJ2YWJsZTxudWxsPiA9IHRoaXMuZG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkRmlsZShcbiAgICAgICAgYC9hcGkvdjEvZG9jdW1lbnRlbi1hcGkvJHtyZWxhdGVkRmlsZS5wbHVnaW5Db25maWd1cmF0aW9uSWR9L2ZpbGVzLyR7cmVsYXRlZEZpbGUuZmlsZUlkfS9kb3dubG9hZGAsXG4gICAgICAgIHJlbGF0ZWRGaWxlLmZpbGVOYW1lXG4gICAgICApO1xuXG4gICAgICBmaW5pc2hlZCQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvd25sb2FkaW5nRmlsZUluZGV4ZXMkLm5leHQoXG4gICAgICAgICAgdGhpcy5kb3dubG9hZGluZ0ZpbGVJbmRleGVzJC5nZXRWYWx1ZSgpLmZpbHRlcihkb3dubG9hZEluZGV4ID0+IGRvd25sb2FkSW5kZXggIT09IGluZGV4KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBtZXRhZGF0YVNldChtZXRhZGF0YTogRG9jdW1lbnRlbkFwaU1ldGFkYXRhKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5oaWRlTW9kYWwkLm5leHQobnVsbCk7XG5cbiAgICB0aGlzLmZpbGVUb0JlVXBsb2FkZWQkXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChmaWxlID0+IHtcbiAgICAgICAgICB0aGlzLnVwbG9hZFByb3ZpZGVyU2VydmljZVxuICAgICAgICAgICAgLnVwbG9hZEZpbGVXaXRoTWV0YWRhdGEoZmlsZSwgdGhpcy5kb2N1bWVudElkLCBtZXRhZGF0YSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5yZWZldGNoRG9jdW1lbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgdGhpcy5maWxlVG9CZVVwbG9hZGVkJC5uZXh0KG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBpbmRleGVzSW5jbHVkZUluZGV4KGluZGV4ZXM6IEFycmF5PG51bWJlcj4sIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaW5kZXhlcy5pbmNsdWRlcyhpbmRleCk7XG4gIH1cblxuICBwdWJsaWMgaXNVc2VyQWRtaW4oKSB7XG4gICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLmdldFVzZXJTdWJqZWN0KCkuc3Vic2NyaWJlKFxuICAgICAgdXNlcklkZW50aXR5ID0+IHtcbiAgICAgICAgdGhpcy5pc0FkbWluID0gdXNlcklkZW50aXR5LnJvbGVzLmluY2x1ZGVzKCdST0xFX0FETUlOJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmlzQWRtaW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZldGNoRG9jdW1lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMucmVmZXRjaCQubmV4dChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VXBsb2FkUHJvY2Vzc0xpbmtlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwbG9hZFByb3ZpZGVyU2VydmljZS5jaGVja1VwbG9hZFByb2Nlc3NMaW5rKHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSkuc3Vic2NyaWJlKFxuICAgICAgbGlua2VkID0+IHtcbiAgICAgICAgdGhpcy51cGxvYWRQcm9jZXNzTGlua2VkID0gbGlua2VkO1xuICAgICAgICB0aGlzLnVwbG9hZFByb2Nlc3NMaW5rZWRTZXQgPSB0cnVlO1xuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy51cGxvYWRQcm9jZXNzTGlua2VkU2V0ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ7bG9hZGluZzogbG9hZGluZyQgfCBhc3luY30gYXMgb2JzXCI+XG4gIDxkaXYgKm5nSWY9XCJ1cGxvYWRQcm9jZXNzTGlua2VkU2V0ICYmICF1cGxvYWRQcm9jZXNzTGlua2VkXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJpc0FkbWluXCJcbiAgICAgIFt0cmFuc2xhdGVdPVwiJ2Rvc3NpZXIuZG9jdW1lbnRlbi5ub1Byb2Nlc3NMaW5rZWQuYWRtaW5Sb2xlJ1wiXG4gICAgICBjbGFzcz1cImJnLXdhcm5pbmcgdGV4dC1ibGFjayBtYi0yIHAtMyB0ZXh0LWNlbnRlclwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiIWlzQWRtaW5cIlxuICAgICAgW3RyYW5zbGF0ZV09XCInZG9zc2llci5kb2N1bWVudGVuLm5vUHJvY2Vzc0xpbmtlZC5yZWd1bGFyVXNlcidcIlxuICAgICAgY2xhc3M9XCJiZy13YXJuaW5nIHRleHQtYmxhY2sgbWItMiBwLTMgdGV4dC1jZW50ZXJcIlxuICAgID48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93WmFha0xpbmtXYXJuaW5nXCI+XG4gICAgPGRpdlxuICAgICAgW3RyYW5zbGF0ZV09XCInZG9zc2llci5kb2N1bWVudGVuLm5vWmFha0ZvdW5kJ1wiXG4gICAgICBjbGFzcz1cImJnLXdhcm5pbmcgdGV4dC1ibGFjayBtYi0yIHAtMyB0ZXh0LWNlbnRlclwiXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cblxuICA8dmFsdGltby1kcm9wem9uZVxuICAgICpuZ0lmPVwiIW9icy5sb2FkaW5nXCJcbiAgICAoZmlsZVNlbGVjdGVkKT1cImZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICBbYWNjZXB0ZWRGaWxlc109XCJhY2NlcHRlZEZpbGVzXCJcbiAgICBbY2FtZXJhXT1cImZhbHNlXCJcbiAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAhdXBsb2FkUHJvY2Vzc0xpbmtlZFNldCB8fCAhdXBsb2FkUHJvY2Vzc0xpbmtlZCB8fCBvYnMubG9hZGluZyB8fCBzaG93WmFha0xpbmtXYXJuaW5nXG4gICAgXCJcbiAgICBbaGlkZUZpbGVQcmV2aWV3XT1cInRydWVcIlxuICAgIFtoaWRlVGl0bGVdPVwidHJ1ZVwiXG4gICAgW21heEZpbGVTaXplXT1cIm1heEZpbGVTaXplXCJcbiAgICBbbWF4RmlsZXNdPVwiMVwiXG4gICAgW3Nob3dNYXhGaWxlU2l6ZV09XCJ0cnVlXCJcbiAgICBbdXBsb2FkaW5nXT1cInVwbG9hZGluZyQgfCBhc3luY1wiXG4gID48L3ZhbHRpbW8tZHJvcHpvbmU+XG5cbiAgPHZhbHRpbW8td2lkZ2V0PlxuICAgIDx2YWx0aW1vLWxpc3RcbiAgICAgIFtuZ0NsYXNzXT1cIntoaWRkZW46IG9icy5sb2FkaW5nfVwiXG4gICAgICBbZmllbGRzXT1cImZpZWxkc1wiXG4gICAgICBbaGVhZGVyXT1cInRydWVcIlxuICAgICAgW2lzU2VhcmNoYWJsZV09XCJ0cnVlXCJcbiAgICAgIFtpdGVtc109XCJyZWxhdGVkRmlsZXMkIHwgYXN5bmNcIlxuICAgICAgW3ZpZXdNb2RlXT1cInRydWVcIlxuICAgICAgW2xhc3RDb2x1bW5UZW1wbGF0ZV09XCJkb3dubG9hZEJ1dHRvblwiXG4gICAgPlxuICAgICAgPGRpdiBoZWFkZXI+XG4gICAgICAgIDxoMyBjbGFzcz1cImxpc3QtaGVhZGVyLXRpdGxlXCI+e3sgJ1JlbGF0ZWQgZG9jdW1lbnRzJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XG4gICAgICAgIDxoNSBjbGFzcz1cImxpc3QtaGVhZGVyLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAge3sgJ092ZXJ2aWV3IG9mIGFsbCBkb2N1bWVudHMgaW4gdGhpcyBkb3NzaWVyJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2g1PlxuICAgICAgPC9kaXY+XG4gICAgPC92YWx0aW1vLWxpc3Q+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmc7IGNvbnRleHQ6IHtsb2FkaW5nOiBvYnMubG9hZGluZ31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC92YWx0aW1vLXdpZGdldD5cbjwvbmctY29udGFpbmVyPlxuXG48dmFsdGltby1kb2N1bWVudGVuLWFwaS1tZXRhZGF0YS1tb2RhbFxuICAobWV0YWRhdGEpPVwibWV0YWRhdGFTZXQoJGV2ZW50KVwiXG4gIFtkaXNhYmxlZCRdPVwibW9kYWxEaXNhYmxlZCRcIlxuICBbZmlsZSRdPVwiZmlsZVRvQmVVcGxvYWRlZCRcIlxuICBbaGlkZSRdPVwiaGlkZU1vZGFsJFwiXG4gIFtzaG93JF09XCJzaG93TW9kYWwkXCJcbj48L3ZhbHRpbW8tZG9jdW1lbnRlbi1hcGktbWV0YWRhdGEtbW9kYWw+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZyBsZXQtbG9hZGluZz1cImxvYWRpbmdcIj5cbiAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgPGNkcy1sb2FkaW5nPjwvY2RzLWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkb3dubG9hZEJ1dHRvbiBsZXQtaW5kZXg9XCJpbmRleFwiIGxldC1pdGVtPVwiaXRlbVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkb3dubG9hZC1idXR0b24tY29udGFpbmVyXCJcbiAgICAqbmdJZj1cIntpc0Rvd25sb2FkaW5nOiBpbmRleGVzSW5jbHVkZUluZGV4KGRvd25sb2FkaW5nRmlsZUluZGV4ZXMkIHwgYXN5bmMsIGluZGV4KX0gYXMgdmFyc1wiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cIiF2YXJzLmlzRG93bmxvYWRpbmdcIlxuICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICBzaXplPVwic21cIlxuICAgICAgKGNsaWNrKT1cImRvd25sb2FkRG9jdW1lbnQoaXRlbSwgaW5kZXgpXCJcbiAgICA+XG4gICAgICB7eyAnaW50ZXJmYWNlLmRvd25sb2FkJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiZG93bmxvYWRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cbiAgICA8Y2RzLWxvYWRpbmcgc2l6ZT1cInNtXCIgKm5nSWY9XCJ2YXJzLmlzRG93bmxvYWRpbmdcIj48L2Nkcy1sb2FkaW5nPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,41 @@
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 { UploadProvider } from '@valtimo/config';
18
+ import * as i0 from "@angular/core";
19
+ import * as i1 from "@valtimo/config";
20
+ import * as i2 from "@angular/common";
21
+ import * as i3 from "../documenten-api-documents/documenten-api-documents.component";
22
+ import * as i4 from "../s3-documents/s3-documents.component";
23
+ export class DossierDetailTabDocumentsComponent {
24
+ constructor(configService) {
25
+ this.configService = configService;
26
+ this.setConfig(configService.config);
27
+ }
28
+ setConfig(config) {
29
+ const uploadProvider = config.uploadProvider;
30
+ this.openZaakUploadProvider = uploadProvider === UploadProvider.OPEN_ZAAK;
31
+ this.documentenApiUploadProvider = uploadProvider === UploadProvider.DOCUMENTEN_API;
32
+ this.s3UploadProvider = config.uploadProvider === UploadProvider.S3;
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabDocumentsComponent, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierDetailTabDocumentsComponent, selector: "valtimo-dossier-detail-tab-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-dossier-detail-tab-s3-documents\n *ngIf=\"s3UploadProvider || openZaakUploadProvider\"\n></valtimo-dossier-detail-tab-s3-documents>\n<valtimo-dossier-detail-tab-documenten-api-documents *ngIf=\"documentenApiUploadProvider\">\n</valtimo-dossier-detail-tab-documenten-api-documents>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DossierDetailTabDocumentenApiDocumentsComponent, selector: "valtimo-dossier-detail-tab-documenten-api-documents" }, { kind: "component", type: i4.DossierDetailTabS3DocumentsComponent, selector: "valtimo-dossier-detail-tab-s3-documents" }] }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabDocumentsComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'valtimo-dossier-detail-tab-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-dossier-detail-tab-s3-documents\n *ngIf=\"s3UploadProvider || openZaakUploadProvider\"\n></valtimo-dossier-detail-tab-s3-documents>\n<valtimo-dossier-detail-tab-documenten-api-documents *ngIf=\"documentenApiUploadProvider\">\n</valtimo-dossier-detail-tab-documenten-api-documents>\n" }]
40
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }]; } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL2RvY3VtZW50cy9kb2N1bWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvZG9jdW1lbnRzL2RvY3VtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFnQixjQUFjLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQU83RSxNQUFNLE9BQU8sa0NBQWtDO0lBSzdDLFlBQTZCLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxTQUFTLENBQUMsTUFBcUI7UUFDckMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsY0FBYyxLQUFLLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDMUUsSUFBSSxDQUFDLDJCQUEyQixHQUFHLGNBQWMsS0FBSyxjQUFjLENBQUMsY0FBYyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsY0FBYyxLQUFLLGNBQWMsQ0FBQyxFQUFFLENBQUM7SUFDdEUsQ0FBQzsrR0FkVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQyw0RUN4Qi9DLHM3QkFxQkE7OzRGREdhLGtDQUFrQztrQkFMOUMsU0FBUzsrQkFDRSxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2UsIFVwbG9hZFByb3ZpZGVyLCBWYWx0aW1vQ29uZmlnfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItZGV0YWlsLXRhYi1kb2N1bWVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnRzLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckRldGFpbFRhYkRvY3VtZW50c0NvbXBvbmVudCB7XG4gIG9wZW5aYWFrVXBsb2FkUHJvdmlkZXIhOiBib29sZWFuO1xuICBzM1VwbG9hZFByb3ZpZGVyITogYm9vbGVhbjtcbiAgZG9jdW1lbnRlbkFwaVVwbG9hZFByb3ZpZGVyITogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICB0aGlzLnNldENvbmZpZyhjb25maWdTZXJ2aWNlLmNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbmZpZyhjb25maWc6IFZhbHRpbW9Db25maWcpOiB2b2lkIHtcbiAgICBjb25zdCB1cGxvYWRQcm92aWRlciA9IGNvbmZpZy51cGxvYWRQcm92aWRlcjtcbiAgICB0aGlzLm9wZW5aYWFrVXBsb2FkUHJvdmlkZXIgPSB1cGxvYWRQcm92aWRlciA9PT0gVXBsb2FkUHJvdmlkZXIuT1BFTl9aQUFLO1xuICAgIHRoaXMuZG9jdW1lbnRlbkFwaVVwbG9hZFByb3ZpZGVyID0gdXBsb2FkUHJvdmlkZXIgPT09IFVwbG9hZFByb3ZpZGVyLkRPQ1VNRU5URU5fQVBJO1xuICAgIHRoaXMuczNVcGxvYWRQcm92aWRlciA9IGNvbmZpZy51cGxvYWRQcm92aWRlciA9PT0gVXBsb2FkUHJvdmlkZXIuUzM7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFiLXMzLWRvY3VtZW50c1xuICAqbmdJZj1cInMzVXBsb2FkUHJvdmlkZXIgfHwgb3BlblphYWtVcGxvYWRQcm92aWRlclwiXG4+PC92YWx0aW1vLWRvc3NpZXItZGV0YWlsLXRhYi1zMy1kb2N1bWVudHM+XG48dmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItZG9jdW1lbnRlbi1hcGktZG9jdW1lbnRzICpuZ0lmPVwiZG9jdW1lbnRlbkFwaVVwbG9hZFByb3ZpZGVyXCI+XG48L3ZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFiLWRvY3VtZW50ZW4tYXBpLWRvY3VtZW50cz5cbiJdfQ==
@@ -0,0 +1,61 @@
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 { ChangeDetectionStrategy, Component } from '@angular/core';
17
+ import { BehaviorSubject, combineLatest, of, switchMap, tap } from 'rxjs';
18
+ import { catchError } from 'rxjs/operators';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "../../../../services";
21
+ import * as i2 from "@angular/router";
22
+ import * as i3 from "@valtimo/form";
23
+ import * as i4 from "@angular/common";
24
+ import * as i5 from "@valtimo/components";
25
+ import * as i6 from "carbon-components-angular";
26
+ import * as i7 from "@ngx-translate/core";
27
+ export class DossierDetailTabFormioComponent {
28
+ constructor(tabService, route, formService) {
29
+ this.tabService = tabService;
30
+ this.route = route;
31
+ this.formService = formService;
32
+ this.loading$ = new BehaviorSubject(true);
33
+ this.formNotFound$ = new BehaviorSubject('');
34
+ this.noFormSpecified$ = new BehaviorSubject(false);
35
+ this.prefilledForm$ = combineLatest([
36
+ this.tabService.tabs$,
37
+ this.route.params,
38
+ ]).pipe(switchMap(([tabs, params]) => {
39
+ const currentTabName = params?.tab;
40
+ const documentId = params?.documentId;
41
+ const currentTab = tabs.find(tab => tab.name === currentTabName);
42
+ if (!documentId || !currentTab?.contentKey) {
43
+ this.noFormSpecified$.next(true);
44
+ return of(null);
45
+ }
46
+ this._formDefinitionName = currentTab.contentKey;
47
+ return this.formService.getFormDefinitionByNamePreFilled(currentTab.contentKey, documentId);
48
+ }), tap(() => this.loading$.next(false)), catchError(() => {
49
+ this.formNotFound$.next(this._formDefinitionName);
50
+ this.loading$.next(false);
51
+ return of(null);
52
+ }));
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabFormioComponent, deps: [{ token: i1.DossierTabService }, { token: i2.ActivatedRoute }, { token: i3.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierDetailTabFormioComponent, selector: "ng-component", 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 prefilledForm: prefilledForm$ | async,\n loading: loading$ | async,\n formNotFound: formNotFound$ | async,\n noFormSpecified: noFormSpecified$ | async\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <p *ngIf=\"obs.formNotFound\" class=\"error-message\">\n {{ 'dossier.formio.formNotFound' | translate: {formDefinitionName: obs.formNotFound} }}\n </p>\n\n <p *ngIf=\"obs.noFormSpecified\" class=\"error-message\">\n {{ 'dossier.formio.noFormSpecified' | translate }}\n </p>\n\n <valtimo-form-io *ngIf=\"obs.prefilledForm\" [form]=\"obs.prefilledForm\"> </valtimo-form-io>\n</ng-container>\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 */.loading-container{display:flex;width:100%;flex-direction:row;justify-content:center}.error-message{text-align:center}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i6.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierDetailTabFormioComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, 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 prefilledForm: prefilledForm$ | async,\n loading: loading$ | async,\n formNotFound: formNotFound$ | async,\n noFormSpecified: noFormSpecified$ | async\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <p *ngIf=\"obs.formNotFound\" class=\"error-message\">\n {{ 'dossier.formio.formNotFound' | translate: {formDefinitionName: obs.formNotFound} }}\n </p>\n\n <p *ngIf=\"obs.noFormSpecified\" class=\"error-message\">\n {{ 'dossier.formio.noFormSpecified' | translate }}\n </p>\n\n <valtimo-form-io *ngIf=\"obs.prefilledForm\" [form]=\"obs.prefilledForm\"> </valtimo-form-io>\n</ng-container>\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 */.loading-container{display:flex;width:100%;flex-direction:row;justify-content:center}.error-message{text-align:center}\n"] }]
60
+ }], ctorParameters: function () { return [{ type: i1.DossierTabService }, { type: i2.ActivatedRoute }, { type: i3.FormService }]; } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL2Zvcm1pby9mb3JtaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvZm9ybWlvL2Zvcm1pby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJakUsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLCtCQUErQjtJQThCMUMsWUFDbUIsVUFBNkIsRUFDN0IsS0FBcUIsRUFDckIsV0FBd0I7UUFGeEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFoQzNCLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUM5QyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXZELG1CQUFjLEdBQWtDLGFBQWEsQ0FBQztZQUM1RSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7WUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1NBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQ0wsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUMzQixNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsR0FBRyxDQUFDO1lBQ25DLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxVQUFVLENBQUM7WUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUM7WUFFakUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pCO1lBRUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDakQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGdDQUFnQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUYsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3BDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBTUMsQ0FBQzsrR0FsQ08sK0JBQStCO21HQUEvQiwrQkFBK0Isb0RDN0I1Qyw4MUNBc0NBOzs0RkRUYSwrQkFBK0I7a0JBTDNDLFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Rvc3NpZXJUYWJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtGb3JtU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZm9ybSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Rm9ybWlvRm9ybX0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1pby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm1pby5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckRldGFpbFRhYkZvcm1pb0NvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtTm90Rm91bmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgcHVibGljIHJlYWRvbmx5IG5vRm9ybVNwZWNpZmllZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBfZm9ybURlZmluaXRpb25OYW1lITogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZmlsbGVkRm9ybSQ6IE9ic2VydmFibGU8Rm9ybWlvRm9ybSB8IG51bGw+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy50YWJTZXJ2aWNlLnRhYnMkLFxuICAgIHRoaXMucm91dGUucGFyYW1zLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3RhYnMsIHBhcmFtc10pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRUYWJOYW1lID0gcGFyYW1zPy50YWI7XG4gICAgICBjb25zdCBkb2N1bWVudElkID0gcGFyYW1zPy5kb2N1bWVudElkO1xuICAgICAgY29uc3QgY3VycmVudFRhYiA9IHRhYnMuZmluZCh0YWIgPT4gdGFiLm5hbWUgPT09IGN1cnJlbnRUYWJOYW1lKTtcblxuICAgICAgaWYgKCFkb2N1bWVudElkIHx8ICFjdXJyZW50VGFiPy5jb250ZW50S2V5KSB7XG4gICAgICAgIHRoaXMubm9Gb3JtU3BlY2lmaWVkJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2Zvcm1EZWZpbml0aW9uTmFtZSA9IGN1cnJlbnRUYWIuY29udGVudEtleTtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1TZXJ2aWNlLmdldEZvcm1EZWZpbml0aW9uQnlOYW1lUHJlRmlsbGVkKGN1cnJlbnRUYWIuY29udGVudEtleSwgZG9jdW1lbnRJZCk7XG4gICAgfSksXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSkpLFxuICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtTm90Rm91bmQkLm5leHQodGhpcy5fZm9ybURlZmluaXRpb25OYW1lKTtcbiAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYlNlcnZpY2U6IERvc3NpZXJUYWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlXG4gICkge31cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBwcmVmaWxsZWRGb3JtOiBwcmVmaWxsZWRGb3JtJCB8IGFzeW5jLFxuICAgIGxvYWRpbmc6IGxvYWRpbmckIHwgYXN5bmMsXG4gICAgZm9ybU5vdEZvdW5kOiBmb3JtTm90Rm91bmQkIHwgYXN5bmMsXG4gICAgbm9Gb3JtU3BlY2lmaWVkOiBub0Zvcm1TcGVjaWZpZWQkIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuPlxuICA8ZGl2ICpuZ0lmPVwib2JzLmxvYWRpbmdcIiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgPGNkcy1sb2FkaW5nPjwvY2RzLWxvYWRpbmc+XG4gIDwvZGl2PlxuXG4gIDxwICpuZ0lmPVwib2JzLmZvcm1Ob3RGb3VuZFwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgIHt7ICdkb3NzaWVyLmZvcm1pby5mb3JtTm90Rm91bmQnIHwgdHJhbnNsYXRlOiB7Zm9ybURlZmluaXRpb25OYW1lOiBvYnMuZm9ybU5vdEZvdW5kfSB9fVxuICA8L3A+XG5cbiAgPHAgKm5nSWY9XCJvYnMubm9Gb3JtU3BlY2lmaWVkXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XG4gICAge3sgJ2Rvc3NpZXIuZm9ybWlvLm5vRm9ybVNwZWNpZmllZCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9wPlxuXG4gIDx2YWx0aW1vLWZvcm0taW8gKm5nSWY9XCJvYnMucHJlZmlsbGVkRm9ybVwiIFtmb3JtXT1cIm9icy5wcmVmaWxsZWRGb3JtXCI+IDwvdmFsdGltby1mb3JtLWlvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=