@valtimo/zgw 12.0.0 → 12.1.1

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 (80) hide show
  1. package/esm2022/lib/components/dossier-management-zgw/dossier-management-zgw.component.mjs +61 -13
  2. package/esm2022/lib/models/dossier-management-zgw.model.mjs +5 -3
  3. package/esm2022/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.mjs +115 -242
  4. package/esm2022/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.mjs +57 -85
  5. package/esm2022/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.mjs +171 -100
  6. package/esm2022/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.mjs +174 -0
  7. package/esm2022/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +244 -106
  8. package/esm2022/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.mjs +115 -0
  9. package/esm2022/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.mjs +164 -0
  10. package/esm2022/lib/modules/documenten-api/components/index.mjs +5 -2
  11. package/esm2022/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.mjs +3 -3
  12. package/esm2022/lib/modules/documenten-api/models/configured-column.model.mjs +12 -2
  13. package/esm2022/lib/modules/documenten-api/models/documenten-api-filter.model.mjs +17 -0
  14. package/esm2022/lib/modules/documenten-api/models/documenten-api-metadata.model.mjs +1 -1
  15. package/esm2022/lib/modules/documenten-api/models/documenten-api-tag.model.mjs +17 -0
  16. package/esm2022/lib/modules/documenten-api/models/documenten-api-version.model.mjs +1 -1
  17. package/esm2022/lib/modules/documenten-api/models/documenten-api.model.mjs +22 -2
  18. package/esm2022/lib/modules/documenten-api/models/index.mjs +2 -1
  19. package/esm2022/lib/modules/documenten-api/services/documenten-api-column.service.mjs +10 -9
  20. package/esm2022/lib/modules/documenten-api/services/documenten-api-document.service.mjs +10 -3
  21. package/esm2022/lib/modules/documenten-api/services/documenten-api-link-process.service.mjs +1 -16
  22. package/esm2022/lib/modules/documenten-api/services/documenten-api-tag.service.mjs +36 -0
  23. package/esm2022/lib/modules/documenten-api/services/documenten-api-version.service.mjs +4 -1
  24. package/esm2022/lib/modules/documenten-api/services/index.mjs +3 -2
  25. package/esm2022/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.mjs +2 -2
  26. package/esm2022/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.mjs +1 -1
  27. package/esm2022/lib/services/dossier-management-zgw.service.mjs +8 -4
  28. package/esm2022/lib/zgw.module.mjs +22 -5
  29. package/fesm2022/valtimo-zgw.mjs +1378 -781
  30. package/fesm2022/valtimo-zgw.mjs.map +1 -1
  31. package/lib/components/dossier-management-zgw/dossier-management-zgw.component.d.ts +16 -5
  32. package/lib/components/dossier-management-zgw/dossier-management-zgw.component.d.ts.map +1 -1
  33. package/lib/models/dossier-management-zgw.model.d.ts +12 -2
  34. package/lib/models/dossier-management-zgw.model.d.ts.map +1 -1
  35. package/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.d.ts +33 -63
  36. package/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.d.ts.map +1 -1
  37. package/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.d.ts +18 -20
  38. package/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.d.ts.map +1 -1
  39. package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts +38 -20
  40. package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -1
  41. package/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.d.ts +47 -0
  42. package/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.d.ts.map +1 -0
  43. package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts +76 -39
  44. package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -1
  45. package/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.d.ts +33 -0
  46. package/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.d.ts.map +1 -0
  47. package/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.d.ts +46 -0
  48. package/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.d.ts.map +1 -0
  49. package/lib/modules/documenten-api/components/index.d.ts +4 -1
  50. package/lib/modules/documenten-api/components/index.d.ts.map +1 -1
  51. package/lib/modules/documenten-api/models/configured-column.model.d.ts +8 -2
  52. package/lib/modules/documenten-api/models/configured-column.model.d.ts.map +1 -1
  53. package/lib/modules/documenten-api/models/documenten-api-filter.model.d.ts +10 -0
  54. package/lib/modules/documenten-api/models/documenten-api-filter.model.d.ts.map +1 -0
  55. package/lib/modules/documenten-api/models/documenten-api-metadata.model.d.ts +10 -9
  56. package/lib/modules/documenten-api/models/documenten-api-metadata.model.d.ts.map +1 -1
  57. package/lib/modules/documenten-api/models/documenten-api-tag.model.d.ts +5 -0
  58. package/lib/modules/documenten-api/models/documenten-api-tag.model.d.ts.map +1 -0
  59. package/lib/modules/documenten-api/models/documenten-api-version.model.d.ts +7 -1
  60. package/lib/modules/documenten-api/models/documenten-api-version.model.d.ts.map +1 -1
  61. package/lib/modules/documenten-api/models/documenten-api.model.d.ts +37 -12
  62. package/lib/modules/documenten-api/models/documenten-api.model.d.ts.map +1 -1
  63. package/lib/modules/documenten-api/models/index.d.ts +1 -0
  64. package/lib/modules/documenten-api/models/index.d.ts.map +1 -1
  65. package/lib/modules/documenten-api/services/documenten-api-column.service.d.ts +3 -2
  66. package/lib/modules/documenten-api/services/documenten-api-column.service.d.ts.map +1 -1
  67. package/lib/modules/documenten-api/services/documenten-api-document.service.d.ts +3 -2
  68. package/lib/modules/documenten-api/services/documenten-api-document.service.d.ts.map +1 -1
  69. package/lib/modules/documenten-api/services/documenten-api-link-process.service.d.ts.map +1 -1
  70. package/lib/modules/documenten-api/services/documenten-api-tag.service.d.ts +17 -0
  71. package/lib/modules/documenten-api/services/documenten-api-tag.service.d.ts.map +1 -0
  72. package/lib/modules/documenten-api/services/documenten-api-version.service.d.ts +2 -1
  73. package/lib/modules/documenten-api/services/documenten-api-version.service.d.ts.map +1 -1
  74. package/lib/modules/documenten-api/services/index.d.ts +2 -1
  75. package/lib/modules/documenten-api/services/index.d.ts.map +1 -1
  76. package/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.d.ts.map +1 -1
  77. package/lib/services/dossier-management-zgw.service.d.ts +2 -0
  78. package/lib/services/dossier-management-zgw.service.d.ts.map +1 -1
  79. package/lib/zgw.module.d.ts.map +1 -1
  80. package/package.json +1 -1
@@ -1,31 +1,33 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, Injectable, ViewChild, NgModule } from '@angular/core';
3
- import * as i2 from 'carbon-components-angular';
4
- import { ModalModule, TagModule, InputModule, ButtonModule, DropdownModule, ToggleModule, IconModule, ComboBoxModule, LoadingModule, NotificationModule, CheckboxModule, TabsModule } from 'carbon-components-angular';
5
- import * as i3$1 from '@ngx-translate/core';
2
+ import { Injectable, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewChild, NgModule, ViewContainerRef } from '@angular/core';
3
+ import * as i9 from 'carbon-components-angular';
4
+ import { ModalModule, InputModule, ButtonModule, DropdownModule, RadioModule, NotificationModule, TagModule, IconModule, DatePickerInputModule, DatePickerModule, ComboBoxModule, TooltipModule, DialogModule, ToggleModule, LoadingModule, CheckboxModule, TabsModule } from 'carbon-components-angular';
5
+ import * as i5$1 from '@ngx-translate/core';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
7
  import * as i4 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
- import { BehaviorSubject, map, combineLatest, tap, Subscription, take, switchMap, of, filter, Subject, from, startWith } from 'rxjs';
10
- import * as i3$2 from '@valtimo/components';
11
- import { CARBON_CONSTANTS, PendingChangesComponent, MoveRowDirection, ViewType, CarbonListModule, ConfirmationModalModule, VModalModule, TitleModule, ButtonModule as ButtonModule$1, FormModule, InputModule as InputModule$1, SelectModule, DatePickerModule, InputLabelModule, ParagraphModule, createCustomFormioComponent, registerCustomFormioComponentWithClass, TableModule, FormIoModule, TimelineItemImpl, ModalModule as ModalModule$1, SpinnerModule, TimelineModule, WidgetModule, ListModule, FilterSidebarModule, PageModule, ValtimoCdsModalDirectiveModule, DropzoneModule, FileSizeModule } from '@valtimo/components';
12
9
  import * as i5 from '@angular/forms';
13
10
  import { Validators, ReactiveFormsModule, FormsModule, FormGroup, FormControl } from '@angular/forms';
14
- import * as i3 from '@valtimo/document';
15
- import { InternalCaseStatusColor, InternalCaseStatusUtils, DocumentModule } from '@valtimo/document';
16
- import { Edit16, Filter16, TagGroup16, Upload16 } from '@carbon/icons';
11
+ import { BehaviorSubject, combineLatest, map, Subscription, switchMap, filter, tap, startWith, debounceTime, Subject, take, from, of, ReplaySubject, distinctUntilChanged } from 'rxjs';
12
+ import * as i3 from '@valtimo/components';
13
+ import { CARBON_CONSTANTS, ViewType, CarbonListModule, ConfirmationModalModule, InputLabelModule, InputModule as InputModule$1, SelectModule, ParagraphModule, CarbonListComponent, createCustomFormioComponent, registerCustomFormioComponentWithClass, TableModule, VModalModule, TitleModule, FormIoModule, TimelineItemImpl, ModalModule as ModalModule$1, SpinnerModule, TimelineModule, WidgetModule, ListModule, FilterSidebarModule, PageModule, FormModule, ValtimoCdsModalDirectiveModule, DropzoneModule, FileSizeModule } from '@valtimo/components';
14
+ import * as i2 from '@valtimo/config';
15
+ import { BaseApiService, UploadProvider, ROLE_USER, CASE_MANAGEMENT_TAB_TOKEN, ZGW_OBJECT_TYPE_COMPONENT_TOKEN, ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN, ZGW_CASE_CONFIGURATION_EXTENSIONS_TOKEN } from '@valtimo/config';
16
+ import * as i1 from '@angular/common/http';
17
+ import { HttpParams } from '@angular/common/http';
17
18
  import * as i1$1 from '@angular/router';
18
19
  import { RouterModule } from '@angular/router';
19
- import * as i2$1 from '@valtimo/config';
20
- import { BaseApiService, UploadProvider, ROLE_USER, ZGW_OBJECT_TYPE_COMPONENT_TOKEN, ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN, ZGW_CASE_CONFIGURATION_EXTENSIONS_TOKEN } from '@valtimo/config';
21
- import * as i1 from '@angular/common/http';
22
- import { tap as tap$1, map as map$1, filter as filter$1, switchMap as switchMap$1, catchError, take as take$1, debounceTime } from 'rxjs/operators';
23
- import * as i5$1 from 'keycloak-angular';
24
- import moment from 'moment';
25
- import * as i2$2 from '@valtimo/resource';
20
+ import { TrashCan16, Filter16, TagGroup16, Upload16 } from '@carbon/icons';
21
+ import { tap as tap$1, map as map$1, filter as filter$1, switchMap as switchMap$1, catchError, take as take$1, debounceTime as debounceTime$1 } from 'rxjs/operators';
22
+ import flatpickr from 'flatpickr';
23
+ import * as i1$2 from '@valtimo/document';
24
+ import { DocumentModule } from '@valtimo/document';
25
+ import * as i6 from 'keycloak-angular';
26
+ import * as i2$1 from '@valtimo/resource';
26
27
  import { ResourceModule } from '@valtimo/resource';
27
28
  import * as i5$2 from '@valtimo/security';
28
29
  import { AuthGuardService } from '@valtimo/security';
30
+ import moment from 'moment';
29
31
  import * as i4$1 from 'ngx-toastr';
30
32
  import { FormioModule } from '@formio/angular';
31
33
 
@@ -46,7 +48,8 @@ import { FormioModule } from '@formio/angular';
46
48
  */
47
49
  var ZgwTabEnum;
48
50
  (function (ZgwTabEnum) {
49
- ZgwTabEnum[ZgwTabEnum["DOCUMENTEN_API_COLUMNS"] = 0] = "DOCUMENTEN_API_COLUMNS";
51
+ ZgwTabEnum["DOCUMENTEN_API_COLUMNS"] = "documentenApiColumns";
52
+ ZgwTabEnum["DOCUMENTEN_API_TAGS"] = "documentenApiTags";
50
53
  })(ZgwTabEnum || (ZgwTabEnum = {}));
51
54
 
52
55
  /*
@@ -65,314 +68,30 @@ var ZgwTabEnum;
65
68
  * limitations under the License.
66
69
  */
67
70
 
68
- /*
69
- * Copyright 2015-2024 Ritense BV, the Netherlands.
70
- *
71
- * Licensed under EUPL, Version 1.2 (the "License");
72
- * you may not use this file except in compliance with the License.
73
- * You may obtain a copy of the License at
74
- *
75
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
76
- *
77
- * Unless required by applicable law or agreed to in writing, software
78
- * distributed under the License is distributed on an "AS IS" basis,
79
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
80
- * See the License for the specific language governing permissions and
81
- * limitations under the License.
82
- */
83
- class DocumentenApiColumnModalComponent {
84
- set type(value) {
85
- this._type.next(value);
86
- if (value === 'closed') {
87
- setTimeout(() => {
88
- this._typeAnimationDelay$.next(value);
89
- }, CARBON_CONSTANTS.modalAnimationMs);
90
- }
91
- else {
92
- this._typeAnimationDelay$.next(value);
93
- }
94
- }
95
- set prefill(value) {
96
- this._prefillStatus.next(value);
97
- }
98
- get visibleInCaseListByDefault() {
99
- return this.statusFormGroup?.get('visibleInCaseListByDefault');
100
- }
101
- get key() {
102
- return this.statusFormGroup?.get('key');
103
- }
104
- get title() {
105
- return this.statusFormGroup?.get('title');
106
- }
107
- get color() {
108
- return this.statusFormGroup?.get('color');
109
- }
110
- get invalid() {
111
- return !!this.statusFormGroup?.invalid;
112
- }
113
- get pristine() {
114
- return !!this.statusFormGroup?.pristine;
115
- }
116
- constructor(fb, iconService, caseStatusService, translateService) {
117
- this.fb = fb;
118
- this.iconService = iconService;
119
- this.caseStatusService = caseStatusService;
120
- this.translateService = translateService;
121
- this.closeModalEvent = new EventEmitter();
122
- this._type = new BehaviorSubject(undefined);
123
- this._typeAnimationDelay$ = new BehaviorSubject(undefined);
124
- this._prefillStatus = new BehaviorSubject(undefined);
125
- this.isClosed$ = this._type.pipe(map(type => type === 'closed'));
126
- this.statusFormGroup = this.fb.group({
127
- title: this.fb.control('', Validators.required),
128
- key: this.fb.control('', [Validators.required, this.uniqueKeyValidator()]),
129
- visibleInCaseListByDefault: this.fb.control(true, Validators.required),
130
- color: this.fb.control('', Validators.required),
131
- });
132
- this.isEdit$ = combineLatest([this._typeAnimationDelay$, this._prefillStatus]).pipe(tap(([type, prefillStatus]) => {
133
- if (type === 'edit' && prefillStatus)
134
- this.prefillForm(prefillStatus);
135
- }), map(([type]) => type === 'edit'));
136
- this.isAdd$ = this._typeAnimationDelay$.pipe(map(type => type === 'add'), tap(isAdd => {
137
- if (isAdd)
138
- this.resetForm();
139
- }));
140
- this.disabled$ = new BehaviorSubject(false);
141
- this.COLORS = [
142
- InternalCaseStatusColor.Red,
143
- InternalCaseStatusColor.Magenta,
144
- InternalCaseStatusColor.Purple,
145
- InternalCaseStatusColor.Blue,
146
- InternalCaseStatusColor.Teal,
147
- InternalCaseStatusColor.Green,
148
- InternalCaseStatusColor.Cyan,
149
- InternalCaseStatusColor.Gray,
150
- InternalCaseStatusColor.CoolGray,
151
- InternalCaseStatusColor.WarmGray,
152
- InternalCaseStatusColor.HighContrast,
153
- InternalCaseStatusColor.Outline,
154
- ];
155
- this._selectedColor$ = new BehaviorSubject(undefined);
156
- this.colorListItems$ = combineLatest([
157
- this._selectedColor$,
158
- this.translateService.stream('key'),
159
- ]).pipe(map(([selectedColor]) => this.COLORS.map(color => ({
160
- selected: color === selectedColor,
161
- content: this.translateService.instant('interface.tagType.' +
162
- InternalCaseStatusUtils.getTagTypeFromInternalCaseStatusColor(color)),
163
- color,
164
- tagType: InternalCaseStatusUtils.getTagTypeFromInternalCaseStatusColor(color),
165
- }))));
166
- this._editingKey$ = new BehaviorSubject(false);
167
- this.editingKey$ = this._editingKey$.pipe(tap(editing => {
168
- if (editing) {
169
- this.key?.enable();
170
- }
171
- else {
172
- this.key?.disable();
173
- }
174
- }));
175
- this._originalStatusKey$ = new BehaviorSubject('');
176
- this._subscriptions = new Subscription();
177
- this.iconService.registerAll([Edit16]);
178
- }
179
- ngOnInit() {
180
- this.openAutoKeySubscription();
181
- }
182
- ngOnDestroy() {
183
- this._subscriptions.unsubscribe();
184
- }
185
- onClose() {
186
- this.close();
187
- }
188
- toggleCheckedChange(checked) {
189
- this.statusFormGroup.patchValue({
190
- visibleInCaseListByDefault: checked,
191
- });
192
- this.statusFormGroup.markAsDirty();
193
- }
194
- addStatus() {
195
- this.disable();
196
- this.caseStatusService
197
- .saveInternalCaseStatus(this.documentDefinitionName, this.getFormValue())
198
- .subscribe({
199
- next: () => {
200
- this.enable();
201
- this.closeAndRefresh();
202
- },
203
- error: () => {
204
- this.enable(false);
205
- },
206
- });
207
- }
208
- editStatus() {
209
- this.disable();
210
- this._originalStatusKey$
211
- .pipe(take(1), switchMap(originalStatusKey => this.caseStatusService.updateInternalCaseStatus(this.documentDefinitionName, originalStatusKey, this.getFormValue())))
212
- .subscribe({
213
- next: () => {
214
- this.enable();
215
- this.closeAndRefresh();
216
- },
217
- error: () => {
218
- this.enable(false);
219
- },
220
- });
221
- }
222
- editKeyButtonClick() {
223
- this._editingKey$.next(true);
224
- }
225
- colorDropdownChange(event) {
226
- const newColor = event?.item?.color;
227
- if (newColor) {
228
- this._selectedColor$.next(newColor);
229
- this.statusFormGroup.patchValue({ color: newColor });
230
- this.statusFormGroup.markAsDirty();
231
- }
232
- }
233
- prefillForm(prefillStatus) {
234
- this._originalStatusKey$.next(prefillStatus.key);
235
- this.statusFormGroup.patchValue({
236
- key: prefillStatus.key,
237
- title: prefillStatus.title,
238
- visibleInCaseListByDefault: prefillStatus.visibleInCaseListByDefault,
239
- color: prefillStatus.color,
240
- });
241
- this._selectedColor$.next(prefillStatus.color);
242
- this.statusFormGroup.markAsPristine();
243
- this.resetEditingKey();
244
- }
245
- resetForm() {
246
- this.statusFormGroup.patchValue({
247
- key: '',
248
- title: '',
249
- visibleInCaseListByDefault: true,
250
- color: InternalCaseStatusColor.Blue,
251
- });
252
- this._selectedColor$.next(InternalCaseStatusColor.Blue);
253
- this.statusFormGroup.markAsPristine();
254
- this.resetEditingKey();
255
- }
256
- resetEditingKey() {
257
- this._editingKey$.next(false);
258
- }
259
- openAutoKeySubscription() {
260
- this._subscriptions.add(combineLatest([this.isAdd$, this.title.valueChanges, this.editingKey$]).subscribe(([isAdd, titleValue, editingKey]) => {
261
- if (isAdd && !editingKey) {
262
- if (titleValue) {
263
- this.statusFormGroup.patchValue({ key: this.getUniqueKey(titleValue) });
264
- }
265
- else {
266
- this.clearKey();
267
- }
268
- }
269
- }));
270
- }
271
- getUniqueKey(title) {
272
- const dashCaseKey = `${title}`
273
- .toLowerCase()
274
- .replace(/[^a-z0-9-_]+|-[^a-z0-9]+/g, '-')
275
- .replace(/_[-_]+/g, '_')
276
- .replace(/^[^a-z]+/g, '');
277
- const usedKeys = this.usedKeys;
278
- if (!usedKeys.includes(dashCaseKey)) {
279
- return dashCaseKey;
280
- }
281
- return this.getUniqueKeyWithNumber(dashCaseKey, usedKeys);
282
- }
283
- getUniqueKeyWithNumber(dashCaseKey, usedKeys) {
284
- const numbersFromCurrentKey = (dashCaseKey.match(/^\d+|\d+\b|\d+(?=\w)/g) || []).map((numberValue) => +numberValue);
285
- const lastNumberFromCurrentKey = numbersFromCurrentKey.length > 0 && numbersFromCurrentKey[numbersFromCurrentKey.length - 1];
286
- const newKey = lastNumberFromCurrentKey
287
- ? `${dashCaseKey.replace(`${lastNumberFromCurrentKey}`, `${lastNumberFromCurrentKey + 1}`)}`
288
- : `${dashCaseKey}-1`;
289
- if (usedKeys.includes(newKey)) {
290
- return this.getUniqueKeyWithNumber(newKey, usedKeys);
291
- }
292
- return newKey;
293
- }
294
- clearKey() {
295
- this.statusFormGroup.patchValue({ key: '' });
296
- }
297
- uniqueKeyValidator() {
298
- return (control) => this.usedKeys?.every((key) => key !== control.value)
299
- ? null
300
- : { uniqueKey: { value: control.value } };
301
- }
302
- disable() {
303
- this.disabled$.next(true);
304
- this.statusFormGroup.disable();
305
- }
306
- enable(delay = true) {
307
- setTimeout(() => {
308
- this.disabled$.next(false);
309
- this.statusFormGroup.enable();
310
- }, delay ? CARBON_CONSTANTS.modalAnimationMs : 0);
311
- }
312
- close() {
313
- this.closeModalEvent.emit('close');
314
- }
315
- closeAndRefresh() {
316
- this.closeModalEvent.emit('closeAndRefresh');
317
- }
318
- getFormValue() {
319
- return {
320
- key: this.key.value,
321
- title: this.title.value,
322
- visibleInCaseListByDefault: this.visibleInCaseListByDefault.value,
323
- color: this.color.value,
324
- };
325
- }
326
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnModalComponent, deps: [{ token: i5.FormBuilder }, { token: i2.IconService }, { token: i3.CaseStatusService }, { token: i3$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
327
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiColumnModalComponent, isStandalone: true, selector: "valtimo-documenten-api-column-modal", inputs: { type: "type", prefill: "prefill", usedKeys: "usedKeys", documentDefinitionName: "documentDefinitionName" }, outputs: { closeModalEvent: "closeModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n isAdd: isAdd$ | async,\n isEdit: isEdit$ | async,\n isClosed: isClosed$ | async,\n editingKey: editingKey$ | async,\n disabled: disabled$ | async\n } as obs\"\n [open]=\"!obs.isClosed\"\n size=\"sm\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ obs.isAdd ? ('dossierManagement.statuses.add' | translate) : '' }}\n {{ obs.isEdit ? ('dossierManagement.statuses.edit' | translate) : '' }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"statusForm; context: {obs: obs}\"></ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #colorDropdownItemTemplate let-item=\"item\">\n <div class=\"dropdown-color-tag\">\n <cds-tag *ngIf=\"item && item.content\" class=\"cds-tag--no-margin\" [type]=\"item?.tagType\">\n {{ 'interface.tagType.' + item?.tagType | translate }}\n </cds-tag>\n </div>\n</ng-template>\n\n<ng-template #statusForm let-obs=\"obs\">\n <form [formGroup]=\"statusFormGroup\" class=\"status-form\">\n <cds-label>\n {{ 'dossierManagement.statuses.columns.title' | translate }}\n\n <input cdsText formControlName=\"title\" [attr.modal-primary-focus]=\"true\" />\n </cds-label>\n\n <cds-label>\n {{ 'dossierManagement.statuses.columns.key' | translate }}\n\n <div class=\"edit-key-input\">\n <input\n cdsText\n formControlName=\"key\"\n [disabled]=\"!obs.editingKey\"\n [placeholder]=\"\n obs.isAdd && !obs.editingKey\n ? ('dossierManagement.statuses.keyAutoGenerated' | translate)\n : ''\n \"\n />\n\n <cds-icon-button\n *ngIf=\"!obs.editingKey && obs.isAdd\"\n [disabled]=\"obs.disabled\"\n (click)=\"editKeyButtonClick()\"\n kind=\"secondary\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-label>\n\n <div class=\"horizontal-inputs\">\n <cds-label>\n {{ 'dossierManagement.statuses.columns.color' | translate }}\n\n <cds-dropdown\n [appendInline]=\"false\"\n [placeholder]=\"'dossierManagement.statuses.colorPlaceholder' | translate\"\n (selected)=\"colorDropdownChange($event)\"\n >\n <cds-dropdown-list [items]=\"colorListItems$\" [listTpl]=\"colorDropdownItemTemplate\">\n </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n\n <cds-toggle\n [label]=\"'dossierManagement.statuses.visibleTitle' | translate\"\n [onText]=\"'dossierManagement.statuses.visible' | translate\"\n [offText]=\"'dossierManagement.statuses.invisible' | translate\"\n [disabled]=\"obs.disabled\"\n [checked]=\"visibleInCaseListByDefault?.value\"\n (checkedChange)=\"toggleCheckedChange($event)\"\n ></cds-toggle>\n </div>\n </form>\n</ng-template>\n\n<ng-template #buttons let-obs=\"obs\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\" [disabled]=\"obs.disabled\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n *ngIf=\"obs.isAdd\"\n cdsButton=\"primary\"\n [disabled]=\"invalid || pristine || obs.disabled\"\n (click)=\"addStatus()\"\n >\n {{ 'interface.add' | translate }}\n </button>\n\n <button\n *ngIf=\"obs.isEdit\"\n cdsButton=\"primary\"\n [disabled]=\"invalid || pristine || obs.disabled\"\n (click)=\"editStatus()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n</ng-template>\n", styles: [".status-form{display:flex;flex-direction:column;gap:16px}.edit-key-input{height:40px;display:flex;width:100%;flex-direction:row;gap:16px;align-items:flex-end}::ng-deep .horizontal-inputs{display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}::ng-deep .horizontal-inputs .cds--label{width:100%;display:flex;flex-direction:column;gap:8px}::ng-deep .dropdown-color-tag .cds--tag{margin-top:-4px;margin-left:2px}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i2.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i2.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i2.IconButton, selector: "cds-icon-button, ibm-icon-button", inputs: ["buttonNgClass", "buttonAttributes", "buttonId", "kind", "size", "type", "isExpressive", "disabled", "description"], outputs: ["click", "focus", "blur", "tooltipClick"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i2.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "skeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
328
- }
329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnModalComponent, decorators: [{
330
- type: Component,
331
- args: [{ selector: 'valtimo-documenten-api-column-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
332
- CommonModule,
333
- ModalModule,
334
- TagModule,
335
- TranslateModule,
336
- InputModule,
337
- ReactiveFormsModule,
338
- ButtonModule,
339
- DropdownModule,
340
- ToggleModule,
341
- ], template: "<!--\n ~ Copyright 2015-2024 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<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n isAdd: isAdd$ | async,\n isEdit: isEdit$ | async,\n isClosed: isClosed$ | async,\n editingKey: editingKey$ | async,\n disabled: disabled$ | async\n } as obs\"\n [open]=\"!obs.isClosed\"\n size=\"sm\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ obs.isAdd ? ('dossierManagement.statuses.add' | translate) : '' }}\n {{ obs.isEdit ? ('dossierManagement.statuses.edit' | translate) : '' }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"statusForm; context: {obs: obs}\"></ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #colorDropdownItemTemplate let-item=\"item\">\n <div class=\"dropdown-color-tag\">\n <cds-tag *ngIf=\"item && item.content\" class=\"cds-tag--no-margin\" [type]=\"item?.tagType\">\n {{ 'interface.tagType.' + item?.tagType | translate }}\n </cds-tag>\n </div>\n</ng-template>\n\n<ng-template #statusForm let-obs=\"obs\">\n <form [formGroup]=\"statusFormGroup\" class=\"status-form\">\n <cds-label>\n {{ 'dossierManagement.statuses.columns.title' | translate }}\n\n <input cdsText formControlName=\"title\" [attr.modal-primary-focus]=\"true\" />\n </cds-label>\n\n <cds-label>\n {{ 'dossierManagement.statuses.columns.key' | translate }}\n\n <div class=\"edit-key-input\">\n <input\n cdsText\n formControlName=\"key\"\n [disabled]=\"!obs.editingKey\"\n [placeholder]=\"\n obs.isAdd && !obs.editingKey\n ? ('dossierManagement.statuses.keyAutoGenerated' | translate)\n : ''\n \"\n />\n\n <cds-icon-button\n *ngIf=\"!obs.editingKey && obs.isAdd\"\n [disabled]=\"obs.disabled\"\n (click)=\"editKeyButtonClick()\"\n kind=\"secondary\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-label>\n\n <div class=\"horizontal-inputs\">\n <cds-label>\n {{ 'dossierManagement.statuses.columns.color' | translate }}\n\n <cds-dropdown\n [appendInline]=\"false\"\n [placeholder]=\"'dossierManagement.statuses.colorPlaceholder' | translate\"\n (selected)=\"colorDropdownChange($event)\"\n >\n <cds-dropdown-list [items]=\"colorListItems$\" [listTpl]=\"colorDropdownItemTemplate\">\n </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n\n <cds-toggle\n [label]=\"'dossierManagement.statuses.visibleTitle' | translate\"\n [onText]=\"'dossierManagement.statuses.visible' | translate\"\n [offText]=\"'dossierManagement.statuses.invisible' | translate\"\n [disabled]=\"obs.disabled\"\n [checked]=\"visibleInCaseListByDefault?.value\"\n (checkedChange)=\"toggleCheckedChange($event)\"\n ></cds-toggle>\n </div>\n </form>\n</ng-template>\n\n<ng-template #buttons let-obs=\"obs\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\" [disabled]=\"obs.disabled\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n *ngIf=\"obs.isAdd\"\n cdsButton=\"primary\"\n [disabled]=\"invalid || pristine || obs.disabled\"\n (click)=\"addStatus()\"\n >\n {{ 'interface.add' | translate }}\n </button>\n\n <button\n *ngIf=\"obs.isEdit\"\n cdsButton=\"primary\"\n [disabled]=\"invalid || pristine || obs.disabled\"\n (click)=\"editStatus()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n</ng-template>\n", styles: [".status-form{display:flex;flex-direction:column;gap:16px}.edit-key-input{height:40px;display:flex;width:100%;flex-direction:row;gap:16px;align-items:flex-end}::ng-deep .horizontal-inputs{display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}::ng-deep .horizontal-inputs .cds--label{width:100%;display:flex;flex-direction:column;gap:8px}::ng-deep .dropdown-color-tag .cds--tag{margin-top:-4px;margin-left:2px}\n/*!\n * Copyright 2015-2024 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"] }]
342
- }], ctorParameters: () => [{ type: i5.FormBuilder }, { type: i2.IconService }, { type: i3.CaseStatusService }, { type: i3$1.TranslateService }], propDecorators: { type: [{
343
- type: Input
344
- }], prefill: [{
345
- type: Input
346
- }], usedKeys: [{
347
- type: Input
348
- }], documentDefinitionName: [{
349
- type: Input
350
- }], closeModalEvent: [{
351
- type: Output
352
- }] } });
353
-
354
71
  class DocumentenApiColumnService extends BaseApiService {
355
72
  constructor(http, configService) {
356
73
  super(http, configService);
357
74
  this.http = http;
358
75
  }
359
76
  getConfiguredColumns(caseDefinitionName) {
77
+ return this.http.get(this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/zgw-document-column`));
78
+ }
79
+ getAdminConfiguredColumns(caseDefinitionName) {
360
80
  return this.http.get(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document-column`));
361
81
  }
362
- updateColumnOrder(caseDefinitionName, columns) {
363
- return this.http.put(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document-column`), columns);
82
+ getAdminConfigurableColumns(caseDefinition) {
83
+ return this.http.get(this.getApiUrl(`/management/v1/case-definition/${caseDefinition}/zgw-document-column-key`));
84
+ }
85
+ deleteColumn(caseDefinitionName, columnKey) {
86
+ return this.http.delete(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document-column/${columnKey}`));
364
87
  }
