@valtimo/dossier 10.7.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/{esm2020 → esm2022}/lib/components/note-modal/note-modal.component.mjs +5 -5
  2. package/esm2022/lib/dossier-assign-user/dossier-assign-user.component.mjs +98 -0
  3. package/esm2022/lib/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.mjs +75 -0
  4. package/esm2022/lib/dossier-detail/dossier-detail.component.mjs +175 -0
  5. package/{esm2020 → esm2022}/lib/dossier-detail/tab/audit/audit.component.mjs +5 -5
  6. package/{esm2020 → esm2022}/lib/dossier-detail/tab/contact-moments/contact-moments.component.mjs +4 -4
  7. package/esm2022/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +146 -0
  8. package/{esm2020 → esm2022}/lib/dossier-detail/tab/documents/documents.component.mjs +4 -4
  9. package/esm2022/lib/dossier-detail/tab/notes/notes.component.mjs +166 -0
  10. package/esm2022/lib/dossier-detail/tab/object-type/object-type.component.mjs +121 -0
  11. package/esm2022/lib/dossier-detail/tab/progress/progress.component.mjs +52 -0
  12. package/esm2022/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +136 -0
  13. package/esm2022/lib/dossier-detail/tab/summary/summary.component.mjs +130 -0
  14. package/esm2022/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +112 -0
  15. package/esm2022/lib/dossier-list/dossier-list.component.mjs +371 -0
  16. package/esm2022/lib/dossier-list-actions/dossier-list-actions.component.mjs +84 -0
  17. package/esm2022/lib/dossier-process-start-modal/dossier-process-start-modal.component.mjs +133 -0
  18. package/{esm2020 → esm2022}/lib/dossier-routing.module.mjs +5 -5
  19. package/esm2022/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +116 -0
  20. package/{esm2020 → esm2022}/lib/dossier-update/dossier-update.component.mjs +5 -5
  21. package/esm2022/lib/dossier.module.mjs +282 -0
  22. package/esm2022/lib/dossier.service.mjs +58 -0
  23. package/esm2022/lib/models/candidate-user.model.mjs +17 -0
  24. package/{esm2020 → esm2022}/lib/models/dossier-parameters.model.mjs +1 -1
  25. package/esm2022/lib/models/index.mjs +21 -0
  26. package/esm2022/lib/permissions/dossier.permissions.mjs +55 -0
  27. package/esm2022/lib/permissions/index.mjs +17 -0
  28. package/esm2022/lib/services/dossier-bulk-assign.service.mjs +35 -0
  29. package/esm2022/lib/services/dossier-column.service.mjs +98 -0
  30. package/esm2022/lib/services/dossier-list-assignee.service.mjs +89 -0
  31. package/esm2022/lib/services/dossier-list-pagination.service.mjs +119 -0
  32. package/esm2022/lib/services/dossier-list-search.service.mjs +59 -0
  33. package/esm2022/lib/services/dossier-list.service.mjs +74 -0
  34. package/esm2022/lib/services/dossier-parameter.service.mjs +165 -0
  35. package/{esm2020 → esm2022}/lib/services/file-sort.service.mjs +4 -4
  36. package/esm2022/lib/services/index.mjs +25 -0
  37. package/esm2022/lib/services/notes.service.mjs +76 -0
  38. package/{esm2020 → esm2022}/lib/services/zaakobjecten.service.mjs +4 -4
  39. package/{esm2020 → esm2022}/lib/tab.service.mjs +4 -4
  40. package/esm2022/public_api.mjs +36 -0
  41. package/fesm2022/valtimo-dossier.mjs +3681 -0
  42. package/fesm2022/valtimo-dossier.mjs.map +1 -0
  43. package/lib/components/note-modal/note-modal.component.d.ts +3 -3
  44. package/lib/components/note-modal/note-modal.component.d.ts.map +1 -1
  45. package/lib/dossier-assign-user/dossier-assign-user.component.d.ts +12 -18
  46. package/lib/dossier-assign-user/dossier-assign-user.component.d.ts.map +1 -1
  47. package/lib/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts +22 -0
  48. package/lib/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts.map +1 -0
  49. package/lib/dossier-detail/dossier-detail.component.d.ts +34 -31
  50. package/lib/dossier-detail/dossier-detail.component.d.ts.map +1 -1
  51. package/lib/dossier-detail/tab/audit/audit.component.d.ts +1 -1
  52. package/lib/dossier-detail/tab/contact-moments/contact-moments.component.d.ts +1 -1
  53. package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts +2 -3
  54. package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -1
  55. package/lib/dossier-detail/tab/documents/documents.component.d.ts +1 -1
  56. package/lib/dossier-detail/tab/notes/notes.component.d.ts +19 -12
  57. package/lib/dossier-detail/tab/notes/notes.component.d.ts.map +1 -1
  58. package/lib/dossier-detail/tab/object-type/object-type.component.d.ts +3 -3
  59. package/lib/dossier-detail/tab/object-type/object-type.component.d.ts.map +1 -1
  60. package/lib/dossier-detail/tab/progress/progress.component.d.ts +1 -1
  61. package/lib/dossier-detail/tab/progress/progress.component.d.ts.map +1 -1
  62. package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts +2 -2
  63. package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +1 -1
  64. package/lib/dossier-detail/tab/summary/summary.component.d.ts +8 -4
  65. package/lib/dossier-detail/tab/summary/summary.component.d.ts.map +1 -1
  66. package/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts +3 -3
  67. package/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts.map +1 -1
  68. package/lib/dossier-list/dossier-list.component.d.ts +52 -24
  69. package/lib/dossier-list/dossier-list.component.d.ts.map +1 -1
  70. package/lib/dossier-list-actions/dossier-list-actions.component.d.ts +5 -6
  71. package/lib/dossier-list-actions/dossier-list-actions.component.d.ts.map +1 -1
  72. package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts +4 -7
  73. package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -1
  74. package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts +4 -7
  75. package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +1 -1
  76. package/lib/dossier-update/dossier-update.component.d.ts +1 -1
  77. package/lib/dossier.module.d.ts +31 -31
  78. package/lib/dossier.module.d.ts.map +1 -1
  79. package/lib/dossier.service.d.ts +5 -1
  80. package/lib/dossier.service.d.ts.map +1 -1
  81. package/lib/models/candidate-user.model.d.ts +7 -0
  82. package/lib/models/candidate-user.model.d.ts.map +1 -0
  83. package/lib/models/dossier-parameters.model.d.ts +0 -1
  84. package/lib/models/dossier-parameters.model.d.ts.map +1 -1
  85. package/lib/models/index.d.ts +3 -2
  86. package/lib/models/index.d.ts.map +1 -1
  87. package/lib/models/search.model.d.ts +3 -3
  88. package/lib/models/search.model.d.ts.map +1 -1
  89. package/lib/permissions/dossier.permissions.d.ts +14 -0
  90. package/lib/permissions/dossier.permissions.d.ts.map +1 -0
  91. package/lib/permissions/index.d.ts +2 -0
  92. package/lib/permissions/index.d.ts.map +1 -0
  93. package/lib/services/dossier-bulk-assign.service.d.ts +17 -0
  94. package/lib/services/dossier-bulk-assign.service.d.ts.map +1 -0
  95. package/lib/services/dossier-column.service.d.ts +1 -1
  96. package/lib/services/dossier-column.service.d.ts.map +1 -1
  97. package/lib/services/dossier-list-assignee.service.d.ts +5 -4
  98. package/lib/services/dossier-list-assignee.service.d.ts.map +1 -1
  99. package/lib/services/dossier-list-pagination.service.d.ts +1 -1
  100. package/lib/services/dossier-list-pagination.service.d.ts.map +1 -1
  101. package/lib/services/dossier-list-search.service.d.ts +0 -3
  102. package/lib/services/dossier-list-search.service.d.ts.map +1 -1
  103. package/lib/services/dossier-list.service.d.ts +6 -0
  104. package/lib/services/dossier-list.service.d.ts.map +1 -1
  105. package/lib/services/dossier-parameter.service.d.ts.map +1 -1
  106. package/lib/services/index.d.ts +1 -0
  107. package/lib/services/index.d.ts.map +1 -1
  108. package/lib/services/notes.service.d.ts.map +1 -1
  109. package/lib/services/zaakobjecten.service.d.ts.map +1 -1
  110. package/package.json +13 -19
  111. package/public_api.d.ts +10 -9
  112. package/public_api.d.ts.map +1 -1
  113. package/esm2020/lib/dossier-assign-user/dossier-assign-user.component.mjs +0 -126
  114. package/esm2020/lib/dossier-detail/dossier-detail.component.mjs +0 -175
  115. package/esm2020/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +0 -147
  116. package/esm2020/lib/dossier-detail/tab/notes/notes.component.mjs +0 -153
  117. package/esm2020/lib/dossier-detail/tab/object-type/object-type.component.mjs +0 -122
  118. package/esm2020/lib/dossier-detail/tab/progress/progress.component.mjs +0 -51
  119. package/esm2020/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +0 -134
  120. package/esm2020/lib/dossier-detail/tab/summary/summary.component.mjs +0 -124
  121. package/esm2020/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +0 -113
  122. package/esm2020/lib/dossier-list/dossier-list.component.mjs +0 -224
  123. package/esm2020/lib/dossier-list-actions/dossier-list-actions.component.mjs +0 -86
  124. package/esm2020/lib/dossier-process-start-modal/dossier-process-start-modal.component.mjs +0 -192
  125. package/esm2020/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +0 -181
  126. package/esm2020/lib/dossier.module.mjs +0 -259
  127. package/esm2020/lib/dossier.service.mjs +0 -50
  128. package/esm2020/lib/models/index.mjs +0 -20
  129. package/esm2020/lib/services/dossier-column.service.mjs +0 -100
  130. package/esm2020/lib/services/dossier-list-assignee.service.mjs +0 -82
  131. package/esm2020/lib/services/dossier-list-pagination.service.mjs +0 -116
  132. package/esm2020/lib/services/dossier-list-search.service.mjs +0 -66
  133. package/esm2020/lib/services/dossier-list.service.mjs +0 -56
  134. package/esm2020/lib/services/dossier-parameter.service.mjs +0 -167
  135. package/esm2020/lib/services/index.mjs +0 -24
  136. package/esm2020/lib/services/notes.service.mjs +0 -76
  137. package/esm2020/public_api.mjs +0 -35
  138. package/fesm2015/valtimo-dossier.mjs +0 -3348
  139. package/fesm2015/valtimo-dossier.mjs.map +0 -1
  140. package/fesm2020/valtimo-dossier.mjs +0 -3447
  141. package/fesm2020/valtimo-dossier.mjs.map +0 -1
  142. /package/{esm2020 → esm2022}/lib/dossier-detail-tab-enum.mjs +0 -0
  143. /package/{esm2020 → esm2022}/lib/dossier.config.mjs +0 -0
  144. /package/{esm2020 → esm2022}/lib/models/notes.model.mjs +0 -0
  145. /package/{esm2020 → esm2022}/lib/models/search.model.mjs +0 -0
  146. /package/{esm2020 → esm2022}/lib/models/tabs.model.mjs +0 -0
  147. /package/{esm2020 → esm2022}/lib/models/zaakobjecten.model.mjs +0 -0
  148. /package/{esm2020 → esm2022}/valtimo-dossier.mjs +0 -0
