@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,84 @@
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, Input, Output, ViewChild } from '@angular/core';
17
+ import { map, of, switchMap, tap } from 'rxjs';
18
+ import * as i0 from "@angular/core";
19
+ import * as i1 from "@valtimo/document";
20
+ import * as i2 from "../../services";
21
+ import * as i3 from "@angular/common";
22
+ import * as i4 from "../dossier-process-start-modal/dossier-process-start-modal.component";
23
+ import * as i5 from "@ngx-translate/core";
24
+ export class DossierListActionsComponent {
25
+ constructor(documentService, listService) {
26
+ this.documentService = documentService;
27
+ this.listService = listService;
28
+ this.formFlowComplete = new EventEmitter();
29
+ this.associatedProcessDocumentDefinitions$ = this.listService.documentDefinitionName$.pipe(switchMap(documentDefinitionName => documentDefinitionName
30
+ ? this.documentService.findProcessDocumentDefinitions(documentDefinitionName)
31
+ : of([])), map(processDocumentDefinitions => processDocumentDefinitions.filter(definition => definition.canInitializeDocument)), tap(processDocumentDefinitions => {
32
+ this._cachedAssociatedProcessDocumentDefinitions = processDocumentDefinitions;
33
+ }));
34
+ this.disableStartDossierButton$ = this.associatedProcessDocumentDefinitions$.pipe(map(definitions => definitions.length === 0 || this.loading));
35
+ this.selectedProcessDocumentDefinition = null;
36
+ this.modalListenerAdded = false;
37
+ this._cachedAssociatedProcessDocumentDefinitions = [];
38
+ }
39
+ ngOnInit() {
40
+ this.modalListenerAdded = false;
41
+ }
42
+ startDossier() {
43
+ const associatedProcessDocumentDefinitions = this._cachedAssociatedProcessDocumentDefinitions;
44
+ if (associatedProcessDocumentDefinitions.length > 1) {
45
+ $('#startProcess').modal('show');
46
+ }
47
+ else {
48
+ this.selectedProcessDocumentDefinition = associatedProcessDocumentDefinitions[0];
49
+ this.showStartProcessModal();
50
+ }
51
+ }
52
+ selectProcess(processDocumentDefinition) {
53
+ const modal = $('#startProcess');
54
+ if (!this.modalListenerAdded) {
55
+ modal.on('hidden.bs.modal', this.showStartProcessModal.bind(this));
56
+ this.modalListenerAdded = true;
57
+ }
58
+ this.selectedProcessDocumentDefinition = processDocumentDefinition;
59
+ modal.modal('hide');
60
+ }
61
+ onFormFlowComplete() {
62
+ this.formFlowComplete.emit(null);
63
+ }
64
+ showStartProcessModal() {
65
+ if (this.selectedProcessDocumentDefinition !== null) {
66
+ this.processStart.openModal(this.selectedProcessDocumentDefinition);
67
+ this.selectedProcessDocumentDefinition = null;
68
+ }
69
+ }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierListActionsComponent, deps: [{ token: i1.DocumentService }, { token: i2.DossierListService }], target: i0.ɵɵFactoryTarget.Component }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierListActionsComponent, selector: "valtimo-dossier-list-actions", inputs: { loading: "loading" }, outputs: { formFlowComplete: "formFlowComplete" }, viewQueries: [{ propertyName: "processStart", first: true, predicate: ["processStartModal"], 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 *ngIf=\"associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\">\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of associatedProcessDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<valtimo-dossier-process-start-modal\n #processStartModal\n (formFlowComplete)=\"onFormFlowComplete()\"\n></valtimo-dossier-process-start-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal", outputs: ["formFlowComplete"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierListActionsComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'valtimo-dossier-list-actions', 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=\"associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\">\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of associatedProcessDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<valtimo-dossier-process-start-modal\n #processStartModal\n (formFlowComplete)=\"onFormFlowComplete()\"\n></valtimo-dossier-process-start-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
76
+ }], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.DossierListService }]; }, propDecorators: { processStart: [{
77
+ type: ViewChild,
78
+ args: ['processStartModal']
79
+ }], loading: [{
80
+ type: Input
81
+ }], formFlowComplete: [{
82
+ type: Output
83
+ }] } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1saXN0LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWxpc3QtYWN0aW9ucy9kb3NzaWVyLWxpc3QtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbGlzdC1hY3Rpb25zL2Rvc3NpZXItbGlzdC1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFDLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVd6RCxNQUFNLE9BQU8sMkJBQTJCO0lBa0N0QyxZQUNtQixlQUFnQyxFQUNoQyxXQUErQjtRQUQvQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBL0J4QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWhDLDBDQUFxQyxHQUVqRCxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FDL0MsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FDakMsc0JBQXNCO1lBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLDhCQUE4QixDQUFDLHNCQUFzQixDQUFDO1lBQzdFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ1gsRUFDRCxHQUFHLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUMvQiwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsQ0FDbEYsRUFDRCxHQUFHLENBQUMsMEJBQTBCLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsMkNBQTJDLEdBQUcsMEJBQTBCLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVjLCtCQUEwQixHQUN4QyxJQUFJLENBQUMscUNBQXFDLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQzdELENBQUM7UUFFSSxzQ0FBaUMsR0FBcUMsSUFBSSxDQUFDO1FBRTNFLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixnREFBMkMsR0FBcUMsRUFBRSxDQUFDO0lBS3hGLENBQUM7SUFFRyxRQUFRO1FBQ2IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRU0sWUFBWTtRQUNqQixNQUFNLG9DQUFvQyxHQUFHLElBQUksQ0FBQywyQ0FBMkMsQ0FBQztRQUU5RixJQUFJLG9DQUFvQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkQsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQzthQUFNO1lBQ0wsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLG9DQUFvQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyx5QkFBb0Q7UUFDdkUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxpQ0FBaUMsR0FBRyx5QkFBeUIsQ0FBQztRQUNuRSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksSUFBSSxDQUFDLGlDQUFpQyxLQUFLLElBQUksRUFBRTtZQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsaUNBQWlDLEdBQUcsSUFBSSxDQUFDO1NBQy9DO0lBQ0gsQ0FBQzsrR0F6RVUsMkJBQTJCO21HQUEzQiwyQkFBMkIsMFFDNUJ4Qyw2eEVBZ0VBOzs0RkRwQ2EsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDhCQUE4Qjt1SUFLUixZQUFZO3NCQUEzQyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFFckIsT0FBTztzQkFBZixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZSwgUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbn0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHttYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Rvc3NpZXJMaXN0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtEb3NzaWVyUHJvY2Vzc1N0YXJ0TW9kYWxDb21wb25lbnR9IGZyb20gJy4uL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC9kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50JztcblxuZGVjbGFyZSBjb25zdCAkO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItbGlzdC1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItbGlzdC1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9zc2llci1saXN0LWFjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckxpc3RBY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgncHJvY2Vzc1N0YXJ0TW9kYWwnKSBwcm9jZXNzU3RhcnQ6IERvc3NpZXJQcm9jZXNzU3RhcnRNb2RhbENvbXBvbmVudDtcblxuICBASW5wdXQoKSBsb2FkaW5nITogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgZm9ybUZsb3dDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYXNzb2NpYXRlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zJDogT2JzZXJ2YWJsZTxcbiAgICBBcnJheTxQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uPlxuICA+ID0gdGhpcy5saXN0U2VydmljZS5kb2N1bWVudERlZmluaXRpb25OYW1lJC5waXBlKFxuICAgIHN3aXRjaE1hcChkb2N1bWVudERlZmluaXRpb25OYW1lID0+XG4gICAgICBkb2N1bWVudERlZmluaXRpb25OYW1lXG4gICAgICAgID8gdGhpcy5kb2N1bWVudFNlcnZpY2UuZmluZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUpXG4gICAgICAgIDogb2YoW10pXG4gICAgKSxcbiAgICBtYXAocHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnMgPT5cbiAgICAgIHByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zLmZpbHRlcihkZWZpbml0aW9uID0+IGRlZmluaXRpb24uY2FuSW5pdGlhbGl6ZURvY3VtZW50KVxuICAgICksXG4gICAgdGFwKHByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zID0+IHtcbiAgICAgIHRoaXMuX2NhY2hlZEFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVTdGFydERvc3NpZXJCdXR0b24kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID1cbiAgICB0aGlzLmFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyQucGlwZShcbiAgICAgIG1hcChkZWZpbml0aW9ucyA9PiBkZWZpbml0aW9ucy5sZW5ndGggPT09IDAgfHwgdGhpcy5sb2FkaW5nKVxuICAgICk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb246IFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIG1vZGFsTGlzdGVuZXJBZGRlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2NhY2hlZEFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uczogQXJyYXk8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbj4gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlzdFNlcnZpY2U6IERvc3NpZXJMaXN0U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWxMaXN0ZW5lckFkZGVkID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc3RhcnREb3NzaWVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyA9IHRoaXMuX2NhY2hlZEFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucztcblxuICAgIGlmIChhc3NvY2lhdGVkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnMubGVuZ3RoID4gMSkge1xuICAgICAgJCgnI3N0YXJ0UHJvY2VzcycpLm1vZGFsKCdzaG93Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uID0gYXNzb2NpYXRlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zWzBdO1xuICAgICAgdGhpcy5zaG93U3RhcnRQcm9jZXNzTW9kYWwoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0UHJvY2Vzcyhwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uOiBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgbW9kYWwgPSAkKCcjc3RhcnRQcm9jZXNzJyk7XG4gICAgaWYgKCF0aGlzLm1vZGFsTGlzdGVuZXJBZGRlZCkge1xuICAgICAgbW9kYWwub24oJ2hpZGRlbi5icy5tb2RhbCcsIHRoaXMuc2hvd1N0YXJ0UHJvY2Vzc01vZGFsLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tb2RhbExpc3RlbmVyQWRkZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbiA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb247XG4gICAgbW9kYWwubW9kYWwoJ2hpZGUnKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvcm1GbG93Q29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRmxvd0NvbXBsZXRlLmVtaXQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHNob3dTdGFydFByb2Nlc3NNb2RhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIHRoaXMucHJvY2Vzc1N0YXJ0Lm9wZW5Nb2RhbCh0aGlzLnNlbGVjdGVkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbik7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbiA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgKm5nSWY9XCJhc3NvY2lhdGVkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnMkIHwgYXN5bmMgYXMgYXNzb2NpYXRlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1vZGFsIGZhZGVcIlxuICAgIGlkPVwic3RhcnRQcm9jZXNzXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICByb2xlPVwiZGlhbG9nXCJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJzdGFydFByb2Nlc3NMYWJlbFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtZGlhbG9nLWNlbnRlcmVkXCIgcm9sZT1cImRvY3VtZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cInN0YXJ0UHJvY2Vzc0xhYmVsXCI+XG4gICAgICAgICAgICB7eyAnZGFzaGJvYXJkLnN0YXJ0UHJvY2Vzcy50aXRsZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2gzPlxuXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgbS0wXCI+XG4gICAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uIG9mIGFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uc1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFByb2Nlc3MocHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbilcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0ZD57eyBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLnByb2Nlc3NOYW1lIH19PC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIj5cbiAgICAgICAgICAgIHt7ICdjdGEuY2xvc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjx2YWx0aW1vLWRvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbFxuICAjcHJvY2Vzc1N0YXJ0TW9kYWxcbiAgKGZvcm1GbG93Q29tcGxldGUpPVwib25Gb3JtRmxvd0NvbXBsZXRlKClcIlxuPjwvdmFsdGltby1kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWw+XG4iXX0=
@@ -0,0 +1,132 @@
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, ViewChild, ViewEncapsulation } from '@angular/core';
17
+ import { FormioOptionsImpl, } from '@valtimo/components';
18
+ import { take } from 'rxjs/operators';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "@angular/router";
21
+ import * as i2 from "@valtimo/process";
22
+ import * as i3 from "@valtimo/document";
23
+ import * as i4 from "@valtimo/form-link";
24
+ import * as i5 from "@valtimo/security";
25
+ import * as i6 from "ngx-logger";
26
+ import * as i7 from "@angular/common";
27
+ import * as i8 from "@valtimo/components";
28
+ import * as i9 from "@ngx-translate/core";
29
+ export class DossierProcessStartModalComponent {
30
+ constructor(route, router, processService, documentService, processLinkService, formFlowService, userProviderService, logger) {
31
+ this.route = route;
32
+ this.router = router;
33
+ this.processService = processService;
34
+ this.documentService = documentService;
35
+ this.processLinkService = processLinkService;
36
+ this.formFlowService = formFlowService;
37
+ this.userProviderService = userProviderService;
38
+ this.logger = logger;
39
+ this.formFlowComplete = new EventEmitter();
40
+ }
41
+ ngOnInit() {
42
+ this.isUserAdmin();
43
+ }
44
+ loadProcessLink() {
45
+ this.processLinkId = null;
46
+ this.formDefinition = null;
47
+ this.formFlowInstanceId = null;
48
+ this.processService
49
+ .getProcessDefinitionStartProcessLink(this.processDefinitionId, null, this.documentDefinitionName)
50
+ .pipe(take(1))
51
+ .subscribe(startProcessResult => {
52
+ if (startProcessResult) {
53
+ switch (startProcessResult.type) {
54
+ case 'form':
55
+ this.formDefinition = startProcessResult.properties.prefilledForm;
56
+ this.processLinkId = startProcessResult.processLinkId;
57
+ break;
58
+ case 'form-flow':
59
+ this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;
60
+ break;
61
+ }
62
+ }
63
+ this.modal.show();
64
+ });
65
+ }
66
+ gotoProcessLinkScreen() {
67
+ this.modal.hide();
68
+ this.router.navigate(['process-links'], { queryParams: { process: this.processDefinitionKey } });
69
+ }
70
+ get modalTitle() {
71
+ return `Start - ${this.processName}`;
72
+ }
73
+ openModal(processDocumentDefinition) {
74
+ this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;
75
+ this.processDefinitionId = processDocumentDefinition.latestVersionId;
76
+ this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;
77
+ this.processName = processDocumentDefinition.processName;
78
+ this.options = new FormioOptionsImpl();
79
+ this.options.disableAlerts = true;
80
+ const formioBeforeSubmit = function (submission, callback) {
81
+ callback(null, submission);
82
+ };
83
+ this.options.setHooks(formioBeforeSubmit);
84
+ this.loadProcessLink();
85
+ }
86
+ onSubmit(submission) {
87
+ this.formioSubmission = submission;
88
+ this.processLinkService.submitForm(this.processLinkId, submission.data).subscribe({
89
+ next: (formSubmissionResult) => {
90
+ this.submitCompleted(formSubmissionResult);
91
+ },
92
+ error: errors => {
93
+ this.form.showErrors(errors);
94
+ },
95
+ });
96
+ }
97
+ formFlowSubmitted() {
98
+ this.formFlowComplete.emit(null);
99
+ this.modal.hide();
100
+ }
101
+ isUserAdmin() {
102
+ this.userProviderService.getUserSubject().subscribe(userIdentity => {
103
+ this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');
104
+ }, error => {
105
+ this.isAdmin = false;
106
+ });
107
+ }
108
+ submitCompleted(formSubmissionResult) {
109
+ this.modal.hide();
110
+ this.router.navigate([
111
+ 'dossiers',
112
+ this.documentDefinitionName,
113
+ 'document',
114
+ formSubmissionResult.documentId,
115
+ ]);
116
+ }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierProcessStartModalComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.ProcessService }, { token: i3.DocumentService }, { token: i4.ProcessLinkService }, { token: i4.FormFlowService }, { token: i5.UserProviderService }, { token: i6.NGXLogger }], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal", outputs: { formFlowComplete: "formFlowComplete" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "modal", first: true, predicate: ["processStartModal"], 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<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && !isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */#processStartModal .formio-component-submit{text-align:right}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i8.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "directive", type: i9.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierProcessStartModalComponent, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'valtimo-dossier-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && !isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */#processStartModal .formio-component-submit{text-align:right}\n"] }]
123
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.ProcessService }, { type: i3.DocumentService }, { type: i4.ProcessLinkService }, { type: i4.FormFlowService }, { type: i5.UserProviderService }, { type: i6.NGXLogger }]; }, propDecorators: { form: [{
124
+ type: ViewChild,
125
+ args: ['form', { static: false }]
126
+ }], modal: [{
127
+ type: ViewChild,
128
+ args: ['processStartModal', { static: false }]
129
+ }], formFlowComplete: [{
130
+ type: Output
131
+ }] } });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC9kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBS3BHLE9BQU8sRUFFTCxpQkFBaUIsR0FJbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUs3QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBUXBDLE1BQU0sT0FBTyxpQ0FBaUM7SUFlNUMsWUFDVSxLQUFxQixFQUNyQixNQUFjLEVBQ2QsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxNQUFpQjtRQVBqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIsR0FB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Uzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ3JDLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlLCBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ufSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge0Zvcm1GbG93U2VydmljZSwgRm9ybVN1Ym1pc3Npb25SZXN1bHQsIFByb2Nlc3NMaW5rU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZm9ybS1saW5rJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7UHJvY2Vzc1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3Byb2Nlc3MnO1xuaW1wb3J0IHtcbiAgRm9ybWlvQ29tcG9uZW50LFxuICBGb3JtaW9PcHRpb25zSW1wbCxcbiAgRm9ybWlvU3VibWlzc2lvbixcbiAgTW9kYWxDb21wb25lbnQsXG4gIFZhbHRpbW9Gb3JtaW9PcHRpb25zLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7Rm9ybWlvQmVmb3JlU3VibWl0fSBmcm9tICdAZm9ybWlvL2FuZ3VsYXIvZm9ybWlvLmNvbW1vbic7XG5pbXBvcnQge0Zvcm1pb0Zvcm19IGZyb20gJ0Bmb3JtaW8vYW5ndWxhcic7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge1VzZXJQcm92aWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llclByb2Nlc3NTdGFydE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uS2V5OiBzdHJpbmc7XG4gIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIHB1YmxpYyBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBwcm9jZXNzTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZm9ybURlZmluaXRpb246IEZvcm1pb0Zvcm07XG4gIHB1YmxpYyBmb3JtRmxvd0luc3RhbmNlSWQ6IHN0cmluZztcbiAgcHVibGljIGZvcm1pb1N1Ym1pc3Npb246IEZvcm1pb1N1Ym1pc3Npb247XG4gIHByaXZhdGUgcHJvY2Vzc0xpbmtJZDogc3RyaW5nO1xuICBwdWJsaWMgb3B0aW9uczogVmFsdGltb0Zvcm1pb09wdGlvbnM7XG4gIHB1YmxpYyBpc0FkbWluOiBib29sZWFuO1xuICBAVmlld0NoaWxkKCdmb3JtJywge3N0YXRpYzogZmFsc2V9KSBmb3JtOiBGb3JtaW9Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3Byb2Nlc3NTdGFydE1vZGFsJywge3N0YXRpYzogZmFsc2V9KSBtb2RhbDogTW9kYWxDb21wb25lbnQ7XG4gIEBPdXRwdXQoKSBmb3JtRmxvd0NvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHByb2Nlc3NMaW5rU2VydmljZTogUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUZsb3dTZXJ2aWNlOiBGb3JtRmxvd1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBOR1hMb2dnZXJcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNVc2VyQWRtaW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFByb2Nlc3NMaW5rKCkge1xuICAgIHRoaXMucHJvY2Vzc0xpbmtJZCA9IG51bGw7XG4gICAgdGhpcy5mb3JtRGVmaW5pdGlvbiA9IG51bGw7XG4gICAgdGhpcy5mb3JtRmxvd0luc3RhbmNlSWQgPSBudWxsO1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2VcbiAgICAgIC5nZXRQcm9jZXNzRGVmaW5pdGlvblN0YXJ0UHJvY2Vzc0xpbmsoXG4gICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lXG4gICAgICApXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShzdGFydFByb2Nlc3NSZXN1bHQgPT4ge1xuICAgICAgICBpZiAoc3RhcnRQcm9jZXNzUmVzdWx0KSB7XG4gICAgICAgICAgc3dpdGNoIChzdGFydFByb2Nlc3NSZXN1bHQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZm9ybSc6XG4gICAgICAgICAgICAgIHRoaXMuZm9ybURlZmluaXRpb24gPSBzdGFydFByb2Nlc3NSZXN1bHQucHJvcGVydGllcy5wcmVmaWxsZWRGb3JtO1xuICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NMaW5rSWQgPSBzdGFydFByb2Nlc3NSZXN1bHQucHJvY2Vzc0xpbmtJZDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmb3JtLWZsb3cnOlxuICAgICAgICAgICAgICB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCA9IHN0YXJ0UHJvY2Vzc1Jlc3VsdC5wcm9wZXJ0aWVzLmZvcm1GbG93SW5zdGFuY2VJZDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ290b1Byb2Nlc3NMaW5rU2NyZWVuKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsncHJvY2Vzcy1saW5rcyddLCB7cXVlcnlQYXJhbXM6IHtwcm9jZXNzOiB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5fX0pO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RhbFRpdGxlKCkge1xuICAgIHJldHVybiBgU3RhcnQgLSAke3RoaXMucHJvY2Vzc05hbWV9YDtcbiAgfVxuXG4gIG9wZW5Nb2RhbChwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uOiBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uKSB7XG4gICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24uaWQucHJvY2Vzc0RlZmluaXRpb25LZXk7XG4gICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5sYXRlc3RWZXJzaW9uSWQ7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5pZC5kb2N1bWVudERlZmluaXRpb25JZC5uYW1lO1xuICAgIHRoaXMucHJvY2Vzc05hbWUgPSBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLnByb2Nlc3NOYW1lO1xuICAgIHRoaXMub3B0aW9ucyA9IG5ldyBGb3JtaW9PcHRpb25zSW1wbCgpO1xuICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlQWxlcnRzID0gdHJ1ZTtcbiAgICBjb25zdCBmb3JtaW9CZWZvcmVTdWJtaXQ6IEZvcm1pb0JlZm9yZVN1Ym1pdCA9IGZ1bmN0aW9uIChzdWJtaXNzaW9uLCBjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobnVsbCwgc3VibWlzc2lvbik7XG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMuc2V0SG9va3MoZm9ybWlvQmVmb3JlU3VibWl0KTtcbiAgICB0aGlzLmxvYWRQcm9jZXNzTGluaygpO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KHN1Ym1pc3Npb246IEZvcm1pb1N1Ym1pc3Npb24pIHtcbiAgICB0aGlzLmZvcm1pb1N1Ym1pc3Npb24gPSBzdWJtaXNzaW9uO1xuXG4gICAgdGhpcy5wcm9jZXNzTGlua1NlcnZpY2Uuc3VibWl0Rm9ybSh0aGlzLnByb2Nlc3NMaW5rSWQsIHN1Ym1pc3Npb24uZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChmb3JtU3VibWlzc2lvblJlc3VsdDogRm9ybVN1Ym1pc3Npb25SZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5zdWJtaXRDb21wbGV0ZWQoZm9ybVN1Ym1pc3Npb25SZXN1bHQpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlcnJvcnMgPT4ge1xuICAgICAgICB0aGlzLmZvcm0uc2hvd0Vycm9ycyhlcnJvcnMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtRmxvd1N1Ym1pdHRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1GbG93Q29tcGxldGUuZW1pdChudWxsKTtcbiAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1VzZXJBZG1pbigpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UuZ2V0VXNlclN1YmplY3QoKS5zdWJzY3JpYmUoXG4gICAgICB1c2VySWRlbnRpdHkgPT4ge1xuICAgICAgICB0aGlzLmlzQWRtaW4gPSB1c2VySWRlbnRpdHkucm9sZXMuaW5jbHVkZXMoJ1JPTEVfQURNSU4nKTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuaXNBZG1pbiA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN1Ym1pdENvbXBsZXRlZChmb3JtU3VibWlzc2lvblJlc3VsdDogRm9ybVN1Ym1pc3Npb25SZXN1bHQpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXG4gICAgICAnZG9zc2llcnMnLFxuICAgICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lLFxuICAgICAgJ2RvY3VtZW50JyxcbiAgICAgIGZvcm1TdWJtaXNzaW9uUmVzdWx0LmRvY3VtZW50SWQsXG4gICAgXSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tbW9kYWwgI3Byb2Nlc3NTdGFydE1vZGFsIGVsZW1lbnRJZD1cInByb2Nlc3NTdGFydE1vZGFsXCIgW3RpdGxlXT1cIm1vZGFsVGl0bGVcIj5cbiAgPGRpdiBib2R5ICpuZ0lmPVwiZm9ybURlZmluaXRpb25cIj5cbiAgICA8dmFsdGltby1mb3JtLWlvICNmb3JtIFtmb3JtXT1cImZvcm1EZWZpbml0aW9uXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIChzdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiPlxuICAgIDwvdmFsdGltby1mb3JtLWlvPlxuICA8L2Rpdj5cbiAgPGRpdiBib2R5ICpuZ0lmPVwiZm9ybUZsb3dJbnN0YW5jZUlkXCI+XG4gICAgPHZhbHRpbW8tZm9ybS1mbG93XG4gICAgICBbZm9ybUZsb3dJbnN0YW5jZUlkXT1cImZvcm1GbG93SW5zdGFuY2VJZFwiXG4gICAgICAoZm9ybUZsb3dDb21wbGV0ZSk9XCJmb3JtRmxvd1N1Ym1pdHRlZCgpXCJcbiAgICA+PC92YWx0aW1vLWZvcm0tZmxvdz5cbiAgPC9kaXY+XG4gIDxkaXYgYm9keSAqbmdJZj1cIiFmb3JtRmxvd0luc3RhbmNlSWQgJiYgIWZvcm1EZWZpbml0aW9uICYmIGlzQWRtaW5cIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImJnLXdhcm5pbmcgdGV4dC1ibGFjayBtYi0wIHAtMyB0ZXh0LWNlbnRlclwiXG4gICAgICBbdHJhbnNsYXRlXT1cIidmb3JtTWFuYWdlbWVudC5ub0Zvcm1EZWZpbml0aW9uRm91bmRBZG1pbidcIlxuICAgID48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMCBtdC00IHAtMyB0ZXh0LWNlbnRlclwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwiZ290b1Byb2Nlc3NMaW5rU2NyZWVuKClcIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zcGFjZVwiXG4gICAgICAgIGlkPVwicHJvY2Vzcy1saW5rLWJ1dHRvblwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICB7eyAnZm9ybU1hbmFnZW1lbnQuZ290b1Byb2Nlc3NMaW5rc0J1dHRvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBib2R5ICpuZ0lmPVwiIWZvcm1GbG93SW5zdGFuY2VJZCAmJiAhZm9ybURlZmluaXRpb24gJiYgIWlzQWRtaW5cIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImJnLXdhcm5pbmcgdGV4dC1ibGFjayBtYi0wIHAtMyB0ZXh0LWNlbnRlclwiXG4gICAgICBbdHJhbnNsYXRlXT1cIidmb3JtTWFuYWdlbWVudC5ub0Zvcm1EZWZpbml0aW9uRm91bmRVc2VyJ1wiXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbjwvdmFsdGltby1tb2RhbD5cbiJdfQ==
@@ -0,0 +1,116 @@
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, ViewChild, ViewEncapsulation } from '@angular/core';
17
+ import { FormioOptionsImpl, } from '@valtimo/components';
18
+ import { map, take } from 'rxjs/operators';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "@angular/router";
21
+ import * as i2 from "@valtimo/process";
22
+ import * as i3 from "@valtimo/form-link";
23
+ import * as i4 from "@valtimo/document";
24
+ import * as i5 from "ngx-logger";
25
+ import * as i6 from "@valtimo/security";
26
+ import * as i7 from "@angular/common";
27
+ import * as i8 from "@valtimo/components";
28
+ import * as i9 from "@ngx-translate/core";
29
+ export class DossierSupportingProcessStartModalComponent {
30
+ constructor(route, router, processService, processLinkService, documentService, formFlowService, logger, userProviderService) {
31
+ this.route = route;
32
+ this.router = router;
33
+ this.processService = processService;
34
+ this.processLinkService = processLinkService;
35
+ this.documentService = documentService;
36
+ this.formFlowService = formFlowService;
37
+ this.logger = logger;
38
+ this.userProviderService = userProviderService;
39
+ this.isAdmin$ = this.userProviderService
40
+ .getUserSubject()
41
+ .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));
42
+ this.formSubmit = new EventEmitter();
43
+ }
44
+ loadProcessLink() {
45
+ this.processLinkId = null;
46
+ this.formDefinition = null;
47
+ this.formFlowInstanceId = null;
48
+ this.processService
49
+ .getProcessDefinitionStartProcessLink(this.processDefinitionId, this.documentId, null)
50
+ .pipe(take(1))
51
+ .subscribe(startProcessResult => {
52
+ if (startProcessResult) {
53
+ switch (startProcessResult.type) {
54
+ case 'form':
55
+ this.formDefinition = startProcessResult.properties.prefilledForm;
56
+ this.processLinkId = startProcessResult.processLinkId;
57
+ break;
58
+ case 'form-flow':
59
+ this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;
60
+ break;
61
+ }
62
+ }
63
+ this.modal.show();
64
+ });
65
+ }
66
+ openModal(processDocumentDefinition, documentId) {
67
+ this.documentId = documentId;
68
+ this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;
69
+ this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;
70
+ this.processDefinitionId = processDocumentDefinition.latestVersionId;
71
+ this.processName = processDocumentDefinition.processName;
72
+ this.options = new FormioOptionsImpl();
73
+ this.options.disableAlerts = true;
74
+ const formioBeforeSubmit = function (submission, callback) {
75
+ callback(null, submission);
76
+ };
77
+ this.options.setHooks(formioBeforeSubmit);
78
+ this.loadProcessLink();
79
+ }
80
+ onSubmit(submission) {
81
+ this.formioSubmission = submission;
82
+ this.processLinkService
83
+ .submitForm(this.processLinkId, submission.data, this.documentId)
84
+ .subscribe({
85
+ next: (formSubmissionResult) => {
86
+ this.formSubmitted();
87
+ },
88
+ error: errors => {
89
+ this.form.showErrors(errors);
90
+ },
91
+ });
92
+ }
93
+ formSubmitted() {
94
+ this.modal.hide();
95
+ this.formSubmit.emit();
96
+ }
97
+ gotoProcessLinkScreen() {
98
+ this.modal.hide();
99
+ this.router.navigate(['process-links'], { queryParams: { process: this.processDefinitionKey } });
100
+ }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierSupportingProcessStartModalComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.ProcessService }, { token: i3.ProcessLinkService }, { token: i4.DocumentService }, { token: i3.FormFlowService }, { token: i5.NGXLogger }, { token: i6.UserProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierSupportingProcessStartModalComponent, selector: "valtimo-dossier-supporting-process-start-modal", outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "modal", first: true, predicate: ["supportingProcessStartModal"], 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<valtimo-modal\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"\n (processDefinitionKey | translate) !== processDefinitionKey\n ? (processDefinitionKey | translate)\n : processName\n \"\n>\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formDefinition && !formFlowInstanceId\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */#supportingProcessStartModal .formio-component-submit{text-align:right}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i8.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "component", type: i3.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierSupportingProcessStartModalComponent, decorators: [{
105
+ type: Component,
106
+ args: [{ selector: 'valtimo-dossier-supporting-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"\n (processDefinitionKey | translate) !== processDefinitionKey\n ? (processDefinitionKey | translate)\n : processName\n \"\n>\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formDefinition && !formFlowInstanceId\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */#supportingProcessStartModal .formio-component-submit{text-align:right}\n"] }]
107
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.ProcessService }, { type: i3.ProcessLinkService }, { type: i4.DocumentService }, { type: i3.FormFlowService }, { type: i5.NGXLogger }, { type: i6.UserProviderService }]; }, propDecorators: { form: [{
108
+ type: ViewChild,
109
+ args: ['form', { static: false }]
110
+ }], modal: [{
111
+ type: ViewChild,
112
+ args: ['supportingProcessStartModal', { static: false }]
113
+ }], formSubmit: [{
114
+ type: Output
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1zdXBwb3J0aW5nLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLXN1cHBvcnRpbmctcHJvY2Vzcy1zdGFydC1tb2RhbC9kb3NzaWVyLXN1cHBvcnRpbmctcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItc3VwcG9ydGluZy1wcm9jZXNzLXN0YXJ0LW1vZGFsL2Rvc3NpZXItc3VwcG9ydGluZy1wcm9jZXNzLXN0YXJ0LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBRUwsaUJBQWlCLEdBSWxCLE1BQU0scUJBQXFCLENBQUM7QUFPN0IsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTekMsTUFBTSxPQUFPLDJDQUEyQztJQXNCdEQsWUFDVSxLQUFxQixFQUNyQixNQUFjLEVBQ2QsY0FBOEIsRUFDOUIsa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLGVBQWdDLEVBQ2hDLE1BQWlCLEVBQ1IsbUJBQXdDO1FBUGpELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyxv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Q0QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBQyxXQUFXLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7K0dBN0ZVLDJDQUEyQzttR0FBM0MsMkNBQTJDLGtVQ3hDeEQsKy9EQThEQTs7NEZEdEJhLDJDQUEyQztrQkFOdkQsU0FBUzsrQkFDRSxnREFBZ0QsaUJBRzNDLGlCQUFpQixDQUFDLElBQUk7OFNBa0JELElBQUk7c0JBQXZDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDeUIsS0FBSztzQkFBL0QsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQy9DLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtaW9CZWZvcmVTdWJtaXQsIEZvcm1pb0Zvcm19IGZyb20gJ0Bmb3JtaW8vYW5ndWxhcic7XG5pbXBvcnQge1xuICBGb3JtaW9Db21wb25lbnQsXG4gIEZvcm1pb09wdGlvbnNJbXBsLFxuICBGb3JtaW9TdWJtaXNzaW9uLFxuICBNb2RhbENvbXBvbmVudCxcbiAgVmFsdGltb0Zvcm1pb09wdGlvbnMsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtQcm9jZXNzU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZSwgUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbn0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtGb3JtRmxvd1NlcnZpY2UsIEZvcm1TdWJtaXNzaW9uUmVzdWx0LCBQcm9jZXNzTGlua1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2Zvcm0tbGluayc7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge25vb3AsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VXNlclByb3ZpZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vc2VjdXJpdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItc3VwcG9ydGluZy1wcm9jZXNzLXN0YXJ0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItc3VwcG9ydGluZy1wcm9jZXNzLXN0YXJ0LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9zc2llci1zdXBwb3J0aW5nLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llclN1cHBvcnRpbmdQcm9jZXNzU3RhcnRNb2RhbENvbXBvbmVudCB7XG4gIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvbktleTogc3RyaW5nO1xuICBwdWJsaWMgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcHJvY2Vzc05hbWU6IHN0cmluZztcbiAgcHVibGljIGZvcm1EZWZpbml0aW9uOiBGb3JtaW9Gb3JtO1xuICBwdWJsaWMgZm9ybWlvU3VibWlzc2lvbjogRm9ybWlvU3VibWlzc2lvbjtcbiAgcHJpdmF0ZSBwcm9jZXNzTGlua0lkOiBzdHJpbmc7XG4gIHB1YmxpYyBvcHRpb25zOiBWYWx0aW1vRm9ybWlvT3B0aW9ucztcbiAgcHVibGljIHN1Ym1pc3Npb246IG9iamVjdDtcbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uSWQ6IHN0cmluZztcbiAgcHVibGljIGZvcm1GbG93SW5zdGFuY2VJZDogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGlzQWRtaW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlXG4gICAgLmdldFVzZXJTdWJqZWN0KClcbiAgICAucGlwZShtYXAodXNlcklkZW50aXR5ID0+IHVzZXJJZGVudGl0eT8ucm9sZXM/LmluY2x1ZGVzKCdST0xFX0FETUlOJykpKTtcblxuICBAVmlld0NoaWxkKCdmb3JtJywge3N0YXRpYzogZmFsc2V9KSBmb3JtOiBGb3JtaW9Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3N1cHBvcnRpbmdQcm9jZXNzU3RhcnRNb2RhbCcsIHtzdGF0aWM6IGZhbHNlfSkgbW9kYWw6IE1vZGFsQ29tcG9uZW50O1xuICBAT3V0cHV0KCkgZm9ybVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIGRvY3VtZW50SWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcHJvY2Vzc1NlcnZpY2U6IFByb2Nlc3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJvY2Vzc0xpbmtTZXJ2aWNlOiBQcm9jZXNzTGlua1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1GbG93U2VydmljZTogRm9ybUZsb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlXG4gICkge31cblxuICBwcml2YXRlIGxvYWRQcm9jZXNzTGluaygpIHtcbiAgICB0aGlzLnByb2Nlc3NMaW5rSWQgPSBudWxsO1xuICAgIHRoaXMuZm9ybURlZmluaXRpb24gPSBudWxsO1xuICAgIHRoaXMuZm9ybUZsb3dJbnN0YW5jZUlkID0gbnVsbDtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlXG4gICAgICAuZ2V0UHJvY2Vzc0RlZmluaXRpb25TdGFydFByb2Nlc3NMaW5rKHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCwgdGhpcy5kb2N1bWVudElkLCBudWxsKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoc3RhcnRQcm9jZXNzUmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHN0YXJ0UHJvY2Vzc1Jlc3VsdCkge1xuICAgICAgICAgIHN3aXRjaCAoc3RhcnRQcm9jZXNzUmVzdWx0LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgICAgICAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb3BlcnRpZXMucHJlZmlsbGVkRm9ybTtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzTGlua0lkID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb2Nlc3NMaW5rSWQ7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZm9ybS1mbG93JzpcbiAgICAgICAgICAgICAgdGhpcy5mb3JtRmxvd0luc3RhbmNlSWQgPSBzdGFydFByb2Nlc3NSZXN1bHQucHJvcGVydGllcy5mb3JtRmxvd0luc3RhbmNlSWQ7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vZGFsLnNob3coKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3Blbk1vZGFsKHByb2Nlc3NEb2N1bWVudERlZmluaXRpb246IFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24sIGRvY3VtZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnRJZCA9IGRvY3VtZW50SWQ7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5pZC5kb2N1bWVudERlZmluaXRpb25JZC5uYW1lO1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkgPSBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLmlkLnByb2Nlc3NEZWZpbml0aW9uS2V5O1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24ubGF0ZXN0VmVyc2lvbklkO1xuICAgIHRoaXMucHJvY2Vzc05hbWUgPSBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLnByb2Nlc3NOYW1lO1xuICAgIHRoaXMub3B0aW9ucyA9IG5ldyBGb3JtaW9PcHRpb25zSW1wbCgpO1xuICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlQWxlcnRzID0gdHJ1ZTtcbiAgICBjb25zdCBmb3JtaW9CZWZvcmVTdWJtaXQ6IEZvcm1pb0JlZm9yZVN1Ym1pdCA9IGZ1bmN0aW9uIChzdWJtaXNzaW9uLCBjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobnVsbCwgc3VibWlzc2lvbik7XG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMuc2V0SG9va3MoZm9ybWlvQmVmb3JlU3VibWl0KTtcbiAgICB0aGlzLmxvYWRQcm9jZXNzTGluaygpO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KHN1Ym1pc3Npb246IEZvcm1pb1N1Ym1pc3Npb24pIHtcbiAgICB0aGlzLmZvcm1pb1N1Ym1pc3Npb24gPSBzdWJtaXNzaW9uO1xuICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlXG4gICAgICAuc3VibWl0Rm9ybSh0aGlzLnByb2Nlc3NMaW5rSWQsIHN1Ym1pc3Npb24uZGF0YSwgdGhpcy5kb2N1bWVudElkKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChmb3JtU3VibWlzc2lvblJlc3VsdDogRm9ybVN1Ym1pc3Npb25SZXN1bHQpID0+IHtcbiAgICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVycm9ycyA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtLnNob3dFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZvcm1TdWJtaXR0ZWQoKSB7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5mb3JtU3VibWl0LmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnb3RvUHJvY2Vzc0xpbmtTY3JlZW4oKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydwcm9jZXNzLWxpbmtzJ10sIHtxdWVyeVBhcmFtczoge3Byb2Nlc3M6IHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXl9fSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tbW9kYWxcbiAgI3N1cHBvcnRpbmdQcm9jZXNzU3RhcnRNb2RhbFxuICBlbGVtZW50SWQ9XCJzdXBwb3J0aW5nUHJvY2Vzc1N0YXJ0TW9kYWxcIlxuICBbdGl0bGVdPVwiXG4gICAgKHByb2Nlc3NEZWZpbml0aW9uS2V5IHwgdHJhbnNsYXRlKSAhPT0gcHJvY2Vzc0RlZmluaXRpb25LZXlcbiAgICAgID8gKHByb2Nlc3NEZWZpbml0aW9uS2V5IHwgdHJhbnNsYXRlKVxuICAgICAgOiBwcm9jZXNzTmFtZVxuICBcIlxuPlxuICA8ZGl2IGJvZHkgKm5nSWY9XCJmb3JtRGVmaW5pdGlvblwiPlxuICAgIDx2YWx0aW1vLWZvcm0taW9cbiAgICAgICNmb3JtXG4gICAgICBbc3VibWlzc2lvbl09XCJzdWJtaXNzaW9uXCJcbiAgICAgIFtmb3JtXT1cImZvcm1EZWZpbml0aW9uXCJcbiAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgKHN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC92YWx0aW1vLWZvcm0taW8+XG4gIDwvZGl2PlxuICA8ZGl2IGJvZHkgKm5nSWY9XCJmb3JtRmxvd0luc3RhbmNlSWRcIj5cbiAgICA8dmFsdGltby1mb3JtLWZsb3dcbiAgICAgICNmb3JtRmxvd1xuICAgICAgW2Zvcm1GbG93SW5zdGFuY2VJZF09XCJmb3JtRmxvd0luc3RhbmNlSWRcIlxuICAgICAgKGZvcm1GbG93Q29tcGxldGUpPVwiZm9ybVN1Ym1pdHRlZCgpXCJcbiAgICA+PC92YWx0aW1vLWZvcm0tZmxvdz5cbiAgPC9kaXY+XG4gIDxkaXYgYm9keSAqbmdJZj1cIiFmb3JtRGVmaW5pdGlvbiAmJiAhZm9ybUZsb3dJbnN0YW5jZUlkXCI+XG4gICAgPGRpdiBjbGFzcz1cImJnLXdhcm5pbmcgdGV4dC1ibGFjayBtYi0wIHAtMyB0ZXh0LWNlbnRlclwiPlxuICAgICAge3tcbiAgICAgICAgKGlzQWRtaW4kIHwgYXN5bmMpXG4gICAgICAgICAgPyAoJ2Zvcm1NYW5hZ2VtZW50Lm5vRm9ybURlZmluaXRpb25Gb3VuZEFkbWluJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6ICgnZm9ybU1hbmFnZW1lbnQubm9Gb3JtRGVmaW5pdGlvbkZvdW5kVXNlcicgfCB0cmFuc2xhdGUpXG4gICAgICB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0wIG10LTQgcC0zIHRleHQtY2VudGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJnb3RvUHJvY2Vzc0xpbmtTY3JlZW4oKVwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNwYWNlXCJcbiAgICAgICAgaWQ9XCJwcm9jZXNzLWxpbmstYnV0dG9uXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIHt7ICdmb3JtTWFuYWdlbWVudC5nb3RvUHJvY2Vzc0xpbmtzQnV0dG9uJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC92YWx0aW1vLW1vZGFsPlxuIl19
@@ -0,0 +1,113 @@
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 moment from 'moment';
18
+ import * as i0 from "@angular/core";
19
+ import * as i1 from "@valtimo/task";
20
+ import * as i2 from "@valtimo/document";
21
+ import * as i3 from "@angular/router";
22
+ import * as i4 from "ngx-toastr";
23
+ import * as i5 from "@angular/common";
24
+ import * as i6 from "../../services/dossier.service";
25
+ import * as i7 from "@valtimo/components";
26
+ moment.locale(localStorage.getItem('langKey') || '');
27
+ export class DossierUpdateComponent {
28
+ constructor(taskService, documentService, route, toastr, location, dossierService) {
29
+ this.taskService = taskService;
30
+ this.documentService = documentService;
31
+ this.route = route;
32
+ this.toastr = toastr;
33
+ this.location = location;
34
+ this.customDefinitions = {};
35
+ const snapshot = this.route.snapshot.paramMap;
36
+ this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';
37
+ this.documentId = snapshot.get('documentId') || '';
38
+ this.taskId = snapshot.get('taskId') || '';
39
+ this.implementationDefinitions = dossierService.getImplementationEnvironmentDefinitions(this.documentDefinitionName);
40
+ this.loadDocumentDefinition(this.documentDefinitionName);
41
+ this.loadDocument(this.documentId);
42
+ }
43
+ ngOnInit() {
44
+ this.getTask(this.taskId);
45
+ if (this.implementationDefinitions.definitions.detail.summary) {
46
+ this.customDefinitions = this.implementationDefinitions.definitions.detail.summary;
47
+ }
48
+ }
49
+ loadDocumentDefinition(name) {
50
+ this.documentService.getDocumentDefinition(name).subscribe(definition => {
51
+ this.schema = definition.schema;
52
+ });
53
+ }
54
+ loadDocument(id) {
55
+ this.documentService.getDocument(id).subscribe(document => {
56
+ this.document = document;
57
+ });
58
+ }
59
+ getTask(id) {
60
+ this.taskService.getTask(id).subscribe(task => {
61
+ this.task = task;
62
+ this.task.task.created = moment(this.task.task.created).format('DD MMM YYYY HH:mm');
63
+ this.page = {
64
+ title: this.task.task.name,
65
+ subtitle: `Created ${moment(this.task.task.created).fromNow()}`,
66
+ };
67
+ });
68
+ }
69
+ reset() {
70
+ this.loadDocument(this.documentId);
71
+ }
72
+ back() {
73
+ this.location.back();
74
+ }
75
+ save() {
76
+ const document = {
77
+ documentId: this.document.id,
78
+ content: this.document.content,
79
+ versionBasedOn: this.document.version,
80
+ };
81
+ this.documentService.modifyDocument(document).subscribe(result => {
82
+ this.document = result.document;
83
+ this.toastr.success('Document aangepast');
84
+ this.location.back();
85
+ });
86
+ }
87
+ submit(data) {
88
+ // merge document content with formdata
89
+ const mergedData = Object.assign({}, this.document.content, data);
90
+ const documentData = {
91
+ request: {
92
+ documentId: this.document.id,
93
+ content: mergedData,
94
+ versionBasedOn: this.document.version,
95
+ },
96
+ taskId: this.task.task.id,
97
+ };
98
+ this.documentService.modifyDocumentAndCompleteTask(documentData).subscribe(result => {
99
+ this.toastr.success(this.task.task.name + ' has successfully been completed');
100
+ this.location.back();
101
+ });
102
+ }
103
+ returnZero() {
104
+ return 0;
105
+ }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierUpdateComponent, deps: [{ token: i1.TaskService }, { token: i2.DocumentService }, { token: i3.ActivatedRoute }, { token: i4.ToastrService }, { token: i5.Location }, { token: i6.DossierService }], target: i0.ɵɵFactoryTarget.Component }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierUpdateComponent, selector: "valtimo-dossier-update", 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=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget [title]=\"page?.title\" [subtitle]=\"page?.subtitle\" [divider]=\"true\">\n <div class=\"card-body\">\n <!--view with custom definitions-->\n <div *ngIf=\"this.customDefinitions\">\n <div\n class=\"mb-4\"\n *ngFor=\"let definition of this.customDefinitions | keyvalue: returnZero\"\n ></div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"button\"\n (click)=\"save()\"\n id=\"save-button\"\n >\n Save\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"submit\"\n (click)=\"submit({})\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <valtimo-camunda-form\n *ngIf=\"task?.formFields && !this.customDefinitions\"\n (submitted)=\"submit($event)\"\n [formFields]=\"task.formFields\"\n [componentName]=\"task.formLocation\"\n ></valtimo-camunda-form>\n </div>\n </valtimo-widget>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i7.CamundaFormComponent, selector: "valtimo-camunda-form", inputs: ["componentName", "formFields"], outputs: ["submitted"] }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }] }); }
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierUpdateComponent, decorators: [{
110
+ type: Component,
111
+ args: [{ selector: 'valtimo-dossier-update', 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=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget [title]=\"page?.title\" [subtitle]=\"page?.subtitle\" [divider]=\"true\">\n <div class=\"card-body\">\n <!--view with custom definitions-->\n <div *ngIf=\"this.customDefinitions\">\n <div\n class=\"mb-4\"\n *ngFor=\"let definition of this.customDefinitions | keyvalue: returnZero\"\n ></div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"button\"\n (click)=\"save()\"\n id=\"save-button\"\n >\n Save\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"submit\"\n (click)=\"submit({})\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <valtimo-camunda-form\n *ngIf=\"task?.formFields && !this.customDefinitions\"\n (submitted)=\"submit($event)\"\n [formFields]=\"task.formFields\"\n [componentName]=\"task.formLocation\"\n ></valtimo-camunda-form>\n </div>\n </valtimo-widget>\n </div>\n </div>\n</div>\n" }]
112
+ }], ctorParameters: function () { return [{ type: i1.TaskService }, { type: i2.DocumentService }, { type: i3.ActivatedRoute }, { type: i4.ToastrService }, { type: i5.Location }, { type: i6.DossierService }]; } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci11cGRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLXVwZGF0ZS9kb3NzaWVyLXVwZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItdXBkYXRlL2Rvc3NpZXItdXBkYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUtoRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7OztBQUk1QixNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFPckQsTUFBTSxPQUFPLHNCQUFzQjtJQVdqQyxZQUNVLFdBQXdCLEVBQ3hCLGVBQWdDLEVBQ2hDLEtBQXFCLEVBQ3JCLE1BQXFCLEVBQ3JCLFFBQWtCLEVBQzFCLGNBQThCO1FBTHRCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFQckIsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBVWpDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUM5QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztR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TSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVk7UUFDeEIsdUNBQXVDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sWUFBWSxHQUFHO1lBQ25CLE9BQU8sRUFBRTtnQkFDUCxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM1QixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTzthQUN0QztZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1NBQzFCLENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsa0NBQWtDLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7K0dBckdVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhEQ2hDbkMsMnhGQThFQTs7NEZEOUNhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGFza1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3Rhc2snO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VG9hc3RyU2VydmljZX0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQge0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7RG9zc2llclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Rvc3NpZXIuc2VydmljZSc7XG5cbm1vbWVudC5sb2NhbGUobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmdLZXknKSB8fCAnJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci11cGRhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci11cGRhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLXVwZGF0ZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJVcGRhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgdGFzazogYW55O1xuICBwdWJsaWMgdGFza0lkOiBzdHJpbmc7XG4gIHB1YmxpYyBzY2hlbWE6IGFueTtcbiAgcHVibGljIGRvY3VtZW50SWQ6IHN0cmluZztcbiAgcHVibGljIGRvY3VtZW50OiBhbnk7XG4gIHB1YmxpYyBwYWdlOiBhbnk7XG4gIHB1YmxpYyBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBpbXBsZW1lbnRhdGlvbkRlZmluaXRpb25zOiBhbnk7XG4gIHB1YmxpYyBjdXN0b21EZWZpbml0aW9uczogYW55ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0YXNrU2VydmljZTogVGFza1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBkb3NzaWVyU2VydmljZTogRG9zc2llclNlcnZpY2VcbiAgKSB7XG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwO1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9IHNuYXBzaG90LmdldCgnZG9jdW1lbnREZWZpbml0aW9uTmFtZScpIHx8ICcnO1xuICAgIHRoaXMuZG9jdW1lbnRJZCA9IHNuYXBzaG90LmdldCgnZG9jdW1lbnRJZCcpIHx8ICcnO1xuICAgIHRoaXMudGFza0lkID0gc25hcHNob3QuZ2V0KCd0YXNrSWQnKSB8fCAnJztcbiAgICB0aGlzLmltcGxlbWVudGF0aW9uRGVmaW5pdGlvbnMgPSBkb3NzaWVyU2VydmljZS5nZXRJbXBsZW1lbnRhdGlvbkVudmlyb25tZW50RGVmaW5pdGlvbnMoXG4gICAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWVcbiAgICApO1xuICAgIHRoaXMubG9hZERvY3VtZW50RGVmaW5pdGlvbih0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUpO1xuICAgIHRoaXMubG9hZERvY3VtZW50KHRoaXMuZG9jdW1lbnRJZCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldFRhc2sodGhpcy50YXNrSWQpO1xuICAgIGlmICh0aGlzLmltcGxlbWVudGF0aW9uRGVmaW5pdGlvbnMuZGVmaW5pdGlvbnMuZGV0YWlsLnN1bW1hcnkpIHtcbiAgICAgIHRoaXMuY3VzdG9tRGVmaW5pdGlvbnMgPSB0aGlzLmltcGxlbWVudGF0aW9uRGVmaW5pdGlvbnMuZGVmaW5pdGlvbnMuZGV0YWlsLnN1bW1hcnk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRG9jdW1lbnREZWZpbml0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50RGVmaW5pdGlvbihuYW1lKS5zdWJzY3JpYmUoZGVmaW5pdGlvbiA9PiB7XG4gICAgICB0aGlzLnNjaGVtYSA9IGRlZmluaXRpb24uc2NoZW1hO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRG9jdW1lbnQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50KGlkKS5zdWJzY3JpYmUoZG9jdW1lbnQgPT4ge1xuICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFRhc2soaWQ6IHN0cmluZykge1xuICAgIHRoaXMudGFza1NlcnZpY2UuZ2V0VGFzayhpZCkuc3Vic2NyaWJlKHRhc2sgPT4ge1xuICAgICAgdGhpcy50YXNrID0gdGFzaztcbiAgICAgIHRoaXMudGFzay50YXNrLmNyZWF0ZWQgPSBtb21lbnQodGhpcy50YXNrLnRhc2suY3JlYXRlZCkuZm9ybWF0KCdERCBNTU0gWVlZWSBISDptbScpO1xuICAgICAgdGhpcy5wYWdlID0ge1xuICAgICAgICB0aXRsZTogdGhpcy50YXNrLnRhc2submFtZSxcbiAgICAgICAgc3VidGl0bGU6IGBDcmVhdGVkICR7bW9tZW50KHRoaXMudGFzay50YXNrLmNyZWF0ZWQpLmZyb21Ob3coKX1gLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLmxvYWREb2N1bWVudCh0aGlzLmRvY3VtZW50SWQpO1xuICB9XG5cbiAgcHVibGljIGJhY2soKSB7XG4gICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZSgpIHtcbiAgICBjb25zdCBkb2N1bWVudCA9IHtcbiAgICAgIGRvY3VtZW50SWQ6IHRoaXMuZG9jdW1lbnQuaWQsXG4gICAgICBjb250ZW50OiB0aGlzLmRvY3VtZW50LmNvbnRlbnQsXG4gICAgICB2ZXJzaW9uQmFzZWRPbjogdGhpcy5kb2N1bWVudC52ZXJzaW9uLFxuICAgIH07XG4gICAgdGhpcy5kb2N1bWVudFNlcnZpY2UubW9kaWZ5RG9jdW1lbnQoZG9jdW1lbnQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgdGhpcy5kb2N1bWVudCA9IHJlc3VsdC5kb2N1bWVudDtcbiAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0RvY3VtZW50IGFhbmdlcGFzdCcpO1xuICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KGRhdGE6IG9iamVjdCkge1xuICAgIC8vIG1lcmdlIGRvY3VtZW50IGNvbnRlbnQgd2l0aCBmb3JtZGF0YVxuICAgIGNvbnN0IG1lcmdlZERhdGEgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRvY3VtZW50LmNvbnRlbnQsIGRhdGEpO1xuICAgIGNvbnN0IGRvY3VtZW50RGF0YSA9IHtcbiAgICAgIHJlcXVlc3Q6IHtcbiAgICAgICAgZG9jdW1lbnRJZDogdGhpcy5kb2N1bWVudC5pZCxcbiAgICAgICAgY29udGVudDogbWVyZ2VkRGF0YSxcbiAgICAgICAgdmVyc2lvbkJhc2VkT246IHRoaXMuZG9jdW1lbnQudmVyc2lvbixcbiAgICAgIH0sXG4gICAgICB0YXNrSWQ6IHRoaXMudGFzay50YXNrLmlkLFxuICAgIH07XG5cbiAgICB0aGlzLmRvY3VtZW50U2VydmljZS5tb2RpZnlEb2N1bWVudEFuZENvbXBsZXRlVGFzayhkb2N1bWVudERhdGEpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgdGhpcy50b2FzdHIuc3VjY2Vzcyh0aGlzLnRhc2sudGFzay5uYW1lICsgJyBoYXMgc3VjY2Vzc2Z1bGx5IGJlZW4gY29tcGxldGVkJyk7XG4gICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXR1cm5aZXJvKCkge1xuICAgIHJldHVybiAwO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgcHgtMCBtYi01XCI+XG4gICAgICA8dmFsdGltby13aWRnZXQgW3RpdGxlXT1cInBhZ2U/LnRpdGxlXCIgW3N1YnRpdGxlXT1cInBhZ2U/LnN1YnRpdGxlXCIgW2RpdmlkZXJdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgPCEtLXZpZXcgd2l0aCBjdXN0b20gZGVmaW5pdGlvbnMtLT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhpcy5jdXN0b21EZWZpbml0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIm1iLTRcIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGVmaW5pdGlvbiBvZiB0aGlzLmN1c3RvbURlZmluaXRpb25zIHwga2V5dmFsdWU6IHJldHVyblplcm9cIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBwdC0zIG10LTFcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zcGFjZSBidG4tZGVmYXVsdCBmbG9hdC1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImJhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQmFja1xuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zcGFjZSBidG4tc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXNldCgpXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZXNldC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBSZXNldFxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zcGFjZSBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIFNhdmVcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3BhY2UgYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCh7fSlcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInN1Ym1pdC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPHZhbHRpbW8tY2FtdW5kYS1mb3JtXG4gICAgICAgICAgICAqbmdJZj1cInRhc2s/LmZvcm1GaWVsZHMgJiYgIXRoaXMuY3VzdG9tRGVmaW5pdGlvbnNcIlxuICAgICAgICAgICAgKHN1Ym1pdHRlZCk9XCJzdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZm9ybUZpZWxkc109XCJ0YXNrLmZvcm1GaWVsZHNcIlxuICAgICAgICAgICAgW2NvbXBvbmVudE5hbWVdPVwidGFzay5mb3JtTG9jYXRpb25cIlxuICAgICAgICAgID48L3ZhbHRpbW8tY2FtdW5kYS1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdmFsdGltby13aWRnZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=