@valtimo/zgw 12.0.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -0,0 +1,174 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output, ViewChild, } from '@angular/core';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { TrashCan16 } from '@carbon/icons';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { ButtonModule, DatePickerInputModule, DatePickerModule, DropdownModule, IconModule, InputModule, } from 'carbon-components-angular';
7
+ import flatpickr from 'flatpickr';
8
+ import { combineLatest, debounceTime, filter, map, startWith, Subscription, switchMap, } from 'rxjs';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@valtimo/document";
11
+ import * as i2 from "@angular/forms";
12
+ import * as i3 from "carbon-components-angular";
13
+ import * as i4 from "@angular/router";
14
+ import * as i5 from "@ngx-translate/core";
15
+ import * as i6 from "../../services";
16
+ import * as i7 from "@angular/common";
17
+ export class DocumentenApiFilterComponent {
18
+ constructor(documentService, fb, iconService, route, translateService, documentenApiTagService) {
19
+ this.documentService = documentService;
20
+ this.fb = fb;
21
+ this.iconService = iconService;
22
+ this.route = route;
23
+ this.translateService = translateService;
24
+ this.documentenApiTagService = documentenApiTagService;
25
+ this.filterEvent = new EventEmitter();
26
+ this._subscriptions = new Subscription();
27
+ this._confidentialityLevels = [
28
+ 'openbaar',
29
+ 'beperkt_openbaar',
30
+ 'intern',
31
+ 'zaakvertrouwelijk',
32
+ 'vertrouwelijk',
33
+ 'confidentieel',
34
+ 'geheim',
35
+ 'zeer_geheim',
36
+ ];
37
+ this._filter$ = this.route.queryParamMap.pipe(map(queryParams => {
38
+ let { sort, ...filter } = queryParams['params'];
39
+ if (this.formGroup) {
40
+ if (!!filter.trefwoorden) {
41
+ filter = { ...filter, trefwoorden: this.convertTrefwoordenParam(filter.trefwoorden) };
42
+ }
43
+ this.formGroup.patchValue(filter, { emitEvent: false });
44
+ }
45
+ return filter;
46
+ }));
47
+ this.confidentialityLevels$ = combineLatest([
48
+ this._filter$,
49
+ this.translateService.stream('key'),
50
+ ]).pipe(map(([filter]) => this._confidentialityLevels.map((confidentialityLevel) => ({
51
+ content: this.translateService.instant(`document.${confidentialityLevel}`),
52
+ selected: filter?.vertrouwelijkheidaanduiding === confidentialityLevel,
53
+ id: confidentialityLevel,
54
+ }))), startWith([]));
55
+ this.informationObjectTypes$ = this.route.paramMap.pipe(filter((paramMap) => !!paramMap.get('documentDefinitionName')), switchMap((paramMap) => combineLatest([
56
+ this.documentService.getDocumentTypes(paramMap.get('documentDefinitionName') ?? ''),
57
+ this._filter$,
58
+ ])), map(([types, filter]) => types.map((type) => ({
59
+ content: type.name,
60
+ selected: filter?.informatieobjecttype === type.url,
61
+ id: type.url,
62
+ }))), startWith([]));
63
+ this.tags$ = this.route.paramMap.pipe(filter((paramMap) => !!paramMap.get('documentDefinitionName')), switchMap((paramMap) => combineLatest([
64
+ this.documentenApiTagService.getTags(paramMap.get('documentDefinitionName') ?? ''),
65
+ this.route.queryParamMap,
66
+ ])), map(([tags, queryParamMap]) => {
67
+ const selectedTags = this.convertTrefwoordenParam(queryParamMap['params']?.trefwoorden).map((item) => item.content);
68
+ return tags.map((tag) => ({
69
+ content: tag.value,
70
+ selected: selectedTags.includes(tag.value),
71
+ }));
72
+ }), startWith([]));
73
+ this.formGroup = this.fb.group({
74
+ auteur: this.fb.control(''),
75
+ vertrouwelijkHeidaanduiding: this.fb.control({}),
76
+ creatiedatumFrom: this.fb.control(''),
77
+ creatiedatumTo: this.fb.control(''),
78
+ informatieObjectType: this.fb.control({}),
79
+ trefwoorden: this.fb.control([]),
80
+ titel: this.fb.control(''),
81
+ });
82
+ this.iconService.register(TrashCan16);
83
+ }
84
+ ngOnInit() {
85
+ this.openFormValueSubscription();
86
+ }
87
+ ngOnDestroy() {
88
+ this._subscriptions.unsubscribe();
89
+ }
90
+ ngAfterViewInit() {
91
+ const creationDateFromControlValue = this.formGroup.get('creatiedatumFrom')?.value;
92
+ const creationDateToControlValue = this.formGroup.get('creatiedatumTo')?.value;
93
+ if (!!creationDateFromControlValue) {
94
+ this.creationDateFromPicker.writeValue([
95
+ flatpickr.formatDate(new Date(creationDateFromControlValue), 'd-m-Y'),
96
+ ]);
97
+ }
98
+ if (!!creationDateToControlValue) {
99
+ this.creationDateToPicker.writeValue([
100
+ flatpickr.formatDate(new Date(creationDateToControlValue), 'd-m-Y'),
101
+ ]);
102
+ }
103
+ }
104
+ resetFilter() {
105
+ this.creationDateFromPicker.writeValue([]);
106
+ this.creationDateToPicker.writeValue([]);
107
+ this.formGroup.reset();
108
+ }
109
+ onDateSelected(control, event) {
110
+ if (control === 'createdFrom') {
111
+ this.formGroup.get('creatiedatumFrom')?.patchValue(event);
112
+ return;
113
+ }
114
+ this.formGroup.get('creatiedatumTo')?.patchValue(event);
115
+ }
116
+ openFormValueSubscription() {
117
+ this._subscriptions.add(this.formGroup.valueChanges.pipe(debounceTime(500)).subscribe(formValue => {
118
+ this.filterEvent.emit({
119
+ ...(!!formValue.auteur && { auteur: formValue.auteur }),
120
+ ...(!!formValue.titel && { titel: formValue.titel }),
121
+ ...(!!formValue.creatiedatumFrom && {
122
+ creatiedatumFrom: flatpickr.formatDate(new Date(formValue.creatiedatumFrom), 'Y-m-d'),
123
+ }),
124
+ ...(!!formValue.creatiedatumTo && {
125
+ creatiedatumTo: flatpickr.formatDate(new Date(formValue.creatiedatumTo), 'Y-m-d'),
126
+ }),
127
+ ...(!!formValue.vertrouwelijkHeidaanduiding?.id && {
128
+ vertrouwelijkheidaanduiding: formValue.vertrouwelijkHeidaanduiding.id,
129
+ }),
130
+ ...(!!formValue.informatieObjectType?.id && {
131
+ informatieobjecttype: formValue.informatieObjectType.id,
132
+ }),
133
+ ...(!!formValue.trefwoorden &&
134
+ formValue.trefwoorden.length > 0 && {
135
+ trefwoorden: formValue.trefwoorden.reduce((acc, curr, index) => (index === 0 ? curr.content : `${acc},${curr.content}`), ''),
136
+ }),
137
+ });
138
+ }));
139
+ }
140
+ convertTrefwoordenParam(stringArray) {
141
+ if (!stringArray)
142
+ return [];
143
+ const array = stringArray.split(',');
144
+ return array.map((content) => ({
145
+ content,
146
+ selected: true,
147
+ }));
148
+ }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiFilterComponent, deps: [{ token: i1.DocumentService }, { token: i2.FormBuilder }, { token: i3.IconService }, { token: i4.ActivatedRoute }, { token: i5.TranslateService }, { token: i6.DocumentenApiTagService }], target: i0.ɵɵFactoryTarget.Component }); }
150
+ 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: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DatePickerInputModule }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i3.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: i3.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: i3.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: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
151
+ }
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiFilterComponent, decorators: [{
153
+ type: Component,
154
+ args: [{ selector: 'valtimo-dossier-detail-tab-documenten-api-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
155
+ CommonModule,
156
+ ButtonModule,
157
+ DatePickerInputModule,
158
+ DatePickerModule,
159
+ DropdownModule,
160
+ IconModule,
161
+ InputModule,
162
+ TranslateModule,
163
+ ReactiveFormsModule,
164
+ ], 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"] }]
165
+ }], ctorParameters: () => [{ type: i1.DocumentService }, { type: i2.FormBuilder }, { type: i3.IconService }, { type: i4.ActivatedRoute }, { type: i5.TranslateService }, { type: i6.DocumentenApiTagService }], propDecorators: { creationDateFromPicker: [{
166
+ type: ViewChild,
167
+ args: ['creationDateFrom']
168
+ }], creationDateToPicker: [{
169
+ type: ViewChild,
170
+ args: ['creationDateTo']
171
+ }], filterEvent: [{
172
+ type: Output
173
+ }] } });
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vemd3L3NyYy9saWIvbW9kdWxlcy9kb2N1bWVudGVuLWFwaS9jb21wb25lbnRzL2RvY3VtZW50ZW4tYXBpLWZpbHRlci9kb2N1bWVudGVuLWFwaS1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby96Z3cvc3JjL2xpYi9tb2R1bGVzL2RvY3VtZW50ZW4tYXBpL2NvbXBvbmVudHMvZG9jdW1lbnRlbi1hcGktZmlsdGVyL2RvY3VtZW50ZW4tYXBpLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUdaLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBR3RFLE9BQU8sRUFDTCxZQUFZLEVBRVoscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsVUFBVSxFQUVWLFdBQVcsR0FFWixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksRUFDWixNQUFNLEVBQ04sR0FBRyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDOzs7Ozs7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XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBQYXJhbU1hcH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhc2hDYW4xNn0gZnJvbSAnQGNhcmJvbi9pY29ucyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NvbmZpZGVudGlhbGl0eUxldmVsfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlLCBEb2N1bWVudFR5cGV9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRGF0ZVBpY2tlcixcbiAgRGF0ZVBpY2tlcklucHV0TW9kdWxlLFxuICBEYXRlUGlja2VyTW9kdWxlLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSWNvblNlcnZpY2UsXG4gIElucHV0TW9kdWxlLFxuICBMaXN0SXRlbSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQgZmxhdHBpY2tyIGZyb20gJ2ZsYXRwaWNrcic7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBzdGFydFdpdGgsXG4gIFN1YnNjcmlwdGlvbixcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7RG9jdW1lbnRlbkFwaUZpbHRlck1vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtEb2N1bWVudGVuQXBpVGFnfSBmcm9tICcuLi8uLi9tb2RlbHMvZG9jdW1lbnRlbi1hcGktdGFnLm1vZGVsJztcbmltcG9ydCB7RG9jdW1lbnRlbkFwaVRhZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItZG9jdW1lbnRlbi1hcGktZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50ZW4tYXBpLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50ZW4tYXBpLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgRGF0ZVBpY2tlcklucHV0TW9kdWxlLFxuICAgIERhdGVQaWNrZXJNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRlbkFwaUZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgnY3JlYXRpb25EYXRlRnJvbScpIHB1YmxpYyByZWFkb25seSBjcmVhdGlvbkRhdGVGcm9tUGlja2VyOiBEYXRlUGlja2VyO1xuICBAVmlld0NoaWxkKCdjcmVhdGlvbkRhdGVUbycpIHB1YmxpYyByZWFkb25seSBjcmVhdGlvbkRhdGVUb1BpY2tlcjogRGF0ZVBpY2tlcjtcbiAgQE91dHB1dCgpIHB1YmxpYyBmaWx0ZXJFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RG9jdW1lbnRlbkFwaUZpbHRlck1vZGVsPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZGVudGlhbGl0eUxldmVsczogQXJyYXk8Q29uZmlkZW50aWFsaXR5TGV2ZWw+ID0gW1xuICAgICdvcGVuYmFhcicsXG4gICAgJ2JlcGVya3Rfb3BlbmJhYXInLFxuICAgICdpbnRlcm4nLFxuICAgICd6YWFrdmVydHJvdXdlbGlqaycsXG4gICAgJ3ZlcnRyb3V3ZWxpamsnLFxuICAgICdjb25maWRlbnRpZWVsJyxcbiAgICAnZ2VoZWltJyxcbiAgICAnemVlcl9nZWhlaW0nLFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlciQgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAucGlwZShcbiAgICBtYXAocXVlcnlQYXJhbXMgPT4ge1xuICAgICAgbGV0IHtzb3J0LCAuLi5maWx0ZXJ9ID0gcXVlcnlQYXJhbXNbJ3BhcmFtcyddO1xuICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICAgIGlmICghIWZpbHRlci50cmVmd29vcmRlbikge1xuICAgICAgICAgIGZpbHRlciA9IHsuLi5maWx0ZXIsIHRyZWZ3b29yZGVuOiB0aGlzLmNvbnZlcnRUcmVmd29vcmRlblBhcmFtKGZpbHRlci50cmVmd29vcmRlbil9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoZmlsdGVyLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb25maWRlbnRpYWxpdHlMZXZlbHMkOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fZmlsdGVyJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtmaWx0ZXJdKSA9PlxuICAgICAgdGhpcy5fY29uZmlkZW50aWFsaXR5TGV2ZWxzLm1hcCgoY29uZmlkZW50aWFsaXR5TGV2ZWw6IENvbmZpZGVudGlhbGl0eUxldmVsKSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgZG9jdW1lbnQuJHtjb25maWRlbnRpYWxpdHlMZXZlbH1gKSxcbiAgICAgICAgc2VsZWN0ZWQ6IGZpbHRlcj8udmVydHJvdXdlbGlqa2hlaWRhYW5kdWlkaW5nID09PSBjb25maWRlbnRpYWxpdHlMZXZlbCxcbiAgICAgICAgaWQ6IGNvbmZpZGVudGlhbGl0eUxldmVsLFxuICAgICAgfSkpXG4gICAgKSxcbiAgICBzdGFydFdpdGgoW10pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGluZm9ybWF0aW9uT2JqZWN0VHlwZXMkOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+ID0gdGhpcy5yb3V0ZS5wYXJhbU1hcC5waXBlKFxuICAgIGZpbHRlcigocGFyYW1NYXA6IFBhcmFtTWFwKSA9PiAhIXBhcmFtTWFwLmdldCgnZG9jdW1lbnREZWZpbml0aW9uTmFtZScpKSxcbiAgICBzd2l0Y2hNYXAoKHBhcmFtTWFwOiBQYXJhbU1hcCkgPT5cbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXREb2N1bWVudFR5cGVzKHBhcmFtTWFwLmdldCgnZG9jdW1lbnREZWZpbml0aW9uTmFtZScpID8/ICcnKSxcbiAgICAgICAgdGhpcy5fZmlsdGVyJCxcbiAgICAgIF0pXG4gICAgKSxcbiAgICBtYXAoKFt0eXBlcywgZmlsdGVyXSkgPT5cbiAgICAgIHR5cGVzLm1hcCgodHlwZTogRG9jdW1lbnRUeXBlKSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0eXBlLm5hbWUsXG4gICAgICAgIHNlbGVjdGVkOiBmaWx0ZXI/LmluZm9ybWF0aWVvYmplY3R0eXBlID09PSB0eXBlLnVybCxcbiAgICAgICAgaWQ6IHR5cGUudXJsLFxuICAgICAgfSkpXG4gICAgKSxcbiAgICBzdGFydFdpdGgoW10pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHRhZ3MkOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+ID0gdGhpcy5yb3V0ZS5wYXJhbU1hcC5waXBlKFxuICAgIGZpbHRlcigocGFyYW1NYXA6IFBhcmFtTWFwKSA9PiAhIXBhcmFtTWFwLmdldCgnZG9jdW1lbnREZWZpbml0aW9uTmFtZScpKSxcbiAgICBzd2l0Y2hNYXAoKHBhcmFtTWFwOiBQYXJhbU1hcCkgPT5cbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmRvY3VtZW50ZW5BcGlUYWdTZXJ2aWNlLmdldFRhZ3MocGFyYW1NYXAuZ2V0KCdkb2N1bWVudERlZmluaXRpb25OYW1lJykgPz8gJycpLFxuICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAsXG4gICAgICBdKVxuICAgICksXG4gICAgbWFwKChbdGFncywgcXVlcnlQYXJhbU1hcF0pID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkVGFncyA9IHRoaXMuY29udmVydFRyZWZ3b29yZGVuUGFyYW0ocXVlcnlQYXJhbU1hcFsncGFyYW1zJ10/LnRyZWZ3b29yZGVuKS5tYXAoXG4gICAgICAgIChpdGVtOiBMaXN0SXRlbSkgPT4gaXRlbS5jb250ZW50XG4gICAgICApO1xuICAgICAgcmV0dXJuIHRhZ3MubWFwKCh0YWc6IERvY3VtZW50ZW5BcGlUYWcpID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IHRhZy52YWx1ZSxcbiAgICAgICAgc2VsZWN0ZWQ6IHNlbGVjdGVkVGFncy5pbmNsdWRlcyh0YWcudmFsdWUpLFxuICAgICAgfSkpO1xuICAgIH0pLFxuICAgIHN0YXJ0V2l0aChbXSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgYXV0ZXVyOiB0aGlzLmZiLmNvbnRyb2woJycpLFxuICAgIHZlcnRyb3V3ZWxpamtIZWlkYWFuZHVpZGluZzogdGhpcy5mYi5jb250cm9sKHt9KSxcbiAgICBjcmVhdGllZGF0dW1Gcm9tOiB0aGlzLmZiLmNvbnRyb2woJycpLFxuICAgIGNyZWF0aWVkYXR1bVRvOiB0aGlzLmZiLmNvbnRyb2woJycpLFxuICAgIGluZm9ybWF0aWVPYmplY3RUeXBlOiB0aGlzLmZiLmNvbnRyb2woe30pLFxuICAgIHRyZWZ3b29yZGVuOiB0aGlzLmZiLmNvbnRyb2woW10pLFxuICAgIHRpdGVsOiB0aGlzLmZiLmNvbnRyb2woJycpLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ZW5BcGlUYWdTZXJ2aWNlOiBEb2N1bWVudGVuQXBpVGFnU2VydmljZVxuICApIHtcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVyKFRyYXNoQ2FuMTYpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkZvcm1WYWx1ZVN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY3JlYXRpb25EYXRlRnJvbUNvbnRyb2xWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldCgnY3JlYXRpZWRhdHVtRnJvbScpPy52YWx1ZTtcbiAgICBjb25zdCBjcmVhdGlvbkRhdGVUb0NvbnRyb2xWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldCgnY3JlYXRpZWRhdHVtVG8nKT8udmFsdWU7XG5cbiAgICBpZiAoISFjcmVhdGlvbkRhdGVGcm9tQ29udHJvbFZhbHVlKSB7XG4gICAgICB0aGlzLmNyZWF0aW9uRGF0ZUZyb21QaWNrZXIud3JpdGVWYWx1ZShbXG4gICAgICAgIGZsYXRwaWNrci5mb3JtYXREYXRlKG5ldyBEYXRlKGNyZWF0aW9uRGF0ZUZyb21Db250cm9sVmFsdWUpLCAnZC1tLVknKSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGlmICghIWNyZWF0aW9uRGF0ZVRvQ29udHJvbFZhbHVlKSB7XG4gICAgICB0aGlzLmNyZWF0aW9uRGF0ZVRvUGlja2VyLndyaXRlVmFsdWUoW1xuICAgICAgICBmbGF0cGlja3IuZm9ybWF0RGF0ZShuZXcgRGF0ZShjcmVhdGlvbkRhdGVUb0NvbnRyb2xWYWx1ZSksICdkLW0tWScpLFxuICAgICAgXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0RmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRpb25EYXRlRnJvbVBpY2tlci53cml0ZVZhbHVlKFtdKTtcbiAgICB0aGlzLmNyZWF0aW9uRGF0ZVRvUGlja2VyLndyaXRlVmFsdWUoW10pO1xuICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25EYXRlU2VsZWN0ZWQoY29udHJvbDogJ2NyZWF0ZWRUbycgfCAnY3JlYXRlZEZyb20nLCBldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKGNvbnRyb2wgPT09ICdjcmVhdGVkRnJvbScpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY3JlYXRpZWRhdHVtRnJvbScpPy5wYXRjaFZhbHVlKGV2ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NyZWF0aWVkYXR1bVRvJyk/LnBhdGNoVmFsdWUoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRm9ybVZhbHVlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlckV2ZW50LmVtaXQoe1xuICAgICAgICAgIC4uLighIWZvcm1WYWx1ZS5hdXRldXIgJiYge2F1dGV1cjogZm9ybVZhbHVlLmF1dGV1cn0pLFxuICAgICAgICAgIC4uLighIWZvcm1WYWx1ZS50aXRlbCAmJiB7dGl0ZWw6IGZvcm1WYWx1ZS50aXRlbH0pLFxuICAgICAgICAgIC4uLighIWZvcm1WYWx1ZS5jcmVhdGllZGF0dW1Gcm9tICYmIHtcbiAgICAgICAgICAgIGNyZWF0aWVkYXR1bUZyb206IGZsYXRwaWNrci5mb3JtYXREYXRlKG5ldyBEYXRlKGZvcm1WYWx1ZS5jcmVhdGllZGF0dW1Gcm9tKSwgJ1ktbS1kJyksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgLi4uKCEhZm9ybVZhbHVlLmNyZWF0aWVkYXR1bVRvICYmIHtcbiAgICAgICAgICAgIGNyZWF0aWVkYXR1bVRvOiBmbGF0cGlja3IuZm9ybWF0RGF0ZShuZXcgRGF0ZShmb3JtVmFsdWUuY3JlYXRpZWRhdHVtVG8pLCAnWS1tLWQnKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICAuLi4oISEoZm9ybVZhbHVlLnZlcnRyb3V3ZWxpamtIZWlkYWFuZHVpZGluZyBhcyBMaXN0SXRlbSk/LmlkICYmIHtcbiAgICAgICAgICAgIHZlcnRyb3V3ZWxpamtoZWlkYWFuZHVpZGluZzogKGZvcm1WYWx1ZS52ZXJ0cm91d2VsaWprSGVpZGFhbmR1aWRpbmcgYXMgTGlzdEl0ZW0pLmlkLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIC4uLighIShmb3JtVmFsdWUuaW5mb3JtYXRpZU9iamVjdFR5cGUgYXMgTGlzdEl0ZW0pPy5pZCAmJiB7XG4gICAgICAgICAgICBpbmZvcm1hdGllb2JqZWN0dHlwZTogKGZvcm1WYWx1ZS5pbmZvcm1hdGllT2JqZWN0VHlwZSBhcyBMaXN0SXRlbSkuaWQsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgLi4uKCEhZm9ybVZhbHVlLnRyZWZ3b29yZGVuICYmXG4gICAgICAgICAgICBmb3JtVmFsdWUudHJlZndvb3JkZW4ubGVuZ3RoID4gMCAmJiB7XG4gICAgICAgICAgICAgIHRyZWZ3b29yZGVuOiAoZm9ybVZhbHVlLnRyZWZ3b29yZGVuIGFzIExpc3RJdGVtW10pLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoYWNjLCBjdXJyLCBpbmRleCkgPT4gKGluZGV4ID09PSAwID8gY3Vyci5jb250ZW50IDogYCR7YWNjfSwke2N1cnIuY29udGVudH1gKSxcbiAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VHJlZndvb3JkZW5QYXJhbShzdHJpbmdBcnJheTogc3RyaW5nIHwgdW5kZWZpbmVkKTogTGlzdEl0ZW1bXSB7XG4gICAgaWYgKCFzdHJpbmdBcnJheSkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGFycmF5ID0gc3RyaW5nQXJyYXkuc3BsaXQoJywnKTtcblxuICAgIHJldHVybiBhcnJheS5tYXAoKGNvbnRlbnQ6IHN0cmluZykgPT4gKHtcbiAgICAgIGNvbnRlbnQsXG4gICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICB9KSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2YWx0aW1vLWRvY3VtZW50ZW4tYXBpLWZpbHRlclwiIChjbGljayk9XCIkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcIj5cbiAgPGZvcm1cbiAgICAqbmdJZj1cIntcbiAgICAgIGNvbmZpZGVudGlhbGl0eUxldmVsczogY29uZmlkZW50aWFsaXR5TGV2ZWxzJCB8IGFzeW5jLFxuICAgICAgaW5mb3JtYXRpb25PYmplY3RUeXBlczogaW5mb3JtYXRpb25PYmplY3RUeXBlcyQgfCBhc3luYyxcbiAgICAgIHRhZ3M6IHRhZ3MkIHwgYXN5bmNcbiAgICB9IGFzIG9ic1wiXG4gICAgY2xhc3M9XCJ2YWx0aW1vLWRvY3VtZW50ZW4tYXBpLWZpbHRlcl9fZm9ybVwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICA+XG4gICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAge3sgJ3pndy5kb2N1bWVudENvbHVtbnMudGl0ZWwnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgIDxpbnB1dCBjZHNUZXh0IGZvcm1Db250cm9sTmFtZT1cInRpdGVsXCIgLz5cbiAgICA8L2Nkcy10ZXh0LWxhYmVsPlxuXG4gICAgPGNkcy1kcm9wZG93blxuICAgICAgW2Rpc2FibGVkXT1cIiFvYnMuaW5mb3JtYXRpb25PYmplY3RUeXBlcz8ubGVuZ3RoXCJcbiAgICAgIFtkcm9wVXBdPVwiZmFsc2VcIlxuICAgICAgW2xhYmVsXT1cIid6Z3cuZG9jdW1lbnRDb2x1bW5zLmluZm9ybWF0aWVvYmplY3R0eXBlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbmZvcm1hdGllT2JqZWN0VHlwZVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJvYnMuaW5mb3JtYXRpb25PYmplY3RUeXBlc1wiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtZHJvcGRvd24+XG5cbiAgICA8ZGl2IGNsYXNzPVwidmFsdGltby1kb2N1bWVudGVuLWFwaS1maWx0ZXJfX2RhdGVzXCI+XG4gICAgICA8Y2RzLWRhdGUtcGlja2VyXG4gICAgICAgICNjcmVhdGlvbkRhdGVGcm9tXG4gICAgICAgIFtsYWJlbF09XCInaW50ZXJmYWNlLmxhYmVscy5kYXRlQ3JlYXRpb25Gcm9tJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiREQtTU0tWVlZWVwiXG4gICAgICAgIFtkYXRlRm9ybWF0XT1cIidkLW0tWSdcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25EYXRlU2VsZWN0ZWQoJ2NyZWF0ZWRGcm9tJywgJGV2ZW50KVwiXG4gICAgICA+PC9jZHMtZGF0ZS1waWNrZXI+XG5cbiAgICAgIDxjZHMtZGF0ZS1waWNrZXJcbiAgICAgICAgI2NyZWF0aW9uRGF0ZVRvXG4gICAgICAgIFtsYWJlbF09XCInaW50ZXJmYWNlLmxhYmVscy5kYXRlQ3JlYXRpb25UbycgfCB0cmFuc2xhdGVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIkRELU1NLVlZWVlcIlxuICAgICAgICBbZGF0ZUZvcm1hdF09XCInZC1tLVknXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uRGF0ZVNlbGVjdGVkKCdjcmVhdGVkVG8nLCAkZXZlbnQpXCJcbiAgICAgID48L2Nkcy1kYXRlLXBpY2tlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgIHt7ICd6Z3cuZG9jdW1lbnRDb2x1bW5zLmF1dGV1cicgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPGlucHV0IGNkc1RleHQgZm9ybUNvbnRyb2xOYW1lPVwiYXV0ZXVyXCIgLz5cbiAgICA8L2Nkcy10ZXh0LWxhYmVsPlxuXG4gICAgPGNkcy1kcm9wZG93blxuICAgICAgW2Ryb3BVcF09XCJmYWxzZVwiXG4gICAgICBbbGFiZWxdPVwiJ3pndy5kb2N1bWVudENvbHVtbnMudmVydHJvdXdlbGlqa2hlaWRhYW5kdWlkaW5nJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2ZXJ0cm91d2VsaWprSGVpZGFhbmR1aWRpbmdcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzLmNvbmZpZGVudGlhbGl0eUxldmVsc1wiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtZHJvcGRvd24+XG5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICBbbGFiZWxdPVwiJ3pndy5kb2N1bWVudENvbHVtbnMudHJlZndvb3JkZW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInRyZWZ3b29yZGVuXCJcbiAgICAgIHR5cGU9XCJtdWx0aVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJvYnMudGFnc1wiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtZHJvcGRvd24+XG4gIDwvZm9ybT5cblxuICA8Zm9vdGVyIGNsYXNzPVwidmFsdGltby1kb2N1bWVudGVuLWFwaS1maWx0ZXJfX2Zvb3RlclwiPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwidGVydGlhcnlcIiAoY2xpY2spPVwicmVzZXRGaWx0ZXIoKVwiPlxuICAgICAge3sgJ1Jlc2V0IGZpbHRlcicgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInRyYXNoLWNhblwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L2Zvb3Rlcj5cbjwvZGl2PlxuIl19