@@ -1,192 +0,0 @@
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, formLinkService, processLinkService, formFlowService, userProviderService, logger) {
31
- this.route = route;
32
- this.router = router;
33
- this.processService = processService;
34
- this.documentService = documentService;
35
- this.formLinkService = formLinkService;
36
- this.processLinkService = processLinkService;
37
- this.formFlowService = formFlowService;
38
- this.userProviderService = userProviderService;
39
- this.logger = logger;
40
- this.formFlowComplete = new EventEmitter();
41
- }
42
- ngOnInit() {
43
- this.isUserAdmin();
44
- }
45
- loadProcessLink() {
46
- this.formAssociation = null;
47
- this.processLinkId = null;
48
- this.formDefinition = null;
49
- this.formFlowInstanceId = null;
50
- this.processService
51
- .getProcessDefinitionStartProcessLink(this.processDefinitionId, null, this.documentDefinitionName)
52
- .pipe(take(1))
53
- .subscribe(startProcessResult => {
54
- if (startProcessResult) {
55
- switch (startProcessResult.type) {
56
- case 'form':
57
- this.formDefinition = startProcessResult.properties.prefilledForm;
58
- this.processLinkId = startProcessResult.processLinkId;
59
- break;
60
- case 'form-flow':
61
- this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;
62
- break;
63
- }
64
- this.modal.show();
65
- }
66
- else {
67
- // backwards compatibility for form associations
68
- this.formLinkService
69
- .getStartEventFormDefinitionByProcessDefinitionKey(this.processDefinitionKey, null)
70
- .pipe(take(1))
71
- .subscribe({
72
- next: formDefinitionWithFormAssociation => this.openFormAssociation(formDefinitionWithFormAssociation),
73
- error: error => {
74
- this.modal.show();
75
- },
76
- });
77
- }
78
- });
79
- }
80
- openFormAssociation(formDefinitionWithFormAssociation) {
81
- this.formAssociation = formDefinitionWithFormAssociation.formAssociation;
82
- const className = this.formAssociation.formLink.className.split('.');
83
- const linkType = className[className.length - 1];
84
- switch (linkType) {
85
- case 'BpmnElementFormIdLink':
86
- this.formDefinition = formDefinitionWithFormAssociation;
87
- this.modal.show();
88
- break;
89
- case 'BpmnElementFormFlowIdLink':
90
- this.formFlowService
91
- .createInstanceForNewProcess(this.processDefinitionKey, {
92
- documentId: null,
93
- documentDefinitionName: this.documentDefinitionName,
94
- })
95
- .subscribe(result => (this.formFlowInstanceId = result.formFlowInstanceId));
96
- this.modal.show();
97
- break;
98
- case 'BpmnElementUrlLink':
99
- const url = this.router.serializeUrl(this.router.createUrlTree([this.formAssociation.formLink.url]));
100
- window.open(url, '_blank');
101
- break;
102
- case 'BpmnElementAngularStateUrlLink':
103
- this.route.params.pipe(take(1)).subscribe(params => {
104
- const documentId = params?.documentId;
105
- this.router.navigate([this.formAssociation.formLink.url], {
106
- state: { ...(documentId && { documentId }) },
107
- });
108
- });
109
- break;
110
- default:
111
- this.logger.fatal('Unsupported class name');
112
- }
113
- }
114
- gotoFormLinkScreen() {
115
- this.modal.hide();
116
- this.router.navigate(['form-links'], { queryParams: { process: this.processDefinitionKey } });
117
- }
118
- get modalTitle() {
119
- return `Start - ${this.processName}`;
120
- }
121
- openModal(processDocumentDefinition) {
122
- this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;
123
- this.processDefinitionId = processDocumentDefinition.latestVersionId;
124
- this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;
125
- this.processName = processDocumentDefinition.processName;
126
- this.options = new FormioOptionsImpl();
127
- this.options.disableAlerts = true;
128
- const formioBeforeSubmit = function (submission, callback) {
129
- callback(null, submission);
130
- };
131
- this.options.setHooks(formioBeforeSubmit);
132
- this.loadProcessLink();
133
- }
134
- onSubmit(submission) {
135
- this.formioSubmission = submission;
136
- if (this.processLinkId) {
137
- this.processLinkService.submitForm(this.processLinkId, submission.data).subscribe({
138
- next: (formSubmissionResult) => {
139
- this.submitCompleted(formSubmissionResult);
140
- },
141
- error: errors => {
142
- this.form.showErrors(errors);
143
- },
144
- });
145
- }
146
- else {
147
- this.formLinkService
148
- .onSubmit(this.processDefinitionKey, this.formAssociation.formLink.id, submission.data)
149
- .subscribe((formSubmissionResult) => {
150
- this.submitCompleted(formSubmissionResult);
151
- }, errors => {
152
- this.form.showErrors(errors);
153
- });
154
- }
155
- }
156
- formFlowSubmitted() {
157
- this.formFlowComplete.emit(null);
158
- this.modal.hide();
159
- }
160
- isUserAdmin() {
161
- this.userProviderService.getUserSubject().subscribe(userIdentity => {
162
- this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');
163
- }, error => {
164
- this.isAdmin = false;
165
- });
166
- }
167
- submitCompleted(formSubmissionResult) {
168
- this.modal.hide();
169
- this.router.navigate([
170
- 'dossiers',
171
- this.documentDefinitionName,
172
- 'document',
173
- formSubmissionResult.documentId,
174
- 'summary',
175
- ]);
176
- }
177
- }
178
- DossierProcessStartModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DossierProcessStartModalComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.ProcessService }, { token: i3.DocumentService }, { token: i4.FormLinkService }, { token: i4.ProcessLinkService }, { token: i4.FormFlowService }, { token: i5.UserProviderService }, { token: i6.NGXLogger }], target: i0.ɵɵFactoryTarget.Component });
179
- DossierProcessStartModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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 class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | 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 });
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DossierProcessStartModalComponent, decorators: [{
181
- type: Component,
182
- 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 class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | 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"] }]
183
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.ProcessService }, { type: i3.DocumentService }, { type: i4.FormLinkService }, { type: i4.ProcessLinkService }, { type: i4.FormFlowService }, { type: i5.UserProviderService }, { type: i6.NGXLogger }]; }, propDecorators: { form: [{
184
- type: ViewChild,
185
- args: ['form', { static: false }]
186
- }], modal: [{
187
- type: ViewChild,
188
- args: ['processStartModal', { static: false }]
189
- }], formFlowComplete: [{
190
- type: Output
191
- }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC9kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFXcEcsT0FBTyxFQUVMLGlCQUFpQixHQUlsQixNQUFNLHFCQUFxQixDQUFDO0FBSzdCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFRcEMsTUFBTSxPQUFPLGlDQUFpQztJQWdCNUMsWUFDVSxLQUFxQixFQUNyQixNQUFjLEVBQ2QsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsZUFBZ0MsRUFDaEMsa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxNQUFpQjtRQVJqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFD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WUFDM0IsVUFBVTtZQUNWLG9CQUFvQixDQUFDLFVBQVU7WUFDL0IsU0FBUztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7OzhIQXhMVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyx5VEM5QzlDLDI0REFrREE7MkZESmEsaUNBQWlDO2tCQU43QyxTQUFTOytCQUNFLHFDQUFxQyxpQkFHaEMsaUJBQWlCLENBQUMsSUFBSTs0VUFjRCxJQUFJO3NCQUF2QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ2UsS0FBSztzQkFBckQsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ3JDLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlLCBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ufSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge1xuICBGb3JtQXNzb2NpYXRpb24sXG4gIEZvcm1GbG93U2VydmljZSxcbiAgRm9ybUxpbmtTZXJ2aWNlLFxuICBGb3JtU3VibWlzc2lvblJlc3VsdCxcbiAgUHJvY2Vzc0xpbmtTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9mb3JtLWxpbmsnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtQcm9jZXNzU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcyc7XG5pbXBvcnQge1xuICBGb3JtaW9Db21wb25lbnQsXG4gIEZvcm1pb09wdGlvbnNJbXBsLFxuICBGb3JtaW9TdWJtaXNzaW9uLFxuICBNb2RhbENvbXBvbmVudCxcbiAgVmFsdGltb0Zvcm1pb09wdGlvbnMsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtGb3JtaW9CZWZvcmVTdWJtaXR9IGZyb20gJ0Bmb3JtaW8vYW5ndWxhci9mb3JtaW8uY29tbW9uJztcbmltcG9ydCB7Rm9ybWlvRm9ybX0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7TkdYTG9nZ2VyfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7VXNlclByb3ZpZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vc2VjdXJpdHknO1xuaW1wb3J0IHt0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyUHJvY2Vzc1N0YXJ0TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgcHJvY2Vzc0RlZmluaXRpb25LZXk6IHN0cmluZztcbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uSWQ6IHN0cmluZztcbiAgcHVibGljIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHByb2Nlc3NOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBmb3JtRGVmaW5pdGlvbjogRm9ybWlvRm9ybTtcbiAgcHVibGljIGZvcm1GbG93SW5zdGFuY2VJZDogc3RyaW5nO1xuICBwdWJsaWMgZm9ybWlvU3VibWlzc2lvbjogRm9ybWlvU3VibWlzc2lvbjtcbiAgcHJpdmF0ZSBmb3JtQXNzb2NpYXRpb246IEZvcm1Bc3NvY2lhdGlvbjtcbiAgcHJpdmF0ZSBwcm9jZXNzTGlua0lkOiBzdHJpbmc7XG4gIHB1YmxpYyBvcHRpb25zOiBWYWx0aW1vRm9ybWlvT3B0aW9ucztcbiAgcHVibGljIGlzQWRtaW46IGJvb2xlYW47XG4gIEBWaWV3Q2hpbGQoJ2Zvcm0nLCB7c3RhdGljOiBmYWxzZX0pIGZvcm06IEZvcm1pb0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncHJvY2Vzc1N0YXJ0TW9kYWwnLCB7c3RhdGljOiBmYWxzZX0pIG1vZGFsOiBNb2RhbENvbXBvbmVudDtcbiAgQE91dHB1dCgpIGZvcm1GbG93Q29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHByb2Nlc3NTZXJ2aWNlOiBQcm9jZXNzU2VydmljZSxcbiAgICBwcml2YXRlIGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUxpbmtTZXJ2aWNlOiBGb3JtTGlua1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9jZXNzTGlua1NlcnZpY2U6IFByb2Nlc3NMaW5rU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1GbG93U2VydmljZTogRm9ybUZsb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclByb3ZpZGVyU2VydmljZTogVXNlclByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGxvZ2dlcjogTkdYTG9nZ2VyXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmlzVXNlckFkbWluKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRQcm9jZXNzTGluaygpIHtcbiAgICB0aGlzLmZvcm1Bc3NvY2lhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5wcm9jZXNzTGlua0lkID0gbnVsbDtcbiAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gbnVsbDtcbiAgICB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCA9IG51bGw7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZVxuICAgICAgLmdldFByb2Nlc3NEZWZpbml0aW9uU3RhcnRQcm9jZXNzTGluayhcbiAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkLFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWVcbiAgICAgIClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHN0YXJ0UHJvY2Vzc1Jlc3VsdCA9PiB7XG4gICAgICAgIGlmIChzdGFydFByb2Nlc3NSZXN1bHQpIHtcbiAgICAgICAgICBzd2l0Y2ggKHN0YXJ0UHJvY2Vzc1Jlc3VsdC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdmb3JtJzpcbiAgICAgICAgICAgICAgdGhpcy5mb3JtRGVmaW5pdGlvbiA9IHN0YXJ0UHJvY2Vzc1Jlc3VsdC5wcm9wZXJ0aWVzLnByZWZpbGxlZEZvcm07XG4gICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0xpbmtJZCA9IHN0YXJ0UHJvY2Vzc1Jlc3VsdC5wcm9jZXNzTGlua0lkO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Zvcm0tZmxvdyc6XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUZsb3dJbnN0YW5jZUlkID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb3BlcnRpZXMuZm9ybUZsb3dJbnN0YW5jZUlkO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5tb2RhbC5zaG93KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGZvcm0gYXNzb2NpYXRpb25zXG4gICAgICAgICAgdGhpcy5mb3JtTGlua1NlcnZpY2VcbiAgICAgICAgICAgIC5nZXRTdGFydEV2ZW50Rm9ybURlZmluaXRpb25CeVByb2Nlc3NEZWZpbml0aW9uS2V5KHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXksIG51bGwpXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgIG5leHQ6IGZvcm1EZWZpbml0aW9uV2l0aEZvcm1Bc3NvY2lhdGlvbiA9PlxuICAgICAgICAgICAgICAgIHRoaXMub3BlbkZvcm1Bc3NvY2lhdGlvbihmb3JtRGVmaW5pdGlvbldpdGhGb3JtQXNzb2NpYXRpb24pLFxuICAgICAgICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRm9ybUFzc29jaWF0aW9uKGZvcm1EZWZpbml0aW9uV2l0aEZvcm1Bc3NvY2lhdGlvbjogYW55KSB7XG4gICAgdGhpcy5mb3JtQXNzb2NpYXRpb24gPSBmb3JtRGVmaW5pdGlvbldpdGhGb3JtQXNzb2NpYXRpb24uZm9ybUFzc29jaWF0aW9uO1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IHRoaXMuZm9ybUFzc29jaWF0aW9uLmZvcm1MaW5rLmNsYXNzTmFtZS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGxpbmtUeXBlID0gY2xhc3NOYW1lW2NsYXNzTmFtZS5sZW5ndGggLSAxXTtcbiAgICBzd2l0Y2ggKGxpbmtUeXBlKSB7XG4gICAgICBjYXNlICdCcG1uRWxlbWVudEZvcm1JZExpbmsnOlxuICAgICAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gZm9ybURlZmluaXRpb25XaXRoRm9ybUFzc29jaWF0aW9uO1xuICAgICAgICB0aGlzLm1vZGFsLnNob3coKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdCcG1uRWxlbWVudEZvcm1GbG93SWRMaW5rJzpcbiAgICAgICAgdGhpcy5mb3JtRmxvd1NlcnZpY2VcbiAgICAgICAgICAuY3JlYXRlSW5zdGFuY2VGb3JOZXdQcm9jZXNzKHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXksIHtcbiAgICAgICAgICAgIGRvY3VtZW50SWQ6IG51bGwsXG4gICAgICAgICAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiAodGhpcy5mb3JtRmxvd0luc3RhbmNlSWQgPSByZXN1bHQuZm9ybUZsb3dJbnN0YW5jZUlkKSk7XG4gICAgICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0JwbW5FbGVtZW50VXJsTGluayc6XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybChcbiAgICAgICAgICB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFt0aGlzLmZvcm1Bc3NvY2lhdGlvbi5mb3JtTGluay51cmxdKVxuICAgICAgICApO1xuICAgICAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdCcG1uRWxlbWVudEFuZ3VsYXJTdGF0ZVVybExpbmsnOlxuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKHRha2UoMSkpLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgIGNvbnN0IGRvY3VtZW50SWQgPSBwYXJhbXM/LmRvY3VtZW50SWQ7XG5cbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5mb3JtQXNzb2NpYXRpb24uZm9ybUxpbmsudXJsXSwge1xuICAgICAgICAgICAgc3RhdGU6IHsuLi4oZG9jdW1lbnRJZCAmJiB7ZG9jdW1lbnRJZH0pfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5sb2dnZXIuZmF0YWwoJ1Vuc3VwcG9ydGVkIGNsYXNzIG5hbWUnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ290b0Zvcm1MaW5rU2NyZWVuKCkge1xuICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZm9ybS1saW5rcyddLCB7cXVlcnlQYXJhbXM6IHtwcm9jZXNzOiB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5fX0pO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RhbFRpdGxlKCkge1xuICAgIHJldHVybiBgU3RhcnQgLSAke3RoaXMucHJvY2Vzc05hbWV9YDtcbiAgfVxuXG4gIG9wZW5Nb2RhbChwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uOiBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uKSB7XG4gICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24uaWQucHJvY2Vzc0RlZmluaXRpb25LZXk7XG4gICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5sYXRlc3RWZXJzaW9uSWQ7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5pZC5kb2N1bWVudERlZmluaXRpb25JZC5uYW1lO1xuICAgIHRoaXMucHJvY2Vzc05hbWUgPSBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLnByb2Nlc3NOYW1lO1xuICAgIHRoaXMub3B0aW9ucyA9IG5ldyBGb3JtaW9PcHRpb25zSW1wbCgpO1xuICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlQWxlcnRzID0gdHJ1ZTtcbiAgICBjb25zdCBmb3JtaW9CZWZvcmVTdWJtaXQ6IEZvcm1pb0JlZm9yZVN1Ym1pdCA9IGZ1bmN0aW9uIChzdWJtaXNzaW9uLCBjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobnVsbCwgc3VibWlzc2lvbik7XG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMuc2V0SG9va3MoZm9ybWlvQmVmb3JlU3VibWl0KTtcbiAgICB0aGlzLmxvYWRQcm9jZXNzTGluaygpO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KHN1Ym1pc3Npb246IEZvcm1pb1N1Ym1pc3Npb24pIHtcbiAgICB0aGlzLmZvcm1pb1N1Ym1pc3Npb24gPSBzdWJtaXNzaW9uO1xuXG4gICAgaWYgKHRoaXMucHJvY2Vzc0xpbmtJZCkge1xuICAgICAgdGhpcy5wcm9jZXNzTGlua1NlcnZpY2Uuc3VibWl0Rm9ybSh0aGlzLnByb2Nlc3NMaW5rSWQsIHN1Ym1pc3Npb24uZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGZvcm1TdWJtaXNzaW9uUmVzdWx0OiBGb3JtU3VibWlzc2lvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0Q29tcGxldGVkKGZvcm1TdWJtaXNzaW9uUmVzdWx0KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVycm9ycyA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtLnNob3dFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1MaW5rU2VydmljZVxuICAgICAgICAub25TdWJtaXQodGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSwgdGhpcy5mb3JtQXNzb2NpYXRpb24uZm9ybUxpbmsuaWQsIHN1Ym1pc3Npb24uZGF0YSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAoZm9ybVN1Ym1pc3Npb25SZXN1bHQ6IEZvcm1TdWJtaXNzaW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdENvbXBsZXRlZChmb3JtU3VibWlzc2lvblJlc3VsdCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcnMgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb3JtLnNob3dFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1GbG93U3VibWl0dGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUZsb3dDb21wbGV0ZS5lbWl0KG51bGwpO1xuICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICB9XG5cbiAgcHVibGljIGlzVXNlckFkbWluKCk6IHZvaWQge1xuICAgIHRoaXMudXNlclByb3ZpZGVyU2VydmljZS5nZXRVc2VyU3ViamVjdCgpLnN1YnNjcmliZShcbiAgICAgIHVzZXJJZGVudGl0eSA9PiB7XG4gICAgICAgIHRoaXMuaXNBZG1pbiA9IHVzZXJJZGVudGl0eS5yb2xlcy5pbmNsdWRlcygnUk9MRV9BRE1JTicpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5pc0FkbWluID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3VibWl0Q29tcGxldGVkKGZvcm1TdWJtaXNzaW9uUmVzdWx0OiBGb3JtU3VibWlzc2lvblJlc3VsdCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcbiAgICAgICdkb3NzaWVycycsXG4gICAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUsXG4gICAgICAnZG9jdW1lbnQnLFxuICAgICAgZm9ybVN1Ym1pc3Npb25SZXN1bHQuZG9jdW1lbnRJZCxcbiAgICAgICdzdW1tYXJ5JyxcbiAgICBdKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48dmFsdGltby1tb2RhbCAjcHJvY2Vzc1N0YXJ0TW9kYWwgZWxlbWVudElkPVwicHJvY2Vzc1N0YXJ0TW9kYWxcIiBbdGl0bGVdPVwibW9kYWxUaXRsZVwiPlxuICA8ZGl2IGJvZHkgKm5nSWY9XCJmb3JtRGVmaW5pdGlvblwiPlxuICAgIDx2YWx0aW1vLWZvcm0taW8gI2Zvcm0gW2Zvcm1dPVwiZm9ybURlZmluaXRpb25cIiBbb3B0aW9uc109XCJvcHRpb25zXCIgKHN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gICAgPC92YWx0aW1vLWZvcm0taW8+XG4gIDwvZGl2PlxuICA8ZGl2IGJvZHkgKm5nSWY9XCJmb3JtRmxvd0luc3RhbmNlSWRcIj5cbiAgICA8dmFsdGltby1mb3JtLWZsb3dcbiAgICAgIFtmb3JtRmxvd0luc3RhbmNlSWRdPVwiZm9ybUZsb3dJbnN0YW5jZUlkXCJcbiAgICAgIChmb3JtRmxvd0NvbXBsZXRlKT1cImZvcm1GbG93U3VibWl0dGVkKClcIlxuICAgID48L3ZhbHRpbW8tZm9ybS1mbG93PlxuICA8L2Rpdj5cbiAgPGRpdiBib2R5ICpuZ0lmPVwiIWZvcm1GbG93SW5zdGFuY2VJZCAmJiAhZm9ybURlZmluaXRpb24gJiYgaXNBZG1pblwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYmctd2FybmluZyB0ZXh0LWJsYWNrIG1iLTAgcC0zIHRleHQtY2VudGVyXCJcbiAgICAgIFt0cmFuc2xhdGVdPVwiJ2Zvcm1NYW5hZ2VtZW50Lm5vRm9ybURlZmluaXRpb25Gb3VuZEFkbWluJ1wiXG4gICAgPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0wIG10LTQgcC0zIHRleHQtY2VudGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNwYWNlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJnb3RvRm9ybUxpbmtTY3JlZW4oKVwiXG4gICAgICAgIGlkPVwiZm9ybS1saW5rLWJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIHt7ICdmb3JtTWFuYWdlbWVudC5nb3RvRm9ybUxpbmtzQnV0dG9uJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGJvZHkgKm5nSWY9XCIhZm9ybUZsb3dJbnN0YW5jZUlkICYmICFmb3JtRGVmaW5pdGlvbiAmJiAhaXNBZG1pblwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYmctd2FybmluZyB0ZXh0LWJsYWNrIG1iLTAgcC0zIHRleHQtY2VudGVyXCJcbiAgICAgIFt0cmFuc2xhdGVdPVwiJ2Zvcm1NYW5hZ2VtZW50Lm5vRm9ybURlZmluaXRpb25Gb3VuZFVzZXInXCJcbiAgICA+PC9kaXY+XG4gIDwvZGl2PlxuPC92YWx0aW1vLW1vZGFsPlxuIl19
@@ -1,181 +0,0 @@
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 { noop } from 'rxjs';
19
- import { map, take } from 'rxjs/operators';
20
- import * as i0 from "@angular/core";
21
- import * as i1 from "@angular/router";
22
- import * as i2 from "@valtimo/process";
23
- import * as i3 from "@valtimo/form-link";
24
- import * as i4 from "@valtimo/document";
25
- import * as i5 from "ngx-logger";
26
- import * as i6 from "@valtimo/security";
27
- import * as i7 from "@angular/common";
28
- import * as i8 from "@valtimo/components";
29
- import * as i9 from "@ngx-translate/core";
30
- export class DossierSupportingProcessStartModalComponent {
31
- constructor(route, router, processService, processLinkService, documentService, formLinkService, formFlowService, logger, userProviderService) {
32
- this.route = route;
33
- this.router = router;
34
- this.processService = processService;
35
- this.processLinkService = processLinkService;
36
- this.documentService = documentService;
37
- this.formLinkService = formLinkService;
38
- this.formFlowService = formFlowService;
39
- this.logger = logger;
40
- this.userProviderService = userProviderService;
41
- this.isAdmin$ = this.userProviderService
42
- .getUserSubject()
43
- .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));
44
- this.formSubmit = new EventEmitter();
45
- }
46
- loadProcessLink() {
47
- this.formAssociation = null;
48
- this.processLinkId = null;
49
- this.formDefinition = null;
50
- this.formFlowInstanceId = null;
51
- this.processService
52
- .getProcessDefinitionStartProcessLink(this.processDefinitionId, this.documentId, null)
53
- .pipe(take(1))
54
- .subscribe(startProcessResult => {
55
- if (startProcessResult) {
56
- switch (startProcessResult.type) {
57
- case 'form':
58
- this.formDefinition = startProcessResult.properties.prefilledForm;
59
- this.processLinkId = startProcessResult.processLinkId;
60
- break;
61
- case 'form-flow':
62
- this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;
63
- break;
64
- }
65
- this.modal.show();
66
- }
67
- else {
68
- // backwards compatibility for form associations
69
- this.formLinkService
70
- .getStartEventFormDefinitionByProcessDefinitionKey(this.processDefinitionKey, this.documentId)
71
- .pipe(take(1))
72
- .subscribe({
73
- next: formDefinitionWithFormAssociation => this.openFormAssociation(formDefinitionWithFormAssociation),
74
- error: error => {
75
- this.modal.show();
76
- },
77
- });
78
- }
79
- });
80
- }
81
- openFormAssociation(formDefinitionWithFormAssociation) {
82
- this.formAssociation = formDefinitionWithFormAssociation.formAssociation;
83
- const className = this.formAssociation.formLink.className.split('.');
84
- const linkType = className[className.length - 1];
85
- switch (linkType) {
86
- case 'BpmnElementFormIdLink':
87
- this.formDefinition = formDefinitionWithFormAssociation;
88
- this.documentService.getDocument(this.documentId).subscribe(document => {
89
- this.submission = {
90
- data: document.content,
91
- };
92
- }, () => noop());
93
- this.modal.show();
94
- break;
95
- case 'BpmnElementFormFlowIdLink':
96
- this.formFlowService
97
- .createInstanceForNewProcess(this.processDefinitionKey, {
98
- documentId: this.documentId,
99
- documentDefinitionName: null,
100
- })
101
- .subscribe(result => (this.formFlowInstanceId = result.formFlowInstanceId));
102
- this.modal.show();
103
- break;
104
- case 'BpmnElementUrlLink':
105
- const url = this.router.serializeUrl(this.router.createUrlTree([this.formAssociation.formLink.url]));
106
- window.open(url, '_blank');
107
- break;
108
- case 'BpmnElementAngularStateUrlLink':
109
- this.route.params.pipe(take(1)).subscribe(params => {
110
- const documentId = params?.documentId;
111
- this.router.navigate([this.formAssociation.formLink.url], {
112
- state: { ...(documentId && { documentId }) },
113
- });
114
- });
115
- break;
116
- default:
117
- this.logger.fatal('Unsupported class name');
118
- }
119
- }
120
- openModal(processDocumentDefinition, documentId) {
121
- this.documentId = documentId;
122
- this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;
123
- this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;
124
- this.processDefinitionId = processDocumentDefinition.latestVersionId;
125
- this.processName = processDocumentDefinition.processName;
126
- this.options = new FormioOptionsImpl();
127
- this.options.disableAlerts = true;
128
- const formioBeforeSubmit = function (submission, callback) {
129
- callback(null, submission);
130
- };
131
- this.options.setHooks(formioBeforeSubmit);
132
- this.loadProcessLink();
133
- }
134
- onSubmit(submission) {
135
- this.formioSubmission = submission;
136
- if (this.processLinkId) {
137
- this.processLinkService
138
- .submitForm(this.processLinkId, submission.data, this.documentId)
139
- .subscribe({
140
- next: (formSubmissionResult) => {
141
- this.formSubmitted();
142
- },
143
- error: errors => {
144
- this.form.showErrors(errors);
145
- },
146
- });
147
- }
148
- else {
149
- this.formLinkService
150
- .onSubmit(this.processDefinitionKey, this.formAssociation.formLink.id, submission.data, this.documentId)
151
- .subscribe((formSubmissionResult) => {
152
- this.formSubmitted();
153
- }, errors => {
154
- this.form.showErrors(errors);
155
- });
156
- }
157
- }
158
- formSubmitted() {
159
- this.modal.hide();
160
- this.formSubmit.emit();
161
- }
162
- gotoFormLinkScreen() {
163
- this.modal.hide();
164
- this.router.navigate(['form-links'], { queryParams: { process: this.processDefinitionKey } });
165
- }
166
- }
167
- DossierSupportingProcessStartModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DossierSupportingProcessStartModalComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.ProcessService }, { token: i3.ProcessLinkService }, { token: i4.DocumentService }, { token: i3.FormLinkService }, { token: i3.FormFlowService }, { token: i5.NGXLogger }, { token: i6.UserProviderService }], target: i0.ɵɵFactoryTarget.Component });
168
- DossierSupportingProcessStartModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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 class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | 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 });
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DossierSupportingProcessStartModalComponent, decorators: [{
170
- type: Component,
171
- 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 class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | 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"] }]
172
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.ProcessService }, { type: i3.ProcessLinkService }, { type: i4.DocumentService }, { type: i3.FormLinkService }, { type: i3.FormFlowService }, { type: i5.NGXLogger }, { type: i6.UserProviderService }]; }, propDecorators: { form: [{
173
- type: ViewChild,
174
- args: ['form', { static: false }]
175
- }], modal: [{
176
- type: ViewChild,
177
- args: ['supportingProcessStartModal', { static: false }]
178
- }], formSubmit: [{
179
- type: Output
180
- }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1zdXBwb3J0aW5nLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvZG9zc2llci1zdXBwb3J0aW5nLXByb2Nlc3Mtc3RhcnQtbW9kYWwvZG9zc2llci1zdXBwb3J0aW5nLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvZG9zc2llci1zdXBwb3J0aW5nLXByb2Nlc3Mtc3RhcnQtbW9kYWwvZG9zc2llci1zdXBwb3J0aW5nLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFFTCxpQkFBaUIsR0FJbEIsTUFBTSxxQkFBcUIsQ0FBQztBQVk3QixPQUFPLEVBQUMsSUFBSSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBU3pDLE1BQU0sT0FBTywyQ0FBMkM7SUF1QnRELFlBQ1UsS0FBcUIsRUFDckIsTUFBYyxFQUNkLGNBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxlQUFnQyxFQUNoQyxlQUFnQyxFQUNoQyxlQUFnQyxFQUNoQyxNQUFpQixFQUNSLG1CQUF3QztRQVJqRCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixH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RUFBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQzs7d0lBL0tVLDJDQUEyQzs0SEFBM0MsMkNBQTJDLGtVQzlDeEQscy9EQThEQTsyRkRoQmEsMkNBQTJDO2tCQU52RCxTQUFTOytCQUNFLGdEQUFnRCxpQkFHM0MsaUJBQWlCLENBQUMsSUFBSTs0VUFtQkQsSUFBSTtzQkFBdkMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUN5QixLQUFLO3NCQUEvRCxTQUFTO3VCQUFDLDZCQUE2QixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDL0MsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1pb0JlZm9yZVN1Ym1pdCwgRm9ybWlvRm9ybX0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7XG4gIEZvcm1pb0NvbXBvbmVudCxcbiAgRm9ybWlvT3B0aW9uc0ltcGwsXG4gIEZvcm1pb1N1Ym1pc3Npb24sXG4gIE1vZGFsQ29tcG9uZW50LFxuICBWYWx0aW1vRm9ybWlvT3B0aW9ucyxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1Byb2Nlc3NTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9wcm9jZXNzJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlLCBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ufSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge1xuICBGb3JtQXNzb2NpYXRpb24sXG4gIEZvcm1GbG93U2VydmljZSxcbiAgRm9ybUxpbmtTZXJ2aWNlLFxuICBGb3JtU3VibWlzc2lvblJlc3VsdCxcbiAgUHJvY2Vzc0xpbmtTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9mb3JtLWxpbmsnO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHtub29wLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1VzZXJQcm92aWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLXN1cHBvcnRpbmctcHJvY2Vzcy1zdGFydC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLXN1cHBvcnRpbmctcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvc3NpZXItc3VwcG9ydGluZy1wcm9jZXNzLXN0YXJ0LW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJTdXBwb3J0aW5nUHJvY2Vzc1N0YXJ0TW9kYWxDb21wb25lbnQge1xuICBwdWJsaWMgcHJvY2Vzc0RlZmluaXRpb25LZXk6IHN0cmluZztcbiAgcHVibGljIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHByb2Nlc3NOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBmb3JtRGVmaW5pdGlvbjogRm9ybWlvRm9ybTtcbiAgcHVibGljIGZvcm1pb1N1Ym1pc3Npb246IEZvcm1pb1N1Ym1pc3Npb247XG4gIHByaXZhdGUgZm9ybUFzc29jaWF0aW9uOiBGb3JtQXNzb2NpYXRpb247XG4gIHByaXZhdGUgcHJvY2Vzc0xpbmtJZDogc3RyaW5nO1xuICBwdWJsaWMgb3B0aW9uczogVmFsdGltb0Zvcm1pb09wdGlvbnM7XG4gIHB1YmxpYyBzdWJtaXNzaW9uOiBvYmplY3Q7XG4gIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIHB1YmxpYyBmb3JtRmxvd0luc3RhbmNlSWQ6IHN0cmluZztcblxuICByZWFkb25seSBpc0FkbWluJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMudXNlclByb3ZpZGVyU2VydmljZVxuICAgIC5nZXRVc2VyU3ViamVjdCgpXG4gICAgLnBpcGUobWFwKHVzZXJJZGVudGl0eSA9PiB1c2VySWRlbnRpdHk/LnJvbGVzPy5pbmNsdWRlcygnUk9MRV9BRE1JTicpKSk7XG5cbiAgQFZpZXdDaGlsZCgnZm9ybScsIHtzdGF0aWM6IGZhbHNlfSkgZm9ybTogRm9ybWlvQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdzdXBwb3J0aW5nUHJvY2Vzc1N0YXJ0TW9kYWwnLCB7c3RhdGljOiBmYWxzZX0pIG1vZGFsOiBNb2RhbENvbXBvbmVudDtcbiAgQE91dHB1dCgpIGZvcm1TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBkb2N1bWVudElkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHByb2Nlc3NTZXJ2aWNlOiBQcm9jZXNzU2VydmljZSxcbiAgICBwcml2YXRlIHByb2Nlc3NMaW5rU2VydmljZTogUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtTGlua1NlcnZpY2U6IEZvcm1MaW5rU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1GbG93U2VydmljZTogRm9ybUZsb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlXG4gICkge31cblxuICBwcml2YXRlIGxvYWRQcm9jZXNzTGluaygpIHtcbiAgICB0aGlzLmZvcm1Bc3NvY2lhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5wcm9jZXNzTGlua0lkID0gbnVsbDtcbiAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gbnVsbDtcbiAgICB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCA9IG51bGw7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZVxuICAgICAgLmdldFByb2Nlc3NEZWZpbml0aW9uU3RhcnRQcm9jZXNzTGluayh0aGlzLnByb2Nlc3NEZWZpbml0aW9uSWQsIHRoaXMuZG9jdW1lbnRJZCwgbnVsbClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHN0YXJ0UHJvY2Vzc1Jlc3VsdCA9PiB7XG4gICAgICAgIGlmIChzdGFydFByb2Nlc3NSZXN1bHQpIHtcbiAgICAgICAgICBzd2l0Y2ggKHN0YXJ0UHJvY2Vzc1Jlc3VsdC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdmb3JtJzpcbiAgICAgICAgICAgICAgdGhpcy5mb3JtRGVmaW5pdGlvbiA9IHN0YXJ0UHJvY2Vzc1Jlc3VsdC5wcm9wZXJ0aWVzLnByZWZpbGxlZEZvcm07XG4gICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0xpbmtJZCA9IHN0YXJ0UHJvY2Vzc1Jlc3VsdC5wcm9jZXNzTGlua0lkO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Zvcm0tZmxvdyc6XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUZsb3dJbnN0YW5jZUlkID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb3BlcnRpZXMuZm9ybUZsb3dJbnN0YW5jZUlkO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5tb2RhbC5zaG93KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGZvcm0gYXNzb2NpYXRpb25zXG4gICAgICAgICAgdGhpcy5mb3JtTGlua1NlcnZpY2VcbiAgICAgICAgICAgIC5nZXRTdGFydEV2ZW50Rm9ybURlZmluaXRpb25CeVByb2Nlc3NEZWZpbml0aW9uS2V5KFxuICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5LFxuICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50SWRcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgbmV4dDogZm9ybURlZmluaXRpb25XaXRoRm9ybUFzc29jaWF0aW9uID0+XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuRm9ybUFzc29jaWF0aW9uKGZvcm1EZWZpbml0aW9uV2l0aEZvcm1Bc3NvY2lhdGlvbiksXG4gICAgICAgICAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RhbC5zaG93KCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5Gb3JtQXNzb2NpYXRpb24oZm9ybURlZmluaXRpb25XaXRoRm9ybUFzc29jaWF0aW9uOiBhbnkpIHtcbiAgICB0aGlzLmZvcm1Bc3NvY2lhdGlvbiA9IGZvcm1EZWZpbml0aW9uV2l0aEZvcm1Bc3NvY2lhdGlvbi5mb3JtQXNzb2NpYXRpb247XG4gICAgY29uc3QgY2xhc3NOYW1lID0gdGhpcy5mb3JtQXNzb2NpYXRpb24uZm9ybUxpbmsuY2xhc3NOYW1lLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgbGlua1R5cGUgPSBjbGFzc05hbWVbY2xhc3NOYW1lLmxlbmd0aCAtIDFdO1xuICAgIHN3aXRjaCAobGlua1R5cGUpIHtcbiAgICAgIGNhc2UgJ0JwbW5FbGVtZW50Rm9ybUlkTGluayc6XG4gICAgICAgIHRoaXMuZm9ybURlZmluaXRpb24gPSBmb3JtRGVmaW5pdGlvbldpdGhGb3JtQXNzb2NpYXRpb247XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50KHRoaXMuZG9jdW1lbnRJZCkuc3Vic2NyaWJlKFxuICAgICAgICAgIGRvY3VtZW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWlzc2lvbiA9IHtcbiAgICAgICAgICAgICAgZGF0YTogZG9jdW1lbnQuY29udGVudCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoKSA9PiBub29wKClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5tb2RhbC5zaG93KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQnBtbkVsZW1lbnRGb3JtRmxvd0lkTGluayc6XG4gICAgICAgIHRoaXMuZm9ybUZsb3dTZXJ2aWNlXG4gICAgICAgICAgLmNyZWF0ZUluc3RhbmNlRm9yTmV3UHJvY2Vzcyh0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5LCB7XG4gICAgICAgICAgICBkb2N1bWVudElkOiB0aGlzLmRvY3VtZW50SWQsXG4gICAgICAgICAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiBudWxsLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4gKHRoaXMuZm9ybUZsb3dJbnN0YW5jZUlkID0gcmVzdWx0LmZvcm1GbG93SW5zdGFuY2VJZCkpO1xuICAgICAgICB0aGlzLm1vZGFsLnNob3coKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdCcG1uRWxlbWVudFVybExpbmsnOlxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwoXG4gICAgICAgICAgdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbdGhpcy5mb3JtQXNzb2NpYXRpb24uZm9ybUxpbmsudXJsXSlcbiAgICAgICAgKTtcbiAgICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQnBtbkVsZW1lbnRBbmd1bGFyU3RhdGVVcmxMaW5rJzpcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgICAgICBjb25zdCBkb2N1bWVudElkID0gcGFyYW1zPy5kb2N1bWVudElkO1xuXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuZm9ybUFzc29jaWF0aW9uLmZvcm1MaW5rLnVybF0sIHtcbiAgICAgICAgICAgIHN0YXRlOiB7Li4uKGRvY3VtZW50SWQgJiYge2RvY3VtZW50SWR9KX0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMubG9nZ2VyLmZhdGFsKCdVbnN1cHBvcnRlZCBjbGFzcyBuYW1lJyk7XG4gICAgfVxuICB9XG5cbiAgb3Blbk1vZGFsKHByb2Nlc3NEb2N1bWVudERlZmluaXRpb246IFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24sIGRvY3VtZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnRJZCA9IGRvY3VtZW50SWQ7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5pZC5kb2N1bWVudERlZmluaXRpb25JZC5uYW1lO1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkgPSBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLmlkLnByb2Nlc3NEZWZpbml0aW9uS2V5O1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24ubGF0ZXN0VmVyc2lvbklkO1xuICAgIHRoaXMucHJvY2Vzc05hbWUgPSBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLnByb2Nlc3NOYW1lO1xuICAgIHRoaXMub3B0aW9ucyA9IG5ldyBGb3JtaW9PcHRpb25zSW1wbCgpO1xuICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlQWxlcnRzID0gdHJ1ZTtcbiAgICBjb25zdCBmb3JtaW9CZWZvcmVTdWJtaXQ6IEZvcm1pb0JlZm9yZVN1Ym1pdCA9IGZ1bmN0aW9uIChzdWJtaXNzaW9uLCBjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobnVsbCwgc3VibWlzc2lvbik7XG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMuc2V0SG9va3MoZm9ybWlvQmVmb3JlU3VibWl0KTtcbiAgICB0aGlzLmxvYWRQcm9jZXNzTGluaygpO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KHN1Ym1pc3Npb246IEZvcm1pb1N1Ym1pc3Npb24pIHtcbiAgICB0aGlzLmZvcm1pb1N1Ym1pc3Npb24gPSBzdWJtaXNzaW9uO1xuICAgIGlmICh0aGlzLnByb2Nlc3NMaW5rSWQpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlXG4gICAgICAgIC5zdWJtaXRGb3JtKHRoaXMucHJvY2Vzc0xpbmtJZCwgc3VibWlzc2lvbi5kYXRhLCB0aGlzLmRvY3VtZW50SWQpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChmb3JtU3VibWlzc2lvblJlc3VsdDogRm9ybVN1Ym1pc3Npb25SZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVN1Ym1pdHRlZCgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IGVycm9ycyA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uc2hvd0Vycm9ycyhlcnJvcnMpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1MaW5rU2VydmljZVxuICAgICAgICAub25TdWJtaXQoXG4gICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSxcbiAgICAgICAgICB0aGlzLmZvcm1Bc3NvY2lhdGlvbi5mb3JtTGluay5pZCxcbiAgICAgICAgICBzdWJtaXNzaW9uLmRhdGEsXG4gICAgICAgICAgdGhpcy5kb2N1bWVudElkXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAoZm9ybVN1Ym1pc3Npb25SZXN1bHQ6IEZvcm1TdWJtaXNzaW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWQoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9ycyA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uc2hvd0Vycm9ycyhlcnJvcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybVN1Ym1pdHRlZCgpIHtcbiAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGdvdG9Gb3JtTGlua1NjcmVlbigpIHtcbiAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2Zvcm0tbGlua3MnXSwge3F1ZXJ5UGFyYW1zOiB7cHJvY2VzczogdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleX19KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48dmFsdGltby1tb2RhbFxuICAjc3VwcG9ydGluZ1Byb2Nlc3NTdGFydE1vZGFsXG4gIGVsZW1lbnRJZD1cInN1cHBvcnRpbmdQcm9jZXNzU3RhcnRNb2RhbFwiXG4gIFt0aXRsZV09XCJcbiAgICAocHJvY2Vzc0RlZmluaXRpb25LZXkgfCB0cmFuc2xhdGUpICE9PSBwcm9jZXNzRGVmaW5pdGlvbktleVxuICAgICAgPyAocHJvY2Vzc0RlZmluaXRpb25LZXkgfCB0cmFuc2xhdGUpXG4gICAgICA6IHByb2Nlc3NOYW1lXG4gIFwiXG4+XG4gIDxkaXYgYm9keSAqbmdJZj1cImZvcm1EZWZpbml0aW9uXCI+XG4gICAgPHZhbHRpbW8tZm9ybS1pb1xuICAgICAgI2Zvcm1cbiAgICAgIFtzdWJtaXNzaW9uXT1cInN1Ym1pc3Npb25cIlxuICAgICAgW2Zvcm1dPVwiZm9ybURlZmluaXRpb25cIlxuICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgICAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIlxuICAgID5cbiAgICA8L3ZhbHRpbW8tZm9ybS1pbz5cbiAgPC9kaXY+XG4gIDxkaXYgYm9keSAqbmdJZj1cImZvcm1GbG93SW5zdGFuY2VJZFwiPlxuICAgIDx2YWx0aW1vLWZvcm0tZmxvd1xuICAgICAgI2Zvcm1GbG93XG4gICAgICBbZm9ybUZsb3dJbnN0YW5jZUlkXT1cImZvcm1GbG93SW5zdGFuY2VJZFwiXG4gICAgICAoZm9ybUZsb3dDb21wbGV0ZSk9XCJmb3JtU3VibWl0dGVkKClcIlxuICAgID48L3ZhbHRpbW8tZm9ybS1mbG93PlxuICA8L2Rpdj5cbiAgPGRpdiBib2R5ICpuZ0lmPVwiIWZvcm1EZWZpbml0aW9uICYmICFmb3JtRmxvd0luc3RhbmNlSWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2FybmluZyB0ZXh0LWJsYWNrIG1iLTAgcC0zIHRleHQtY2VudGVyXCI+XG4gICAgICB7e1xuICAgICAgICAoaXNBZG1pbiQgfCBhc3luYylcbiAgICAgICAgICA/ICgnZm9ybU1hbmFnZW1lbnQubm9Gb3JtRGVmaW5pdGlvbkZvdW5kQWRtaW4nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogKCdmb3JtTWFuYWdlbWVudC5ub0Zvcm1EZWZpbml0aW9uRm91bmRVc2VyJyB8IHRyYW5zbGF0ZSlcbiAgICAgIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTAgbXQtNCBwLTMgdGV4dC1jZW50ZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBidG4tc3BhY2VcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImdvdG9Gb3JtTGlua1NjcmVlbigpXCJcbiAgICAgICAgaWQ9XCJmb3JtLWxpbmstYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2Zvcm1NYW5hZ2VtZW50LmdvdG9Gb3JtTGlua3NCdXR0b24nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3ZhbHRpbW8tbW9kYWw+XG4iXX0=