@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.
- package/esm2022/lib/components/dossier-management-zgw/dossier-management-zgw.component.mjs +61 -13
- package/esm2022/lib/models/dossier-management-zgw.model.mjs +5 -3
- package/esm2022/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.mjs +115 -242
- package/esm2022/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.mjs +57 -85
- package/esm2022/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.mjs +171 -100
- package/esm2022/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.mjs +174 -0
- package/esm2022/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +244 -106
- package/esm2022/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.mjs +115 -0
- package/esm2022/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.mjs +164 -0
- package/esm2022/lib/modules/documenten-api/components/index.mjs +5 -2
- package/esm2022/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.mjs +3 -3
- package/esm2022/lib/modules/documenten-api/models/configured-column.model.mjs +12 -2
- package/esm2022/lib/modules/documenten-api/models/documenten-api-filter.model.mjs +17 -0
- package/esm2022/lib/modules/documenten-api/models/documenten-api-metadata.model.mjs +1 -1
- package/esm2022/lib/modules/documenten-api/models/documenten-api-tag.model.mjs +17 -0
- package/esm2022/lib/modules/documenten-api/models/documenten-api-version.model.mjs +1 -1
- package/esm2022/lib/modules/documenten-api/models/documenten-api.model.mjs +22 -2
- package/esm2022/lib/modules/documenten-api/models/index.mjs +2 -1
- package/esm2022/lib/modules/documenten-api/services/documenten-api-column.service.mjs +10 -9
- package/esm2022/lib/modules/documenten-api/services/documenten-api-document.service.mjs +10 -3
- package/esm2022/lib/modules/documenten-api/services/documenten-api-link-process.service.mjs +1 -16
- package/esm2022/lib/modules/documenten-api/services/documenten-api-tag.service.mjs +36 -0
- package/esm2022/lib/modules/documenten-api/services/documenten-api-version.service.mjs +4 -1
- package/esm2022/lib/modules/documenten-api/services/index.mjs +3 -2
- package/esm2022/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.mjs +2 -2
- package/esm2022/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.mjs +1 -1
- package/esm2022/lib/services/dossier-management-zgw.service.mjs +8 -4
- package/esm2022/lib/zgw.module.mjs +22 -5
- package/fesm2022/valtimo-zgw.mjs +1378 -781
- package/fesm2022/valtimo-zgw.mjs.map +1 -1
- package/lib/components/dossier-management-zgw/dossier-management-zgw.component.d.ts +16 -5
- package/lib/components/dossier-management-zgw/dossier-management-zgw.component.d.ts.map +1 -1
- package/lib/models/dossier-management-zgw.model.d.ts +12 -2
- package/lib/models/dossier-management-zgw.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.d.ts +33 -63
- package/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.d.ts +18 -20
- package/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts +38 -20
- package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.d.ts +47 -0
- package/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.d.ts.map +1 -0
- package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts +76 -39
- package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.d.ts +33 -0
- package/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.d.ts.map +1 -0
- package/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.d.ts +46 -0
- package/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.d.ts.map +1 -0
- package/lib/modules/documenten-api/components/index.d.ts +4 -1
- package/lib/modules/documenten-api/components/index.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/configured-column.model.d.ts +8 -2
- package/lib/modules/documenten-api/models/configured-column.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/documenten-api-filter.model.d.ts +10 -0
- package/lib/modules/documenten-api/models/documenten-api-filter.model.d.ts.map +1 -0
- package/lib/modules/documenten-api/models/documenten-api-metadata.model.d.ts +10 -9
- package/lib/modules/documenten-api/models/documenten-api-metadata.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/documenten-api-tag.model.d.ts +5 -0
- package/lib/modules/documenten-api/models/documenten-api-tag.model.d.ts.map +1 -0
- package/lib/modules/documenten-api/models/documenten-api-version.model.d.ts +7 -1
- package/lib/modules/documenten-api/models/documenten-api-version.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/documenten-api.model.d.ts +37 -12
- package/lib/modules/documenten-api/models/documenten-api.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/index.d.ts +1 -0
- package/lib/modules/documenten-api/models/index.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/documenten-api-column.service.d.ts +3 -2
- package/lib/modules/documenten-api/services/documenten-api-column.service.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/documenten-api-document.service.d.ts +3 -2
- package/lib/modules/documenten-api/services/documenten-api-document.service.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/documenten-api-link-process.service.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/documenten-api-tag.service.d.ts +17 -0
- package/lib/modules/documenten-api/services/documenten-api-tag.service.d.ts.map +1 -0
- package/lib/modules/documenten-api/services/documenten-api-version.service.d.ts +2 -1
- package/lib/modules/documenten-api/services/documenten-api-version.service.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/index.d.ts +2 -1
- package/lib/modules/documenten-api/services/index.d.ts.map +1 -1
- package/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.d.ts.map +1 -1
- package/lib/services/dossier-management-zgw.service.d.ts +2 -0
- package/lib/services/dossier-management-zgw.service.d.ts.map +1 -1
- package/lib/zgw.module.d.ts.map +1 -1
- 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
|