365
88
  updateColumn(caseDefinitionName, column) {
366
- delete column.key;
367
89
  return this.http.put(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document-column/${column.key}`), column);
368
90
  }
369
- deleteConfiguredColumn(caseDefinitionKey, statusKey) {
370
- return of(null);
371
- }
372
91
  updateConfiguredColumns(caseDefinitionKey, orderColumns) {
373
- return of(null);
92
+ return this.http.put(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionKey}/zgw-document-column`), orderColumns);
374
93
  }
375
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnService, deps: [{ token: i1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
376
95
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnService, providedIn: 'root' }); }
377
96
  }
378
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnService, decorators: [{
@@ -380,7 +99,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
380
99
  args: [{
381
100
  providedIn: 'root',
382
101
  }]
383
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.ConfigService }] });
102
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
384
103
 
385
104
  /*
386
105
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -397,6 +116,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
397
116
  * See the License for the specific language governing permissions and
398
117
  * limitations under the License.
399
118
  */
119
+ class DocumentenApiDocumentService extends BaseApiService {
120
+ constructor(httpClient, configService) {
121
+ super(httpClient, configService);
122
+ this.httpClient = httpClient;
123
+ this.configService = configService;
124
+ }
125
+ getFilteredZakenApiDocuments(documentId, paramsMap) {
126
+ const params = new HttpParams({ fromObject: paramsMap });
127
+ return !!paramsMap
128
+ ? this.httpClient.get(this.getApiUrl(`/v2/zaken-api/document/${documentId}/files`), { params })
129
+ : this.httpClient.get(this.getApiUrl(`/v2/zaken-api/document/${documentId}/files`));
130
+ }
131
+ updateDocument(file, metadata) {
132
+ return this.httpClient.put(this.getApiUrl(`/v1/documenten-api/${file.pluginConfigurationId}/files/${file.fileId}`), metadata);
133
+ }
134
+ deleteDocument(file) {
135
+ return this.httpClient.delete(this.getApiUrl(`/v1/documenten-api/${file.pluginConfigurationId}/files/${file.fileId}`));
136
+ }
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiDocumentService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
138
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiDocumentService, providedIn: 'root' }); }
139
+ }
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiDocumentService, decorators: [{
141
+ type: Injectable,
142
+ args: [{
143
+ providedIn: 'root',
144
+ }]
145
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
146
+
400
147
  /*
401
148
  * Copyright 2015-2024 Ritense BV, the Netherlands.
402
149
  *
@@ -433,7 +180,7 @@ class DocumentenApiLinkProcessService extends BaseApiService {
433
180
  deleteLinkedUploadProcess(documentDefinitionName) {
434
181
  return this.httpClient.delete(this.getApiUrl(`/v1/process-document/demo/${documentDefinitionName}/process`));
435
182
  }
436
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiLinkProcessService, deps: [{ token: i1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiLinkProcessService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
437
184
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiLinkProcessService, providedIn: 'root' }); }
438
185
  }
439
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiLinkProcessService, decorators: [{
@@ -441,44 +188,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
441
188
  args: [{
442
189
  providedIn: 'root',
443
190
  }]
444
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.ConfigService }] });
191
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
445
192
 
446
- /*
447
- * Copyright 2015-2024 Ritense BV, the Netherlands.
448
- *
449
- * Licensed under EUPL, Version 1.2 (the "License");
450
- * you may not use this file except in compliance with the License.
451
- * You may obtain a copy of the License at
452
- *
453
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
454
- *
455
- * Unless required by applicable law or agreed to in writing, software
456
- * distributed under the License is distributed on an "AS IS" basis,
457
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
458
- * See the License for the specific language governing permissions and
459
- * limitations under the License.
460
- */
461
- class DocumentenApiDocumentService extends BaseApiService {
462
- constructor(httpClient, configService) {
463
- super(httpClient, configService);
464
- this.httpClient = httpClient;
465
- this.configService = configService;
193
+ class DocumentenApiTagService extends BaseApiService {
194
+ constructor(http, configService) {
195
+ super(http, configService);
196
+ this.http = http;
466
197
  }
467
- getZakenApiDocuments(documentId) {
468
- return this.httpClient.get(this.getApiUrl(`/v1/zaken-api/document/${documentId}/files`));
198
+ getTags(caseDefinitionName) {
199
+ return this.http.get(this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord`));
469
200
  }
470
- deleteDocument(file) {
471
- return this.httpClient.delete(this.getApiUrl(`/v1/documenten-api/${file.pluginConfigurationId}/files/${file.fileId}`));
201
+ getTagsForAdmin(caseDefinitionName, params) {
202
+ return this.http.get(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord`), { params });
472
203
  }
473
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiDocumentService, deps: [{ token: i1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
474
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiDocumentService, providedIn: 'root' }); }
204
+ createTag(caseDefinitionName, tagKey) {
205
+ return this.http.post(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord/${tagKey}`), {} //empty body because all data exists in path
206
+ );
207
+ }
208
+ deleteTag(caseDefinitionName, tagKey) {
209
+ return this.http.delete(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord/${tagKey}`));
210
+ }
211
+ deleteTags(caseDefinitionName, tagKeys) {
212
+ return this.http.delete(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord`), { body: tagKeys });
213
+ }
214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiTagService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
215
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiTagService, providedIn: 'root' }); }
475
216
  }
476
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiDocumentService, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiTagService, decorators: [{
477
218
  type: Injectable,
478
219
  args: [{
479
220
  providedIn: 'root',
480
221
  }]
481
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.ConfigService }] });
222
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
482
223
 
483
224
  /*
484
225
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -508,10 +249,13 @@ class DocumentenApiVersionService extends BaseApiService {
508
249
  getManagementApiVersion(caseDefinitionName) {
509
250
  return this.httpClient.get(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/documenten-api/version`));
510
251
  }
252
+ getSupportedApiFeatures(caseDefinitionName) {
253
+ return this.httpClient.get(this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/documenten-api/version`));
254
+ }
511
255
  refresh() {
512
256
  this._refresh$.next(null);
513
257
  }
514
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiVersionService, deps: [{ token: i1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiVersionService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
515
259
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiVersionService, providedIn: 'root' }); }
516
260
  }
517
261
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiVersionService, decorators: [{
@@ -519,7 +263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
519
263
  args: [{
520
264
  providedIn: 'root',
521
265
  }]
522
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.ConfigService }] });
266
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
523
267
 
524
268
  /*
525
269
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -552,145 +296,592 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
552
296
  * See the License for the specific language governing permissions and
553
297
  * limitations under the License.
554
298
  */
555
- class DocumentenApiColumnsComponent extends PendingChangesComponent {
299
+ class DocumentenApiColumnModalComponent {
300
+ set prefillColumn(value) {
301
+ if (!value)
302
+ return;
303
+ const column = { content: value.key, selected: true, column: value };
304
+ const defaultSort = value.defaultSort ?? 'noDefault';
305
+ this.formGroup.patchValue({ column, defaultSort });
306
+ this.formGroup.get('column')?.disable();
307
+ this._prefillColumn = [column];
308
+ }
309
+ get prefillColumn() {
310
+ return this._prefillColumn;
311
+ }
312
+ set type(value) {
313
+ this._type = value;
314
+ if (value === 'edit') {
315
+ this.formGroup.get('column')?.disable;
316
+ }
317
+ }
318
+ get type() {
319
+ return this._type;
320
+ }
321
+ set availableColumns(value) {
322
+ if (!value)
323
+ return;
324
+ this._availableColumns$.next(value);
325
+ }
326
+ set configuredColumns(value) {
327
+ if (!value)
328
+ return;
329
+ this._defaultSortedColumn = value.find((column) => !!column.defaultSort);
330
+ }
331
+ constructor(fb, translateService, zgwDocumentenApiColumnService) {
332
+ this.fb = fb;
333
+ this.translateService = translateService;
334
+ this.zgwDocumentenApiColumnService = zgwDocumentenApiColumnService;
335
+ this._availableColumns$ = new BehaviorSubject([]);
336
+ this.availableColumns$ = combineLatest([
337
+ this._availableColumns$,
338
+ this.translateService.stream('key'),
339
+ ]).pipe(map(([columns]) => columns.map((column) => ({
340
+ content: this.translateService.instant(`zgw.documentColumns.${column.key}`),
341
+ selected: false,
342
+ column,
343
+ }))));
344
+ this.closeModal = new EventEmitter();
345
+ this.formGroup = this.fb.group({
346
+ column: this.fb.control({ content: '', selected: false, column: {} }, Validators.required),
347
+ defaultSort: this.fb.control('noDefault'),
348
+ });
349
+ this._notificationMessage$ = new BehaviorSubject('zgw.columns.defaultWarning');
350
+ this.notificationObj$ = combineLatest([
351
+ this._notificationMessage$,
352
+ this.translateService.stream('key'),
353
+ ]).pipe(map(([message]) => ({
354
+ type: 'warning',
355
+ lowContrast: true,
356
+ title: this.translateService.instant('interface.warning'),
357
+ message: this.translateService.instant(message),
358
+ showClose: false,
359
+ })));
360
+ this.showRadioButtons = true;
361
+ this._subscriptions = new Subscription();
362
+ }
363
+ ngOnInit() {
364
+ this.openDisableRadioSubscription();
365
+ }
366
+ ngOnDestroy() {
367
+ this._subscriptions.unsubscribe();
368
+ }
369
+ onClose(refresh = false) {
370
+ this.closeModal.emit(refresh ? 'closeAndRefresh' : 'close');
371
+ setTimeout(() => {
372
+ this.formGroup.reset();
373
+ this.formGroup.enable();
374
+ this.showRadioButtons = true;
375
+ this._notificationMessage$.next('zgw.columns.defaultWarning');
376
+ this._prefillColumn = null;
377
+ }, CARBON_CONSTANTS.modalAnimationMs);
378
+ }
379
+ updateColumn() {
380
+ const columnValue = this.formGroup.get('column')?.value;
381
+ if (!columnValue || !this.definitionName) {
382
+ return;
383
+ }
384
+ const defaultSortValue = this.formGroup.get('defaultSort')?.value;
385
+ const defaultSort = !defaultSortValue
386
+ ? null
387
+ : defaultSortValue === 'noDefault'
388
+ ? null
389
+ : defaultSortValue;
390
+ const column = { ...columnValue.column, defaultSort };
391
+ if (!!this._defaultSortedColumn &&
392
+ this._defaultSortedColumn.key !== column.key &&
393
+ !!column.defaultSort) {
394
+ this.zgwDocumentenApiColumnService
395
+ .updateColumn(this.definitionName, {
396
+ ...this._defaultSortedColumn,
397
+ defaultSort: null,
398
+ })
399
+ .pipe(switchMap(() => this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column)))
400
+ .subscribe(() => {
401
+ this.onClose(true);
402
+ });
403
+ return;
404
+ }
405
+ this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column).subscribe(() => {
406
+ this.onClose(true);
407
+ });
408
+ }
409
+ openDisableRadioSubscription() {
410
+ this._subscriptions.add(this.formGroup.get('column')?.valueChanges.subscribe(columnValue => {
411
+ this.showRadioButtons = !!columnValue?.column.sortable;
412
+ this._notificationMessage$.next(this.showRadioButtons ? 'zgw.columns.defaultWarning' : 'zgw.columns.notSortable');
413
+ }));
414
+ }
415
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnModalComponent, deps: [{ token: i5.FormBuilder }, { token: i5$1.TranslateService }, { token: DocumentenApiColumnService }], target: i0.ɵɵFactoryTarget.Component }); }
416
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiColumnModalComponent, isStandalone: true, selector: "valtimo-documenten-api-column-modal", inputs: { definitionName: "definitionName", prefillColumn: "prefillColumn", type: "type", availableColumns: "availableColumns", configuredColumns: "configuredColumns" }, outputs: { closeModal: "closeModal" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-documenten-api-column-modal__content{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i9.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i9.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: RadioModule }, { kind: "component", type: i9.Radio, selector: "cds-radio, ibm-radio", inputs: ["checked", "name", "disabled", "labelPlacement", "ariaLabelledby", "ariaLabel", "required", "value", "skeleton", "id"], outputs: ["change"] }, { kind: "component", type: i9.RadioGroup, selector: "cds-radio-group, ibm-radio-group", inputs: ["selected", "value", "name", "disabled", "skeleton", "orientation", "labelPlacement", "legend", "ariaLabel", "ariaLabelledby", "helperText", "invalid", "invalidText", "warn", "warnText"], outputs: ["change"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i9.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
417
+ }
418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnModalComponent, decorators: [{
419
+ type: Component,
420
+ args: [{ selector: 'valtimo-documenten-api-column-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
421
+ CommonModule,
422
+ ModalModule,
423
+ TranslateModule,
424
+ InputModule,
425
+ ReactiveFormsModule,
426
+ ButtonModule,
427
+ DropdownModule,
428
+ RadioModule,
429
+ NotificationModule,
430
+ ], template: "<!--\n ~ Copyright 2015-2024 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<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-documenten-api-column-modal__content{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2024 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"] }]
431
+ }], ctorParameters: () => [{ type: i5.FormBuilder }, { type: i5$1.TranslateService }, { type: DocumentenApiColumnService }], propDecorators: { definitionName: [{
432
+ type: Input
433
+ }], prefillColumn: [{
434
+ type: Input
435
+ }], type: [{
436
+ type: Input
437
+ }], availableColumns: [{
438
+ type: Input
439
+ }], configuredColumns: [{
440
+ type: Input
441
+ }], closeModal: [{
442
+ type: Output
443
+ }] } });
444
+
445
+ /*
446
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
447
+ *
448
+ * Licensed under EUPL, Version 1.2 (the "License");
449
+ * you may not use this file except in compliance with the License.
450
+ * You may obtain a copy of the License at
451
+ *
452
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
453
+ *
454
+ * Unless required by applicable law or agreed to in writing, software
455
+ * distributed under the License is distributed on an "AS IS" basis,
456
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
457
+ * See the License for the specific language governing permissions and
458
+ * limitations under the License.
459
+ */
460
+ class DocumentenApiColumnsComponent {
556
461
  get documentDefinitionName$() {
557
462
  return this._documentDefinitionName$;
558
463
  }
559
464
  constructor(route, zgwDocumentColumnService) {
560
- super();
561
465
  this.route = route;
562
466
  this.zgwDocumentColumnService = zgwDocumentColumnService;
563
467
  this._reload$ = new BehaviorSubject(null);
564
468
  this._documentDefinitionName$ = this.route.params.pipe(map(params => params?.name), filter(docDefName => !!docDefName));
565
469
  this.loading$ = new BehaviorSubject(true);
566
- this.usedKeys$ = new BehaviorSubject([]);
567
- this._documentStatuses = [];
568
- this.documentStatuses$ = combineLatest([
470
+ this.configuredColumns$ = combineLatest([
569
471
  this._documentDefinitionName$,
570
472
  this._reload$,
571
473
  ]).pipe(tap(([_, reload]) => {
572
- if (reload === null) {
474
+ if (reload === null)
573
475
  this.loading$.next(true);
476
+ }), switchMap(([documentDefinitionName]) => this.zgwDocumentColumnService.getAdminConfiguredColumns(documentDefinitionName)), tap(() => {
477
+ this.loading$.next(false);
478
+ }));
479
+ this.configurableColumns$ = this.documentDefinitionName$.pipe(switchMap((documentDefinitionName) => combineLatest([
480
+ this.zgwDocumentColumnService.getAdminConfigurableColumns(documentDefinitionName),
481
+ this.configuredColumns$,
482
+ ])), map(([configurableColumns, configuredColumns]) => {
483
+ const configuredKeys = configuredColumns.map((column) => column.key);
484
+ return configurableColumns.filter((column) => !configuredKeys.includes(column.key));
485
+ }));
486
+ this.ACTION_ITEMS = [
487
+ {
488
+ label: 'interface.edit',
489
+ callback: this.openEditModal.bind(this),
490
+ type: 'normal',
491
+ },
492
+ {
493
+ label: 'interface.delete',
494
+ callback: this.openDeleteModal.bind(this),
495
+ type: 'danger',
496
+ },
497
+ ];
498
+ this.CARBON_THEME = 'g10';
499
+ this.columnModalType$ = new BehaviorSubject('closed');
500
+ this.prefillColumn$ = new BehaviorSubject(undefined);
501
+ this.columnToUpdate$ = new BehaviorSubject(undefined);
502
+ this.showDeleteModal$ = new BehaviorSubject(false);
503
+ }
504
+ ngAfterViewInit() {
505
+ this.fields = [
506
+ {
507
+ key: 'key',
508
+ label: 'zgw.columns.column',
509
+ viewType: ViewType.TEMPLATE,
510
+ template: this.columnKeyTemplate,
511
+ },
512
+ {
513
+ key: 'defaultSort',
514
+ label: 'listColumn.defaultSort',
515
+ viewType: ViewType.TEMPLATE,
516
+ template: this.defaultSortTemplate,
517
+ },
518
+ ];
519
+ }
520
+ openDeleteModal(column) {
521
+ this.columnToUpdate$.next(column);
522
+ this.showDeleteModal$.next(true);
523
+ }
524
+ openEditModal(column) {
525
+ this.prefillColumn$.next(column);
526
+ this.columnModalType$.next('edit');
527
+ }
528
+ openAddModal() {
529
+ this.columnModalType$.next('add');
530
+ this.prefillColumn$.next(undefined);
531
+ }
532
+ onCloseModal(closeModalEvent) {
533
+ if (closeModalEvent === 'closeAndRefresh')
534
+ this.reload();
535
+ this.columnModalType$.next('closed');
536
+ }
537
+ confirmDeleteStatus(column, definitionName) {
538
+ this.zgwDocumentColumnService.deleteColumn(definitionName, column.key).subscribe(() => {
539
+ this.reload();
540
+ });
541
+ }
542
+ onItemsReordered(definitionName, columns) {
543
+ this.zgwDocumentColumnService.updateConfiguredColumns(definitionName, columns).subscribe(() => {
544
+ this.reload(true);
545
+ });
546
+ }
547
+ reload(noAnimation = false) {
548
+ this._reload$.next(noAnimation ? 'noAnimation' : null);
549
+ }
550
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: DocumentenApiColumnService }], target: i0.ɵɵFactoryTarget.Component }); }
551
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiColumnsComponent, isStandalone: true, selector: "valtimo-documenten-api-columns", viewQueries: [{ propertyName: "columnKeyTemplate", first: true, predicate: ["columnKeyTemplate"], descendants: true }, { propertyName: "defaultSortTemplate", first: true, predicate: ["defaultSortTemplate"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n columnModalType: columnModalType$ | async,\n columnToUpdate: columnToUpdate$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n configuredColumns: configuredColumns$ | async,\n configurableColumns: configurableColumns$ | async,\n loading: loading$ | async,\n prefillColumn: prefillColumn$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.configuredColumns\"\n [loading]=\"obs.loading || !fields\"\n [movingRowsEnabled]=\"true\"\n (itemsReordered)=\"onItemsReordered(obs.documentDefinitionName, $event)\"\n >\n <ng-container carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"addButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-column-modal\n [availableColumns]=\"obs.configurableColumns\"\n [configuredColumns]=\"obs.configuredColumns\"\n [definitionName]=\"obs.documentDefinitionName\"\n [prefillColumn]=\"obs.prefillColumn\"\n [type]=\"obs.columnModalType\"\n (closeModal)=\"onCloseModal($event)\"\n ></valtimo-documenten-api-column-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.columns.deleteText\"\n [outputOnConfirm]=\"columnToUpdate$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"confirmDeleteStatus($event, obs.documentDefinitionName)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'zgw.columns.add' | translate }}\n </button>\n</ng-template>\n\n<ng-template #columnKeyTemplate let-data=\"data\">\n {{ 'zgw.documentColumns.' + data.item.key | translate }}\n</ng-template>\n\n<ng-template #defaultSortTemplate let-data=\"data\">\n {{\n data.item.defaultSort === null\n ? '-'\n : ('interface.sorting.' + (data.item.defaultSort === 'ASC' ? 'ascending' : 'descending')\n | translate)\n }}\n</ng-template>\n", styles: ["::ng-deep .cds-tag--no-margin{margin:0}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "component", type: DocumentenApiColumnModalComponent, selector: "valtimo-documenten-api-column-modal", inputs: ["definitionName", "prefillColumn", "type", "availableColumns", "configuredColumns"], outputs: ["closeModal"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i3.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "ngmodule", type: TagModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
552
+ }
553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnsComponent, decorators: [{
554
+ type: Component,
555
+ args: [{ selector: 'valtimo-documenten-api-columns', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
556
+ CommonModule,
557
+ DocumentenApiColumnModalComponent,
558
+ CarbonListModule,
559
+ TranslateModule,
560
+ ConfirmationModalModule,
561
+ TagModule,
562
+ ButtonModule,
563
+ IconModule,
564
+ ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n columnModalType: columnModalType$ | async,\n columnToUpdate: columnToUpdate$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n configuredColumns: configuredColumns$ | async,\n configurableColumns: configurableColumns$ | async,\n loading: loading$ | async,\n prefillColumn: prefillColumn$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.configuredColumns\"\n [loading]=\"obs.loading || !fields\"\n [movingRowsEnabled]=\"true\"\n (itemsReordered)=\"onItemsReordered(obs.documentDefinitionName, $event)\"\n >\n <ng-container carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"addButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-column-modal\n [availableColumns]=\"obs.configurableColumns\"\n [configuredColumns]=\"obs.configuredColumns\"\n [definitionName]=\"obs.documentDefinitionName\"\n [prefillColumn]=\"obs.prefillColumn\"\n [type]=\"obs.columnModalType\"\n (closeModal)=\"onCloseModal($event)\"\n ></valtimo-documenten-api-column-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.columns.deleteText\"\n [outputOnConfirm]=\"columnToUpdate$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"confirmDeleteStatus($event, obs.documentDefinitionName)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'zgw.columns.add' | translate }}\n </button>\n</ng-template>\n\n<ng-template #columnKeyTemplate let-data=\"data\">\n {{ 'zgw.documentColumns.' + data.item.key | translate }}\n</ng-template>\n\n<ng-template #defaultSortTemplate let-data=\"data\">\n {{\n data.item.defaultSort === null\n ? '-'\n : ('interface.sorting.' + (data.item.defaultSort === 'ASC' ? 'ascending' : 'descending')\n | translate)\n }}\n</ng-template>\n", styles: ["::ng-deep .cds-tag--no-margin{margin:0}\n/*!\n * Copyright 2015-2024 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"] }]
565
+ }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: DocumentenApiColumnService }], propDecorators: { columnKeyTemplate: [{
566
+ type: ViewChild,
567
+ args: ['columnKeyTemplate']
568
+ }], defaultSortTemplate: [{
569
+ type: ViewChild,
570
+ args: ['defaultSortTemplate']
571
+ }] } });
572
+
573
+ /*
574
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
575
+ *
576
+ * Licensed under EUPL, Version 1.2 (the "License");
577
+ * you may not use this file except in compliance with the License.
578
+ * You may obtain a copy of the License at
579
+ *
580
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
581
+ *
582
+ * Unless required by applicable law or agreed to in writing, software
583
+ * distributed under the License is distributed on an "AS IS" basis,
584
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
585
+ * See the License for the specific language governing permissions and
586
+ * limitations under the License.
587
+ */
588
+
589
+ /*
590
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
591
+ *
592
+ * Licensed under EUPL, Version 1.2 (the "License");
593
+ * you may not use this file except in compliance with the License.
594
+ * You may obtain a copy of the License at
595
+ *
596
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
597
+ *
598
+ * Unless required by applicable law or agreed to in writing, software
599
+ * distributed under the License is distributed on an "AS IS" basis,
600
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
601
+ * See the License for the specific language governing permissions and
602
+ * limitations under the License.
603
+ */
604
+ var DOCUMENTEN_COLUMN_KEYS;
605
+ (function (DOCUMENTEN_COLUMN_KEYS) {
606
+ DOCUMENTEN_COLUMN_KEYS["AUTEUR"] = "auteur";
607
+ DOCUMENTEN_COLUMN_KEYS["BESCHRIJVING"] = "beschrijving";
608
+ DOCUMENTEN_COLUMN_KEYS["BESTANDSNAAM"] = "bestandsnaam";
609
+ DOCUMENTEN_COLUMN_KEYS["BESTANDSOMVANG"] = "bestandsomvang";
610
+ DOCUMENTEN_COLUMN_KEYS["BRONORGANISATIE"] = "bronorganisatie";
611
+ DOCUMENTEN_COLUMN_KEYS["CREATIEDATUM"] = "creatiedatum";
612
+ DOCUMENTEN_COLUMN_KEYS["FORMAAT"] = "formaat";
613
+ DOCUMENTEN_COLUMN_KEYS["IDENTIFICATIE"] = "identificatie";
614
+ DOCUMENTEN_COLUMN_KEYS["INFORMATIEOBJECTTYPE"] = "informatieobjecttype";
615
+ DOCUMENTEN_COLUMN_KEYS["LOCKED"] = "locked";
616
+ DOCUMENTEN_COLUMN_KEYS["STATUS"] = "status";
617
+ DOCUMENTEN_COLUMN_KEYS["TAAL"] = "taal";
618
+ DOCUMENTEN_COLUMN_KEYS["TITEL"] = "titel";
619
+ DOCUMENTEN_COLUMN_KEYS["TREFWOORDEN"] = "trefwoorden";
620
+ DOCUMENTEN_COLUMN_KEYS["VERSIE"] = "versie";
621
+ DOCUMENTEN_COLUMN_KEYS["VERTROUWELIJKHEIDAANDUIDING"] = "vertrouwelijkheidaanduiding";
622
+ DOCUMENTEN_COLUMN_KEYS["TAGS"] = "tags";
623
+ })(DOCUMENTEN_COLUMN_KEYS || (DOCUMENTEN_COLUMN_KEYS = {}));
624
+
625
+ /*
626
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
627
+ *
628
+ * Licensed under EUPL, Version 1.2 (the "License");
629
+ * you may not use this file except in compliance with the License.
630
+ * You may obtain a copy of the License at
631
+ *
632
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
633
+ *
634
+ * Unless required by applicable law or agreed to in writing, software
635
+ * distributed under the License is distributed on an "AS IS" basis,
636
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
637
+ * See the License for the specific language governing permissions and
638
+ * limitations under the License.
639
+ */
640
+ const COLUMN_VIEW_TYPES = {
641
+ [DOCUMENTEN_COLUMN_KEYS.CREATIEDATUM]: ViewType.DATE,
642
+ [DOCUMENTEN_COLUMN_KEYS.LOCKED]: ViewType.BOOLEAN,
643
+ [DOCUMENTEN_COLUMN_KEYS.TREFWOORDEN]: ViewType.TAGS,
644
+ [DOCUMENTEN_COLUMN_KEYS.STATUS]: ViewType.TEMPLATE,
645
+ [DOCUMENTEN_COLUMN_KEYS.TAAL]: ViewType.TEMPLATE,
646
+ [DOCUMENTEN_COLUMN_KEYS.VERTROUWELIJKHEIDAANDUIDING]: ViewType.TEMPLATE,
647
+ };
648
+
649
+ /*
650
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
651
+ *
652
+ * Licensed under EUPL, Version 1.2 (the "License");
653
+ * you may not use this file except in compliance with the License.
654
+ * You may obtain a copy of the License at
655
+ *
656
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
657
+ *
658
+ * Unless required by applicable law or agreed to in writing, software
659
+ * distributed under the License is distributed on an "AS IS" basis,
660
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
661
+ * See the License for the specific language governing permissions and
662
+ * limitations under the License.
663
+ */
664
+
665
+ /*
666
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
667
+ *
668
+ * Licensed under EUPL, Version 1.2 (the "License");
669
+ * you may not use this file except in compliance with the License.
670
+ * You may obtain a copy of the License at
671
+ *
672
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
673
+ *
674
+ * Unless required by applicable law or agreed to in writing, software
675
+ * distributed under the License is distributed on an "AS IS" basis,
676
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
677
+ * See the License for the specific language governing permissions and
678
+ * limitations under the License.
679
+ */
680
+
681
+ /*
682
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
683
+ *
684
+ * Licensed under EUPL, Version 1.2 (the "License");
685
+ * you may not use this file except in compliance with the License.
686
+ * You may obtain a copy of the License at
687
+ *
688
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
689
+ *
690
+ * Unless required by applicable law or agreed to in writing, software
691
+ * distributed under the License is distributed on an "AS IS" basis,
692
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
693
+ * See the License for the specific language governing permissions and
694
+ * limitations under the License.
695
+ */
696
+
697
+ /*
698
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
699
+ *
700
+ * Licensed under EUPL, Version 1.2 (the "License");
701
+ * you may not use this file except in compliance with the License.
702
+ * You may obtain a copy of the License at
703
+ *
704
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
705
+ *
706
+ * Unless required by applicable law or agreed to in writing, software
707
+ * distributed under the License is distributed on an "AS IS" basis,
708
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
709
+ * See the License for the specific language governing permissions and
710
+ * limitations under the License.
711
+ */
712
+
713
+ /*
714
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
715
+ *
716
+ * Licensed under EUPL, Version 1.2 (the "License");
717
+ * you may not use this file except in compliance with the License.
718
+ * You may obtain a copy of the License at
719
+ *
720
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
721
+ *
722
+ * Unless required by applicable law or agreed to in writing, software
723
+ * distributed under the License is distributed on an "AS IS" basis,
724
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
725
+ * See the License for the specific language governing permissions and
726
+ * limitations under the License.
727
+ */
728
+
729
+ class DocumentenApiFilterComponent {
730
+ constructor(documentService, fb, iconService, route, translateService, documentenApiTagService) {
731
+ this.documentService = documentService;
732
+ this.fb = fb;
733
+ this.iconService = iconService;
734
+ this.route = route;
735
+ this.translateService = translateService;
736
+ this.documentenApiTagService = documentenApiTagService;
737
+ this.filterEvent = new EventEmitter();
738
+ this._subscriptions = new Subscription();
739
+ this._confidentialityLevels = [
740
+ 'openbaar',
741
+ 'beperkt_openbaar',
742
+ 'intern',
743
+ 'zaakvertrouwelijk',
744
+ 'vertrouwelijk',
745
+ 'confidentieel',
746
+ 'geheim',
747
+ 'zeer_geheim',
748
+ ];
749
+ this._filter$ = this.route.queryParamMap.pipe(map(queryParams => {
750
+ let { sort, ...filter } = queryParams['params'];
751
+ if (this.formGroup) {
752
+ if (!!filter.trefwoorden) {
753
+ filter = { ...filter, trefwoorden: this.convertTrefwoordenParam(filter.trefwoorden) };
754
+ }
755
+ this.formGroup.patchValue(filter, { emitEvent: false });
574
756
  }
575
- }), switchMap(([documentDefinitionName]) => this.zgwDocumentColumnService.getConfiguredColumns(documentDefinitionName)), tap(statuses => {
576
- this._documentStatuses = statuses;
577
- this.usedKeys$.next(statuses.map(status => status.key));
578
- this.loading$.next(false);
757
+ return filter;
579
758
  }));
580
- this.fields$ = new BehaviorSubject([]);
581
- this.ACTION_ITEMS = [
582
- {
583
- label: 'interface.edit',
584
- callback: this.openEditModal.bind(this),
585
- type: 'normal',
586
- },
587
- {
588
- label: 'interface.delete',
589
- callback: this.openDeleteModal.bind(this),
590
- type: 'danger',
591
- },
592
- ];
593
- this.CARBON_THEME = 'g10';
594
- this.statusModalType$ = new BehaviorSubject('closed');
595
- this.prefillStatus$ = new BehaviorSubject(undefined);
596
- this.columnToUpdate$ = new BehaviorSubject(undefined);
597
- this.showDisableModal$ = new Subject();
598
- this._documentDefinitionName$.subscribe(documentDefinitionName => {
599
- zgwDocumentColumnService.getConfiguredColumns(documentDefinitionName).subscribe(configuredColumns => {
600
- console.log(configuredColumns);
601
- }, error => {
602
- console.error(error);
603
- });
759
+ this.confidentialityLevels$ = combineLatest([
760
+ this._filter$,
761
+ this.translateService.stream('key'),
762
+ ]).pipe(map(([filter]) => this._confidentialityLevels.map((confidentialityLevel) => ({
763
+ content: this.translateService.instant(`document.${confidentialityLevel}`),
764
+ selected: filter?.vertrouwelijkheidaanduiding === confidentialityLevel,
765
+ id: confidentialityLevel,
766
+ }))), startWith([]));
767
+ this.informationObjectTypes$ = this.route.paramMap.pipe(filter((paramMap) => !!paramMap.get('documentDefinitionName')), switchMap((paramMap) => combineLatest([
768
+ this.documentService.getDocumentTypes(paramMap.get('documentDefinitionName') ?? ''),
769
+ this._filter$,
770
+ ])), map(([types, filter]) => types.map((type) => ({
771
+ content: type.name,
772
+ selected: filter?.informatieobjecttype === type.url,
773
+ id: type.url,
774
+ }))), startWith([]));
775
+ this.tags$ = this.route.paramMap.pipe(filter((paramMap) => !!paramMap.get('documentDefinitionName')), switchMap((paramMap) => combineLatest([
776
+ this.documentenApiTagService.getTags(paramMap.get('documentDefinitionName') ?? ''),
777
+ this.route.queryParamMap,
778
+ ])), map(([tags, queryParamMap]) => {
779
+ const selectedTags = this.convertTrefwoordenParam(queryParamMap['params']?.trefwoorden).map((item) => item.content);
780
+ return tags.map((tag) => ({
781
+ content: tag.value,
782
+ selected: selectedTags.includes(tag.value),
783
+ }));
784
+ }), startWith([]));
785
+ this.formGroup = this.fb.group({
786
+ auteur: this.fb.control(''),
787
+ vertrouwelijkHeidaanduiding: this.fb.control({}),
788
+ creatiedatumFrom: this.fb.control(''),
789
+ creatiedatumTo: this.fb.control(''),
790
+ informatieObjectType: this.fb.control({}),
791
+ trefwoorden: this.fb.control([]),
792
+ titel: this.fb.control(''),
604
793
  });
794
+ this.iconService.register(TrashCan16);
605
795
  }
606
- ngAfterViewInit() {
607
- this.initFields();
608
- }
609
- openDeleteModal(status) {
610
- this.columnToUpdate$.next(status);
611
- this.showDisableModal$.next(true);
612
- }
613
- openEditModal(status) {
614
- this.prefillStatus$.next(status);
615
- this.statusModalType$.next('edit');
796
+ ngOnInit() {
797
+ this.openFormValueSubscription();
616
798
  }
617
- openAddModal() {
618
- this.statusModalType$.next('add');
799
+ ngOnDestroy() {
800
+ this._subscriptions.unsubscribe();
619
801
  }
620
- closeModal(closeModalEvent) {
621
- if (closeModalEvent === 'closeAndRefresh') {
622
- this.reload();
802
+ ngAfterViewInit() {
803
+ const creationDateFromControlValue = this.formGroup.get('creatiedatumFrom')?.value;
804
+ const creationDateToControlValue = this.formGroup.get('creatiedatumTo')?.value;
805
+ if (!!creationDateFromControlValue) {
806
+ this.creationDateFromPicker.writeValue([
807
+ flatpickr.formatDate(new Date(creationDateFromControlValue), 'd-m-Y'),
808
+ ]);
809
+ }
810
+ if (!!creationDateToControlValue) {
811
+ this.creationDateToPicker.writeValue([
812
+ flatpickr.formatDate(new Date(creationDateToControlValue), 'd-m-Y'),
813
+ ]);
623
814
  }
624
- this.statusModalType$.next('closed');
625
- }
626
- confirmDeleteStatus(status) {
627
- this.documentDefinitionName$
628
- .pipe(switchMap(documentDefinitionName => this.zgwDocumentColumnService.deleteConfiguredColumn(documentDefinitionName, status.key)))
629
- .subscribe(() => {
630
- this.reload();
631
- });
632
- }
633
- onMoveRowClick(event) {
634
- const { direction, index } = event;
635
- const orderedStatuses = direction === MoveRowDirection.UP
636
- ? this.swapStatuses(this._documentStatuses, index - 1, index)
637
- : this.swapStatuses(this._documentStatuses, index, index + 1);
638
- this.documentDefinitionName$
639
- .pipe(switchMap(documentDefinitionName => this.zgwDocumentColumnService.updateConfiguredColumns(documentDefinitionName, orderedStatuses)))
640
- .subscribe(() => {
641
- this.reload(true);
642
- });
643
815
  }
644
- reload(noAnimation = false) {
645
- this._reload$.next(noAnimation ? 'noAnimation' : null);
816
+ resetFilter() {
817
+ this.creationDateFromPicker.writeValue([]);
818
+ this.creationDateToPicker.writeValue([]);
819
+ this.formGroup.reset();
646
820
  }
647
- swapStatuses(statuses, index1, index2) {
648
- const temp = [...statuses];
649
- temp[index1] = temp.splice(index2, 1, temp[index1])[0];
650
- return temp;
821
+ onDateSelected(control, event) {
822
+ if (control === 'createdFrom') {
823
+ this.formGroup.get('creatiedatumFrom')?.patchValue(event);
824
+ return;
825
+ }
826
+ this.formGroup.get('creatiedatumTo')?.patchValue(event);
827
+ }
828
+ openFormValueSubscription() {
829
+ this._subscriptions.add(this.formGroup.valueChanges.pipe(debounceTime(500)).subscribe(formValue => {
830
+ this.filterEvent.emit({
831
+ ...(!!formValue.auteur && { auteur: formValue.auteur }),
832
+ ...(!!formValue.titel && { titel: formValue.titel }),
833
+ ...(!!formValue.creatiedatumFrom && {
834
+ creatiedatumFrom: flatpickr.formatDate(new Date(formValue.creatiedatumFrom), 'Y-m-d'),
835
+ }),
836
+ ...(!!formValue.creatiedatumTo && {
837
+ creatiedatumTo: flatpickr.formatDate(new Date(formValue.creatiedatumTo), 'Y-m-d'),
838
+ }),
839
+ ...(!!formValue.vertrouwelijkHeidaanduiding?.id && {
840
+ vertrouwelijkheidaanduiding: formValue.vertrouwelijkHeidaanduiding.id,
841
+ }),
842
+ ...(!!formValue.informatieObjectType?.id && {
843
+ informatieobjecttype: formValue.informatieObjectType.id,
844
+ }),
845
+ ...(!!formValue.trefwoorden &&
846
+ formValue.trefwoorden.length > 0 && {
847
+ trefwoorden: formValue.trefwoorden.reduce((acc, curr, index) => (index === 0 ? curr.content : `${acc},${curr.content}`), ''),
848
+ }),
849
+ });
850
+ }));
651
851
  }
652
- initFields() {
653
- this.fields$.next([
654
- {
655
- key: 'title',
656
- label: 'dossierManagement.statuses.columns.title',
657
- viewType: ViewType.TEXT,
658
- },
659
- {
660
- key: 'key',
661
- label: 'dossierManagement.statuses.columns.key',
662
- viewType: ViewType.TEXT,
663
- },
664
- {
665
- key: 'visibleInCaseListByDefault',
666
- label: 'dossierManagement.statuses.columns.visible',
667
- viewType: ViewType.BOOLEAN,
668
- },
669
- {
670
- viewType: ViewType.TEMPLATE,
671
- template: this.colorColumnTemplate,
672
- key: 'color',
673
- label: 'dossierManagement.statuses.columns.color',
674
- },
675
- ]);
852
+ convertTrefwoordenParam(stringArray) {
853
+ if (!stringArray)
854
+ return [];
855
+ const array = stringArray.split(',');
856
+ return array.map((content) => ({
857
+ content,
858
+ selected: true,
859
+ }));
676
860
  }
677
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: DocumentenApiColumnService }], target: i0.ɵɵFactoryTarget.Component }); }
678
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiColumnsComponent, isStandalone: true, selector: "valtimo-documenten-api-columns", viewQueries: [{ propertyName: "colorColumnTemplate", first: true, predicate: ["colorColumnTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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-carbon-list\n *ngIf=\"{\n loading: loading$ | async,\n documentStatuses: documentStatuses$ | async\n } as obs\"\n [fields]=\"fields$ | async\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [movingRowsEnabled]=\"true\"\n [actionItems]=\"ACTION_ITEMS\"\n (rowClicked)=\"openEditModal($event)\"\n (moveRow)=\"onMoveRowClick($event)\"\n>\n <ng-container\n carbonToolbarContent\n *ngTemplateOutlet=\"buttons; context: {obs: obs}\"\n ></ng-container>\n</valtimo-carbon-list>\n\n<valtimo-documenten-api-column-modal\n [type]=\"statusModalType$ | async\"\n [usedKeys]=\"usedKeys$ | async\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n (closeModalEvent)=\"closeModal($event)\"\n></valtimo-documenten-api-column-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.statuses.deleteText\"\n [outputOnConfirm]=\"columnToUpdate$ | async\"\n [showModalSubject$]=\"showDisableModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"confirmDeleteStatus($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #buttons let-obs=\"obs\">\n <div class=\"dossier-management-search-fields__buttons\">\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'dossierManagement.statuses.add' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #colorColumnTemplate let-data=\"data\">\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"data?.item?.tagType\">\n {{ 'interface.tagType.' + data?.item?.tagType | translate }}\n </cds-tag>\n</ng-template>\n", styles: ["::ng-deep .cds-tag--no-margin{margin:0}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "component", type: DocumentenApiColumnModalComponent, selector: "valtimo-documenten-api-column-modal", inputs: ["type", "prefill", "usedKeys", "documentDefinitionName"], outputs: ["closeModalEvent"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3$2.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i3$2.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i2.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
861
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiFilterComponent, deps: [{ token: i1$2.DocumentService }, { token: i5.FormBuilder }, { token: i9.IconService }, { token: i1$1.ActivatedRoute }, { token: i5$1.TranslateService }, { token: DocumentenApiTagService }], target: i0.ɵɵFactoryTarget.Component }); }
862
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiFilterComponent, isStandalone: true, selector: "valtimo-dossier-detail-tab-documenten-api-filter", outputs: { filterEvent: "filterEvent" }, viewQueries: [{ propertyName: "creationDateFromPicker", first: true, predicate: ["creationDateFrom"], descendants: true }, { propertyName: "creationDateToPicker", first: true, predicate: ["creationDateTo"], descendants: true }], ngImport: i0, template: "<div class=\"valtimo-documenten-api-filter\" (click)=\"$event.stopImmediatePropagation()\">\n <form\n *ngIf=\"{\n confidentialityLevels: confidentialityLevels$ | async,\n informationObjectTypes: informationObjectTypes$ | async,\n tags: tags$ | async\n } as obs\"\n class=\"valtimo-documenten-api-filter__form\"\n [formGroup]=\"formGroup\"\n >\n <cds-text-label>\n {{ 'zgw.documentColumns.titel' | translate }}\n\n <input cdsText formControlName=\"titel\" />\n </cds-text-label>\n\n <cds-dropdown\n [disabled]=\"!obs.informationObjectTypes?.length\"\n [dropUp]=\"false\"\n [label]=\"'zgw.documentColumns.informatieobjecttype' | translate\"\n formControlName=\"informatieObjectType\"\n >\n <cds-dropdown-list [items]=\"obs.informationObjectTypes\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-documenten-api-filter__dates\">\n <cds-date-picker\n #creationDateFrom\n [label]=\"'interface.labels.dateCreationFrom' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('createdFrom', $event)\"\n ></cds-date-picker>\n\n <cds-date-picker\n #creationDateTo\n [label]=\"'interface.labels.dateCreationTo' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('createdTo', $event)\"\n ></cds-date-picker>\n </div>\n\n <cds-text-label>\n {{ 'zgw.documentColumns.auteur' | translate }}\n\n <input cdsText formControlName=\"auteur\" />\n </cds-text-label>\n\n <cds-dropdown\n [dropUp]=\"false\"\n [label]=\"'zgw.documentColumns.vertrouwelijkheidaanduiding' | translate\"\n formControlName=\"vertrouwelijkHeidaanduiding\"\n >\n <cds-dropdown-list [items]=\"obs.confidentialityLevels\"></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-dropdown\n [label]=\"'zgw.documentColumns.trefwoorden' | translate\"\n formControlName=\"trefwoorden\"\n type=\"multi\"\n >\n <cds-dropdown-list [items]=\"obs.tags\"></cds-dropdown-list>\n </cds-dropdown>\n </form>\n\n <footer class=\"valtimo-documenten-api-filter__footer\">\n <button cdsButton=\"tertiary\" (click)=\"resetFilter()\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </footer>\n</div>\n", styles: [":host .valtimo-documenten-api-filter{display:flex;flex-direction:column;max-width:880px}:host .valtimo-documenten-api-filter__form{display:grid;grid-template-columns:repeat(3,1fr);align-items:flex-end;padding:16px;gap:16px}:host .valtimo-documenten-api-filter__dates{display:flex;gap:16px}:host .valtimo-documenten-api-filter__footer{display:flex;padding:0 16px 16px}::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important;padding:0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DatePickerInputModule }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i9.DatePicker, selector: "cds-date-picker, ibm-date-picker", inputs: ["range", "dateFormat", "language", "label", "helperText", "rangeHelperText", "rangeLabel", "placeholder", "ariaLabel", "inputPattern", "id", "value", "theme", "disabled", "invalid", "invalidText", "warn", "warnText", "size", "rangeInvalid", "rangeInvalidText", "rangeWarn", "rangeWarnText", "skeleton", "plugins", "flatpickrOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i9.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i9.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i9.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i9.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
679
863
  }
680
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnsComponent, decorators: [{
864
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiFilterComponent, decorators: [{
681
865
  type: Component,
682
- args: [{ selector: 'valtimo-documenten-api-columns', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
866
+ args: [{ selector: 'valtimo-dossier-detail-tab-documenten-api-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
683
867
  CommonModule,
684
- DocumentenApiColumnModalComponent,
685
- CarbonListModule,
686
- TranslateModule,
687
- ConfirmationModalModule,
688
- TagModule,
689
868
  ButtonModule,
690
- ], template: "<!--\n ~ Copyright 2015-2024 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-carbon-list\n *ngIf=\"{\n loading: loading$ | async,\n documentStatuses: documentStatuses$ | async\n } as obs\"\n [fields]=\"fields$ | async\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [movingRowsEnabled]=\"true\"\n [actionItems]=\"ACTION_ITEMS\"\n (rowClicked)=\"openEditModal($event)\"\n (moveRow)=\"onMoveRowClick($event)\"\n>\n <ng-container\n carbonToolbarContent\n *ngTemplateOutlet=\"buttons; context: {obs: obs}\"\n ></ng-container>\n</valtimo-carbon-list>\n\n<valtimo-documenten-api-column-modal\n [type]=\"statusModalType$ | async\"\n [usedKeys]=\"usedKeys$ | async\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n (closeModalEvent)=\"closeModal($event)\"\n></valtimo-documenten-api-column-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.statuses.deleteText\"\n [outputOnConfirm]=\"columnToUpdate$ | async\"\n [showModalSubject$]=\"showDisableModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"confirmDeleteStatus($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #buttons let-obs=\"obs\">\n <div class=\"dossier-management-search-fields__buttons\">\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'dossierManagement.statuses.add' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #colorColumnTemplate let-data=\"data\">\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"data?.item?.tagType\">\n {{ 'interface.tagType.' + data?.item?.tagType | translate }}\n </cds-tag>\n</ng-template>\n", styles: ["::ng-deep .cds-tag--no-margin{margin:0}\n/*!\n * Copyright 2015-2024 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"] }]
691
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: DocumentenApiColumnService }], propDecorators: { colorColumnTemplate: [{
869
+ DatePickerInputModule,
870
+ DatePickerModule,
871
+ DropdownModule,
872
+ IconModule,
873
+ InputModule,
874
+ TranslateModule,
875
+ ReactiveFormsModule,
876
+ ], template: "<div class=\"valtimo-documenten-api-filter\" (click)=\"$event.stopImmediatePropagation()\">\n <form\n *ngIf=\"{\n confidentialityLevels: confidentialityLevels$ | async,\n informationObjectTypes: informationObjectTypes$ | async,\n tags: tags$ | async\n } as obs\"\n class=\"valtimo-documenten-api-filter__form\"\n [formGroup]=\"formGroup\"\n >\n <cds-text-label>\n {{ 'zgw.documentColumns.titel' | translate }}\n\n <input cdsText formControlName=\"titel\" />\n </cds-text-label>\n\n <cds-dropdown\n [disabled]=\"!obs.informationObjectTypes?.length\"\n [dropUp]=\"false\"\n [label]=\"'zgw.documentColumns.informatieobjecttype' | translate\"\n formControlName=\"informatieObjectType\"\n >\n <cds-dropdown-list [items]=\"obs.informationObjectTypes\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-documenten-api-filter__dates\">\n <cds-date-picker\n #creationDateFrom\n [label]=\"'interface.labels.dateCreationFrom' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('createdFrom', $event)\"\n ></cds-date-picker>\n\n <cds-date-picker\n #creationDateTo\n [label]=\"'interface.labels.dateCreationTo' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('createdTo', $event)\"\n ></cds-date-picker>\n </div>\n\n <cds-text-label>\n {{ 'zgw.documentColumns.auteur' | translate }}\n\n <input cdsText formControlName=\"auteur\" />\n </cds-text-label>\n\n <cds-dropdown\n [dropUp]=\"false\"\n [label]=\"'zgw.documentColumns.vertrouwelijkheidaanduiding' | translate\"\n formControlName=\"vertrouwelijkHeidaanduiding\"\n >\n <cds-dropdown-list [items]=\"obs.confidentialityLevels\"></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-dropdown\n [label]=\"'zgw.documentColumns.trefwoorden' | translate\"\n formControlName=\"trefwoorden\"\n type=\"multi\"\n >\n <cds-dropdown-list [items]=\"obs.tags\"></cds-dropdown-list>\n </cds-dropdown>\n </form>\n\n <footer class=\"valtimo-documenten-api-filter__footer\">\n <button cdsButton=\"tertiary\" (click)=\"resetFilter()\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </footer>\n</div>\n", styles: [":host .valtimo-documenten-api-filter{display:flex;flex-direction:column;max-width:880px}:host .valtimo-documenten-api-filter__form{display:grid;grid-template-columns:repeat(3,1fr);align-items:flex-end;padding:16px;gap:16px}:host .valtimo-documenten-api-filter__dates{display:flex;gap:16px}:host .valtimo-documenten-api-filter__footer{display:flex;padding:0 16px 16px}::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important;padding:0!important}\n"] }]
877
+ }], ctorParameters: () => [{ type: i1$2.DocumentService }, { type: i5.FormBuilder }, { type: i9.IconService }, { type: i1$1.ActivatedRoute }, { type: i5$1.TranslateService }, { type: DocumentenApiTagService }], propDecorators: { creationDateFromPicker: [{
878
+ type: ViewChild,
879
+ args: ['creationDateFrom']
880
+ }], creationDateToPicker: [{
692
881
  type: ViewChild,
693
- args: ['colorColumnTemplate']
882
+ args: ['creationDateTo']
883
+ }], filterEvent: [{
884
+ type: Output
694
885
  }] } });
695
886
 
696
887
  /*
@@ -709,15 +900,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
709
900
  * limitations under the License.
710
901
  */
711
902
  class DocumentenApiMetadataModalComponent {
712
- constructor(modalService, translateService, route, documentService, keycloakService, valtimoModalService) {
713
- this.modalService = modalService;
714
- this.translateService = translateService;
903
+ get confidentialityLevelFormControl() {
904
+ return this.documentenApiMetadataForm.get('vertrouwelijkheidaanduiding');
905
+ }
906
+ get informatieobjecttypeFormControl() {
907
+ return this.documentenApiMetadataForm.get('informatieobjecttype');
908
+ }
909
+ get languageFormControl() {
910
+ return this.documentenApiMetadataForm.get('taal');
911
+ }
912
+ get statusFormControl() {
913
+ return this.documentenApiMetadataForm.get('status');
914
+ }
915
+ get tagFormControl() {
916
+ return this.documentenApiMetadataForm.get('trefwoorden');
917
+ }
918
+ constructor(route, documentService, documentenApiDocumentService, documentenApiTagService, fb, keycloakService, modalService, translateService, valtimoModalService) {
715
919
  this.route = route;
716
920
  this.documentService = documentService;
921
+ this.documentenApiDocumentService = documentenApiDocumentService;
922
+ this.documentenApiTagService = documentenApiTagService;
923
+ this.fb = fb;
717
924
  this.keycloakService = keycloakService;
925
+ this.modalService = modalService;
926
+ this.translateService = translateService;
718
927
  this.valtimoModalService = valtimoModalService;
719
928
  this.documentTitle = '';
929
+ this.open = false;
930
+ this.supportsTrefwoorden = false;
720
931
  this.metadata = new EventEmitter();
932
+ this.modalClose = new EventEmitter();
933
+ this.documentenApiMetadataForm = this.fb.group({
934
+ bestandsnaam: this.fb.control('', Validators.required),
935
+ titel: this.fb.control('', Validators.required),
936
+ auteur: this.fb.control('', Validators.required),
937
+ beschrijving: this.fb.control('', Validators.required),
938
+ taal: this.fb.control('', Validators.required),
939
+ informatieobjecttype: this.fb.control('', Validators.required),
940
+ status: this.fb.control('', Validators.required),
941
+ vertrouwelijkheidaanduiding: this.fb.control('', Validators.required),
942
+ creatiedatum: this.fb.control('', Validators.required),
943
+ ontvangstdatum: this.fb.control(''),
944
+ verzenddatum: this.fb.control(''),
945
+ trefwoorden: this.fb.control([]),
946
+ });
947
+ this.isDefinitiveStatus$ = new BehaviorSubject(false);
721
948
  this.CONFIDENTIALITY_LEVELS = [
722
949
  'openbaar',
723
950
  'beperkt_openbaar',
@@ -728,11 +955,13 @@ class DocumentenApiMetadataModalComponent {
728
955
  'geheim',
729
956
  'zeer_geheim',
730
957
  ];
731
- this.confidentialityLevelItems$ = this.translateService
732
- .stream('key')
733
- .pipe(map(() => this.CONFIDENTIALITY_LEVELS.map(confidentialityLevel => ({
958
+ this.confidentialityLevelItems$ = combineLatest([
959
+ this.confidentialityLevelFormControl.valueChanges.pipe(startWith(this.confidentialityLevelFormControl.value)),
960
+ this.translateService.stream('key'),
961
+ ]).pipe(map(([currentConfidentialityLevel]) => this.CONFIDENTIALITY_LEVELS.map(confidentialityLevel => ({
734
962
  id: confidentialityLevel,
735
- text: this.translateService.instant(`document.${confidentialityLevel}`),
963
+ content: this.translateService.instant(`document.${confidentialityLevel}`),
964
+ selected: currentConfidentialityLevel === confidentialityLevel,
736
965
  }))));
737
966
  this.ADDITONAL_DOCUMENT_DATE_OPTIONS = [
738
967
  {
@@ -760,157 +989,251 @@ class DocumentenApiMetadataModalComponent {
760
989
  this.formData$ = new BehaviorSubject(null);
761
990
  this.statusItems$ = combineLatest([
762
991
  this.additionalDocumentDate$,
992
+ this.statusFormControl.valueChanges.pipe(startWith(this.statusFormControl.value)),
763
993
  this.translateService.stream('key'),
764
- ]).pipe(tap$1(([additionalDocumentDate]) => {
994
+ ]).pipe(tap$1(([additionalDocumentDate, currentStatus]) => {
765
995
  this.formData$.pipe(take(1)).subscribe(formData => {
766
996
  if (additionalDocumentDate === 'received' &&
767
997
  (formData.status === 'in_bewerking' || formData.status === 'ter_vaststelling')) {
768
998
  this.clearStatusSelection$.next(null);
769
999
  }
770
1000
  });
771
- }), map(([additionalDocumentDate]) => (additionalDocumentDate === 'received' ? this.RECEIPT_STATUSES : this.STATUSES).map(status => ({
1001
+ }), map(([additionalDocumentDate, currentStatus]) => (additionalDocumentDate === 'received' ? this.RECEIPT_STATUSES : this.STATUSES).map(status => ({
772
1002
  id: status,
773
- text: this.translateService.instant(`document.${status}`),
1003
+ content: this.translateService.instant(`document.${status}`),
1004
+ selected: currentStatus === status,
774
1005
  }))));
775
- this.LANGUAGES = ['nld', 'eng', 'deu'];
776
- this.languageItems$ = this.translateService.stream('key').pipe(map(() => this.LANGUAGES.map(language => ({
777
- id: language,
778
- text: this.translateService.instant(`document.${language}`),
1006
+ this.documentDefinitionName$ = from(this.route.params.pipe(map(params => params?.documentDefinitionName)));
1007
+ this.tagItems$ = combineLatest([
1008
+ this.documentDefinitionName$,
1009
+ this.tagFormControl.valueChanges.pipe(startWith(this.tagFormControl.value)),
1010
+ ]).pipe(filter(([documentDefinitionName]) => !!documentDefinitionName), switchMap(([documentDefinitionName, tagFormControlValue]) => combineLatest([
1011
+ this.documentenApiTagService.getTags(documentDefinitionName),
1012
+ of(tagFormControlValue),
1013
+ ])), map(([tags, tagFormControlValue]) => tags.map(tag => ({
1014
+ id: tag.value,
1015
+ content: tag.value,
1016
+ selected: !!tagFormControlValue ? tagFormControlValue.includes(tag.value) : false,
779
1017
  }))));
1018
+ this.LANGUAGES = ['nld', 'eng', 'deu'];
1019
+ this.languageItems$ = combineLatest([
1020
+ this.languageFormControl.valueChanges.pipe(startWith(this.languageFormControl.value)),
1021
+ this.translateService.stream('key'),
1022
+ ]).pipe(map(([currentLanguage]) => {
1023
+ return this.LANGUAGES.map((language) => ({
1024
+ content: this.translateService.instant(`document.${language}`),
1025
+ id: language,
1026
+ selected: currentLanguage === language,
1027
+ }));
1028
+ }));
780
1029
  this.documentTypeItems$ = combineLatest([
781
1030
  this.route?.params || of(null),
782
1031
  this.route?.firstChild?.params || of(null),
783
1032
  this.valtimoModalService.documentDefinitionName$,
1033
+ this.informatieobjecttypeFormControl.valueChanges.pipe(startWith(this.informatieobjecttypeFormControl.value)),
784
1034
  ]).pipe(filter(([params, firstChildParams, documentDefinitionName]) => !!(params?.documentDefinitionName ||
785
1035
  firstChildParams?.documentDefinitionName ||
786
- documentDefinitionName)), switchMap(([params, firstChildParams, documentDefinitionName]) => this.documentService.getDocumentTypes(params?.documentDefinitionName ||
787
- firstChildParams?.documentDefinitionName ||
788
- documentDefinitionName)), map(documentTypes => documentTypes.map(type => ({ id: type.url, text: type.name }))));
789
- this.showForm$ = this.modalService.modalVisible$;
790
- this.valid$ = new BehaviorSubject(false);
1036
+ documentDefinitionName)), switchMap(([params, firstChildParams, documentDefinitionName, informatieobjecttypeValue]) => combineLatest([
1037
+ this.documentService.getDocumentTypes(params?.documentDefinitionName ||
1038
+ firstChildParams?.documentDefinitionName ||
1039
+ documentDefinitionName),
1040
+ of(informatieobjecttypeValue),
1041
+ ])), map(([documentTypes, informatieobjecttypeValue]) => documentTypes.map((type) => ({
1042
+ id: type.url,
1043
+ content: type.name,
1044
+ selected: informatieobjecttypeValue === type.url,
1045
+ }))));
791
1046
  this.userEmail$ = from(this.keycloakService.loadUserProfile()).pipe(map(userProfile => userProfile?.email || ''));
1047
+ this.modalSize = 'lg';
1048
+ this._subscriptions = new Subscription();
792
1049
  }
793
1050
  ngOnInit() {
794
- this.openShowSubscription();
795
- this.openHideSubscription();
1051
+ this.openFileSubscription();
1052
+ }
1053
+ ngOnChanges() {
1054
+ this.openFileSubscription();
796
1055
  }
797
1056
  ngOnDestroy() {
798
- this.showSubscription?.unsubscribe();
799
- this.hideSubscription?.unsubscribe();
1057
+ this._subscriptions.unsubscribe();
1058
+ this.isDefinitiveStatus$.next(false);
800
1059
  }
801
- hide() {
802
- this.formData$.next(null);
803
- this.valid$.next(false);
804
- this.additionalDocumentDate$.next('neither');
805
- this.modalService.closeModal();
1060
+ languageSelected(event) {
1061
+ if (event.item.id) {
1062
+ this.documentenApiMetadataForm.patchValue({
1063
+ taal: event.item.id,
1064
+ });
1065
+ }
1066
+ }
1067
+ tagsSelected(event) {
1068
+ this.tagFormControl.patchValue(event.filter(tag => tag.selected).map(tag => tag.id));
1069
+ }
1070
+ confidentialityLevelSelected(event) {
1071
+ if (event.item.id) {
1072
+ this.documentenApiMetadataForm.patchValue({
1073
+ vertrouwelijkheidaanduiding: event.item.id,
1074
+ });
1075
+ }
1076
+ }
1077
+ statusSelected(event) {
1078
+ if (event.item.id) {
1079
+ this.documentenApiMetadataForm.patchValue({
1080
+ status: event.item.id,
1081
+ });
1082
+ }
1083
+ }
1084
+ informatieobjecttypeSelected(event) {
1085
+ if (event.item.id) {
1086
+ this.documentenApiMetadataForm.patchValue({
1087
+ informatieobjecttype: event.item.id,
1088
+ });
1089
+ }
806
1090
  }
807
- cancel() {
808
- this.hide();
1091
+ prefillForm(file) {
1092
+ this.prefillFilenameAndAuthor();
1093
+ if (file) {
1094
+ const { bestandsnaam, titel, auteur, beschrijving, taal, informatieobjecttype, status, vertrouwelijkheidaanduiding, creatiedatum, ontvangstdatum, verzenddatum, trefwoorden, } = file;
1095
+ if (verzenddatum)
1096
+ this.additionalDocumentDate$.next('sent');
1097
+ else if (ontvangstdatum)
1098
+ this.additionalDocumentDate$.next('received');
1099
+ else
1100
+ this.additionalDocumentDate$.next('neither');
1101
+ this.documentenApiMetadataForm.patchValue({
1102
+ bestandsnaam,
1103
+ titel,
1104
+ auteur,
1105
+ beschrijving,
1106
+ taal,
1107
+ informatieobjecttype,
1108
+ status,
1109
+ vertrouwelijkheidaanduiding,
1110
+ creatiedatum,
1111
+ ontvangstdatum,
1112
+ verzenddatum,
1113
+ trefwoorden,
1114
+ });
1115
+ }
809
1116
  }
810
1117
  save() {
811
- combineLatest([this.valid$, this.formData$])
812
- .pipe(take(1))
813
- .subscribe(([valid, formData]) => {
814
- if (valid) {
815
- this.metadata.emit(formData);
816
- }
817
- });
1118
+ this.formatDate('creatiedatum');
1119
+ this.formatDate('verzenddatum');
1120
+ this.formatDate('ontvangstdatum');
1121
+ if (this.documentenApiMetadataForm.valid)
1122
+ this.metadata.emit(this.documentenApiMetadataForm.value);
1123
+ this.closeModal();
1124
+ }
1125
+ closeModal() {
1126
+ this.additionalDocumentDate$.next('neither');
1127
+ this.modalClose.emit();
1128
+ this.clearForm();
1129
+ }
1130
+ clearForm() {
1131
+ this.documentenApiMetadataForm.reset();
1132
+ }
1133
+ prefillFilenameAndAuthor() {
1134
+ this._subscriptions.add(combineLatest([this.file$, this.userEmail$])
1135
+ .pipe(tap$1(([file, userEmail]) => {
1136
+ this.documentenApiMetadataForm.patchValue({
1137
+ bestandsnaam: file?.name || file?.bestandsnaam,
1138
+ auteur: userEmail,
1139
+ });
1140
+ }))
1141
+ .subscribe());
1142
+ }
1143
+ formatDate(controlName) {
1144
+ const control = this.documentenApiMetadataForm.controls[controlName];
1145
+ if (control.value) {
1146
+ const date = new Date(control.value);
1147
+ this.documentenApiMetadataForm.patchValue({
1148
+ [controlName]: `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`,
1149
+ });
1150
+ }
818
1151
  }
819
- formValueChange(data) {
820
- this.formData$.next(data);
821
- this.setValid(data);
1152
+ openFileSubscription() {
1153
+ this._fileSubscription?.unsubscribe();
1154
+ if (this.file$) {
1155
+ this._fileSubscription = this.file$.subscribe(file => {
1156
+ if (file) {
1157
+ this.prefillForm(file);
1158
+ this.isDefinitiveStatus$.next(file.status === 'definitief' && this.isEditMode ? true : false);
1159
+ }
1160
+ });
1161
+ }
822
1162
  }
823
1163
  setAdditionalDate(value) {
824
1164
  this.additionalDocumentDate$.next(value);
825
1165
  }
826
- setValid(data) {
827
- this.valid$.next(!!(data.filename &&
828
- data.title &&
829
- data.author &&
830
- data.creationDate &&
831
- data.status &&
832
- data.language &&
833
- data.informatieobjecttype &&
834
- data.description &&
835
- data.confidentialityLevel));
836
- }
837
- openShowSubscription() {
838
- this.showSubscription = this.show$.subscribe(() => {
839
- this.modalService.openModal(this.documentenApiMetadataModal);
840
- });
841
- }
842
- openHideSubscription() {
843
- this.hideSubscription = this.hide$.subscribe(() => {
844
- this.hide();
845
- });
846
- }
847
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiMetadataModalComponent, deps: [{ token: i3$2.ModalService }, { token: i3$1.TranslateService }, { token: i1$1.ActivatedRoute }, { token: i3.DocumentService }, { token: i5$1.KeycloakService }, { token: i3$2.ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component }); }
848
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiMetadataModalComponent, isStandalone: true, selector: "valtimo-documenten-api-metadata-modal", inputs: { show$: "show$", hide$: "hide$", disabled$: "disabled$", file$: "file$", documentTitle: "documentTitle", disableDocumentTitle: "disableDocumentTitle", filename: "filename", disableFilename: "disableFilename", author: "author", disableAuthor: "disableAuthor", status: "status", disableStatus: "disableStatus", language: "language", disableLanguage: "disableLanguage", documentType: "documentType", disableDocumentType: "disableDocumentType", description: "description", disableDescription: "disableDescription", confidentialityLevel: "confidentialityLevel", disableConfidentialityLevel: "disableConfidentialityLevel", trefwoorden: "trefwoorden", disableTrefwoorden: "disableTrefwoorden" }, outputs: { metadata: "metadata" }, viewQueries: [{ propertyName: "documentenApiMetadataModal", first: true, predicate: ["documentenApiMetadataModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<v-modal\n #documentenApiMetadataModal\n (closeEvent)=\"hide()\"\n *ngIf=\"{file: file$ | async, disabled: disabled$ | async, valid: valid$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"edit-configuration-title\">\n <v-title [center]=\"true\" [fullWidth]=\"true\" [margin]=\"false\" type=\"h2\">{{\n 'document.fillInMetadata' | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">{{\n 'document.cancel' | translate\n }}</v-button>\n <v-button\n (clickEvent)=\"save()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"upload\"\n type=\"success\"\n >{{ 'document.upload' | translate }}</v-button\n >\n </div>\n </div>\n</v-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"additionalDocumentDate$ | async as additionalDate\"\n >\n <v-input\n [defaultValue]=\"filename || obs.file?.name\"\n [disabled]=\"obs.disabled || disableFilename\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.filename' | translate\"\n [tooltip]=\"'document.filenameTooltip' | translate\"\n name=\"filename\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"documentTitle\"\n [disabled]=\"obs.disabled || disableDocumentTitle\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.inputTitle' | translate\"\n [tooltip]=\"'document.inputTitleTooltip' | translate\"\n [widthPx]=\"400\"\n name=\"title\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"author || (userEmail$ | async)\"\n [disabled]=\"obs.disabled || disableAuthor\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.author' | translate\"\n [tooltip]=\"'document.authorTooltip' | translate\"\n [widthPx]=\"300\"\n name=\"author\"\n >\n </v-input>\n <v-select\n *ngIf=\"languageItems$ | async as languageItems\"\n [defaultSelectionId]=\"language || languageItems[0].id\"\n [disabled]=\"obs.disabled || disableLanguage\"\n [items]=\"languageItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.language' | translate\"\n [tooltip]=\"'document.languageTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"language\"\n ></v-select>\n <ng-container *ngIf=\"{documentTypeItems: documentTypeItems$ | async} as obs\">\n <v-select\n [defaultSelectionId]=\"documentType\"\n [disabled]=\"obs.disabled || disableDocumentType\"\n [items]=\"obs.documentTypeItems\"\n [loading]=\"!obs.documentTypeItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.informatieobjecttype' | translate\"\n [tooltip]=\"'document.informatieobjecttypeTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"informatieobjecttype\"\n ></v-select>\n </ng-container>\n <v-date-picker\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.creationDate' | translate\"\n [tooltip]=\"'document.creationDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"creationDate\"\n ></v-date-picker>\n <ng-container\n *ngTemplateOutlet=\"additionalDatePicker; context: {additionalDate: additionalDate}\"\n ></ng-container>\n <v-date-picker\n *ngIf=\"additionalDate === 'received'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.receiptDate' | translate\"\n [tooltip]=\"'document.receiptDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"receiptDate\"\n ></v-date-picker>\n <v-date-picker\n *ngIf=\"additionalDate === 'sent'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.sendDate' | translate\"\n [tooltip]=\"'document.sendDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"sendDate\"\n ></v-date-picker>\n <v-select\n [defaultSelectionId]=\"status\"\n [disabled]=\"obs.disabled || disableStatus\"\n [items]=\"statusItems$ | async\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.status' | translate\"\n [tooltip]=\"'document.statusTooltip' | translate\"\n [widthInPx]=\"200\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n name=\"status\"\n ></v-select>\n <v-input\n [defaultValue]=\"description\"\n [disabled]=\"obs.disabled || disableDescription\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [title]=\"'document.inputDescription' | translate\"\n [tooltip]=\"'document.inputDescriptionTooltip' | translate\"\n [required]=\"true\"\n name=\"description\"\n >\n </v-input>\n <v-select\n [defaultSelectionId]=\"confidentialityLevel\"\n [disabled]=\"obs.disabled || disableConfidentialityLevel\"\n [items]=\"confidentialityLevelItems$ | async\"\n [margin]=\"true\"\n [title]=\"'document.confidentialityLevel' | translate\"\n [tooltip]=\"'document.confidentialityLevelTooltip' | translate\"\n [widthInPx]=\"200\"\n [required]=\"true\"\n name=\"confidentialityLevel\"\n ></v-select>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template #additionalDatePicker let-additionalDate=\"additionalDate\">\n <v-input-label\n [title]=\"'document.additionalDate' | translate\"\n [name]=\"'additionalDate'\"\n [tooltip]=\"'document.additionalDateTooltip' | translate\"\n [required]=\"true\"\n >\n </v-input-label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1 additional-date\">\n <label\n class=\"custom-control custom-radio custom-control-inline\"\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n (click)=\"setAdditionalDate(option.value)\"\n >\n <input\n class=\"custom-control-input\"\n type=\"radio\"\n name=\"radio-inline\"\n [checked]=\"additionalDate === option.value\"\n /><span class=\"custom-control-label\">{{ option.translationKey | translate }}</span>\n </label>\n </div>\n</ng-template>\n", styles: [".buttons{display:flex;flex-direction:row;width:100%;justify-content:space-between}.additional-date{padding:0;width:100%;max-width:100%;margin:0;margin-block-end:var(--v-input-margin)}.additional-date .custom-control{margin-bottom:0}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: VModalModule }, { kind: "component", type: i3$2.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: TitleModule }, { kind: "component", type: i3$2.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "ngmodule", type: ButtonModule$1 }, { kind: "component", type: i3$2.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: FormModule }, { kind: "component", type: i3$2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i3$2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder"], outputs: ["valueChange"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i3$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i3$2.DatePickerComponent, selector: "v-date-picker", inputs: ["name", "title", "titleTranslationKey", "widthPx", "fullWidth", "margin", "disabled", "tooltip", "required", "defaultDate", "defaultDateIsToday", "smallLabel", "clear$", "enableTime", "carbonTheme"], outputs: ["valueChange"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i3$2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }] }); }
1166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiMetadataModalComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$2.DocumentService }, { token: DocumentenApiDocumentService }, { token: DocumentenApiTagService }, { token: i5.FormBuilder }, { token: i6.KeycloakService }, { token: i3.ModalService }, { token: i5$1.TranslateService }, { token: i3.ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component }); }
1167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DocumentenApiMetadataModalComponent, isStandalone: true, selector: "valtimo-documenten-api-metadata-modal", inputs: { disabled$: "disabled$", file$: "file$", author: "author", confidentialityLevel: "confidentialityLevel", description: "description", disableAuthor: "disableAuthor", disableConfidentialityLevel: "disableConfidentialityLevel", disableDescription: "disableDescription", disableDocumentTitle: "disableDocumentTitle", disableDocumentType: "disableDocumentType", disableFilename: "disableFilename", disableLanguage: "disableLanguage", disableStatus: "disableStatus", documentTitle: "documentTitle", documentType: "documentType", disableTrefwoorden: "disableTrefwoorden", filename: "filename", isEditMode: "isEditMode", language: "language", open: "open", status: "status", supportsTrefwoorden: "supportsTrefwoorden" }, outputs: { metadata: "metadata", modalClose: "modalClose" }, usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-modal\n #documentenApiMetadataModal\n [open]=\"open\"\n [size]=\"modalSize\"\n *ngIf=\"{\n file: file$ | async,\n disabled: disabled$ | async,\n isDefinitiveStatus: isDefinitiveStatus$ | async,\n languageItems: languageItems$ | async,\n statusItems: statusItems$ | async,\n tagItems: tagItems$ | async,\n userEmail: userEmail$ | async\n } as obs\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n @if (isEditMode) {\n <h3 cdsModalHeaderHeading>\n {{ 'document.editMetadata' | translate }}\n </h3>\n } @else {\n <h3 cdsModalHeaderHeading>\n {{ 'document.fillInMetadata' | translate }}\n </h3>\n }\n </cds-modal-header>\n <section cdsModalContent class=\"cds--modal-content\">\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n </section>\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'document.cancel' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"obs.disabled || !documentenApiMetadataForm.valid || obs.isDefinitiveStatus\"\n (click)=\"save()\"\n >\n {{ 'document.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <ng-container>\n <form\n *ngIf=\"additionalDocumentDate$ | async as additionalDate\"\n [formGroup]=\"documentenApiMetadataForm\"\n >\n <div class=\"documenten-metadata-form-columns-container\">\n <div class=\"documenten-metadata-form-column\">\n <cds-text-label class=\"documenten-metada-form-input\">\n {{ 'document.filename' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.filenameTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <input\n [value]=\"filename\"\n [disabled]=\"obs.disabled || disableFilename\"\n [placeholder]=\"'document.filenamePlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n type=\"text\"\n id=\"bestandsnaam\"\n formControlName=\"bestandsnaam\"\n />\n </cds-text-label>\n <cds-text-label class=\"documenten-metada-form-input\">\n {{ 'document.author' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.authorTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <input\n [value]=\"author\"\n [disabled]=\"obs.disabled || disableAuthor\"\n [placeholder]=\"'document.authorPlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n id=\"auteur\"\n formControlName=\"auteur\"\n />\n </cds-text-label>\n <cds-text-label>\n {{ 'document.language' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.languageTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n *ngIf=\"obs.languageItems\"\n [placeholder]=\"'document.languagePlaceholder' | translate\"\n [disabled]=\"obs.disabled || disableLanguage\"\n id=\"language\"\n (selected)=\"languageSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.languageItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n <cds-label>\n {{ 'document.confidentialityLevel' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.confidentialityLevelTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n [placeholder]=\"'document.confidentialityPlaceholder' | translate\"\n [disabled]=\"obs.disabled || disableConfidentialityLevel\"\n id=\"vertrouwelijkheidaanduiding\"\n (selected)=\"confidentialityLevelSelected($event)\"\n >\n <cds-dropdown-list [items]=\"confidentialityLevelItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n <ng-container *ngIf=\"{documentTypeItems: documentTypeItems$ | async} as obs\">\n <cds-label>\n {{ 'document.informatieobjecttype' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.informatieobjecttypeTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n [placeholder]=\"'document.informatieobjecttypePlaceholder' | translate\"\n [disabled]=\"obs.disabled || disableDocumentType\"\n id=\"informatieobjecttype\"\n (selected)=\"informatieobjecttypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.documentTypeItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n </ng-container>\n <cds-text-label name=\"'additionalDate'\">\n {{ 'document.additionalDate' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.additionalDateTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <cds-radio-group [orientation]=\"'horizontal'\" class=\"documenten-metada-form-input\">\n <cds-radio\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n [value]=\"option.value\"\n [checked]=\"additionalDate === option.value\"\n [required]=\"true\"\n (click)=\"setAdditionalDate(option.value)\"\n name=\"radio-inline\"\n >\n {{ option.translationKey | translate }}\n </cds-radio>\n </cds-radio-group>\n @if (supportsTrefwoorden) {\n <cds-text-label>\n {{ 'document.tags' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.tagsTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <div class=\"documenten-metada-form-input\">\n <cds-combo-box\n [type]=\"'multi'\"\n [placeholder]=\"'document.tagsPlaceholder' | translate\"\n [disabled]=\"obs.disabled || obs.tagItems.length === 0\"\n (selected)=\"tagsSelected($event)\"\n >\n >\n <cds-dropdown-list [items]=\"obs.tagItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n }\n </div>\n\n <div class=\"documenten-metadata-form-column\">\n <cds-text-label>\n {{ 'document.inputTitle' | translate }}\n <input\n [disabled]=\"obs.disabled || disableDocumentTitle\"\n [placeholder]=\"'document.inputTitlePlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n class=\"documenten-metada-form-input\"\n id=\"titel\"\n formControlName=\"titel\"\n />\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.inputTitleTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <cds-textarea-label>\n {{ 'document.inputDescription' | translate }}\n <textarea\n [disabled]=\"obs.disabled || disableDescription\"\n [placeholder]=\"'document.inputDescriptionPlaceholder' | translate\"\n [required]=\"true\"\n [rows]=\"5\"\n cdsTextArea\n class=\"documenten-metada-form-description-input documenten-metada-form-input\"\n id=\"beschrijving\"\n formControlName=\"beschrijving\"\n ></textarea>\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.inputDescriptionTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-textarea-label>\n <cds-label>\n {{ 'document.creationDate' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.creationDateTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <div class=\"documenten-metada-form-input\">\n <cds-date-picker\n [disabled]=\"obs.disabled\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"creatiedatum\"\n formControlName=\"creatiedatum\"\n >\n </cds-date-picker>\n </div>\n </cds-label>\n <cds-label>\n {{ 'document.status' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.statusTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n [placeholder]=\"'document.statusPlaceholder' | translate\"\n [disabled]=\"obs.disabled || disableStatus\"\n id=\"status\"\n (selected)=\"statusSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.statusItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n <cds-date-picker\n *ngIf=\"additionalDate === 'received'\"\n [disabled]=\"obs.disabled\"\n [label]=\"'document.additionalDate' | translate\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"ontvangstdatum\"\n formControlName=\"ontvangstdatum\"\n ></cds-date-picker>\n <cds-date-picker\n *ngIf=\"additionalDate === 'sent'\"\n [disabled]=\"obs.disabled\"\n [label]=\"'document.additionalDate' | translate\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"verzenddatum\"\n formControlName=\"verzenddatum\"\n ></cds-date-picker>\n </div>\n </div>\n </form>\n </ng-container>\n</ng-template>\n", styles: [".documenten-metadata-form-columns-container{display:flex;justify-content:space-between}.documenten-metadata-form-column{flex:1;margin-right:1rem}.documenten-metada-form-input{margin-bottom:18px!important;width:100%!important}.documenten-metada-form-description-input{width:100%}::ng-deep .cds--date-picker,::ng-deep .cds--date-picker-container,::ng-deep .cds--date-picker__input,::ng-deep .cds--date-picker-input__wrapper,::ng-deep .cds--date-picker-input__wrapper>span{width:100%}::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:100%}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: ButtonModule }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i9.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i9.TextareaLabelComponent, selector: "cds-textarea-label, ibm-textarea-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textAreaTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i9.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i9.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "directive", type: i9.TextArea, selector: "[cdsTextArea], [ibmTextArea]", inputs: ["theme", "invalid", "skeleton"] }, { kind: "ngmodule", type: ComboBoxModule }, { kind: "component", type: i9.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "items", "type", "size", "itemValueKey", "label", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i9.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i9.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i9.DatePicker, selector: "cds-date-picker, ibm-date-picker", inputs: ["range", "dateFormat", "language", "label", "helperText", "rangeHelperText", "rangeLabel", "placeholder", "ariaLabel", "inputPattern", "id", "value", "theme", "disabled", "invalid", "invalidText", "warn", "warnText", "size", "rangeInvalid", "rangeInvalidText", "rangeWarn", "rangeWarnText", "skeleton", "plugins", "flatpickrOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "ngmodule", type: IconModule }, { kind: "ngmodule", type: InputLabelModule }, { kind: "ngmodule", type: InputModule$1 }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: RadioModule }, { kind: "component", type: i9.Radio, selector: "cds-radio, ibm-radio", inputs: ["checked", "name", "disabled", "labelPlacement", "ariaLabelledby", "ariaLabel", "required", "value", "skeleton", "id"], outputs: ["change"] }, { kind: "component", type: i9.RadioGroup, selector: "cds-radio-group, ibm-radio-group", inputs: ["selected", "value", "name", "disabled", "skeleton", "orientation", "labelPlacement", "legend", "ariaLabel", "ariaLabelledby", "helperText", "invalid", "invalidText", "warn", "warnText"], outputs: ["change"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: SelectModule }, { kind: "ngmodule", type: TagModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "component", type: i9.Tooltip, selector: "cds-tooltip, ibm-tooltip", inputs: ["id", "enterDelayMs", "leaveDelayMs", "disabled", "description"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] }); }
849
1168
  }
850
1169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiMetadataModalComponent, decorators: [{
851
1170
  type: Component,
852
1171
  args: [{ selector: 'valtimo-documenten-api-metadata-modal', standalone: true, imports: [
1172
+ ButtonModule,
1173
+ InputModule,
1174
+ ComboBoxModule,
853
1175
  CommonModule,
854
- TranslateModule,
855
- VModalModule,
856
- TitleModule,
857
- ButtonModule$1,
858
- TranslateModule,
859
- FormModule,
860
- InputModule$1,
861
- SelectModule,
862
1176
  DatePickerModule,
1177
+ DropdownModule,
1178
+ IconModule,
863
1179
  InputLabelModule,
864
- ], template: "<!--\n ~ Copyright 2015-2024 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<v-modal\n #documentenApiMetadataModal\n (closeEvent)=\"hide()\"\n *ngIf=\"{file: file$ | async, disabled: disabled$ | async, valid: valid$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"edit-configuration-title\">\n <v-title [center]=\"true\" [fullWidth]=\"true\" [margin]=\"false\" type=\"h2\">{{\n 'document.fillInMetadata' | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">{{\n 'document.cancel' | translate\n }}</v-button>\n <v-button\n (clickEvent)=\"save()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"upload\"\n type=\"success\"\n >{{ 'document.upload' | translate }}</v-button\n >\n </div>\n </div>\n</v-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"additionalDocumentDate$ | async as additionalDate\"\n >\n <v-input\n [defaultValue]=\"filename || obs.file?.name\"\n [disabled]=\"obs.disabled || disableFilename\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.filename' | translate\"\n [tooltip]=\"'document.filenameTooltip' | translate\"\n name=\"filename\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"documentTitle\"\n [disabled]=\"obs.disabled || disableDocumentTitle\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.inputTitle' | translate\"\n [tooltip]=\"'document.inputTitleTooltip' | translate\"\n [widthPx]=\"400\"\n name=\"title\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"author || (userEmail$ | async)\"\n [disabled]=\"obs.disabled || disableAuthor\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.author' | translate\"\n [tooltip]=\"'document.authorTooltip' | translate\"\n [widthPx]=\"300\"\n name=\"author\"\n >\n </v-input>\n <v-select\n *ngIf=\"languageItems$ | async as languageItems\"\n [defaultSelectionId]=\"language || languageItems[0].id\"\n [disabled]=\"obs.disabled || disableLanguage\"\n [items]=\"languageItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.language' | translate\"\n [tooltip]=\"'document.languageTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"language\"\n ></v-select>\n <ng-container *ngIf=\"{documentTypeItems: documentTypeItems$ | async} as obs\">\n <v-select\n [defaultSelectionId]=\"documentType\"\n [disabled]=\"obs.disabled || disableDocumentType\"\n [items]=\"obs.documentTypeItems\"\n [loading]=\"!obs.documentTypeItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.informatieobjecttype' | translate\"\n [tooltip]=\"'document.informatieobjecttypeTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"informatieobjecttype\"\n ></v-select>\n </ng-container>\n <v-date-picker\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.creationDate' | translate\"\n [tooltip]=\"'document.creationDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"creationDate\"\n ></v-date-picker>\n <ng-container\n *ngTemplateOutlet=\"additionalDatePicker; context: {additionalDate: additionalDate}\"\n ></ng-container>\n <v-date-picker\n *ngIf=\"additionalDate === 'received'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.receiptDate' | translate\"\n [tooltip]=\"'document.receiptDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"receiptDate\"\n ></v-date-picker>\n <v-date-picker\n *ngIf=\"additionalDate === 'sent'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.sendDate' | translate\"\n [tooltip]=\"'document.sendDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"sendDate\"\n ></v-date-picker>\n <v-select\n [defaultSelectionId]=\"status\"\n [disabled]=\"obs.disabled || disableStatus\"\n [items]=\"statusItems$ | async\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.status' | translate\"\n [tooltip]=\"'document.statusTooltip' | translate\"\n [widthInPx]=\"200\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n name=\"status\"\n ></v-select>\n <v-input\n [defaultValue]=\"description\"\n [disabled]=\"obs.disabled || disableDescription\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [title]=\"'document.inputDescription' | translate\"\n [tooltip]=\"'document.inputDescriptionTooltip' | translate\"\n [required]=\"true\"\n name=\"description\"\n >\n </v-input>\n <v-select\n [defaultSelectionId]=\"confidentialityLevel\"\n [disabled]=\"obs.disabled || disableConfidentialityLevel\"\n [items]=\"confidentialityLevelItems$ | async\"\n [margin]=\"true\"\n [title]=\"'document.confidentialityLevel' | translate\"\n [tooltip]=\"'document.confidentialityLevelTooltip' | translate\"\n [widthInPx]=\"200\"\n [required]=\"true\"\n name=\"confidentialityLevel\"\n ></v-select>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template #additionalDatePicker let-additionalDate=\"additionalDate\">\n <v-input-label\n [title]=\"'document.additionalDate' | translate\"\n [name]=\"'additionalDate'\"\n [tooltip]=\"'document.additionalDateTooltip' | translate\"\n [required]=\"true\"\n >\n </v-input-label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1 additional-date\">\n <label\n class=\"custom-control custom-radio custom-control-inline\"\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n (click)=\"setAdditionalDate(option.value)\"\n >\n <input\n class=\"custom-control-input\"\n type=\"radio\"\n name=\"radio-inline\"\n [checked]=\"additionalDate === option.value\"\n /><span class=\"custom-control-label\">{{ option.translationKey | translate }}</span>\n </label>\n </div>\n</ng-template>\n", styles: [".buttons{display:flex;flex-direction:row;width:100%;justify-content:space-between}.additional-date{padding:0;width:100%;max-width:100%;margin:0;margin-block-end:var(--v-input-margin)}.additional-date .custom-control{margin-bottom:0}\n/*!\n * Copyright 2015-2024 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"] }]
865
- }], ctorParameters: () => [{ type: i3$2.ModalService }, { type: i3$1.TranslateService }, { type: i1$1.ActivatedRoute }, { type: i3.DocumentService }, { type: i5$1.KeycloakService }, { type: i3$2.ValtimoModalService }], propDecorators: { documentenApiMetadataModal: [{
866
- type: ViewChild,
867
- args: ['documentenApiMetadataModal']
868
- }], show$: [{
869
- type: Input
870
- }], hide$: [{
871
- type: Input
872
- }], disabled$: [{
1180
+ InputModule$1,
1181
+ ModalModule,
1182
+ RadioModule,
1183
+ ReactiveFormsModule,
1184
+ SelectModule,
1185
+ TagModule,
1186
+ TooltipModule,
1187
+ TranslateModule,
1188
+ ], template: "<!--\n ~ Copyright 2015-2024 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<cds-modal\n #documentenApiMetadataModal\n [open]=\"open\"\n [size]=\"modalSize\"\n *ngIf=\"{\n file: file$ | async,\n disabled: disabled$ | async,\n isDefinitiveStatus: isDefinitiveStatus$ | async,\n languageItems: languageItems$ | async,\n statusItems: statusItems$ | async,\n tagItems: tagItems$ | async,\n userEmail: userEmail$ | async\n } as obs\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n @if (isEditMode) {\n <h3 cdsModalHeaderHeading>\n {{ 'document.editMetadata' | translate }}\n </h3>\n } @else {\n <h3 cdsModalHeaderHeading>\n {{ 'document.fillInMetadata' | translate }}\n </h3>\n }\n </cds-modal-header>\n <section cdsModalContent class=\"cds--modal-content\">\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n </section>\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'document.cancel' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"obs.disabled || !documentenApiMetadataForm.valid || obs.isDefinitiveStatus\"\n (click)=\"save()\"\n >\n {{ 'document.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <ng-container>\n <form\n *ngIf=\"additionalDocumentDate$ | async as additionalDate\"\n [formGroup]=\"documentenApiMetadataForm\"\n >\n <div class=\"documenten-metadata-form-columns-container\">\n <div class=\"documenten-metadata-form-column\">\n <cds-text-label class=\"documenten-metada-form-input\">\n {{ 'document.filename' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.filenameTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <input\n [value]=\"filename\"\n [disabled]=\"obs.disabled || disableFilename\"\n [placeholder]=\"'document.filenamePlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n type=\"text\"\n id=\"bestandsnaam\"\n formControlName=\"bestandsnaam\"\n />\n </cds-text-label>\n <cds-text-label class=\"documenten-metada-form-input\">\n {{ 'document.author' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.authorTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <input\n [value]=\"author\"\n [disabled]=\"obs.disabled || disableAuthor\"\n [placeholder]=\"'document.authorPlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n id=\"auteur\"\n formControlName=\"auteur\"\n />\n </cds-text-label>\n <cds-text-label>\n {{ 'document.language' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.languageTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n *ngIf=\"obs.languageItems\"\n [placeholder]=\"'document.languagePlaceholder' | translate\"\n [disabled]=\"obs.disabled || disableLanguage\"\n id=\"language\"\n (selected)=\"languageSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.languageItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n <cds-label>\n {{ 'document.confidentialityLevel' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.confidentialityLevelTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n [placeholder]=\"'document.confidentialityPlaceholder' | translate\"\n [disabled]=\"obs.disabled || disableConfidentialityLevel\"\n id=\"vertrouwelijkheidaanduiding\"\n (selected)=\"confidentialityLevelSelected($event)\"\n >\n <cds-dropdown-list [items]=\"confidentialityLevelItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n <ng-container *ngIf=\"{documentTypeItems: documentTypeItems$ | async} as obs\">\n <cds-label>\n {{ 'document.informatieobjecttype' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.informatieobjecttypeTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n [placeholder]=\"'document.informatieobjecttypePlaceholder' | translate\"\n [disabled]=\"obs.disabled || disableDocumentType\"\n id=\"informatieobjecttype\"\n (selected)=\"informatieobjecttypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.documentTypeItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n </ng-container>\n <cds-text-label name=\"'additionalDate'\">\n {{ 'document.additionalDate' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.additionalDateTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <cds-radio-group [orientation]=\"'horizontal'\" class=\"documenten-metada-form-input\">\n <cds-radio\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n [value]=\"option.value\"\n [checked]=\"additionalDate === option.value\"\n [required]=\"true\"\n (click)=\"setAdditionalDate(option.value)\"\n name=\"radio-inline\"\n >\n {{ option.translationKey | translate }}\n </cds-radio>\n </cds-radio-group>\n @if (supportsTrefwoorden) {\n <cds-text-label>\n {{ 'document.tags' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.tagsTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <div class=\"documenten-metada-form-input\">\n <cds-combo-box\n [type]=\"'multi'\"\n [placeholder]=\"'document.tagsPlaceholder' | translate\"\n [disabled]=\"obs.disabled || obs.tagItems.length === 0\"\n (selected)=\"tagsSelected($event)\"\n >\n >\n <cds-dropdown-list [items]=\"obs.tagItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n }\n </div>\n\n <div class=\"documenten-metadata-form-column\">\n <cds-text-label>\n {{ 'document.inputTitle' | translate }}\n <input\n [disabled]=\"obs.disabled || disableDocumentTitle\"\n [placeholder]=\"'document.inputTitlePlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n class=\"documenten-metada-form-input\"\n id=\"titel\"\n formControlName=\"titel\"\n />\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.inputTitleTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <cds-textarea-label>\n {{ 'document.inputDescription' | translate }}\n <textarea\n [disabled]=\"obs.disabled || disableDescription\"\n [placeholder]=\"'document.inputDescriptionPlaceholder' | translate\"\n [required]=\"true\"\n [rows]=\"5\"\n cdsTextArea\n class=\"documenten-metada-form-description-input documenten-metada-form-input\"\n id=\"beschrijving\"\n formControlName=\"beschrijving\"\n ></textarea>\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.inputDescriptionTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-textarea-label>\n <cds-label>\n {{ 'document.creationDate' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.creationDateTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <div class=\"documenten-metada-form-input\">\n <cds-date-picker\n [disabled]=\"obs.disabled\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"creatiedatum\"\n formControlName=\"creatiedatum\"\n >\n </cds-date-picker>\n </div>\n </cds-label>\n <cds-label>\n {{ 'document.status' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.statusTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n [placeholder]=\"'document.statusPlaceholder' | translate\"\n [disabled]=\"obs.disabled || disableStatus\"\n id=\"status\"\n (selected)=\"statusSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.statusItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n <cds-date-picker\n *ngIf=\"additionalDate === 'received'\"\n [disabled]=\"obs.disabled\"\n [label]=\"'document.additionalDate' | translate\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"ontvangstdatum\"\n formControlName=\"ontvangstdatum\"\n ></cds-date-picker>\n <cds-date-picker\n *ngIf=\"additionalDate === 'sent'\"\n [disabled]=\"obs.disabled\"\n [label]=\"'document.additionalDate' | translate\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"verzenddatum\"\n formControlName=\"verzenddatum\"\n ></cds-date-picker>\n </div>\n </div>\n </form>\n </ng-container>\n</ng-template>\n", styles: [".documenten-metadata-form-columns-container{display:flex;justify-content:space-between}.documenten-metadata-form-column{flex:1;margin-right:1rem}.documenten-metada-form-input{margin-bottom:18px!important;width:100%!important}.documenten-metada-form-description-input{width:100%}::ng-deep .cds--date-picker,::ng-deep .cds--date-picker-container,::ng-deep .cds--date-picker__input,::ng-deep .cds--date-picker-input__wrapper,::ng-deep .cds--date-picker-input__wrapper>span{width:100%}::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:100%}\n/*!\n * Copyright 2015-2024 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"] }]
1189
+ }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1$2.DocumentService }, { type: DocumentenApiDocumentService }, { type: DocumentenApiTagService }, { type: i5.FormBuilder }, { type: i6.KeycloakService }, { type: i3.ModalService }, { type: i5$1.TranslateService }, { type: i3.ValtimoModalService }], propDecorators: { disabled$: [{
873
1190
  type: Input
874
1191
  }], file$: [{
875
1192
  type: Input
876
- }], documentTitle: [{
1193
+ }], author: [{
877
1194
  type: Input
878
- }], disableDocumentTitle: [{
1195
+ }], confidentialityLevel: [{
879
1196
  type: Input
880
- }], filename: [{
1197
+ }], description: [{
881
1198
  type: Input
882
- }], disableFilename: [{
1199
+ }], disableAuthor: [{
883
1200
  type: Input
884
- }], author: [{
1201
+ }], disableConfidentialityLevel: [{
885
1202
  type: Input
886
- }], disableAuthor: [{
1203
+ }], disableDescription: [{
887
1204
  type: Input
888
- }], status: [{
1205
+ }], disableDocumentTitle: [{
889
1206
  type: Input
890
- }], disableStatus: [{
1207
+ }], disableDocumentType: [{
891
1208
  type: Input
892
- }], language: [{
1209
+ }], disableFilename: [{
893
1210
  type: Input
894
1211
  }], disableLanguage: [{
895
1212
  type: Input
1213
+ }], disableStatus: [{
1214
+ type: Input
1215
+ }], documentTitle: [{
1216
+ type: Input
896
1217
  }], documentType: [{
897
1218
  type: Input
898
- }], disableDocumentType: [{
1219
+ }], disableTrefwoorden: [{
899
1220
  type: Input
900
- }], description: [{
1221
+ }], filename: [{
901
1222
  type: Input
902
- }], disableDescription: [{
1223
+ }], isEditMode: [{
903
1224
  type: Input
904
- }], confidentialityLevel: [{
1225
+ }], language: [{
905
1226
  type: Input
906
- }], disableConfidentialityLevel: [{
1227
+ }], open: [{
907
1228
  type: Input
908
- }], trefwoorden: [{
1229
+ }], status: [{
909
1230
  type: Input
910
- }], disableTrefwoorden: [{
1231
+ }], supportsTrefwoorden: [{
911
1232
  type: Input
912
1233
  }], metadata: [{
913
1234
  type: Output
1235
+ }], modalClose: [{
1236
+ type: Output
914
1237
  }] } });
915
1238
 
916
1239
  /*
@@ -929,7 +1252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
929
1252
  * limitations under the License.
930
1253
  */
931
1254
  class DossierDetailTabDocumentenApiDocumentsComponent {
932
- constructor(route, router, uploadProviderService, downloadService, translateService, configService, userProviderService, fileSortService, iconService, documentenApiDocumentService) {
1255
+ constructor(route, router, uploadProviderService, downloadService, translateService, configService, userProviderService, iconService, documentenApiDocumentService, documentenApiColumnService, documentenApiVersionService) {
933
1256
  this.route = route;
934
1257
  this.router = router;
935
1258
  this.uploadProviderService = uploadProviderService;
@@ -937,110 +1260,129 @@ class DossierDetailTabDocumentenApiDocumentsComponent {
937
1260
  this.translateService = translateService;
938
1261
  this.configService = configService;
939
1262
  this.userProviderService = userProviderService;
940
- this.fileSortService = fileSortService;
941
1263
  this.iconService = iconService;
942
1264
  this.documentenApiDocumentService = documentenApiDocumentService;
1265
+ this.documentenApiColumnService = documentenApiColumnService;
1266
+ this.documentenApiVersionService = documentenApiVersionService;
1267
+ this._documentDefinitionName$ = this.route.params.pipe(map$1(params => params?.documentDefinitionName), filter$1(caseDefinitionName => !!caseDefinitionName));
1268
+ this.supportedDocumentenApiFeatures$ = new BehaviorSubject(null);
1269
+ this._supportedDocumentenApiFeatures$ = this._documentDefinitionName$.pipe(switchMap$1(caseDefinitionName => this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionName)), tap$1(supportedDocumentenApiFeatures => this.supportedDocumentenApiFeatures$.next(supportedDocumentenApiFeatures)));
1270
+ this.fields$ = this._documentDefinitionName$.pipe(tap$1(() => this.fieldsLoading$.next(true)), switchMap$1(documentDefinitionName => combineLatest([
1271
+ this.documentenApiColumnService.getConfiguredColumns(documentDefinitionName),
1272
+ this._supportedDocumentenApiFeatures$,
1273
+ ])), map$1(([columns, supportedDocumentenApiFeatures]) => {
1274
+ const defaultSortColumn = columns.find((column) => !!column.defaultSort);
1275
+ if (!!defaultSortColumn && supportedDocumentenApiFeatures.supportsSortableColumns) {
1276
+ this._sort$.next({ sort: `${defaultSortColumn.key},${defaultSortColumn.defaultSort}` });
1277
+ }
1278
+ return columns.map((column) => ({
1279
+ key: column.key === DOCUMENTEN_COLUMN_KEYS.BESTANDSOMVANG ? 'size' : column.key,
1280
+ label: `zgw.documentColumns.${column.key}`,
1281
+ viewType: !COLUMN_VIEW_TYPES[column.key] ? ViewType.TEXT : COLUMN_VIEW_TYPES[column.key],
1282
+ ...(COLUMN_VIEW_TYPES[column.key] === ViewType.TEMPLATE && {
1283
+ template: this.translationTemplate,
1284
+ templateData: { key: column.key },
1285
+ }),
1286
+ ...(column.key === DOCUMENTEN_COLUMN_KEYS.CREATIEDATUM && { format: 'DD-MM-YYYY' }),
1287
+ sortable: column.sortable && supportedDocumentenApiFeatures.supportsSortableColumns,
1288
+ }));
1289
+ }), tap$1(() => this.fieldsLoading$.next(false)));
943
1290
  this.actionItems = [
944
1291
  {
945
1292
  label: 'document.download',
946
1293
  callback: this.onDownloadActionClick.bind(this),
947
1294
  type: 'normal',
948
1295
  },
1296
+ {
1297
+ label: 'document.edit',
1298
+ callback: this.onEditMetadata.bind(this),
1299
+ disabledCallback: this.editDisabled.bind(this),
1300
+ type: 'normal',
1301
+ },
949
1302
  {
950
1303
  label: 'document.delete',
951
1304
  callback: this.onDeleteActionClick.bind(this),
952
1305
  type: 'danger',
953
1306
  },
954
1307
  ];
955
- this.fieldsConfig = [
956
- // TODO: Refactor this once admin page config is implemented
957
- 'title',
958
- 'fileName',
959
- 'format',
960
- 'size',
961
- 'description',
962
- 'createdOn',
963
- 'createdBy',
964
- 'author',
965
- 'informatieobjecttype',
966
- 'actions',
967
- ];
968
- this._documentDefinitionName$ = this.route.params.pipe(map$1(params => params?.documentDefinitionName), filter$1(documentDefinitionName => !!documentDefinitionName));
969
- this._documentId$ = this.route.params.pipe(map$1(params => params?.documentId), filter$1(documentId => !!documentId));
1308
+ this.documentDefinitionName$ = this.route.params.pipe(map$1(params => params?.documentDefinitionName), filter$1(documentDefinitionName => !!documentDefinitionName));
1309
+ this.documentId$ = this.route.params.pipe(map$1(params => params?.documentId), filter$1(documentId => !!documentId));
1310
+ this.initialSortState$ = this.route.queryParamMap.pipe(map$1(params => params['params']), map$1(params => {
1311
+ if (!!params['sort']) {
1312
+ const paramsSplit = params['sort'].split(',');
1313
+ const state = {
1314
+ name: paramsSplit[0],
1315
+ direction: paramsSplit[1],
1316
+ };
1317
+ return {
1318
+ isSorting: true,
1319
+ state,
1320
+ };
1321
+ }
1322
+ return null;
1323
+ }));
970
1324
  this.uploadProcessLinkedSet = false;
1325
+ this.isEditMode$ = new BehaviorSubject(false);
971
1326
  this.acceptedFiles = this.configService?.config?.caseFileUploadAcceptedFiles || null;
972
1327
  this.maxFileSize = this.configService?.config?.caseFileSizeUploadLimitMB || 5;
973
1328
  this.fileToBeUploaded$ = new BehaviorSubject(null);
974
- this.hideModal$ = new Subject();
975
1329
  this.modalDisabled$ = new BehaviorSubject(false);
976
1330
  this.showModal$ = new Subject();
1331
+ this.showUploadModal$ = new BehaviorSubject(false);
1332
+ this.showDeleteConfirmationModal$ = new BehaviorSubject(false);
977
1333
  this.uploading$ = new BehaviorSubject(false);
978
- this.loading$ = new BehaviorSubject(true);
1334
+ this._itemsLoading$ = new BehaviorSubject(true);
1335
+ this.fieldsLoading$ = new BehaviorSubject(true);
1336
+ this.loading$ = combineLatest([this._itemsLoading$, this.fieldsLoading$]).pipe(map$1(([itemsLoading, fieldsLoading]) => itemsLoading || fieldsLoading));
1337
+ this.filter$ = new ReplaySubject();
979
1338
  this._refetch$ = new BehaviorSubject(null);
1339
+ this._sort$ = new ReplaySubject();
980
1340
  this.relatedFiles$ = combineLatest([
981
- this._documentId$,
1341
+ this.documentId$,
1342
+ this.route.queryParamMap,
982
1343
  this._refetch$,
983
- ]).pipe(tap$1(() => this.loading$.next(true)), switchMap$1(([documentId]) => combineLatest([
984
- this.documentenApiDocumentService.getZakenApiDocuments(documentId),
1344
+ ]).pipe(tap$1(() => this._itemsLoading$.next(true)), switchMap$1(([documentId, queryParams]) => combineLatest([
1345
+ this.documentenApiDocumentService.getFilteredZakenApiDocuments(documentId, queryParams['params']),
985
1346
  this.translateService.stream('key'),
986
1347
  ])), map$1(([relatedFiles]) => {
987
- const translatedFiles = relatedFiles?.map(file => ({
1348
+ const translatedFiles = relatedFiles?.content?.map(file => ({
988
1349
  ...file,
989
1350
  createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),
990
- language: this.translateService.instant(`document.${file.language}`),
991
- confidentialityLevel: this.translateService.instant(`document.${file.confidentialityLevel}`),
992
- status: this.translateService.instant(`document.${file.status}`),
993
- format: this.translateService.instant(`document.${file.format}`),
1351
+ size: this.bytesToMegabytes(file.bestandsomvang),
1352
+ tags: file.trefwoorden?.map((trefwoord) => ({
1353
+ content: trefwoord,
1354
+ })),
994
1355
  }));
995
1356
  return translatedFiles || [];
996
- }), map$1(relatedFiles => this.fileSortService.sortRelatedFilesByDateDescending(relatedFiles)), map$1(relatedFiles => {
997
- moment.locale(this.translateService.currentLang);
998
- return relatedFiles.map(file => ({
999
- ...file,
1000
- createdOn: moment(new Date(file.createdOn)).format('L'),
1001
- size: `${this.bytesToMegabytes(file.sizeInBytes)}`,
1002
- }));
1003
1357
  }), tap$1(() => {
1004
- this.loading$.next(false);
1358
+ this._itemsLoading$.next(false);
1005
1359
  }), catchError(() => {
1006
1360
  this.showZaakLinkWarning = true;
1007
- this.loading$.next(false);
1361
+ this._itemsLoading$.next(false);
1008
1362
  return of([]);
1009
1363
  }));
1364
+ this.iconService.register(Filter16);
1010
1365
  }
1011
1366
  ngOnInit() {
1012
- this.refetchDocuments();
1367
+ this.setInitialFilterAndSort();
1368
+ this.openQueryParamsSubscription();
1013
1369
  this.setUploadProcessLinked();
1014
1370
  this.isUserAdmin();
1015
1371
  this.iconService.registerAll([Filter16, TagGroup16, Upload16]);
1016
1372
  }
1017
- ngAfterViewInit() {
1018
- const fieldOptions = [
1019
- { key: 'title', label: 'document.inputTitle' },
1020
- { key: 'description', label: 'document.inputDescription' },
1021
- { key: 'fileName', label: 'document.filename' },
1022
- {
1023
- viewType: ViewType.TEMPLATE,
1024
- label: 'document.size',
1025
- key: 'size',
1026
- template: this.sizeTemplate,
1027
- },
1028
- { key: 'format', label: 'document.format' },
1029
- { key: 'createdOn', label: 'document.createdOn' },
1030
- { key: 'createdBy', label: 'document.createdBy' },
1031
- { key: 'author', label: 'document.author' },
1032
- { key: 'keywords', label: 'document.trefwoorden' },
1033
- { key: 'informatieobjecttype', label: 'document.informatieobjecttype' },
1034
- { key: 'language', label: 'document.language' },
1035
- { key: 'identification', label: 'document.id' },
1036
- { key: 'confidentialityLevel', label: 'document.confidentialityLevel' },
1037
- { key: 'receiptDate', label: 'document.receiptDate' },
1038
- { key: 'sendDate', label: 'document.sendDate' },
1039
- { key: 'status', label: 'document.status' },
1040
- ];
1041
- this.fields = [...this.getFields(fieldOptions, this.fieldsConfig)];
1373
+ onDeleteActionClick(item) {
1374
+ this.document = item;
1375
+ this.showDeleteConfirmationModal$.next(true);
1376
+ }
1377
+ deleteDocument() {
1378
+ this._itemsLoading$.next(true);
1379
+ this.documentenApiDocumentService.deleteDocument(this.document).subscribe(() => {
1380
+ this.refetchDocuments();
1381
+ });
1042
1382
  }
1043
1383
  bytesToMegabytes(bytes) {
1384
+ if (!bytes)
1385
+ return '';
1044
1386
  const megabytes = bytes / (1024 * 1024);
1045
1387
  if (megabytes < 1) {
1046
1388
  return `${Math.ceil(megabytes * 1000)} KB`;
@@ -1062,44 +1404,56 @@ class DossierDetailTabDocumentenApiDocumentsComponent {
1062
1404
  isUserAdmin() {
1063
1405
  this.userProviderService.getUserSubject().subscribe(userIdentity => {
1064
1406
  this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');
1065
- }, error => {
1407
+ }, () => {
1066
1408
  this.isAdmin = false;
1067
1409
  });
1068
1410
  }
1069
1411
  metadataSet(metadata) {
1070
1412
  this.uploading$.next(true);
1071
- this.hideModal$.next(null);
1072
- combineLatest([this.fileToBeUploaded$, this._documentId$])
1413
+ combineLatest([this.fileToBeUploaded$, this.documentId$])
1073
1414
  .pipe(take$1(1))
1074
1415
  .pipe(tap$1(([file, documentId]) => {
1075
1416
  if (!file)
1076
1417
  return;
1077
- this.uploadProviderService
1078
- .uploadFileWithMetadata(file, documentId, metadata)
1079
- .subscribe(() => {
1080
- this.refetchDocuments();
1081
- this.uploading$.next(false);
1082
- this.fileToBeUploaded$.next(null);
1083
- });
1418
+ if (this.isEditMode$.getValue()) {
1419
+ this.documentenApiDocumentService.updateDocument(file, metadata).subscribe(() => {
1420
+ this.refetchDocuments();
1421
+ this.uploading$.next(false);
1422
+ this.fileToBeUploaded$.next(null);
1423
+ });
1424
+ }
1425
+ else {
1426
+ this.uploadProviderService
1427
+ .uploadFileWithMetadata(file, documentId, metadata)
1428
+ .subscribe(() => {
1429
+ this.refetchDocuments();
1430
+ this.filter$.next(null);
1431
+ this.uploading$.next(false);
1432
+ this.fileToBeUploaded$.next(null);
1433
+ });
1434
+ }
1084
1435
  }))
1085
1436
  .subscribe();
1086
1437
  }
1087
- onDeleteActionClick(item) {
1088
- this.loading$.next(true);
1089
- this.documentenApiDocumentService.deleteDocument(item).subscribe(() => {
1090
- // TODO: Use refetchDocuments() or should we just remove the document from relatedFiles$?
1091
- this.refetchDocuments();
1092
- });
1093
- }
1094
1438
  onDownloadActionClick(file) {
1095
1439
  this.downloadDocument(file, true);
1096
1440
  }
1441
+ onEditMetadata(file) {
1442
+ this.isEditMode$.next(true);
1443
+ this.fileToBeUploaded$.next(file);
1444
+ this.showUploadModal$.next(true);
1445
+ }
1446
+ closeMetadataModal() {
1447
+ this.showUploadModal$.next(false);
1448
+ }
1097
1449
  onFileSelected(event) {
1450
+ this.isEditMode$.next(false);
1098
1451
  this.fileToBeUploaded$.next(event.target.files[0]);
1099
- this.showModal$.next(null);
1452
+ this.showUploadModal$.next(true);
1453
+ this.resetFileInput();
1100
1454
  }
1101
1455
  onNavigateToCaseAdminClick() {
1102
- this._documentDefinitionName$.pipe(take$1(1)).subscribe(documentDefinitionName => {
1456
+ this.documentDefinitionName$.pipe(take$1(1)).subscribe(documentDefinitionName => {
1103
1457
  this.router.navigate([`/dossier-management/dossier/${documentDefinitionName}`]);
1104
1458
  });
1105
1459
  }
@@ -1109,17 +1463,42 @@ class DossierDetailTabDocumentenApiDocumentsComponent {
1109
1463
  onUploadButtonClick() {
1110
1464
  this.fileInput.nativeElement.click();
1111
1465
  }
1466
+ onFilterEvent(filter) {
1467
+ this.filter$.next(filter);
1468
+ }
1469
+ onSortChanged(sortState) {
1470
+ this._sort$.next(sortState.isSorting
1471
+ ? {
1472
+ sort: `${sortState.state.name === 'size' ? DOCUMENTEN_COLUMN_KEYS.BESTANDSOMVANG : sortState.state.name},${sortState.state.direction}`,
1473
+ }
1474
+ : null);
1475
+ }
1112
1476
  refetchDocuments() {
1113
1477
  this._refetch$.next(null);
1114
1478
  }
1479
+ editDisabled(file) {
1480
+ return file.status === 'definitief';
1481
+ }
1115
1482
  downloadDocument(relatedFile, forceDownload) {
1116
- this.downloadService.downloadFile(`/api/v1/documenten-api/${relatedFile.pluginConfigurationId}/files/${relatedFile.fileId}/download`, relatedFile.fileName, forceDownload);
1483
+ this.downloadService.downloadFile(`/api/v1/documenten-api/${relatedFile.pluginConfigurationId}/files/${relatedFile.fileId}/download`, relatedFile.bestandsnaam ?? '', forceDownload);
1484
+ }
1485
+ openQueryParamsSubscription() {
1486
+ combineLatest([
1487
+ this.documentDefinitionName$,
1488
+ this.documentId$,
1489
+ this.filter$,
1490
+ this._sort$,
1491
+ ]).subscribe(([definitionName, documentId, filter, sort]) => {
1492
+ this.router.navigate([`/dossiers/${definitionName}/document/${documentId}/documents`], {
1493
+ queryParams: { ...filter, ...sort },
1494
+ });
1495
+ });
1117
1496
  }
1118
- getFields(fieldOptions, fieldsConfig) {
1119
- return fieldOptions.filter(fieldOption => fieldsConfig.includes(fieldOption.key));
1497
+ resetFileInput() {
1498
+ this.fileInput.nativeElement.value = '';
1120
1499
  }
1121
1500
  setUploadProcessLinked() {
1122
- this._documentDefinitionName$
1501
+ this.documentDefinitionName$
1123
1502
  .pipe(switchMap$1(documentDefinitionName => this.uploadProviderService.checkUploadProcessLink(documentDefinitionName)), take$1(1), tap$1(() => {
1124
1503
  this.uploadProcessLinkedSet = true;
1125
1504
  }))
@@ -1127,8 +1506,19 @@ class DossierDetailTabDocumentenApiDocumentsComponent {
1127
1506
  this.uploadProcessLinked = linked;
1128
1507
  });
1129
1508
  }
1130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabDocumentenApiDocumentsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2$2.UploadProviderService }, { token: i2$2.DownloadService }, { token: i3$1.TranslateService }, { token: i2$1.ConfigService }, { token: i5$2.UserProviderService }, { token: i3.FileSortService }, { token: i2.IconService }, { token: DocumentenApiDocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
1131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DossierDetailTabDocumentenApiDocumentsComponent, isStandalone: true, selector: "valtimo-dossier-detail-tab-documenten-api-documents", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "sizeTemplate", first: true, predicate: ["sizeTemplate"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"carbon-document-table-wrapper\"\n *ngIf=\"{\n loading: loading$ | async,\n uploading: uploading$ | async,\n relatedFiles: relatedFiles$ | async\n } as obs\"\n>\n @if (!obs.loading && !obs.uploading && obs.relatedFiles) {\n <ng-container\n *ngTemplateOutlet=\"list; context: {relatedFiles: obs.relatedFiles}\"\n ></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"listLoading\"></ng-container>\n }\n</div>\n\n<valtimo-documenten-api-metadata-modal\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hide$]=\"hideModal$\"\n [show$]=\"showModal$\"\n (metadata)=\"metadataSet($event)\"\n></valtimo-documenten-api-metadata-modal>\n\n<ng-template #list let-relatedFiles=\"relatedFiles\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"relatedFiles\"\n [fields]=\"fields\"\n (rowClicked)=\"onRowClick($event)\"\n hideColumnHeader\n >\n <div carbonToolbarContent>\n <input\n [accept]=\"acceptedFiles\"\n (change)=\"onFileSelected($event)\"\n hidden\n type=\"file\"\n #fileInput\n />\n\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n </div>\n\n @if (showZaakLinkWarning && isAdmin) {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n description=\"{{ 'dossier.documenten.noZaakFound' | translate }}\"\n title=\"{{ 'dossier.documenten.noZaakFoundTitle' | translate }}\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n description=\"{{ 'dossier.documenten.noFiles' | translate }}\"\n title=\"{{ 'dossier.documenten.noFilesTitle' | translate }}\"\n ></valtimo-no-results>\n }\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #listLoading>\n <valtimo-carbon-list [items]=\"[]\" [fields]=\"fields\" [loading]=\"true\" hideColumnHeader>\n <div carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"uploadButton; context: {disabled: true}\"></ng-container>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #downloadButton let-index=\"index\" let-item=\"item\">\n <div\n *ngIf=\"{isDownloading: indexesIncludeIndex(downloadingFileIndexes$ | async, index)} as vars\"\n class=\"download-button-container\"\n >\n <button\n *ngIf=\"!vars.isDownloading\"\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"downloadDocument(item, index)\"\n >\n {{ 'interface.download' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n\n <cds-loading size=\"sm\" *ngIf=\"vars.isDownloading\"></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #dossierListActions>\n <input [accept]=\"acceptedFiles\" (change)=\"onFileSelected($event)\" hidden type=\"file\" #fileInput />\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n</ng-template>\n\n<ng-template #uploadButton let-disabled=\"disabled\">\n <button\n [disabled]=\"(uploadProcessLinkedSet && !uploadProcessLinked) || showZaakLinkWarning || disabled\"\n [vTooltip]=\"getUploadButtonTooltip() | translate\"\n (click)=\"onUploadButtonClick()\"\n cdsButton=\"primary\"\n >\n {{ 'Upload' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #navigateToCaseAdminButton>\n <button (click)=\"onNavigateToCaseAdminClick()\" cdsButton=\"primary\">\n {{ 'dossier.documenten.navigateToCaseAdmin' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #sizeTemplate let-data=\"data\">\n <div class=\"documenten-api-documents-filesize-template\">\n {{ bytesToMegabytes(data.item.sizeInBytes) }}\n </div>\n</ng-template>\n", styles: [".hidden{display:none}.loading-container{padding:var(--cds-grid-margin);display:flex;align-items:center;justify-content:center}.carbon-document-table-wrapper{margin:0}.documenten-api-documents-filesize-template{text-align:right}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3$2.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i3$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["show$", "hide$", "disabled$", "file$", "documentTitle", "disableDocumentTitle", "filename", "disableFilename", "author", "disableAuthor", "status", "disableStatus", "language", "disableLanguage", "documentType", "disableDocumentType", "description", "disableDescription", "confidentialityLevel", "disableConfidentialityLevel", "trefwoorden", "disableTrefwoorden"], outputs: ["metadata"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
1509
+ setInitialFilterAndSort() {
1510
+ this.route.queryParamMap
1511
+ .pipe(take$1(1), map$1(queryParams => {
1512
+ const { sort, ...filter } = queryParams['params'];
1513
+ return { sort, filter };
1514
+ }))
1515
+ .subscribe(({ filter, sort }) => {
1516
+ this._sort$.next({ sort });
1517
+ this.filter$.next(filter);
1518
+ });
1519
+ }
1520
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabDocumentenApiDocumentsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2$1.UploadProviderService }, { token: i2$1.DownloadService }, { token: i5$1.TranslateService }, { token: i2.ConfigService }, { token: i5$2.UserProviderService }, { token: i9.IconService }, { token: DocumentenApiDocumentService }, { token: DocumentenApiColumnService }, { token: DocumentenApiVersionService }], target: i0.ɵɵFactoryTarget.Component }); }
1521
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DossierDetailTabDocumentenApiDocumentsComponent, isStandalone: true, selector: "valtimo-dossier-detail-tab-documenten-api-documents", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "translationTemplate", first: true, predicate: ["translationTemplate"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<div\n class=\"carbon-document-table-wrapper\"\n *ngIf=\"{\n loading: loading$ | async,\n fieldsLoading: fieldsLoading$ | async,\n uploading: uploading$ | async,\n relatedFiles: relatedFiles$ | async,\n fields: fields$ | async,\n initialSortState: initialSortState$ | async,\n supportedDocumentenApiFeatures: supportedDocumentenApiFeatures$ | async\n } as obs\"\n>\n @if ((!obs.fieldsLoading && obs.fields.length) || obs.fieldsLoading) {\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.relatedFiles\"\n [fields]=\"obs.fields\"\n [loading]=\"obs.loading\"\n [initialSortState]=\"\n obs?.supportedDocumentenApiFeatures?.supportsSortableColumns && obs.initialSortState\n \"\n (rowClicked)=\"onRowClick($event)\"\n (sortChanged)=\"\n obs?.supportedDocumentenApiFeatures?.supportsSortableColumns && onSortChanged($event)\n \"\n hideColumnHeader\n >\n <div carbonToolbarContent>\n <input\n [accept]=\"acceptedFiles\"\n (change)=\"onFileSelected($event)\"\n hidden\n type=\"file\"\n #fileInput\n />\n\n <button\n *ngIf=\"obs?.supportedDocumentenApiFeatures?.supportsFilterableColumns\"\n [cdsOverflowMenu]=\"overflowFilter\"\n [customPane]=\"true\"\n [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"noResults\"></ng-container>\n </valtimo-carbon-list>\n } @else {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n }\n\n <valtimo-documenten-api-metadata-modal\n [open]=\"showUploadModal$ | async\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [isEditMode]=\"isEditMode$ | async\"\n [supportsTrefwoorden]=\"obs?.supportedDocumentenApiFeatures?.supportsTrefwoorden\"\n (modalClose)=\"closeMetadataModal()\"\n (metadata)=\"metadataSet($event)\"\n ></valtimo-documenten-api-metadata-modal>\n</div>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n contentTranslationKey=\"dossier.documenten.deleteConfirmationModal.content\"\n confirmButtonType=\"danger\"\n titleTranslationKey=\"dossier.documenten.deleteConfirmationModal.title\"\n [showModalSubject$]=\"showDeleteConfirmationModal$\"\n (confirmEvent)=\"deleteDocument()\"\n>\n</valtimo-confirmation-modal>\n\n<ng-template #downloadButton let-index=\"index\" let-item=\"item\">\n <div\n *ngIf=\"{isDownloading: indexesIncludeIndex(downloadingFileIndexes$ | async, index)} as vars\"\n class=\"download-button-container\"\n >\n <button\n *ngIf=\"!vars.isDownloading\"\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"downloadDocument(item, index)\"\n >\n {{ 'interface.download' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n\n <cds-loading size=\"sm\" *ngIf=\"vars.isDownloading\"></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #noResults>\n @if ((filter$ | async | keyvalue)?.length) {\n <valtimo-no-results\n [action]=\"resetFilterButton\"\n [description]=\"'zgw.documents.noResults.filterDescription' | translate\"\n [title]=\"'zgw.documents.noResults.filterTitle' | translate\"\n ></valtimo-no-results>\n } @else if (showZaakLinkWarning && isAdmin) {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'dossier.documenten.noZaakFound' | translate\"\n [title]=\"'dossier.documenten.noZaakFoundTitle' | translate\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n [description]=\"'dossier.documenten.noFiles' | translate\"\n [title]=\"'dossier.documenten.noFilesTitle' | translate\"\n ></valtimo-no-results>\n }\n</ng-template>\n\n<ng-template #overflowFilter>\n <valtimo-dossier-detail-tab-documenten-api-filter\n [prefillFilter]=\"filter$ | async\"\n (filterEvent)=\"onFilterEvent($event)\"\n ></valtimo-dossier-detail-tab-documenten-api-filter>\n</ng-template>\n\n<ng-template #resetFilterButton>\n <button cdsButton=\"primary\" (click)=\"onFilterEvent(null)\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #uploadButton let-disabled=\"disabled\">\n <button\n [disabled]=\"(uploadProcessLinkedSet && !uploadProcessLinked) || showZaakLinkWarning || disabled\"\n [vTooltip]=\"getUploadButtonTooltip() | translate\"\n (click)=\"onUploadButtonClick()\"\n cdsButton=\"primary\"\n >\n {{ 'Upload' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #translationTemplate let-data=\"data\">\n {{ 'document.' + data.item[data.key] | translate }}\n</ng-template>\n\n<ng-template #navigateToCaseAdminButton>\n <button (click)=\"onNavigateToCaseAdminClick()\" cdsButton=\"primary\">\n {{ 'dossier.documenten.navigateToCaseAdmin' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".hidden{display:none}.loading-container{padding:var(--cds-grid-margin);display:flex;align-items:center;justify-content:center}.carbon-document-table-wrapper{margin:0}.documenten-api-documents-filesize-template{text-align:right}::ng-deep .cds--overflow-menu-options.cds--overflow-menu-options--open{max-width:max-content!important;width:max-content!important}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["disabled$", "file$", "author", "confidentialityLevel", "description", "disableAuthor", "disableConfidentialityLevel", "disableDescription", "disableDocumentTitle", "disableDocumentType", "disableFilename", "disableLanguage", "disableStatus", "documentTitle", "documentType", "disableTrefwoorden", "filename", "isEditMode", "language", "open", "status", "supportsTrefwoorden"], outputs: ["metadata", "modalClose"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "component", type: DocumentenApiFilterComponent, selector: "valtimo-dossier-detail-tab-documenten-api-filter", outputs: ["filterEvent"] }, { kind: "ngmodule", type: DialogModule }, { kind: "directive", type: i9.OverflowMenuDirective, selector: "[cdsOverflowMenu], [ibmOverflowMenu]", inputs: ["ibmOverflowMenu", "cdsOverflowMenu", "flip", "offset", "wrapperClass", "customPane"], exportAs: ["overflowMenu"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i3.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }] }); }
1132
1522
  }
1133
1523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabDocumentenApiDocumentsComponent, decorators: [{
1134
1524
  type: Component,
@@ -1139,13 +1529,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
1139
1529
  ButtonModule,
1140
1530
  IconModule,
1141
1531
  TranslateModule,
1142
- ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"carbon-document-table-wrapper\"\n *ngIf=\"{\n loading: loading$ | async,\n uploading: uploading$ | async,\n relatedFiles: relatedFiles$ | async\n } as obs\"\n>\n @if (!obs.loading && !obs.uploading && obs.relatedFiles) {\n <ng-container\n *ngTemplateOutlet=\"list; context: {relatedFiles: obs.relatedFiles}\"\n ></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"listLoading\"></ng-container>\n }\n</div>\n\n<valtimo-documenten-api-metadata-modal\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hide$]=\"hideModal$\"\n [show$]=\"showModal$\"\n (metadata)=\"metadataSet($event)\"\n></valtimo-documenten-api-metadata-modal>\n\n<ng-template #list let-relatedFiles=\"relatedFiles\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"relatedFiles\"\n [fields]=\"fields\"\n (rowClicked)=\"onRowClick($event)\"\n hideColumnHeader\n >\n <div carbonToolbarContent>\n <input\n [accept]=\"acceptedFiles\"\n (change)=\"onFileSelected($event)\"\n hidden\n type=\"file\"\n #fileInput\n />\n\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n </div>\n\n @if (showZaakLinkWarning && isAdmin) {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n description=\"{{ 'dossier.documenten.noZaakFound' | translate }}\"\n title=\"{{ 'dossier.documenten.noZaakFoundTitle' | translate }}\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n description=\"{{ 'dossier.documenten.noFiles' | translate }}\"\n title=\"{{ 'dossier.documenten.noFilesTitle' | translate }}\"\n ></valtimo-no-results>\n }\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #listLoading>\n <valtimo-carbon-list [items]=\"[]\" [fields]=\"fields\" [loading]=\"true\" hideColumnHeader>\n <div carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"uploadButton; context: {disabled: true}\"></ng-container>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #downloadButton let-index=\"index\" let-item=\"item\">\n <div\n *ngIf=\"{isDownloading: indexesIncludeIndex(downloadingFileIndexes$ | async, index)} as vars\"\n class=\"download-button-container\"\n >\n <button\n *ngIf=\"!vars.isDownloading\"\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"downloadDocument(item, index)\"\n >\n {{ 'interface.download' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n\n <cds-loading size=\"sm\" *ngIf=\"vars.isDownloading\"></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #dossierListActions>\n <input [accept]=\"acceptedFiles\" (change)=\"onFileSelected($event)\" hidden type=\"file\" #fileInput />\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n</ng-template>\n\n<ng-template #uploadButton let-disabled=\"disabled\">\n <button\n [disabled]=\"(uploadProcessLinkedSet && !uploadProcessLinked) || showZaakLinkWarning || disabled\"\n [vTooltip]=\"getUploadButtonTooltip() | translate\"\n (click)=\"onUploadButtonClick()\"\n cdsButton=\"primary\"\n >\n {{ 'Upload' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #navigateToCaseAdminButton>\n <button (click)=\"onNavigateToCaseAdminClick()\" cdsButton=\"primary\">\n {{ 'dossier.documenten.navigateToCaseAdmin' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #sizeTemplate let-data=\"data\">\n <div class=\"documenten-api-documents-filesize-template\">\n {{ bytesToMegabytes(data.item.sizeInBytes) }}\n </div>\n</ng-template>\n", styles: [".hidden{display:none}.loading-container{padding:var(--cds-grid-margin);display:flex;align-items:center;justify-content:center}.carbon-document-table-wrapper{margin:0}.documenten-api-documents-filesize-template{text-align:right}\n/*!\n * Copyright 2015-2024 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"] }]
1143
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2$2.UploadProviderService }, { type: i2$2.DownloadService }, { type: i3$1.TranslateService }, { type: i2$1.ConfigService }, { type: i5$2.UserProviderService }, { type: i3.FileSortService }, { type: i2.IconService }, { type: DocumentenApiDocumentService }], propDecorators: { fileInput: [{
1532
+ DocumentenApiFilterComponent,
1533
+ DialogModule,
1534
+ ConfirmationModalModule,
1535
+ ], template: "<!--\n ~ Copyright 2015-2024 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<div\n class=\"carbon-document-table-wrapper\"\n *ngIf=\"{\n loading: loading$ | async,\n fieldsLoading: fieldsLoading$ | async,\n uploading: uploading$ | async,\n relatedFiles: relatedFiles$ | async,\n fields: fields$ | async,\n initialSortState: initialSortState$ | async,\n supportedDocumentenApiFeatures: supportedDocumentenApiFeatures$ | async\n } as obs\"\n>\n @if ((!obs.fieldsLoading && obs.fields.length) || obs.fieldsLoading) {\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.relatedFiles\"\n [fields]=\"obs.fields\"\n [loading]=\"obs.loading\"\n [initialSortState]=\"\n obs?.supportedDocumentenApiFeatures?.supportsSortableColumns && obs.initialSortState\n \"\n (rowClicked)=\"onRowClick($event)\"\n (sortChanged)=\"\n obs?.supportedDocumentenApiFeatures?.supportsSortableColumns && onSortChanged($event)\n \"\n hideColumnHeader\n >\n <div carbonToolbarContent>\n <input\n [accept]=\"acceptedFiles\"\n (change)=\"onFileSelected($event)\"\n hidden\n type=\"file\"\n #fileInput\n />\n\n <button\n *ngIf=\"obs?.supportedDocumentenApiFeatures?.supportsFilterableColumns\"\n [cdsOverflowMenu]=\"overflowFilter\"\n [customPane]=\"true\"\n [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"noResults\"></ng-container>\n </valtimo-carbon-list>\n } @else {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n }\n\n <valtimo-documenten-api-metadata-modal\n [open]=\"showUploadModal$ | async\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [isEditMode]=\"isEditMode$ | async\"\n [supportsTrefwoorden]=\"obs?.supportedDocumentenApiFeatures?.supportsTrefwoorden\"\n (modalClose)=\"closeMetadataModal()\"\n (metadata)=\"metadataSet($event)\"\n ></valtimo-documenten-api-metadata-modal>\n</div>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n contentTranslationKey=\"dossier.documenten.deleteConfirmationModal.content\"\n confirmButtonType=\"danger\"\n titleTranslationKey=\"dossier.documenten.deleteConfirmationModal.title\"\n [showModalSubject$]=\"showDeleteConfirmationModal$\"\n (confirmEvent)=\"deleteDocument()\"\n>\n</valtimo-confirmation-modal>\n\n<ng-template #downloadButton let-index=\"index\" let-item=\"item\">\n <div\n *ngIf=\"{isDownloading: indexesIncludeIndex(downloadingFileIndexes$ | async, index)} as vars\"\n class=\"download-button-container\"\n >\n <button\n *ngIf=\"!vars.isDownloading\"\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"downloadDocument(item, index)\"\n >\n {{ 'interface.download' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n\n <cds-loading size=\"sm\" *ngIf=\"vars.isDownloading\"></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #noResults>\n @if ((filter$ | async | keyvalue)?.length) {\n <valtimo-no-results\n [action]=\"resetFilterButton\"\n [description]=\"'zgw.documents.noResults.filterDescription' | translate\"\n [title]=\"'zgw.documents.noResults.filterTitle' | translate\"\n ></valtimo-no-results>\n } @else if (showZaakLinkWarning && isAdmin) {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'dossier.documenten.noZaakFound' | translate\"\n [title]=\"'dossier.documenten.noZaakFoundTitle' | translate\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n [description]=\"'dossier.documenten.noFiles' | translate\"\n [title]=\"'dossier.documenten.noFilesTitle' | translate\"\n ></valtimo-no-results>\n }\n</ng-template>\n\n<ng-template #overflowFilter>\n <valtimo-dossier-detail-tab-documenten-api-filter\n [prefillFilter]=\"filter$ | async\"\n (filterEvent)=\"onFilterEvent($event)\"\n ></valtimo-dossier-detail-tab-documenten-api-filter>\n</ng-template>\n\n<ng-template #resetFilterButton>\n <button cdsButton=\"primary\" (click)=\"onFilterEvent(null)\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #uploadButton let-disabled=\"disabled\">\n <button\n [disabled]=\"(uploadProcessLinkedSet && !uploadProcessLinked) || showZaakLinkWarning || disabled\"\n [vTooltip]=\"getUploadButtonTooltip() | translate\"\n (click)=\"onUploadButtonClick()\"\n cdsButton=\"primary\"\n >\n {{ 'Upload' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #translationTemplate let-data=\"data\">\n {{ 'document.' + data.item[data.key] | translate }}\n</ng-template>\n\n<ng-template #navigateToCaseAdminButton>\n <button (click)=\"onNavigateToCaseAdminClick()\" cdsButton=\"primary\">\n {{ 'dossier.documenten.navigateToCaseAdmin' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".hidden{display:none}.loading-container{padding:var(--cds-grid-margin);display:flex;align-items:center;justify-content:center}.carbon-document-table-wrapper{margin:0}.documenten-api-documents-filesize-template{text-align:right}::ng-deep .cds--overflow-menu-options.cds--overflow-menu-options--open{max-width:max-content!important;width:max-content!important}\n/*!\n * Copyright 2015-2024 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"] }]
1536
+ }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2$1.UploadProviderService }, { type: i2$1.DownloadService }, { type: i5$1.TranslateService }, { type: i2.ConfigService }, { type: i5$2.UserProviderService }, { type: i9.IconService }, { type: DocumentenApiDocumentService }, { type: DocumentenApiColumnService }, { type: DocumentenApiVersionService }], propDecorators: { fileInput: [{
1144
1537
  type: ViewChild,
1145
1538
  args: ['fileInput']
1146
- }], sizeTemplate: [{
1539
+ }], translationTemplate: [{
1147
1540
  type: ViewChild,
1148
- args: ['sizeTemplate']
1541
+ args: ['translationTemplate']
1149
1542
  }] } });
1150
1543
 
1151
1544
  /*
@@ -1224,13 +1617,13 @@ class DossierManagementLinkProcessComponent {
1224
1617
  }
1225
1618
  });
1226
1619
  }
1227
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierManagementLinkProcessComponent, deps: [{ token: i2$1.ConfigService }, { token: i1$1.ActivatedRoute }, { token: DocumentenApiLinkProcessService }, { token: DocumentenApiVersionService }], target: i0.ɵɵFactoryTarget.Component }); }
1228
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierManagementLinkProcessComponent, isStandalone: true, selector: "valtimo-dossier-management-link-process", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProviders$ | async\">\n <h2 class=\"mb-4\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async\n } as obs\"\n >\n <cds-combo-box\n [appendInline]=\"true\"\n (selected)=\"selectProcess($event)\"\n [disabled]=\"obs.disabled || !obs.processItems\"\n >\n <cds-dropdown-list [items]=\"obs.processItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ParagraphModule }, { kind: "component", type: i3$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ComboBoxModule }, { kind: "component", type: i2.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "items", "type", "size", "itemValueKey", "label", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i2.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }] }); }
1620
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierManagementLinkProcessComponent, deps: [{ token: i2.ConfigService }, { token: i1$1.ActivatedRoute }, { token: DocumentenApiLinkProcessService }, { token: DocumentenApiVersionService }], target: i0.ɵɵFactoryTarget.Component }); }
1621
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierManagementLinkProcessComponent, isStandalone: true, selector: "valtimo-dossier-management-link-process", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProviders$ | async\">\n <h2 class=\"mb-4\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async\n } as obs\"\n >\n <cds-combo-box\n [appendInline]=\"true\"\n (selected)=\"selectProcess($event)\"\n [disabled]=\"obs.disabled || !obs.processItems\"\n >\n <cds-dropdown-list [items]=\"obs.processItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ParagraphModule }, { kind: "component", type: i3.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ComboBoxModule }, { kind: "component", type: i9.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "items", "type", "size", "itemValueKey", "label", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i9.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }] }); }
1229
1622
  }
1230
1623
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierManagementLinkProcessComponent, decorators: [{
1231
1624
  type: Component,
1232
1625
  args: [{ selector: 'valtimo-dossier-management-link-process', standalone: true, imports: [CommonModule, ParagraphModule, TranslateModule, ComboBoxModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProviders$ | async\">\n <h2 class=\"mb-4\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async\n } as obs\"\n >\n <cds-combo-box\n [appendInline]=\"true\"\n (selected)=\"selectProcess($event)\"\n [disabled]=\"obs.disabled || !obs.processItems\"\n >\n <cds-dropdown-list [items]=\"obs.processItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </ng-container>\n</ng-container>\n" }]
1233
- }], ctorParameters: () => [{ type: i2$1.ConfigService }, { type: i1$1.ActivatedRoute }, { type: DocumentenApiLinkProcessService }, { type: DocumentenApiVersionService }] });
1626
+ }], ctorParameters: () => [{ type: i2.ConfigService }, { type: i1$1.ActivatedRoute }, { type: DocumentenApiLinkProcessService }, { type: DocumentenApiVersionService }] });
1234
1627
 
1235
1628
  /*
1236
1629
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -1247,101 +1640,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
1247
1640
  * See the License for the specific language governing permissions and
1248
1641
  * limitations under the License.
1249
1642
  */
1250
- class DocumentenApiVersionComponent {
1251
- constructor(route, documentenApiVersionService) {
1252
- this.route = route;
1253
- this.documentenApiVersionService = documentenApiVersionService;
1254
- this.loading$ = new BehaviorSubject(true);
1255
- this.documentDefinitionName$ = this.route.params.pipe(map(params => params.name || ''), filter$1(documentDefinitionName => !!documentDefinitionName));
1256
- this.documentenApiVersion$ = combineLatest([this.documentDefinitionName$, this.documentenApiVersionService.refresh$]).pipe(tap(() => this.loading$.next(true)), switchMap(([documentDefinitionName]) => this.documentenApiVersionService.getManagementApiVersion(documentDefinitionName)), tap(() => this.loading$.next(false)));
1643
+ class DocumentenApiTagModalComponent {
1644
+ get value() {
1645
+ return this.tagFormGroup?.get('value');
1257
1646
  }
1258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiVersionComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: DocumentenApiVersionService }], target: i0.ɵɵFactoryTarget.Component }); }
1259
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiVersionComponent, isStandalone: true, selector: "valtimo-documenten-api-version", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.documentenApi.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentenApiVersion: documentenApiVersion$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container\n *ngIf=\"obs.documentenApiVersion.selectedVersion; else noDocumentenApiVersionWarning\"\n >\n <ng-container\n *ngIf=\"\n obs.documentenApiVersion.detectedVersions.length === 1;\n else multipleDocumentenApiVersionsWarning\n \"\n >\n {{ 'openZaak.documentenApi.documentenApiVersion' | translate }}\n <strong> {{ obs.documentenApiVersion.selectedVersion }} </strong>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #noDocumentenApiVersionWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.noVersionWarningTitle' | translate,\n message: 'openZaak.documentenApi.noVersionWarningMessage' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #multipleDocumentenApiVersionsWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.multipleVersionsWarningTitle' | translate,\n message: 'openZaak.documentenApi.multipleVersionsWarningMessage' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container pb-2\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i2.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i2.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }] }); }
1647
+ get invalid() {
1648
+ return !!this.tagFormGroup?.invalid;
1649
+ }
1650
+ get pristine() {
1651
+ return !!this.tagFormGroup?.pristine;
1652
+ }
1653
+ constructor(fb, documentenApiTagService) {
1654
+ this.fb = fb;
1655
+ this.documentenApiTagService = documentenApiTagService;
1656
+ this.open = false;
1657
+ this.closeModalEvent = new EventEmitter();
1658
+ this.tagFormGroup = this.fb.group({
1659
+ value: this.fb.control('', [Validators.required, Validators.maxLength(50)]),
1660
+ });
1661
+ this.disabled$ = new BehaviorSubject(false);
1662
+ this._subscriptions = new Subscription();
1663
+ }
1664
+ ngOnDestroy() {
1665
+ this._subscriptions.unsubscribe();
1666
+ }
1667
+ onClose() {
1668
+ this.close();
1669
+ }
1670
+ addTag() {
1671
+ this.disable();
1672
+ this.documentenApiTagService
1673
+ .createTag(this.documentDefinitionName, this.value.value)
1674
+ .subscribe({
1675
+ next: () => {
1676
+ this.enable();
1677
+ this.closeAndRefresh();
1678
+ this.resetForm();
1679
+ },
1680
+ error: () => {
1681
+ this.enable(false);
1682
+ },
1683
+ });
1684
+ }
1685
+ resetForm() {
1686
+ this.tagFormGroup.reset();
1687
+ }
1688
+ disable() {
1689
+ this.disabled$.next(true);
1690
+ this.tagFormGroup.disable();
1691
+ }
1692
+ enable(delay = true) {
1693
+ setTimeout(() => {
1694
+ this.disabled$.next(false);
1695
+ this.tagFormGroup.enable();
1696
+ }, delay ? CARBON_CONSTANTS.modalAnimationMs : 0);
1697
+ }
1698
+ close() {
1699
+ this.closeModalEvent.emit('close');
1700
+ this.resetForm();
1701
+ }
1702
+ closeAndRefresh() {
1703
+ this.closeModalEvent.emit('closeAndRefresh');
1704
+ this.resetForm();
1705
+ }
1706
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiTagModalComponent, deps: [{ token: i5.FormBuilder }, { token: DocumentenApiTagService }], target: i0.ɵɵFactoryTarget.Component }); }
1707
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiTagModalComponent, isStandalone: true, selector: "valtimo-documenten-api-tag-modal", inputs: { documentDefinitionName: "documentDefinitionName", open: "open" }, outputs: { closeModalEvent: "closeModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n disabled: disabled$ | async\n } as obs\"\n [open]=\"open\"\n size=\"sm\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'zgw.tags.addModal.header' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"tagFormGroup\" class=\"tag-form\">\n <cds-label\n [invalidText]=\"\n (value?.errors?.['required']\n ? 'zgw.tags.fields.valueRequired'\n : 'zgw.tags.fields.valueMaxLength'\n ) | translate: {maxlength: value?.errors?.maxlength?.requiredLength}\n \"\n [invalid]=\"value.dirty && value.invalid\"\n >\n {{ 'zgw.tags.fields.value' | translate }}\n\n <input\n cdsText\n formControlName=\"value\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"value.dirty && value.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onClose()\" [disabled]=\"obs.disabled\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"invalid || pristine || obs.disabled\" (click)=\"addTag()\">\n {{ 'interface.add' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: TagModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i9.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i9.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "ngmodule", type: ToggleModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1260
1708
  }
1261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiVersionComponent, decorators: [{
1709
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiTagModalComponent, decorators: [{
1262
1710
  type: Component,
1263
- args: [{ selector: 'valtimo-documenten-api-version', standalone: true, imports: [CommonModule, TranslateModule, LoadingModule, NotificationModule], template: "<!--\n ~ Copyright 2015-2024 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<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.documentenApi.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentenApiVersion: documentenApiVersion$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container\n *ngIf=\"obs.documentenApiVersion.selectedVersion; else noDocumentenApiVersionWarning\"\n >\n <ng-container\n *ngIf=\"\n obs.documentenApiVersion.detectedVersions.length === 1;\n else multipleDocumentenApiVersionsWarning\n \"\n >\n {{ 'openZaak.documentenApi.documentenApiVersion' | translate }}\n <strong> {{ obs.documentenApiVersion.selectedVersion }} </strong>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #noDocumentenApiVersionWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.noVersionWarningTitle' | translate,\n message: 'openZaak.documentenApi.noVersionWarningMessage' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #multipleDocumentenApiVersionsWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.multipleVersionsWarningTitle' | translate,\n message: 'openZaak.documentenApi.multipleVersionsWarningMessage' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container pb-2\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2024 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"] }]
1264
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: DocumentenApiVersionService }] });
1265
-
1266
- /*
1267
- * Copyright 2015-2024 Ritense BV, the Netherlands.
1268
- *
1269
- * Licensed under EUPL, Version 1.2 (the "License");
1270
- * you may not use this file except in compliance with the License.
1271
- * You may obtain a copy of the License at
1272
- *
1273
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1274
- *
1275
- * Unless required by applicable law or agreed to in writing, software
1276
- * distributed under the License is distributed on an "AS IS" basis,
1277
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1278
- * See the License for the specific language governing permissions and
1279
- * limitations under the License.
1280
- */
1281
-
1282
- /*
1283
- * Copyright 2015-2024 Ritense BV, the Netherlands.
1284
- *
1285
- * Licensed under EUPL, Version 1.2 (the "License");
1286
- * you may not use this file except in compliance with the License.
1287
- * You may obtain a copy of the License at
1288
- *
1289
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1290
- *
1291
- * Unless required by applicable law or agreed to in writing, software
1292
- * distributed under the License is distributed on an "AS IS" basis,
1293
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1294
- * See the License for the specific language governing permissions and
1295
- * limitations under the License.
1296
- */
1297
-
1298
- /*
1299
- * Copyright 2015-2024 Ritense BV, the Netherlands.
1300
- *
1301
- * Licensed under EUPL, Version 1.2 (the "License");
1302
- * you may not use this file except in compliance with the License.
1303
- * You may obtain a copy of the License at
1304
- *
1305
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1306
- *
1307
- * Unless required by applicable law or agreed to in writing, software
1308
- * distributed under the License is distributed on an "AS IS" basis,
1309
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1310
- * See the License for the specific language governing permissions and
1311
- * limitations under the License.
1312
- */
1313
-
1314
- /*
1315
- * Copyright 2015-2024 Ritense BV, the Netherlands.
1316
- *
1317
- * Licensed under EUPL, Version 1.2 (the "License");
1318
- * you may not use this file except in compliance with the License.
1319
- * You may obtain a copy of the License at
1320
- *
1321
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1322
- *
1323
- * Unless required by applicable law or agreed to in writing, software
1324
- * distributed under the License is distributed on an "AS IS" basis,
1325
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1326
- * See the License for the specific language governing permissions and
1327
- * limitations under the License.
1328
- */
1329
-
1330
- /*
1331
- * Copyright 2015-2024 Ritense BV, the Netherlands.
1332
- *
1333
- * Licensed under EUPL, Version 1.2 (the "License");
1334
- * you may not use this file except in compliance with the License.
1335
- * You may obtain a copy of the License at
1336
- *
1337
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1338
- *
1339
- * Unless required by applicable law or agreed to in writing, software
1340
- * distributed under the License is distributed on an "AS IS" basis,
1341
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1342
- * See the License for the specific language governing permissions and
1343
- * limitations under the License.
1344
- */
1711
+ args: [{ selector: 'valtimo-documenten-api-tag-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
1712
+ CommonModule,
1713
+ ModalModule,
1714
+ TagModule,
1715
+ TranslateModule,
1716
+ InputModule,
1717
+ ReactiveFormsModule,
1718
+ ButtonModule,
1719
+ DropdownModule,
1720
+ ToggleModule,
1721
+ ], template: "<!--\n ~ Copyright 2015-2024 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<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n disabled: disabled$ | async\n } as obs\"\n [open]=\"open\"\n size=\"sm\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'zgw.tags.addModal.header' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"tagFormGroup\" class=\"tag-form\">\n <cds-label\n [invalidText]=\"\n (value?.errors?.['required']\n ? 'zgw.tags.fields.valueRequired'\n : 'zgw.tags.fields.valueMaxLength'\n ) | translate: {maxlength: value?.errors?.maxlength?.requiredLength}\n \"\n [invalid]=\"value.dirty && value.invalid\"\n >\n {{ 'zgw.tags.fields.value' | translate }}\n\n <input\n cdsText\n formControlName=\"value\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"value.dirty && value.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onClose()\" [disabled]=\"obs.disabled\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"invalid || pristine || obs.disabled\" (click)=\"addTag()\">\n {{ 'interface.add' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n" }]
1722
+ }], ctorParameters: () => [{ type: i5.FormBuilder }, { type: DocumentenApiTagService }], propDecorators: { documentDefinitionName: [{
1723
+ type: Input
1724
+ }], open: [{
1725
+ type: Input
1726
+ }], closeModalEvent: [{
1727
+ type: Output
1728
+ }] } });
1345
1729
 
1346
1730
  /*
1347
1731
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -1358,6 +1742,139 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
1358
1742
  * See the License for the specific language governing permissions and
1359
1743
  * limitations under the License.
1360
1744
  */
1745
+ class DocumentenApiTagsComponent {
1746
+ get documentDefinitionName$() {
1747
+ return this._documentDefinitionName$;
1748
+ }
1749
+ constructor(route, documentenApiTagService) {
1750
+ this.route = route;
1751
+ this.documentenApiTagService = documentenApiTagService;
1752
+ this._reload$ = new BehaviorSubject(null);
1753
+ this._documentDefinitionName$ = this.route.params.pipe(map(params => params?.name), filter(docDefName => !!docDefName));
1754
+ this.loading$ = new BehaviorSubject(true);
1755
+ this.fields$ = new BehaviorSubject([]);
1756
+ this.addModalClosed$ = new BehaviorSubject(true);
1757
+ this.showDeleteMultipleModal$ = new BehaviorSubject(false);
1758
+ this.showDeleteModal$ = new Subject();
1759
+ this.selectedRowKeys$ = new BehaviorSubject([]);
1760
+ this.searchTerm$ = new BehaviorSubject('');
1761
+ this.tagToDelete$ = new BehaviorSubject(null);
1762
+ this.documentTags$ = combineLatest([
1763
+ this._documentDefinitionName$,
1764
+ this.searchTerm$,
1765
+ this._reload$,
1766
+ ]).pipe(tap(([_1, _2, reload]) => {
1767
+ if (reload === null) {
1768
+ this.loading$.next(true);
1769
+ }
1770
+ }), switchMap(([documentDefinitionName, searchTerm]) => this.documentenApiTagService.getTagsForAdmin(documentDefinitionName, {
1771
+ page: this.pagination.page - 1,
1772
+ size: this.pagination.size,
1773
+ search: searchTerm,
1774
+ })), map((tagPage) => {
1775
+ this.pagination = {
1776
+ ...this.pagination,
1777
+ collectionSize: tagPage.totalElements,
1778
+ };
1779
+ return tagPage.content;
1780
+ }), startWith([]), tap(() => {
1781
+ this.loading$.next(false);
1782
+ }));
1783
+ this.ACTION_ITEMS = [
1784
+ {
1785
+ label: 'interface.delete',
1786
+ callback: this.openDeleteModal.bind(this),
1787
+ type: 'danger',
1788
+ },
1789
+ ];
1790
+ this.FIELDS = [
1791
+ {
1792
+ key: 'value',
1793
+ label: 'zgw.tags.fields.value',
1794
+ viewType: ViewType.TEXT,
1795
+ },
1796
+ ];
1797
+ this.pagination = {
1798
+ collectionSize: 0,
1799
+ page: 1,
1800
+ size: 10,
1801
+ };
1802
+ }
1803
+ openDeleteModal(tag) {
1804
+ this.tagToDelete$.next(tag);
1805
+ this.showDeleteModal$.next(true);
1806
+ }
1807
+ openAddModal() {
1808
+ this.addModalClosed$.next(false);
1809
+ }
1810
+ closeModal(closeModalEvent) {
1811
+ if (closeModalEvent === 'closeAndRefresh') {
1812
+ this.reload();
1813
+ }
1814
+ this.addModalClosed$.next(true);
1815
+ }
1816
+ showDeleteMultipleModal() {
1817
+ this.setSelectedRoleKeys();
1818
+ this.showDeleteMultipleModal$.next(true);
1819
+ }
1820
+ setSelectedRoleKeys() {
1821
+ this.selectedRowKeys$.next(this.carbonList.selectedItems.map((item) => item.value));
1822
+ }
1823
+ paginationClicked(page) {
1824
+ this.pagination = { ...this.pagination, page };
1825
+ this.reload();
1826
+ }
1827
+ paginationSet(size) {
1828
+ this.pagination = { ...this.pagination, size };
1829
+ this.reload();
1830
+ }
1831
+ confirmDeleteTag(tag) {
1832
+ this.documentDefinitionName$
1833
+ .pipe(switchMap(documentDefinitionName => this.documentenApiTagService.deleteTag(documentDefinitionName, tag.value)))
1834
+ .subscribe(() => {
1835
+ this.reload();
1836
+ });
1837
+ }
1838
+ confirmDeleteMultipleTag(tagsToDelete) {
1839
+ this.documentenApiTagService
1840
+ .deleteTags(tagsToDelete.documentDefinitionName, tagsToDelete.tagIds)
1841
+ .subscribe(() => {
1842
+ const lastPage = Math.ceil(this.pagination.collectionSize / this.pagination.size);
1843
+ if (tagsToDelete.itemsOnCurrentPage <= tagsToDelete.tagIds.length &&
1844
+ this.pagination.page > 1 &&
1845
+ this.pagination.page === lastPage) {
1846
+ this.pagination = { ...this.pagination, page: this.pagination.page - 1 };
1847
+ }
1848
+ this.reload();
1849
+ });
1850
+ }
1851
+ searchTermEntered(searchTerm) {
1852
+ this.pagination = { ...this.pagination, page: 1 };
1853
+ this.searchTerm$.next(searchTerm);
1854
+ }
1855
+ reload(noAnimation = false) {
1856
+ this._reload$.next(noAnimation ? 'noAnimation' : null);
1857
+ }
1858
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiTagsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: DocumentenApiTagService }], target: i0.ɵɵFactoryTarget.Component }); }
1859
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiTagsComponent, isStandalone: true, selector: "valtimo-documenten-api-tags", viewQueries: [{ propertyName: "carbonList", first: true, predicate: CarbonListComponent, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentTags: documentTags$ | async,\n addModalClosed: addModalClosed$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n selectedRowKeys: selectedRowKeys$ | async,\n searchTerm: searchTerm$ | async,\n showDeleteModal: showDeleteModal$ | async,\n tagToDelete: tagToDelete$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [items]=\"obs.documentTags\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [actionItems]=\"ACTION_ITEMS\"\n [showSelectionColumn]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (search)=\"searchTermEntered($event)\"\n >\n <ng-container carbonToolbarContent *ngTemplateOutlet=\"addButtton\"></ng-container>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteMultipleModal()\">\n {{ 'interface.delete' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n *ngIf=\"obs.searchTerm === ''\"\n [action]=\"addButtton\"\n title=\"{{ 'zgw.tags.list.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.tags.list.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n\n <valtimo-no-results\n *ngIf=\"obs.searchTerm !== ''\"\n title=\"{{ 'zgw.tags.search.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.tags.search.noResultsDescription' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-tag-modal\n [open]=\"!obs.addModalClosed\"\n [documentDefinitionName]=\"obs.documentDefinitionName\"\n (closeModalEvent)=\"closeModal($event)\"\n ></valtimo-documenten-api-tag-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.tags.deleteText\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n [outputOnConfirm]=\"obs.tagToDelete\"\n (confirmEvent)=\"confirmDeleteTag($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n [contentTranslationKey]=\"\n obs.selectedRowKeys.length > 1 ? 'zgw.tags.deleteMultipleText' : 'zgw.tags.deleteText'\n \"\n [showModalSubject$]=\"showDeleteMultipleModal$\"\n titleTranslationKey=\"interface.delete\"\n [outputOnConfirm]=\"{\n documentDefinitionName: obs.documentDefinitionName,\n tagIds: obs.selectedRowKeys,\n itemsOnCurrentPage: obs.documentTags.length\n }\"\n (confirmEvent)=\"confirmDeleteMultipleTag($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #addButtton>\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n {{ 'zgw.tags.add' | translate }}\n </button>\n </ng-template>\n</ng-container>\n", styles: ["::ng-deep .cds-tag--no-margin{margin:0}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i3.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "ngmodule", type: TagModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: DocumentenApiTagModalComponent, selector: "valtimo-documenten-api-tag-modal", inputs: ["documentDefinitionName", "open"], outputs: ["closeModalEvent"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1860
+ }
1861
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiTagsComponent, decorators: [{
1862
+ type: Component,
1863
+ args: [{ selector: 'valtimo-documenten-api-tags', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
1864
+ CommonModule,
1865
+ DocumentenApiColumnModalComponent,
1866
+ CarbonListModule,
1867
+ TranslateModule,
1868
+ ConfirmationModalModule,
1869
+ TagModule,
1870
+ ButtonModule,
1871
+ DocumentenApiTagModalComponent,
1872
+ IconModule,
1873
+ ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentTags: documentTags$ | async,\n addModalClosed: addModalClosed$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n selectedRowKeys: selectedRowKeys$ | async,\n searchTerm: searchTerm$ | async,\n showDeleteModal: showDeleteModal$ | async,\n tagToDelete: tagToDelete$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [items]=\"obs.documentTags\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [actionItems]=\"ACTION_ITEMS\"\n [showSelectionColumn]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (search)=\"searchTermEntered($event)\"\n >\n <ng-container carbonToolbarContent *ngTemplateOutlet=\"addButtton\"></ng-container>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteMultipleModal()\">\n {{ 'interface.delete' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n *ngIf=\"obs.searchTerm === ''\"\n [action]=\"addButtton\"\n title=\"{{ 'zgw.tags.list.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.tags.list.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n\n <valtimo-no-results\n *ngIf=\"obs.searchTerm !== ''\"\n title=\"{{ 'zgw.tags.search.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.tags.search.noResultsDescription' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-tag-modal\n [open]=\"!obs.addModalClosed\"\n [documentDefinitionName]=\"obs.documentDefinitionName\"\n (closeModalEvent)=\"closeModal($event)\"\n ></valtimo-documenten-api-tag-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.tags.deleteText\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n [outputOnConfirm]=\"obs.tagToDelete\"\n (confirmEvent)=\"confirmDeleteTag($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n [contentTranslationKey]=\"\n obs.selectedRowKeys.length > 1 ? 'zgw.tags.deleteMultipleText' : 'zgw.tags.deleteText'\n \"\n [showModalSubject$]=\"showDeleteMultipleModal$\"\n titleTranslationKey=\"interface.delete\"\n [outputOnConfirm]=\"{\n documentDefinitionName: obs.documentDefinitionName,\n tagIds: obs.selectedRowKeys,\n itemsOnCurrentPage: obs.documentTags.length\n }\"\n (confirmEvent)=\"confirmDeleteMultipleTag($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #addButtton>\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n {{ 'zgw.tags.add' | translate }}\n </button>\n </ng-template>\n</ng-container>\n", styles: ["::ng-deep .cds-tag--no-margin{margin:0}\n/*!\n * Copyright 2015-2024 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"] }]
1874
+ }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: DocumentenApiTagService }], propDecorators: { carbonList: [{
1875
+ type: ViewChild,
1876
+ args: [CarbonListComponent]
1877
+ }] } });
1361
1878
 
1362
1879
  /*
1363
1880
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -1374,6 +1891,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
1374
1891
  * See the License for the specific language governing permissions and
1375
1892
  * limitations under the License.
1376
1893
  */
1894
+ class DocumentenApiVersionComponent {
1895
+ constructor(route, documentenApiVersionService) {
1896
+ this.route = route;
1897
+ this.documentenApiVersionService = documentenApiVersionService;
1898
+ this.loading$ = new BehaviorSubject(true);
1899
+ this.documentDefinitionName$ = this.route.params.pipe(map(params => params.name || ''), filter$1(documentDefinitionName => !!documentDefinitionName));
1900
+ this.documentenApiVersion$ = combineLatest([this.documentDefinitionName$, this.documentenApiVersionService.refresh$]).pipe(tap(() => this.loading$.next(true)), switchMap(([documentDefinitionName]) => this.documentenApiVersionService.getManagementApiVersion(documentDefinitionName)), tap(() => this.loading$.next(false)));
1901
+ }
1902
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiVersionComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: DocumentenApiVersionService }], target: i0.ɵɵFactoryTarget.Component }); }
1903
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiVersionComponent, isStandalone: true, selector: "valtimo-documenten-api-version", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.documentenApi.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentenApiVersion: documentenApiVersion$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container\n *ngIf=\"obs.documentenApiVersion.selectedVersion; else noDocumentenApiVersionWarning\"\n >\n <ng-container\n *ngIf=\"\n obs.documentenApiVersion.detectedVersions.length === 1;\n else multipleDocumentenApiVersionsWarning\n \"\n >\n {{ 'openZaak.documentenApi.documentenApiVersion' | translate }}\n <strong> {{ obs.documentenApiVersion.selectedVersion }} </strong>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #noDocumentenApiVersionWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.noVersionWarningTitle' | translate,\n message: 'openZaak.documentenApi.noVersionWarningMessage' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #multipleDocumentenApiVersionsWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.multipleVersionsWarningTitle' | translate,\n message: 'openZaak.documentenApi.multipleVersionsWarningMessage' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container pb-2\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i9.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i9.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }] }); }
1904
+ }
1905
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiVersionComponent, decorators: [{
1906
+ type: Component,
1907
+ args: [{ selector: 'valtimo-documenten-api-version', standalone: true, imports: [CommonModule, TranslateModule, LoadingModule, NotificationModule], template: "<!--\n ~ Copyright 2015-2024 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<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.documentenApi.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentenApiVersion: documentenApiVersion$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container\n *ngIf=\"obs.documentenApiVersion.selectedVersion; else noDocumentenApiVersionWarning\"\n >\n <ng-container\n *ngIf=\"\n obs.documentenApiVersion.detectedVersions.length === 1;\n else multipleDocumentenApiVersionsWarning\n \"\n >\n {{ 'openZaak.documentenApi.documentenApiVersion' | translate }}\n <strong> {{ obs.documentenApiVersion.selectedVersion }} </strong>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #noDocumentenApiVersionWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.noVersionWarningTitle' | translate,\n message: 'openZaak.documentenApi.noVersionWarningMessage' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #multipleDocumentenApiVersionsWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.multipleVersionsWarningTitle' | translate,\n message: 'openZaak.documentenApi.multipleVersionsWarningMessage' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container pb-2\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2024 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"] }]
1908
+ }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: DocumentenApiVersionService }] });
1377
1909
 
1378
1910
  /*
1379
1911
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -1770,13 +2302,13 @@ class DocumentenApiUploaderComponent {
1770
2302
  }))
1771
2303
  .subscribe();
1772
2304
  }
1773
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiUploaderComponent, deps: [{ token: i2$2.UploadProviderService }, { token: i3$2.FormIoStateService }, { token: i3$2.FormIoDomService }, { token: i2$2.DownloadService }, { token: i3$2.ValtimoModalService }, { token: i5$2.UserProviderService }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1774
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiUploaderComponent, selector: "valtimo-documenten-api-formio-uploader", inputs: { disabled: "disabled", title: "title", hideTitle: "hideTitle", subtitle: "subtitle", maxFileSize: "maxFileSize", hideMaxFileSize: "hideMaxFileSize", camera: "camera", documentTitle: "documentTitle", disableDocumentTitle: "disableDocumentTitle", filename: "filename", disableFilename: "disableFilename", author: "author", disableAuthor: "disableAuthor", status: "status", disableStatus: "disableStatus", language: "language", disableLanguage: "disableLanguage", documentType: "documentType", disableDocumentType: "disableDocumentType", description: "description", disableDescription: "disableDescription", confidentialityLevel: "confidentialityLevel", disableConfidentialityLevel: "disableConfidentialityLevel", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [author]=\"author\"\n [confidentialityLevel]=\"confidentialityLevel\"\n [description]=\"description\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [documentTitle]=\"documentTitle\"\n [documentType]=\"documentType\"\n [file$]=\"fileToBeUploaded$\"\n [filename]=\"filename\"\n [hide$]=\"hideModal$\"\n [language]=\"language\"\n [show$]=\"showModal$\"\n [status]=\"status\"\n></valtimo-documenten-api-metadata-modal>\n", styles: [".progress-bar-container{padding:15px 20px}::ng-deep .formio-component-valtimo-file .formio-button-add-another,::ng-deep .formio-component-valtimo-file .btn-secondary{display:none}::ng-deep .formio-component-valtimo-file td{padding:0!important;border:none}::ng-deep .formio-component-valtimo-file .table{border-collapse:collapse;border:none;margin:10px 0}.dropzone-container{margin-bottom:12px}.file-preview{margin-top:-1px;display:flex;border:1px solid #dee2e6}.file-preview div{padding:12px 10px}.file-preview .file-preview-name{width:65%}.file-preview .file-preview-size{width:35%}.file-preview .icon{color:#a1a1a1;font-size:1.3846rem;line-height:18px;cursor:pointer}.file-preview .icon:hover{color:gray}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "directive", type: i3$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["show$", "hide$", "disabled$", "file$", "documentTitle", "disableDocumentTitle", "filename", "disableFilename", "author", "disableAuthor", "status", "disableStatus", "language", "disableLanguage", "documentType", "disableDocumentType", "description", "disableDescription", "confidentialityLevel", "disableConfidentialityLevel", "trefwoorden", "disableTrefwoorden"], outputs: ["metadata"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$2.FileSizePipe, name: "filesize" }] }); }
2305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiUploaderComponent, deps: [{ token: i2$1.UploadProviderService }, { token: i3.FormIoStateService }, { token: i3.FormIoDomService }, { token: i2$1.DownloadService }, { token: i3.ValtimoModalService }, { token: i5$2.UserProviderService }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2306
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiUploaderComponent, selector: "valtimo-documenten-api-formio-uploader", inputs: { disabled: "disabled", title: "title", hideTitle: "hideTitle", subtitle: "subtitle", maxFileSize: "maxFileSize", hideMaxFileSize: "hideMaxFileSize", camera: "camera", documentTitle: "documentTitle", disableDocumentTitle: "disableDocumentTitle", filename: "filename", disableFilename: "disableFilename", author: "author", disableAuthor: "disableAuthor", status: "status", disableStatus: "disableStatus", language: "language", disableLanguage: "disableLanguage", documentType: "documentType", disableDocumentType: "disableDocumentType", description: "description", disableDescription: "disableDescription", confidentialityLevel: "confidentialityLevel", disableConfidentialityLevel: "disableConfidentialityLevel", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [author]=\"author\"\n [confidentialityLevel]=\"confidentialityLevel\"\n [description]=\"description\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [documentTitle]=\"documentTitle\"\n [documentType]=\"documentType\"\n [file$]=\"fileToBeUploaded$\"\n [filename]=\"filename\"\n [language]=\"language\"\n [status]=\"status\"\n></valtimo-documenten-api-metadata-modal>\n", styles: [".progress-bar-container{padding:15px 20px}::ng-deep .formio-component-valtimo-file .formio-button-add-another,::ng-deep .formio-component-valtimo-file .btn-secondary{display:none}::ng-deep .formio-component-valtimo-file td{padding:0!important;border:none}::ng-deep .formio-component-valtimo-file .table{border-collapse:collapse;border:none;margin:10px 0}.dropzone-container{margin-bottom:12px}.file-preview{margin-top:-1px;display:flex;border:1px solid #dee2e6}.file-preview div{padding:12px 10px}.file-preview .file-preview-name{width:65%}.file-preview .file-preview-size{width:35%}.file-preview .icon{color:#a1a1a1;font-size:1.3846rem;line-height:18px;cursor:pointer}.file-preview .icon:hover{color:gray}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "directive", type: i5$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["disabled$", "file$", "author", "confidentialityLevel", "description", "disableAuthor", "disableConfidentialityLevel", "disableDescription", "disableDocumentTitle", "disableDocumentType", "disableFilename", "disableLanguage", "disableStatus", "documentTitle", "documentType", "disableTrefwoorden", "filename", "isEditMode", "language", "open", "status", "supportsTrefwoorden"], outputs: ["metadata", "modalClose"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.FileSizePipe, name: "filesize" }] }); }
1775
2307
  }
1776
2308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiUploaderComponent, decorators: [{
1777
2309
  type: Component,
1778
- args: [{ selector: 'valtimo-documenten-api-formio-uploader', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [author]=\"author\"\n [confidentialityLevel]=\"confidentialityLevel\"\n [description]=\"description\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [documentTitle]=\"documentTitle\"\n [documentType]=\"documentType\"\n [file$]=\"fileToBeUploaded$\"\n [filename]=\"filename\"\n [hide$]=\"hideModal$\"\n [language]=\"language\"\n [show$]=\"showModal$\"\n [status]=\"status\"\n></valtimo-documenten-api-metadata-modal>\n", styles: [".progress-bar-container{padding:15px 20px}::ng-deep .formio-component-valtimo-file .formio-button-add-another,::ng-deep .formio-component-valtimo-file .btn-secondary{display:none}::ng-deep .formio-component-valtimo-file td{padding:0!important;border:none}::ng-deep .formio-component-valtimo-file .table{border-collapse:collapse;border:none;margin:10px 0}.dropzone-container{margin-bottom:12px}.file-preview{margin-top:-1px;display:flex;border:1px solid #dee2e6}.file-preview div{padding:12px 10px}.file-preview .file-preview-name{width:65%}.file-preview .file-preview-size{width:35%}.file-preview .icon{color:#a1a1a1;font-size:1.3846rem;line-height:18px;cursor:pointer}.file-preview .icon:hover{color:gray}\n/*!\n * Copyright 2015-2024 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"] }]
1779
- }], ctorParameters: () => [{ type: i2$2.UploadProviderService }, { type: i3$2.FormIoStateService }, { type: i3$2.FormIoDomService }, { type: i2$2.DownloadService }, { type: i3$2.ValtimoModalService }, { type: i5$2.UserProviderService }, { type: i1$1.ActivatedRoute }], propDecorators: { disabled: [{
2310
+ args: [{ selector: 'valtimo-documenten-api-formio-uploader', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [author]=\"author\"\n [confidentialityLevel]=\"confidentialityLevel\"\n [description]=\"description\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [documentTitle]=\"documentTitle\"\n [documentType]=\"documentType\"\n [file$]=\"fileToBeUploaded$\"\n [filename]=\"filename\"\n [language]=\"language\"\n [status]=\"status\"\n></valtimo-documenten-api-metadata-modal>\n", styles: [".progress-bar-container{padding:15px 20px}::ng-deep .formio-component-valtimo-file .formio-button-add-another,::ng-deep .formio-component-valtimo-file .btn-secondary{display:none}::ng-deep .formio-component-valtimo-file td{padding:0!important;border:none}::ng-deep .formio-component-valtimo-file .table{border-collapse:collapse;border:none;margin:10px 0}.dropzone-container{margin-bottom:12px}.file-preview{margin-top:-1px;display:flex;border:1px solid #dee2e6}.file-preview div{padding:12px 10px}.file-preview .file-preview-name{width:65%}.file-preview .file-preview-size{width:35%}.file-preview .icon{color:#a1a1a1;font-size:1.3846rem;line-height:18px;cursor:pointer}.file-preview .icon:hover{color:gray}\n/*!\n * Copyright 2015-2024 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"] }]
2311
+ }], ctorParameters: () => [{ type: i2$1.UploadProviderService }, { type: i3.FormIoStateService }, { type: i3.FormIoDomService }, { type: i2$1.DownloadService }, { type: i3.ValtimoModalService }, { type: i5$2.UserProviderService }, { type: i1$1.ActivatedRoute }], propDecorators: { disabled: [{
1780
2312
  type: Input
1781
2313
  }], title: [{
1782
2314
  type: Input
@@ -1981,7 +2513,7 @@ class ZaakobjectenService {
1981
2513
  getObjectTypeForm(documentId, objectUrl) {
1982
2514
  return this.http.get(`${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/object/form?objectUrl=${objectUrl}`);
1983
2515
  }
1984
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZaakobjectenService, deps: [{ token: i2$1.ConfigService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
2516
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZaakobjectenService, deps: [{ token: i2.ConfigService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
1985
2517
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZaakobjectenService, providedIn: 'root' }); }
1986
2518
  }
1987
2519
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZaakobjectenService, decorators: [{
@@ -1989,7 +2521,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
1989
2521
  args: [{
1990
2522
  providedIn: 'root',
1991
2523
  }]
1992
- }], ctorParameters: () => [{ type: i2$1.ConfigService }, { type: i1.HttpClient }] });
2524
+ }], ctorParameters: () => [{ type: i2.ConfigService }, { type: i1.HttpClient }] });
1993
2525
 
1994
2526
  /*
1995
2527
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -2099,8 +2631,8 @@ class DossierDetailTabZaakobjectenComponent {
2099
2631
  this.objectName$.next(this.getObjectTypeName(objectTypeSelectItems));
2100
2632
  this.show();
2101
2633
  }
2102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabZaakobjectenComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: ZaakobjectenService }, { token: i3$2.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
2103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabZaakobjectenComponent, isStandalone: true, selector: "valtimo-dossier-detail-tab-zaakobjecten", viewQueries: [{ propertyName: "viewZaakobjectModal", first: true, predicate: ["viewZaakobjectModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i3$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i3$2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: ParagraphModule }, { kind: "component", type: i3$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i3$2.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { kind: "ngmodule", type: VModalModule }, { kind: "component", type: i3$2.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: TitleModule }, { kind: "component", type: i3$2.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i3$2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
2634
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabZaakobjectenComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: ZaakobjectenService }, { token: i3.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
2635
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabZaakobjectenComponent, isStandalone: true, selector: "valtimo-dossier-detail-tab-zaakobjecten", viewQueries: [{ propertyName: "viewZaakobjectModal", first: true, predicate: ["viewZaakobjectModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i3.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i3.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: ParagraphModule }, { kind: "component", type: i3.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i3.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { kind: "ngmodule", type: VModalModule }, { kind: "component", type: i3.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: TitleModule }, { kind: "component", type: i3.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i3.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] }); }
2104
2636
  }
2105
2637
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabZaakobjectenComponent, decorators: [{
2106
2638
  type: Component,
@@ -2115,7 +2647,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
2115
2647
  FormIoModule,
2116
2648
  TranslateModule,
2117
2649
  ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"] }]
2118
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: ZaakobjectenService }, { type: i3$2.ModalService }], propDecorators: { viewZaakobjectModal: [{
2650
+ }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: ZaakobjectenService }, { type: i3.ModalService }], propDecorators: { viewZaakobjectModal: [{
2119
2651
  type: ViewChild,
2120
2652
  args: ['viewZaakobjectModal']
2121
2653
  }] } });
@@ -2221,13 +2753,13 @@ class DossierDetailTabObjectTypeComponent {
2221
2753
  }
2222
2754
  this.show();
2223
2755
  }
2224
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabObjectTypeComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: ZaakobjectenService }, { token: i3$2.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
2225
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabObjectTypeComponent, isStandalone: true, selector: "valtimo-object-type", viewQueries: [{ propertyName: "viewObjectModal", first: true, predicate: ["viewObjectModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i3$2.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { kind: "ngmodule", type: ParagraphModule }, { kind: "component", type: i3$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "ngmodule", type: VModalModule }, { kind: "component", type: i3$2.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: TitleModule }, { kind: "component", type: i3$2.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i3$2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }] }); }
2756
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabObjectTypeComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: ZaakobjectenService }, { token: i3.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
2757
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabObjectTypeComponent, isStandalone: true, selector: "valtimo-object-type", viewQueries: [{ propertyName: "viewObjectModal", first: true, predicate: ["viewObjectModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i3.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { kind: "ngmodule", type: ParagraphModule }, { kind: "component", type: i3.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "ngmodule", type: VModalModule }, { kind: "component", type: i3.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: TitleModule }, { kind: "component", type: i3.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i3.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }] }); }
2226
2758
  }
2227
2759
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabObjectTypeComponent, decorators: [{
2228
2760
  type: Component,
2229
2761
  args: [{ selector: 'valtimo-object-type', standalone: true, imports: [CommonModule, TableModule, ParagraphModule, VModalModule, TitleModule, FormIoModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"] }]
2230
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: ZaakobjectenService }, { type: i3$2.ModalService }], propDecorators: { viewObjectModal: [{
2762
+ }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: ZaakobjectenService }, { type: i3.ModalService }], propDecorators: { viewObjectModal: [{
2231
2763
  type: ViewChild,
2232
2764
  args: ['viewObjectModal']
2233
2765
  }] } });
@@ -2325,7 +2857,7 @@ class ContactMomentService {
2325
2857
  saveContactMoment(contactMomentRequest) {
2326
2858
  return this.http.post(`${this.valtimoEndpointUri}v1/contactmoment`, contactMomentRequest);
2327
2859
  }
2328
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ContactMomentService, deps: [{ token: i1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2860
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ContactMomentService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2329
2861
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ContactMomentService, providedIn: 'root' }); }
2330
2862
  }
2331
2863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ContactMomentService, decorators: [{
@@ -2333,7 +2865,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
2333
2865
  args: [{
2334
2866
  providedIn: 'root',
2335
2867
  }]
2336
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.ConfigService }] });
2868
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
2337
2869
 
2338
2870
  /*
2339
2871
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -2415,13 +2947,13 @@ class DossierDetailTabContactMomentsComponent {
2415
2947
  refetchContactMoments() {
2416
2948
  this.refetchContactMoments$.next('');
2417
2949
  }
2418
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabContactMomentsComponent, deps: [{ token: ContactMomentService }, { token: i3$2.AlertService }, { token: i3$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
2419
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabContactMomentsComponent, isStandalone: true, selector: "valtimo-dossier-detail-tab-contact-moments", viewQueries: [{ propertyName: "modal", first: true, predicate: ["contactMomentsNoteModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n", styles: [".contact-moments-container{display:flex;flex-direction:column}.button-container{display:inline;align-self:flex-end}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule$1 }, { kind: "component", type: i3$2.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: SpinnerModule }, { kind: "component", type: i3$2.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "ngmodule", type: TimelineModule }, { kind: "component", type: i3$2.TimelineComponent, selector: "valtimo-timeline", inputs: ["items", "actions"] }] }); }
2950
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabContactMomentsComponent, deps: [{ token: ContactMomentService }, { token: i3.AlertService }, { token: i5$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
2951
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierDetailTabContactMomentsComponent, isStandalone: true, selector: "valtimo-dossier-detail-tab-contact-moments", viewQueries: [{ propertyName: "modal", first: true, predicate: ["contactMomentsNoteModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n", styles: [".contact-moments-container{display:flex;flex-direction:column}.button-container{display:inline;align-self:flex-end}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule$1 }, { kind: "component", type: i3.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: SpinnerModule }, { kind: "component", type: i3.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "ngmodule", type: TimelineModule }, { kind: "component", type: i3.TimelineComponent, selector: "valtimo-timeline", inputs: ["items", "actions"] }] }); }
2420
2952
  }
2421
2953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierDetailTabContactMomentsComponent, decorators: [{
2422
2954
  type: Component,
2423
2955
  args: [{ selector: 'valtimo-dossier-detail-tab-contact-moments', standalone: true, imports: [CommonModule, ModalModule$1, TranslateModule, FormsModule, SpinnerModule, TimelineModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n", styles: [".contact-moments-container{display:flex;flex-direction:column}.button-container{display:inline;align-self:flex-end}\n/*!\n * Copyright 2015-2024 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"] }]
2424
- }], ctorParameters: () => [{ type: ContactMomentService }, { type: i3$2.AlertService }, { type: i3$1.TranslateService }], propDecorators: { modal: [{
2956
+ }], ctorParameters: () => [{ type: ContactMomentService }, { type: i3.AlertService }, { type: i5$1.TranslateService }], propDecorators: { modal: [{
2425
2957
  type: ViewChild,
2426
2958
  args: ['contactMomentsNoteModal']
2427
2959
  }] } });
@@ -2487,7 +3019,7 @@ class CustomerService {
2487
3019
  getCustomerCases(bsn) {
2488
3020
  return this.http.get(`${this.valtimoEndpointUri}v1/zaken/${bsn}`);
2489
3021
  }
2490
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CustomerService, deps: [{ token: i1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3022
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CustomerService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2491
3023
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CustomerService, providedIn: 'root' }); }
2492
3024
  }
2493
3025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CustomerService, decorators: [{
@@ -2495,7 +3027,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
2495
3027
  args: [{
2496
3028
  providedIn: 'root',
2497
3029
  }]
2498
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.ConfigService }] });
3030
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
2499
3031
 
2500
3032
  /*
2501
3033
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -2628,7 +3160,7 @@ class CustomerListComponent {
2628
3160
  }
2629
3161
  return undefined;
2630
3162
  }));
2631
- this.customers$ = this.searchParameters$.pipe(debounceTime(500), switchMap$1(searchParameters => {
3163
+ this.customers$ = this.searchParameters$.pipe(debounceTime$1(500), switchMap$1(searchParameters => {
2632
3164
  if (searchParameters?.bsn ||
2633
3165
  (searchParameters?.geslachtsnaam &&
2634
3166
  searchParameters?.geboortedatum)) {
@@ -2675,13 +3207,13 @@ class CustomerListComponent {
2675
3207
  clearFamilyName() {
2676
3208
  this.familyName$.next('');
2677
3209
  }
2678
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CustomerListComponent, deps: [{ token: CustomerService }, { token: i3$1.TranslateService }, { token: i2$1.ConfigService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
2679
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: CustomerListComponent, selector: "valtimo-customer-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngTemplateOutlet=\"sidebar\"></ng-container>\n\n<div\n class=\"main-content pt-0\"\n *ngIf=\"{customers: customers$ | async, fields: fields$ | async} as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"(loading$ | async) === false; else loading\">\n <ng-container\n *ngTemplateOutlet=\"list; context: {customers: obs.customers, fields: obs.fields}\"\n ></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #list let-customers=\"customers\" let-fields=\"fields\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"customers\"\n [fields]=\"fields\"\n [header]=\"true\"\n (rowClicked)=\"rowClick($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'customers.title' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'customers.subtitle' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar>\n <h4 class=\"title\">{{ 'customers.searchBasedOn' | translate }}</h4>\n <div class=\"tab-container\">\n <ul class=\"nav nav-tabs nav-tabs-classic\" role=\"tablist\">\n <li class=\"nav-item\">\n <a\n class=\"nav-link active\"\n href=\"#search_bsn\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"true\"\n ><b>{{ 'customers.citizenServiceNumber' | translate }}</b></a\n >\n </li>\n <li class=\"nav-item\">\n <a\n class=\"nav-link\"\n href=\"#search_birth_data\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"false\"\n ><b>{{ 'customers.lastNameAndDateOfBirth' | translate }}</b></a\n >\n </li>\n </ul>\n <div class=\"tab-content\">\n <div class=\"tab-pane active\" id=\"search_bsn\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"bsnTab\"></ng-container>\n </div>\n <div class=\"tab-pane\" id=\"search_birth_data\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"birthDataTab\"></ng-container>\n </div>\n </div>\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n\n<ng-template #bsnTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputBsn\">{{ 'customers.citizenServiceNumber' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputBsn\"\n type=\"text\"\n name=\"bsn\"\n [placeholder]=\"'customers.citizenServiceNumberPlaceholder' | translate\"\n [ngModel]=\"bsn$ | async\"\n (ngModelChange)=\"bsnChange($event)\"\n [ngClass]=\"{'is-valid': bsnValid$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n\n<ng-template #birthDataTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputDateOfBirth\">{{ 'customers.dateOfBirth' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputDateOfBirth\"\n type=\"text\"\n name=\"dateOfBirth\"\n [placeholder]=\"'customers.dateOfBirthPlaceholder' | translate\"\n [ngModel]=\"dateOfBirth$ | async\"\n (ngModelChange)=\"dateOfBirthChange($event)\"\n [ngClass]=\"{'is-valid': dateOfBirthValid$ | async}\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"inputFamilyName\">{{ 'customers.familyName' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputFamilyName\"\n type=\"text\"\n name=\"familyName\"\n [placeholder]=\"'customers.familyNamePlaceholder' | translate\"\n [ngModel]=\"familyName$ | async\"\n (ngModelChange)=\"familyNameChange($event)\"\n [ngClass]=\"{'is-valid': familyName$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$2.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i3$2.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i3$2.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i3$2.FilterSidebarComponent, selector: "valtimo-filter-sidebar" }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
3210
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CustomerListComponent, deps: [{ token: CustomerService }, { token: i5$1.TranslateService }, { token: i2.ConfigService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
3211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: CustomerListComponent, selector: "valtimo-customer-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngTemplateOutlet=\"sidebar\"></ng-container>\n\n<div\n class=\"main-content pt-0\"\n *ngIf=\"{customers: customers$ | async, fields: fields$ | async} as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"(loading$ | async) === false; else loading\">\n <ng-container\n *ngTemplateOutlet=\"list; context: {customers: obs.customers, fields: obs.fields}\"\n ></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #list let-customers=\"customers\" let-fields=\"fields\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"customers\"\n [fields]=\"fields\"\n [header]=\"true\"\n (rowClicked)=\"rowClick($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'customers.title' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'customers.subtitle' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar>\n <h4 class=\"title\">{{ 'customers.searchBasedOn' | translate }}</h4>\n <div class=\"tab-container\">\n <ul class=\"nav nav-tabs nav-tabs-classic\" role=\"tablist\">\n <li class=\"nav-item\">\n <a\n class=\"nav-link active\"\n href=\"#search_bsn\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"true\"\n ><b>{{ 'customers.citizenServiceNumber' | translate }}</b></a\n >\n </li>\n <li class=\"nav-item\">\n <a\n class=\"nav-link\"\n href=\"#search_birth_data\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"false\"\n ><b>{{ 'customers.lastNameAndDateOfBirth' | translate }}</b></a\n >\n </li>\n </ul>\n <div class=\"tab-content\">\n <div class=\"tab-pane active\" id=\"search_bsn\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"bsnTab\"></ng-container>\n </div>\n <div class=\"tab-pane\" id=\"search_birth_data\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"birthDataTab\"></ng-container>\n </div>\n </div>\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n\n<ng-template #bsnTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputBsn\">{{ 'customers.citizenServiceNumber' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputBsn\"\n type=\"text\"\n name=\"bsn\"\n [placeholder]=\"'customers.citizenServiceNumberPlaceholder' | translate\"\n [ngModel]=\"bsn$ | async\"\n (ngModelChange)=\"bsnChange($event)\"\n [ngClass]=\"{'is-valid': bsnValid$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n\n<ng-template #birthDataTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputDateOfBirth\">{{ 'customers.dateOfBirth' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputDateOfBirth\"\n type=\"text\"\n name=\"dateOfBirth\"\n [placeholder]=\"'customers.dateOfBirthPlaceholder' | translate\"\n [ngModel]=\"dateOfBirth$ | async\"\n (ngModelChange)=\"dateOfBirthChange($event)\"\n [ngClass]=\"{'is-valid': dateOfBirthValid$ | async}\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"inputFamilyName\">{{ 'customers.familyName' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputFamilyName\"\n type=\"text\"\n name=\"familyName\"\n [placeholder]=\"'customers.familyNamePlaceholder' | translate\"\n [ngModel]=\"familyName$ | async\"\n (ngModelChange)=\"familyNameChange($event)\"\n [ngClass]=\"{'is-valid': familyName$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i3.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i3.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i3.FilterSidebarComponent, selector: "valtimo-filter-sidebar" }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] }); }
2680
3212
  }
2681
3213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CustomerListComponent, decorators: [{
2682
3214
  type: Component,
2683
3215
  args: [{ selector: 'valtimo-customer-list', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngTemplateOutlet=\"sidebar\"></ng-container>\n\n<div\n class=\"main-content pt-0\"\n *ngIf=\"{customers: customers$ | async, fields: fields$ | async} as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"(loading$ | async) === false; else loading\">\n <ng-container\n *ngTemplateOutlet=\"list; context: {customers: obs.customers, fields: obs.fields}\"\n ></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #list let-customers=\"customers\" let-fields=\"fields\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"customers\"\n [fields]=\"fields\"\n [header]=\"true\"\n (rowClicked)=\"rowClick($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'customers.title' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'customers.subtitle' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar>\n <h4 class=\"title\">{{ 'customers.searchBasedOn' | translate }}</h4>\n <div class=\"tab-container\">\n <ul class=\"nav nav-tabs nav-tabs-classic\" role=\"tablist\">\n <li class=\"nav-item\">\n <a\n class=\"nav-link active\"\n href=\"#search_bsn\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"true\"\n ><b>{{ 'customers.citizenServiceNumber' | translate }}</b></a\n >\n </li>\n <li class=\"nav-item\">\n <a\n class=\"nav-link\"\n href=\"#search_birth_data\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"false\"\n ><b>{{ 'customers.lastNameAndDateOfBirth' | translate }}</b></a\n >\n </li>\n </ul>\n <div class=\"tab-content\">\n <div class=\"tab-pane active\" id=\"search_bsn\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"bsnTab\"></ng-container>\n </div>\n <div class=\"tab-pane\" id=\"search_birth_data\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"birthDataTab\"></ng-container>\n </div>\n </div>\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n\n<ng-template #bsnTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputBsn\">{{ 'customers.citizenServiceNumber' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputBsn\"\n type=\"text\"\n name=\"bsn\"\n [placeholder]=\"'customers.citizenServiceNumberPlaceholder' | translate\"\n [ngModel]=\"bsn$ | async\"\n (ngModelChange)=\"bsnChange($event)\"\n [ngClass]=\"{'is-valid': bsnValid$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n\n<ng-template #birthDataTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputDateOfBirth\">{{ 'customers.dateOfBirth' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputDateOfBirth\"\n type=\"text\"\n name=\"dateOfBirth\"\n [placeholder]=\"'customers.dateOfBirthPlaceholder' | translate\"\n [ngModel]=\"dateOfBirth$ | async\"\n (ngModelChange)=\"dateOfBirthChange($event)\"\n [ngClass]=\"{'is-valid': dateOfBirthValid$ | async}\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"inputFamilyName\">{{ 'customers.familyName' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputFamilyName\"\n type=\"text\"\n name=\"familyName\"\n [placeholder]=\"'customers.familyNamePlaceholder' | translate\"\n [ngModel]=\"familyName$ | async\"\n (ngModelChange)=\"familyNameChange($event)\"\n [ngClass]=\"{'is-valid': familyName$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2024 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"] }]
2684
- }], ctorParameters: () => [{ type: CustomerService }, { type: i3$1.TranslateService }, { type: i2$1.ConfigService }, { type: i1$1.Router }] });
3216
+ }], ctorParameters: () => [{ type: CustomerService }, { type: i5$1.TranslateService }, { type: i2.ConfigService }, { type: i1$1.Router }] });
2685
3217
 
2686
3218
  /*
2687
3219
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -2723,7 +3255,7 @@ class CasesListComponent {
2723
3255
  ]);
2724
3256
  }
2725
3257
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CasesListComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: CustomerService }], target: i0.ɵɵFactoryTarget.Component }); }
2726
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: CasesListComponent, selector: "valtimo-cases-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<v-page-container\n *ngIf=\"{\n customerCases: customerCases$ | async,\n columns: columns$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.customercases.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.customercases.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.customerCases\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"false\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'customerCases.tableItemsText'\"\n [showPagination]=\"false\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n", styles: ["/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.PageContainerComponent, selector: "v-page-container" }, { kind: "component", type: i3$2.PageContentComponent, selector: "v-page-content" }, { kind: "component", type: i3$2.VPageHeaderComponent, selector: "v-page-header" }, { kind: "component", type: i3$2.PageHeaderIntroductionComponent, selector: "v-page-header-introduction" }, { kind: "component", type: i3$2.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "component", type: i3$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "component", type: i3$2.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
3258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: CasesListComponent, selector: "valtimo-cases-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<v-page-container\n *ngIf=\"{\n customerCases: customerCases$ | async,\n columns: columns$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.customercases.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.customercases.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.customerCases\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"false\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'customerCases.tableItemsText'\"\n [showPagination]=\"false\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n", styles: ["/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PageContainerComponent, selector: "v-page-container" }, { kind: "component", type: i3.PageContentComponent, selector: "v-page-content" }, { kind: "component", type: i3.VPageHeaderComponent, selector: "v-page-header" }, { kind: "component", type: i3.PageHeaderIntroductionComponent, selector: "v-page-header-introduction" }, { kind: "component", type: i3.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "component", type: i3.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "component", type: i3.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] }); }
2727
3259
  }
2728
3260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CasesListComponent, decorators: [{
2729
3261
  type: Component,
@@ -2891,7 +3423,7 @@ class DocumentObjectenApiSyncService extends BaseApiService {
2891
3423
  deleteDocumentObjectenApiSync(documentDefinitionName, documentDefinitionVersion) {
2892
3424
  return this.httpClient.delete(this.getApiUrl(`/management/v1/document-definition/${documentDefinitionName}/version/${documentDefinitionVersion}/objecten-api-sync`));
2893
3425
  }
2894
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentObjectenApiSyncService, deps: [{ token: i1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3426
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentObjectenApiSyncService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2895
3427
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentObjectenApiSyncService, providedIn: 'root' }); }
2896
3428
  }
2897
3429
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentObjectenApiSyncService, decorators: [{
@@ -2899,7 +3431,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
2899
3431
  args: [{
2900
3432
  providedIn: 'root',
2901
3433
  }]
2902
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.ConfigService }] });
3434
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
2903
3435
 
2904
3436
  /*
2905
3437
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -3008,8 +3540,8 @@ class DocumentObjectenApiSyncComponent {
3008
3540
  hideModal() {
3009
3541
  this.modalShowing$.next(false);
3010
3542
  }
3011
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentObjectenApiSyncComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: DocumentObjectenApiSyncService }, { token: i3$2.CdsThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
3012
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentObjectenApiSyncComponent, isStandalone: true, selector: "valtimo-document-objecten-api-sync", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'zaakdetails.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentObjectenApiSync: documentObjectenApiSync$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.documentObjectenApiSync; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"remove()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.enabled' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.documentObjectenApiSync?.enabled\n ? ('zaakdetails.yes' | translate)\n : ('zaakdetails.no' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.objectManagementConfigurationTitle' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'zaakdetails.submitButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <cds-modal\n valtimoCdsModal\n [title]=\"'zaakdetails.editModal.title' | translate\"\n [open]=\"modalShowing$ | async\"\n [showFooter]=\"true\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onModalClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'zaakdetails.editModal.title' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"formGroup\">\n <v-select\n *ngIf=\"objectManagementConfigurationItems$ | async as objectManagementConfigurations\"\n [appendInline]=\"false\"\n [dropUp]=\"false\"\n [items]=\"objectManagementConfigurations\"\n [defaultSelectionId]=\"objectManagementConfigurationId.getRawValue()\"\n [placeholder]=\"\n 'zaakdetails.editModal.objectManagementConfigurationPlaceholder' | translate\n \"\n [title]=\"'zaakdetails.editModal.objectManagementConfiguration' | translate\"\n [disabled]=\"false\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"objectManagementConfigurationId\"\n [carbonTheme]=\"currentTheme$ | async\"\n (selectedChange)=\"configSelected($event)\"\n ></v-select>\n\n <cds-checkbox formControlName=\"enabled\"\n >{{ 'zaakdetails.editModal.enabled' | translate }}\n </cds-checkbox>\n </form>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </cds-modal-footer>\n </cds-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\n <button cdsButton=\"secondary\" (click)=\"onModalClose()\" [disabled]=\"false\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!formGroup.valid\" (click)=\"submit()\">\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'zaakdetails.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n", styles: [".card-header,.setting-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.controls{display:flex;align-items:center}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SpinnerModule }, { kind: "component", type: i3$2.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "ngmodule", type: FormModule }, { kind: "ngmodule", type: InputModule$1 }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i3$2.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: ValtimoCdsModalDirectiveModule }, { kind: "directive", type: i3$2.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }] }); }
3543
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentObjectenApiSyncComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: DocumentObjectenApiSyncService }, { token: i3.CdsThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
3544
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentObjectenApiSyncComponent, isStandalone: true, selector: "valtimo-document-objecten-api-sync", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'zaakdetails.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentObjectenApiSync: documentObjectenApiSync$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.documentObjectenApiSync; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"remove()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.enabled' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.documentObjectenApiSync?.enabled\n ? ('zaakdetails.yes' | translate)\n : ('zaakdetails.no' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.objectManagementConfigurationTitle' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'zaakdetails.submitButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <cds-modal\n valtimoCdsModal\n [title]=\"'zaakdetails.editModal.title' | translate\"\n [open]=\"modalShowing$ | async\"\n [showFooter]=\"true\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onModalClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'zaakdetails.editModal.title' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"formGroup\">\n <v-select\n *ngIf=\"objectManagementConfigurationItems$ | async as objectManagementConfigurations\"\n [appendInline]=\"false\"\n [dropUp]=\"false\"\n [items]=\"objectManagementConfigurations\"\n [defaultSelectionId]=\"objectManagementConfigurationId.getRawValue()\"\n [placeholder]=\"\n 'zaakdetails.editModal.objectManagementConfigurationPlaceholder' | translate\n \"\n [title]=\"'zaakdetails.editModal.objectManagementConfiguration' | translate\"\n [disabled]=\"false\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"objectManagementConfigurationId\"\n [carbonTheme]=\"currentTheme$ | async\"\n (selectedChange)=\"configSelected($event)\"\n ></v-select>\n\n <cds-checkbox formControlName=\"enabled\"\n >{{ 'zaakdetails.editModal.enabled' | translate }}\n </cds-checkbox>\n </form>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </cds-modal-footer>\n </cds-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\n <button cdsButton=\"secondary\" (click)=\"onModalClose()\" [disabled]=\"false\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!formGroup.valid\" (click)=\"submit()\">\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'zaakdetails.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n", styles: [".card-header,.setting-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.controls{display:flex;align-items:center}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SpinnerModule }, { kind: "component", type: i3.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "ngmodule", type: FormModule }, { kind: "ngmodule", type: InputModule$1 }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i3.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: ValtimoCdsModalDirectiveModule }, { kind: "directive", type: i3.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i9.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }] }); }
3013
3545
  }
3014
3546
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentObjectenApiSyncComponent, decorators: [{
3015
3547
  type: Component,
@@ -3027,7 +3559,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3027
3559
  ButtonModule,
3028
3560
  ModalModule,
3029
3561
  ], template: "<!--\n ~ Copyright 2015-2024 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=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'zaakdetails.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentObjectenApiSync: documentObjectenApiSync$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.documentObjectenApiSync; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"remove()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.enabled' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.documentObjectenApiSync?.enabled\n ? ('zaakdetails.yes' | translate)\n : ('zaakdetails.no' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.objectManagementConfigurationTitle' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'zaakdetails.submitButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <cds-modal\n valtimoCdsModal\n [title]=\"'zaakdetails.editModal.title' | translate\"\n [open]=\"modalShowing$ | async\"\n [showFooter]=\"true\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onModalClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'zaakdetails.editModal.title' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"formGroup\">\n <v-select\n *ngIf=\"objectManagementConfigurationItems$ | async as objectManagementConfigurations\"\n [appendInline]=\"false\"\n [dropUp]=\"false\"\n [items]=\"objectManagementConfigurations\"\n [defaultSelectionId]=\"objectManagementConfigurationId.getRawValue()\"\n [placeholder]=\"\n 'zaakdetails.editModal.objectManagementConfigurationPlaceholder' | translate\n \"\n [title]=\"'zaakdetails.editModal.objectManagementConfiguration' | translate\"\n [disabled]=\"false\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"objectManagementConfigurationId\"\n [carbonTheme]=\"currentTheme$ | async\"\n (selectedChange)=\"configSelected($event)\"\n ></v-select>\n\n <cds-checkbox formControlName=\"enabled\"\n >{{ 'zaakdetails.editModal.enabled' | translate }}\n </cds-checkbox>\n </form>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </cds-modal-footer>\n </cds-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\n <button cdsButton=\"secondary\" (click)=\"onModalClose()\" [disabled]=\"false\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!formGroup.valid\" (click)=\"submit()\">\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'zaakdetails.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n", styles: [".card-header,.setting-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.controls{display:flex;align-items:center}\n/*!\n * Copyright 2015-2024 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"] }]
3030
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: DocumentObjectenApiSyncService }, { type: i3$2.CdsThemeService }] });
3562
+ }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: DocumentObjectenApiSyncService }, { type: i3.CdsThemeService }] });
3031
3563
 
3032
3564
  /*
3033
3565
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -3101,7 +3633,7 @@ class ZakenApiZaaktypeLinkService extends BaseApiService {
3101
3633
  getPluginConfigurationsByPluginDefinitionKey(pluginDefinitionKey) {
3102
3634
  return this.httpClient.get(this.getApiUrl(`/v1/plugin/configuration?pluginDefinitionKey=${pluginDefinitionKey}`));
3103
3635
  }
3104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZakenApiZaaktypeLinkService, deps: [{ token: i1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3636
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZakenApiZaaktypeLinkService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3105
3637
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZakenApiZaaktypeLinkService, providedIn: 'root' }); }
3106
3638
  }
3107
3639
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZakenApiZaaktypeLinkService, decorators: [{
@@ -3109,7 +3641,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3109
3641
  args: [{
3110
3642
  providedIn: 'root',
3111
3643
  }]
3112
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.ConfigService }] });
3644
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
3113
3645
 
3114
3646
  /*
3115
3647
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -3281,13 +3813,13 @@ class ZakenApiZaaktypeLinkComponent {
3281
3813
  this.toasterService.error('Failed to link zaaktype to dossier');
3282
3814
  });
3283
3815
  }
3284
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZakenApiZaaktypeLinkComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$2.OpenZaakService }, { token: i3$2.AlertService }, { token: i4$1.ToastrService }, { token: i3$1.TranslateService }, { token: ZakenApiZaaktypeLinkService }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
3285
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: ZakenApiZaaktypeLinkComponent, isStandalone: true, selector: "valtimo-zaken-api-zaaktype-link", viewQueries: [{ propertyName: "modal", first: true, predicate: ["openZaakTypeLinkModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.links' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n zaakTypeLink: zaakTypeLink$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.zaakTypeLink; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ this.selectedZaakType?.omschrijving || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"openModal(obs.zaakTypeLink)\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"removeZaakTypeLink()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.autoCreateForCase' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.zaakTypeLink?.createWithDossier\n ? ('viewTypeConverter.Yes' | translate)\n : ('viewTypeConverter.No' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.zakenApiPlugin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ this.selectedPluginConfiguration?.title || '-' }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.rsin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.zaakTypeLink?.rsin || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"openModal(null)\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'openZaak.linkZaakType' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-modal\n #openZaakTypeLinkModal\n elementId=\"openZaakTypeLinkModal\"\n [title]=\"'Zaak types'\"\n subtitle=\"Connect Zaak type to Dossier\"\n showFooter=\"true\"\n>\n <div body>\n <p>{{ 'openZaak.selectZaakTypeForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"this.zaakTypeLinkRequest.zaakTypeUrl\">\n <option [ngValue]=\"null\">{{ 'openZaak.selectZaakType' | translate }}</option>\n <option *ngFor=\"let zaakType of zaakTypes\" [ngValue]=\"zaakType.url\">\n {{ zaakType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.selectZakenApiPluginForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select\n class=\"form-control\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.zakenApiPluginConfigurationId\"\n >\n <option [ngValue]=\"null\">{{ 'openZaak.selectZakenApiPlugin' | translate }}</option>\n <option\n *ngFor=\"let pluginConfiguration of pluginConfigurations\"\n [ngValue]=\"pluginConfiguration.id\"\n >\n {{ pluginConfiguration?.title || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.rsin' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <input\n type=\"text\"\n id=\"name\"\n class=\"form-control\"\n placeholder=\"RSIN\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.rsin\"\n />\n </div>\n\n <div class=\"setting-row\">\n <p>{{ 'openZaak.autoCreateForCase' | translate }}</p>\n <div class=\"controls\">\n <div class=\"switch-button switch-button-success\">\n <input\n type=\"checkbox\"\n [checked]=\"this.zaakTypeLinkRequest.createWithDossier\"\n name=\"createWithDossier\"\n id=\"createWithDossier\"\n (change)=\"\n this.zaakTypeLinkRequest.createWithDossier =\n !this.zaakTypeLinkRequest.createWithDossier\n \"\n />\n <span><label for=\"createWithDossier\"></label></span>\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"informatieObjectTypeSelectionEnabled && selectedZaakType\"\n class=\"input-group mb-3 align-items-center\"\n >\n <select class=\"form-control\" [(ngModel)]=\"selectedInformatieObjectTypeUrl\">\n <option [ngValue]=\"null\" selected>{{ 'openZaak.selectInfoObjectType' | translate }}</option>\n <option\n *ngFor=\"let informatieObjectType of informatieObjectTypes\"\n [ngValue]=\"informatieObjectType.url\"\n >\n {{ informatieObjectType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!this.zaakTypeLinkRequest.zaakTypeUrl\"\n >\n <i class=\"icon mdi mdi-save\"></i>\n {{ 'openZaak.save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'openZaak.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n", styles: [".card-header,.setting-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.controls{display:flex;align-items:center}.full-width-notification{max-inline-size:100%;min-inline-size:100%}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ModalModule$1 }, { kind: "component", type: i3$2.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
3816
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZakenApiZaaktypeLinkComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$1.OpenZaakService }, { token: i3.AlertService }, { token: i4$1.ToastrService }, { token: i5$1.TranslateService }, { token: ZakenApiZaaktypeLinkService }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
3817
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: ZakenApiZaaktypeLinkComponent, isStandalone: true, selector: "valtimo-zaken-api-zaaktype-link", viewQueries: [{ propertyName: "modal", first: true, predicate: ["openZaakTypeLinkModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.links' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n zaakTypeLink: zaakTypeLink$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.zaakTypeLink; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ this.selectedZaakType?.omschrijving || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"openModal(obs.zaakTypeLink)\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"removeZaakTypeLink()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.autoCreateForCase' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.zaakTypeLink?.createWithDossier\n ? ('viewTypeConverter.Yes' | translate)\n : ('viewTypeConverter.No' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.zakenApiPlugin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ this.selectedPluginConfiguration?.title || '-' }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.rsin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.zaakTypeLink?.rsin || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"openModal(null)\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'openZaak.linkZaakType' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-modal\n #openZaakTypeLinkModal\n elementId=\"openZaakTypeLinkModal\"\n [title]=\"'Zaak types'\"\n subtitle=\"Connect Zaak type to Dossier\"\n showFooter=\"true\"\n>\n <div body>\n <p>{{ 'openZaak.selectZaakTypeForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"this.zaakTypeLinkRequest.zaakTypeUrl\">\n <option [ngValue]=\"null\">{{ 'openZaak.selectZaakType' | translate }}</option>\n <option *ngFor=\"let zaakType of zaakTypes\" [ngValue]=\"zaakType.url\">\n {{ zaakType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.selectZakenApiPluginForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select\n class=\"form-control\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.zakenApiPluginConfigurationId\"\n >\n <option [ngValue]=\"null\">{{ 'openZaak.selectZakenApiPlugin' | translate }}</option>\n <option\n *ngFor=\"let pluginConfiguration of pluginConfigurations\"\n [ngValue]=\"pluginConfiguration.id\"\n >\n {{ pluginConfiguration?.title || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.rsin' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <input\n type=\"text\"\n id=\"name\"\n class=\"form-control\"\n placeholder=\"RSIN\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.rsin\"\n />\n </div>\n\n <div class=\"setting-row\">\n <p>{{ 'openZaak.autoCreateForCase' | translate }}</p>\n <div class=\"controls\">\n <div class=\"switch-button switch-button-success\">\n <input\n type=\"checkbox\"\n [checked]=\"this.zaakTypeLinkRequest.createWithDossier\"\n name=\"createWithDossier\"\n id=\"createWithDossier\"\n (change)=\"\n this.zaakTypeLinkRequest.createWithDossier =\n !this.zaakTypeLinkRequest.createWithDossier\n \"\n />\n <span><label for=\"createWithDossier\"></label></span>\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"informatieObjectTypeSelectionEnabled && selectedZaakType\"\n class=\"input-group mb-3 align-items-center\"\n >\n <select class=\"form-control\" [(ngModel)]=\"selectedInformatieObjectTypeUrl\">\n <option [ngValue]=\"null\" selected>{{ 'openZaak.selectInfoObjectType' | translate }}</option>\n <option\n *ngFor=\"let informatieObjectType of informatieObjectTypes\"\n [ngValue]=\"informatieObjectType.url\"\n >\n {{ informatieObjectType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!this.zaakTypeLinkRequest.zaakTypeUrl\"\n >\n <i class=\"icon mdi mdi-save\"></i>\n {{ 'openZaak.save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'openZaak.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n", styles: [".card-header,.setting-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.controls{display:flex;align-items:center}.full-width-notification{max-inline-size:100%;min-inline-size:100%}\n/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ModalModule$1 }, { kind: "component", type: i3.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] }); }
3286
3818
  }
3287
3819
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZakenApiZaaktypeLinkComponent, decorators: [{
3288
3820
  type: Component,
3289
3821
  args: [{ selector: 'valtimo-zaken-api-zaaktype-link', standalone: true, imports: [CommonModule, FormsModule, ModalModule$1, NotificationModule, TranslateModule], template: "<!--\n ~ Copyright 2015-2024 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=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.links' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n zaakTypeLink: zaakTypeLink$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.zaakTypeLink; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ this.selectedZaakType?.omschrijving || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"openModal(obs.zaakTypeLink)\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"removeZaakTypeLink()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.autoCreateForCase' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.zaakTypeLink?.createWithDossier\n ? ('viewTypeConverter.Yes' | translate)\n : ('viewTypeConverter.No' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.zakenApiPlugin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ this.selectedPluginConfiguration?.title || '-' }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.rsin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.zaakTypeLink?.rsin || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"openModal(null)\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'openZaak.linkZaakType' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-modal\n #openZaakTypeLinkModal\n elementId=\"openZaakTypeLinkModal\"\n [title]=\"'Zaak types'\"\n subtitle=\"Connect Zaak type to Dossier\"\n showFooter=\"true\"\n>\n <div body>\n <p>{{ 'openZaak.selectZaakTypeForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"this.zaakTypeLinkRequest.zaakTypeUrl\">\n <option [ngValue]=\"null\">{{ 'openZaak.selectZaakType' | translate }}</option>\n <option *ngFor=\"let zaakType of zaakTypes\" [ngValue]=\"zaakType.url\">\n {{ zaakType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.selectZakenApiPluginForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select\n class=\"form-control\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.zakenApiPluginConfigurationId\"\n >\n <option [ngValue]=\"null\">{{ 'openZaak.selectZakenApiPlugin' | translate }}</option>\n <option\n *ngFor=\"let pluginConfiguration of pluginConfigurations\"\n [ngValue]=\"pluginConfiguration.id\"\n >\n {{ pluginConfiguration?.title || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.rsin' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <input\n type=\"text\"\n id=\"name\"\n class=\"form-control\"\n placeholder=\"RSIN\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.rsin\"\n />\n </div>\n\n <div class=\"setting-row\">\n <p>{{ 'openZaak.autoCreateForCase' | translate }}</p>\n <div class=\"controls\">\n <div class=\"switch-button switch-button-success\">\n <input\n type=\"checkbox\"\n [checked]=\"this.zaakTypeLinkRequest.createWithDossier\"\n name=\"createWithDossier\"\n id=\"createWithDossier\"\n (change)=\"\n this.zaakTypeLinkRequest.createWithDossier =\n !this.zaakTypeLinkRequest.createWithDossier\n \"\n />\n <span><label for=\"createWithDossier\"></label></span>\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"informatieObjectTypeSelectionEnabled && selectedZaakType\"\n class=\"input-group mb-3 align-items-center\"\n >\n <select class=\"form-control\" [(ngModel)]=\"selectedInformatieObjectTypeUrl\">\n <option [ngValue]=\"null\" selected>{{ 'openZaak.selectInfoObjectType' | translate }}</option>\n <option\n *ngFor=\"let informatieObjectType of informatieObjectTypes\"\n [ngValue]=\"informatieObjectType.url\"\n >\n {{ informatieObjectType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!this.zaakTypeLinkRequest.zaakTypeUrl\"\n >\n <i class=\"icon mdi mdi-save\"></i>\n {{ 'openZaak.save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'openZaak.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n", styles: [".card-header,.setting-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.controls{display:flex;align-items:center}.full-width-notification{max-inline-size:100%;min-inline-size:100%}\n/*!\n * Copyright 2015-2024 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"] }]
3290
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i2$2.OpenZaakService }, { type: i3$2.AlertService }, { type: i4$1.ToastrService }, { type: i3$1.TranslateService }, { type: ZakenApiZaaktypeLinkService }, { type: i2$1.ConfigService }], propDecorators: { modal: [{
3822
+ }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i2$1.OpenZaakService }, { type: i3.AlertService }, { type: i4$1.ToastrService }, { type: i5$1.TranslateService }, { type: ZakenApiZaaktypeLinkService }, { type: i2.ConfigService }], propDecorators: { modal: [{
3291
3823
  type: ViewChild,
3292
3824
  args: ['openZaakTypeLinkModal']
3293
3825
  }] } });
@@ -3373,14 +3905,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3373
3905
  */
3374
3906
  class DossierManagementZgwService {
3375
3907
  constructor() {
3376
- this._currentTab$ = new BehaviorSubject(ZgwTabEnum.DOCUMENTEN_API_COLUMNS);
3908
+ this._DEFAULT_TAB = ZgwTabEnum.DOCUMENTEN_API_COLUMNS;
3909
+ this._currentTab$ = new BehaviorSubject(this._DEFAULT_TAB);
3377
3910
  }
3378
3911
  get currentTab$() {
3379
- return this._currentTab$.asObservable();
3912
+ return this._currentTab$.pipe(distinctUntilChanged());
3380
3913
  }
3381
3914
  set currentTab(tab) {
3382
3915
  this._currentTab$.next(tab);
3383
3916
  }
3917
+ resetToDefaultTab() {
3918
+ this._currentTab$.next(this._DEFAULT_TAB);
3919
+ }
3384
3920
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierManagementZgwService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3385
3921
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierManagementZgwService, providedIn: 'root' }); }
3386
3922
  }
@@ -3423,21 +3959,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3423
3959
  * limitations under the License.
3424
3960
  */
3425
3961
  class DossierManagementZgwComponent {
3426
- constructor(dossierManagementZgwService) {
3962
+ constructor(dossierManagementZgwService, cdr, documentenApiVersionService, route) {
3427
3963
  this.dossierManagementZgwService = dossierManagementZgwService;
3428
- this.ZgwTabEnum = ZgwTabEnum;
3429
- this.currentTab$ = this.dossierManagementZgwService.currentTab$;
3964
+ this.cdr = cdr;
3965
+ this.documentenApiVersionService = documentenApiVersionService;
3966
+ this.route = route;
3967
+ this._viewInitialized$ = new BehaviorSubject(false);
3968
+ this._supportedDocumentenApiFeatures$ = this.route.params.pipe(map(params => params?.name), filter(caseDefinitionName => !!caseDefinitionName), switchMap(caseDefinitionName => this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionName)));
3969
+ this.zgwTabs$ = combineLatest([
3970
+ this._viewInitialized$,
3971
+ this.dossierManagementZgwService.currentTab$,
3972
+ this._supportedDocumentenApiFeatures$,
3973
+ ]).pipe(filter(([viewInitialized]) => viewInitialized), map(([_, currentTab, supportedDocumentenApiFeatures]) => [
3974
+ {
3975
+ class: 'no-padding-left-right no-padding-top-bottom',
3976
+ headingTranslationKey: 'zgw.tabs.documentColumns',
3977
+ tab: ZgwTabEnum.DOCUMENTEN_API_COLUMNS,
3978
+ component: DocumentenApiColumnsComponent,
3979
+ },
3980
+ ...(supportedDocumentenApiFeatures.supportsTrefwoorden
3981
+ ? [
3982
+ {
3983
+ class: 'no-padding-left-right no-padding-top-bottom',
3984
+ headingTranslationKey: 'zgw.tabs.documentTags',
3985
+ tab: ZgwTabEnum.DOCUMENTEN_API_TAGS,
3986
+ component: DocumentenApiTagsComponent,
3987
+ },
3988
+ ]
3989
+ : []),
3990
+ ].map(zgwTab => ({ ...zgwTab, active: currentTab === zgwTab.tab }))), tap(zgwTabs => {
3991
+ const activeTab = zgwTabs.length > 1 ? zgwTabs.find(tab => tab.active) : zgwTabs[0];
3992
+ this._zgwTabContent.clear();
3993
+ this._zgwTabContent.createComponent(activeTab.component);
3994
+ this.cdr.detectChanges();
3995
+ }));
3996
+ }
3997
+ ngAfterViewInit() {
3998
+ this._viewInitialized$.next(true);
3999
+ }
4000
+ ngOnDestroy() {
4001
+ this.dossierManagementZgwService.resetToDefaultTab();
3430
4002
  }
3431
4003
  displayTab(tab) {
3432
4004
  this.dossierManagementZgwService.currentTab = tab;
3433
4005
  }
3434
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierManagementZgwComponent, deps: [{ token: DossierManagementZgwService }], target: i0.ɵɵFactoryTarget.Component }); }
3435
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DossierManagementZgwComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"currentTab$ | async as currentTab\">\n <ng-container\n *ngIf=\"{\n documentenApiColumnsActive: currentTab === ZgwTabEnum.DOCUMENTEN_API_COLUMNS\n } as vars\"\n >\n <cds-tabs class=\"dossier-management-tabs\">\n <cds-tab\n class=\"no-padding-left-right no-padding-top-bottom\"\n [active]=\"vars.documentenApiColumnsActive\"\n [heading]=\"'dossierManagement.tabs.zgw' | translate\"\n (selected)=\"displayTab(ZgwTabEnum.DOCUMENTEN_API_COLUMNS)\"\n ></cds-tab\n ></cds-tabs>\n\n <div class=\"dossier-management-zgw__content\">\n <valtimo-documenten-api-columns\n *ngIf=\"vars.documentenApiColumnsActive\"\n ></valtimo-documenten-api-columns>\n </div>\n </ng-container>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i2.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i2.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }, { kind: "component", type: DocumentenApiColumnsComponent, selector: "valtimo-documenten-api-columns" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4006
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierManagementZgwComponent, deps: [{ token: DossierManagementZgwService }, { token: i0.ChangeDetectorRef }, { token: DocumentenApiVersionService }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4007
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DossierManagementZgwComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "_zgwTabContent", first: true, predicate: ["zgwTabContent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-tabs class=\"dossier-management-tabs\">\n @for (zgwTab of (zgwTabs$ | async) || []; track zgwTab.tab) {\n <cds-tab\n [class]=\"zgwTab.class\"\n [active]=\"zgwTab.active\"\n [heading]=\"zgwTab.headingTranslationKey | translate\"\n (selected)=\"displayTab(zgwTab.tab)\"\n ></cds-tab>\n }\n</cds-tabs>\n\n<div class=\"dossier-management-zgw__content\">\n <ng-template #zgwTabContent></ng-template>\n</div>\n", styles: ["/*!\n * Copyright 2015-2024 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: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i9.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i9.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3436
4008
  }
3437
4009
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DossierManagementZgwComponent, decorators: [{
3438
4010
  type: Component,
3439
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TabsModule, TranslateModule, DocumentenApiColumnsComponent], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"currentTab$ | async as currentTab\">\n <ng-container\n *ngIf=\"{\n documentenApiColumnsActive: currentTab === ZgwTabEnum.DOCUMENTEN_API_COLUMNS\n } as vars\"\n >\n <cds-tabs class=\"dossier-management-tabs\">\n <cds-tab\n class=\"no-padding-left-right no-padding-top-bottom\"\n [active]=\"vars.documentenApiColumnsActive\"\n [heading]=\"'dossierManagement.tabs.zgw' | translate\"\n (selected)=\"displayTab(ZgwTabEnum.DOCUMENTEN_API_COLUMNS)\"\n ></cds-tab\n ></cds-tabs>\n\n <div class=\"dossier-management-zgw__content\">\n <valtimo-documenten-api-columns\n *ngIf=\"vars.documentenApiColumnsActive\"\n ></valtimo-documenten-api-columns>\n </div>\n </ng-container>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2024 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"] }]
3440
- }], ctorParameters: () => [{ type: DossierManagementZgwService }] });
4011
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
4012
+ CommonModule,
4013
+ TabsModule,
4014
+ TranslateModule,
4015
+ DocumentenApiTagsComponent,
4016
+ DocumentenApiColumnsComponent,
4017
+ ], template: "<!--\n ~ Copyright 2015-2024 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<cds-tabs class=\"dossier-management-tabs\">\n @for (zgwTab of (zgwTabs$ | async) || []; track zgwTab.tab) {\n <cds-tab\n [class]=\"zgwTab.class\"\n [active]=\"zgwTab.active\"\n [heading]=\"zgwTab.headingTranslationKey | translate\"\n (selected)=\"displayTab(zgwTab.tab)\"\n ></cds-tab>\n }\n</cds-tabs>\n\n<div class=\"dossier-management-zgw__content\">\n <ng-template #zgwTabContent></ng-template>\n</div>\n", styles: ["/*!\n * Copyright 2015-2024 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"] }]
4018
+ }], ctorParameters: () => [{ type: DossierManagementZgwService }, { type: i0.ChangeDetectorRef }, { type: DocumentenApiVersionService }, { type: i1$1.ActivatedRoute }], propDecorators: { _zgwTabContent: [{
4019
+ type: ViewChild,
4020
+ args: ['zgwTabContent', { read: ViewContainerRef }]
4021
+ }] } });
3441
4022
 
3442
4023
  /*
3443
4024
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -3483,6 +4064,14 @@ class ZgwModule {
3483
4064
  DocumentenApiMetadataModalComponent,
3484
4065
  CustomerModule], exports: [DocumentenApiUploaderComponent] }); }
3485
4066
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ZgwModule, providers: [
4067
+ {
4068
+ provide: CASE_MANAGEMENT_TAB_TOKEN,
4069
+ useValue: {
4070
+ translationKey: 'dossierManagement.tabs.zgw',
4071
+ component: DossierManagementZgwComponent,
4072
+ },
4073
+ multi: true,
4074
+ },
3486
4075
  {
3487
4076
  provide: ZGW_OBJECT_TYPE_COMPONENT_TOKEN,
3488
4077
  useValue: DossierDetailTabObjectTypeComponent,
@@ -3529,6 +4118,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3529
4118
  declarations: [DocumentenApiUploaderComponent],
3530
4119
  exports: [DocumentenApiUploaderComponent],
3531
4120
  providers: [
4121
+ {
4122
+ provide: CASE_MANAGEMENT_TAB_TOKEN,
4123
+ useValue: {
4124
+ translationKey: 'dossierManagement.tabs.zgw',
4125
+ component: DossierManagementZgwComponent,
4126
+ },
4127
+ multi: true,
4128
+ },
3532
4129
  {
3533
4130
  provide: ZGW_OBJECT_TYPE_COMPONENT_TOKEN,
3534
4131
  useValue: DossierDetailTabObjectTypeComponent,
@@ -3573,5 +4170,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3573
4170
  * Generated bundle index. Do not edit.
3574
4171
  */
3575
4172
 
3576
- export { CasesListComponent, ContactMomentService, CustomerListComponent, CustomerModule, CustomerService, DocumentObjectenApiSyncComponent, DocumentObjectenApiSyncService, DocumentenApiColumnModalComponent, DocumentenApiColumnService, DocumentenApiColumnsComponent, DocumentenApiDocumentService, DocumentenApiLinkProcessService, DocumentenApiMetadataModalComponent, DocumentenApiUploaderComponent, DocumentenApiVersionComponent, DocumentenApiVersionService, DossierDetailTabContactMomentsComponent, DossierDetailTabDocumentenApiDocumentsComponent, DossierDetailTabObjectTypeComponent, DossierDetailTabZaakobjectenComponent, DossierManagementLinkProcessComponent, DossierManagementZgwComponent, DossierManagementZgwService, ZaakobjectenService, ZakenApiZaaktypeLinkComponent, ZakenApiZaaktypeLinkService, ZgwModule, ZgwTabEnum, customDocumentApiUploaderType, documentenApiUploaderEditForm, registerDocumentenApiFormioUploadComponent };
4173
+ export { COLUMN_VIEW_TYPES, CasesListComponent, ContactMomentService, CustomerListComponent, CustomerModule, CustomerService, DOCUMENTEN_COLUMN_KEYS, DocumentObjectenApiSyncComponent, DocumentObjectenApiSyncService, DocumentenApiColumnModalComponent, DocumentenApiColumnService, DocumentenApiColumnsComponent, DocumentenApiDocumentService, DocumentenApiFilterComponent, DocumentenApiLinkProcessService, DocumentenApiMetadataModalComponent, DocumentenApiTagModalComponent, DocumentenApiTagService, DocumentenApiTagsComponent, DocumentenApiUploaderComponent, DocumentenApiVersionComponent, DocumentenApiVersionService, DossierDetailTabContactMomentsComponent, DossierDetailTabDocumentenApiDocumentsComponent, DossierDetailTabObjectTypeComponent, DossierDetailTabZaakobjectenComponent, DossierManagementLinkProcessComponent, DossierManagementZgwComponent, DossierManagementZgwService, ZaakobjectenService, ZakenApiZaaktypeLinkComponent, ZakenApiZaaktypeLinkService, ZgwModule, ZgwTabEnum, customDocumentApiUploaderType, documentenApiUploaderEditForm, registerDocumentenApiFormioUploadComponent };
3577
4174
  //# sourceMappingURL=valtimo-zgw.mjs.map