@valtimo/zgw 12.14.0 → 12.15.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.
@@ -14,17 +14,18 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { Component, EventEmitter, Input, Output, signal } from '@angular/core';
17
- import { BehaviorSubject, combineLatest, of, startWith, Subscription, switchMap, } from 'rxjs';
18
- import { filter, map, take, tap } from 'rxjs/operators';
17
+ import { BehaviorSubject, combineLatest, EMPTY, of, startWith, Subscription, switchMap, } from 'rxjs';
18
+ import { catchError, filter, map, take, tap } from 'rxjs/operators';
19
19
  import * as i0 from "@angular/core";
20
20
  import * as i1 from "@valtimo/resource";
21
21
  import * as i2 from "@valtimo/components";
22
22
  import * as i3 from "@valtimo/security";
23
23
  import * as i4 from "@angular/router";
24
24
  import * as i5 from "../../services";
25
- import * as i6 from "@angular/common";
26
- import * as i7 from "@ngx-translate/core";
27
- import * as i8 from "../../components/documenten-api-metadata-modal/documenten-api-metadata-modal.component";
25
+ import * as i6 from "@valtimo/document";
26
+ import * as i7 from "@angular/common";
27
+ import * as i8 from "@ngx-translate/core";
28
+ import * as i9 from "../../components/documenten-api-metadata-modal/documenten-api-metadata-modal.component";
28
29
  export class DocumentenApiUploaderComponent {
29
30
  set documentTitle(defaultValue) {
30
31
  this.defaultValues['titel'] = defaultValue;
@@ -58,6 +59,17 @@ export class DocumentenApiUploaderComponent {
58
59
  }
59
60
  set documentType(defaultValue) {
60
61
  this.defaultValues['informatieobjecttype'] = defaultValue;
62
+ this.stateService.documentDefinitionName$
63
+ .pipe(switchMap(documentDefinitionName => this.documentService.getDocumentTypes(documentDefinitionName)), catchError(() => {
64
+ this.defaultValues['informatieobjecttype'] = defaultValue;
65
+ return EMPTY;
66
+ }))
67
+ .subscribe(documentTypes => {
68
+ const foundDocumentType = documentTypes.find(documentType => documentType.name === defaultValue);
69
+ foundDocumentType
70
+ ? (this.defaultValues['informatieobjecttype'] = foundDocumentType.url)
71
+ : (this.defaultValues['informatieobjecttype'] = defaultValue);
72
+ });
61
73
  }
62
74
  set hideDocumentType(hide) {
63
75
  this.hideField(hide, 'informatieobjecttype');
@@ -93,15 +105,15 @@ export class DocumentenApiUploaderComponent {
93
105
  set hideTags(hide) {
94
106
  this.hideField(hide, 'trefwoorden');
95
107
  }
96
- constructor(uploadProviderService, stateService, domService, downloadService, modalService, userProviderService, route, documentenApiVersionService) {
108
+ constructor(uploadProviderService, domService, modalService, userProviderService, route, documentenApiVersionService, stateService, documentService) {
97
109
  this.uploadProviderService = uploadProviderService;
98
- this.stateService = stateService;
99
110
  this.domService = domService;
100
- this.downloadService = downloadService;
101
111
  this.modalService = modalService;
102
112
  this.userProviderService = userProviderService;
103
113
  this.route = route;
104
114
  this.documentenApiVersionService = documentenApiVersionService;
115
+ this.stateService = stateService;
116
+ this.documentService = documentService;
105
117
  this.valueChange = new EventEmitter();
106
118
  this.uploading$ = new BehaviorSubject(false);
107
119
  this.fileToBeUploaded$ = new BehaviorSubject(null);
@@ -170,13 +182,13 @@ export class DocumentenApiUploaderComponent {
170
182
  delete this.hideFields[field];
171
183
  }
172
184
  }
173
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiUploaderComponent, deps: [{ token: i1.UploadProviderService }, { token: i2.FormIoStateService }, { token: i2.FormIoDomService }, { token: i1.DownloadService }, { token: i2.ValtimoModalService }, { token: i3.UserProviderService }, { token: i4.ActivatedRoute }, { token: i5.DocumentenApiVersionService }], target: i0.ɵɵFactoryTarget.Component }); }
174
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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", hideDocumentTitle: "hideDocumentTitle", disableDocumentTitle: "disableDocumentTitle", filename: "filename", hideFilename: "hideFilename", disableFilename: "disableFilename", author: "author", hideAuthor: "hideAuthor", disableAuthor: "disableAuthor", status: "status", hideStatus: "hideStatus", disableStatus: "disableStatus", language: "language", hideLanguage: "hideLanguage", disableLanguage: "disableLanguage", documentType: "documentType", hideDocumentType: "hideDocumentType", disableDocumentType: "disableDocumentType", description: "description", hideDescription: "hideDescription", disableDescription: "disableDescription", confidentialityLevel: "confidentialityLevel", hideConfidentialityLevel: "hideConfidentialityLevel", disableConfidentialityLevel: "disableConfidentialityLevel", hideCreationDate: "hideCreationDate", disableCreationDate: "disableCreationDate", hideAdditionalDate: "hideAdditionalDate", tags: "tags", hideTags: "hideTags", 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 class=\"documenten-api-uploader-metadata-modal\"\n (metadata)=\"metadataSet($event)\"\n (modalClose)=\"closeMetadataModal()\"\n [defaultValues]=\"defaultValues\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableCreationDate]=\"disableCreationDate\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hideFields]=\"hideFields\"\n [supportsTrefwoorden]=\"(supportedDocumentenApiFeatures$ | async)?.supportsTrefwoorden\"\n [open]=\"showModal()\"\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: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["disabled$", "file$", "hideFields", "defaultValues", "disableAuthor", "disableConfidentialityLevel", "disableDescription", "disableDocumentTitle", "disableDocumentType", "disableFilename", "disableLanguage", "disableStatus", "supportsTrefwoorden", "disableCreationDate", "isEditMode", "open"], outputs: ["metadata", "modalClose"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.FileSizePipe, name: "filesize" }] }); }
185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiUploaderComponent, deps: [{ token: i1.UploadProviderService }, { token: i2.FormIoDomService }, { token: i2.ValtimoModalService }, { token: i3.UserProviderService }, { token: i4.ActivatedRoute }, { token: i5.DocumentenApiVersionService }, { token: i2.FormIoStateService }, { token: i6.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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", hideDocumentTitle: "hideDocumentTitle", disableDocumentTitle: "disableDocumentTitle", filename: "filename", hideFilename: "hideFilename", disableFilename: "disableFilename", author: "author", hideAuthor: "hideAuthor", disableAuthor: "disableAuthor", status: "status", hideStatus: "hideStatus", disableStatus: "disableStatus", language: "language", hideLanguage: "hideLanguage", disableLanguage: "disableLanguage", documentType: "documentType", hideDocumentType: "hideDocumentType", disableDocumentType: "disableDocumentType", description: "description", hideDescription: "hideDescription", disableDescription: "disableDescription", confidentialityLevel: "confidentialityLevel", hideConfidentialityLevel: "hideConfidentialityLevel", disableConfidentialityLevel: "disableConfidentialityLevel", hideCreationDate: "hideCreationDate", disableCreationDate: "disableCreationDate", hideAdditionalDate: "hideAdditionalDate", tags: "tags", hideTags: "hideTags", 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 class=\"documenten-api-uploader-metadata-modal\"\n (metadata)=\"metadataSet($event)\"\n (modalClose)=\"closeMetadataModal()\"\n [defaultValues]=\"defaultValues\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableCreationDate]=\"disableCreationDate\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hideFields]=\"hideFields\"\n [supportsTrefwoorden]=\"(supportedDocumentenApiFeatures$ | async)?.supportsTrefwoorden\"\n [open]=\"showModal()\"\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: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "directive", type: i8.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i9.DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["disabled$", "file$", "hideFields", "defaultValues", "disableAuthor", "disableConfidentialityLevel", "disableDescription", "disableDocumentTitle", "disableDocumentType", "disableFilename", "disableLanguage", "disableStatus", "supportsTrefwoorden", "disableCreationDate", "isEditMode", "open"], outputs: ["metadata", "modalClose"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.FileSizePipe, name: "filesize" }] }); }
175
187
  }
176
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiUploaderComponent, decorators: [{
177
189
  type: Component,
178
190
  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 class=\"documenten-api-uploader-metadata-modal\"\n (metadata)=\"metadataSet($event)\"\n (modalClose)=\"closeMetadataModal()\"\n [defaultValues]=\"defaultValues\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableCreationDate]=\"disableCreationDate\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hideFields]=\"hideFields\"\n [supportsTrefwoorden]=\"(supportedDocumentenApiFeatures$ | async)?.supportsTrefwoorden\"\n [open]=\"showModal()\"\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"] }]
179
- }], ctorParameters: () => [{ type: i1.UploadProviderService }, { type: i2.FormIoStateService }, { type: i2.FormIoDomService }, { type: i1.DownloadService }, { type: i2.ValtimoModalService }, { type: i3.UserProviderService }, { type: i4.ActivatedRoute }, { type: i5.DocumentenApiVersionService }], propDecorators: { disabled: [{
191
+ }], ctorParameters: () => [{ type: i1.UploadProviderService }, { type: i2.FormIoDomService }, { type: i2.ValtimoModalService }, { type: i3.UserProviderService }, { type: i4.ActivatedRoute }, { type: i5.DocumentenApiVersionService }, { type: i2.FormIoStateService }, { type: i6.DocumentService }], propDecorators: { disabled: [{
180
192
  type: Input
181
193
  }], title: [{
182
194
  type: Input
@@ -253,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
253
265
  }], value: [{
254
266
  type: Input
255
267
  }] } });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktdXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby96Z3cvc3JjL2xpYi9tb2R1bGVzL2RvY3VtZW50ZW4tYXBpL2Zvcm1pby9kb2N1bWVudGVuLWFwaS11cGxvYWRlci9kb2N1bWVudGVuLWFwaS11cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3pndy9zcmMvbGliL21vZHVsZXMvZG9jdW1lbnRlbi1hcGkvZm9ybWlvL2RvY3VtZW50ZW4tYXBpLXVwbG9hZGVyL2RvY3VtZW50ZW4tYXBpLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBT2hHLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUViLEVBQUUsRUFDRixTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQU9kLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVV0RCxNQUFNLE9BQU8sOEJBQThCO0lBV3pDLElBQWEsYUFBYSxDQUFDLFlBQW9CO1FBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsWUFBWSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFhLGlCQUFpQixDQUFDLElBQWE7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUlELElBQWEsUUFB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NS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybWlvQ3VzdG9tQ29tcG9uZW50LFxuICBGb3JtSW9Eb21TZXJ2aWNlLFxuICBGb3JtSW9TdGF0ZVNlcnZpY2UsXG4gIFZhbHRpbW9Nb2RhbFNlcnZpY2UsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3RhcnRXaXRoLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBEb2N1bWVudGVuQXBpRmlsZVJlZmVyZW5jZSxcbiAgRG93bmxvYWRTZXJ2aWNlLFxuICBVcGxvYWRQcm92aWRlclNlcnZpY2UsXG59IGZyb20gJ0B2YWx0aW1vL3Jlc291cmNlJztcbmltcG9ydCB7RG9jdW1lbnRlbkFwaU1ldGFkYXRhLCBTdXBwb3J0ZWREb2N1bWVudGVuQXBpRmVhdHVyZXN9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VXNlclByb3ZpZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vc2VjdXJpdHknO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RG9jdW1lbnRlbkFwaVZlcnNpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9jdW1lbnRlbi1hcGktZm9ybWlvLXVwbG9hZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50ZW4tYXBpLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnRlbi1hcGktdXBsb2FkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRlbkFwaVVwbG9hZGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgRm9ybWlvQ3VzdG9tQ29tcG9uZW50PEFycmF5PERvY3VtZW50ZW5BcGlGaWxlUmVmZXJlbmNlPj4sIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBoaWRlVGl0bGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN1YnRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heEZpbGVTaXplOiBudW1iZXI7XG4gIEBJbnB1dCgpIGhpZGVNYXhGaWxlU2l6ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FtZXJhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBkb2N1bWVudFRpdGxlKGRlZmF1bHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWVzWyd0aXRlbCddID0gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGhpZGVEb2N1bWVudFRpdGxlKGhpZGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmhpZGVGaWVsZChoaWRlLCAndGl0ZWwnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc2FibGVEb2N1bWVudFRpdGxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBmaWxlbmFtZShkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlc1snYmVzdGFuZHNuYWFtJ10gPSBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaGlkZUZpbGVuYW1lKGhpZGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmhpZGVGaWVsZChoaWRlLCAnYmVzdGFuZHNuYWFtJyk7XG4gIH1cblxuICBASW5wdXQoKSBkaXNhYmxlRmlsZW5hbWU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2V0IGF1dGhvcihkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlc1snYXV0ZXVyJ10gPSBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaGlkZUF1dGhvcihoaWRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5oaWRlRmllbGQoaGlkZSwgJ2F1dGV1cicpO1xuICB9XG5cbiAgQElucHV0KCkgZGlzYWJsZUF1dGhvcjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgc3RhdHVzKGRlZmF1bHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWVzWydzdGF0dXMnXSA9IGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBoaWRlU3RhdHVzKGhpZGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmhpZGVGaWVsZChoaWRlLCAnc3RhdHVzJyk7XG4gIH1cblxuICBASW5wdXQoKSBkaXNhYmxlU3RhdHVzOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBsYW5ndWFnZShkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlc1sndGFhbCddID0gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGhpZGVMYW5ndWFnZShoaWRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5oaWRlRmllbGQoaGlkZSwgJ3RhYWwnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc2FibGVMYW5ndWFnZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgZG9jdW1lbnRUeXBlKGRlZmF1bHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWVzWydpbmZvcm1hdGllb2JqZWN0dHlwZSddID0gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGhpZGVEb2N1bWVudFR5cGUoaGlkZTogYm9vbGVhbikge1xuICAgIHRoaXMuaGlkZUZpZWxkKGhpZGUsICdpbmZvcm1hdGllb2JqZWN0dHlwZScpO1xuICB9XG5cbiAgQElucHV0KCkgZGlzYWJsZURvY3VtZW50VHlwZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgZGVzY3JpcHRpb24oZGVmYXVsdFZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZXNbJ2Jlc2NocmlqdmluZyddID0gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGhpZGVEZXNjcmlwdGlvbihoaWRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5oaWRlRmllbGQoaGlkZSwgJ2Jlc2NocmlqdmluZycpO1xuICB9XG5cbiAgQElucHV0KCkgZGlzYWJsZURlc2NyaXB0aW9uOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBjb25maWRlbnRpYWxpdHlMZXZlbChkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlc1sndmVydHJvdXdlbGlqa2hlaWRhYW5kdWlkaW5nJ10gPSBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaGlkZUNvbmZpZGVudGlhbGl0eUxldmVsKGhpZGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmhpZGVGaWVsZChoaWRlLCAndmVydHJvdXdlbGlqa2hlaWRhYW5kdWlkaW5nJyk7XG4gIH1cblxuICBASW5wdXQoKSBkaXNhYmxlQ29uZmlkZW50aWFsaXR5TGV2ZWw6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2V0IGhpZGVDcmVhdGlvbkRhdGUoaGlkZTogYm9vbGVhbikge1xuICAgIHRoaXMuaGlkZUZpZWxkKGhpZGUsICdjcmVhdGllZGF0dW0nKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc2FibGVDcmVhdGlvbkRhdGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2V0IGhpZGVBZGRpdGlvbmFsRGF0ZShoaWRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5oaWRlRmllbGQoaGlkZSwgJ2FhbnZ1bGxlbmRlRGF0dW0nKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB0YWdzKHRhZ3M6IHN0cmluZykge1xuICAgIGxldCBfdGFncyA9IHRhZ3NcbiAgICAgID8uc3BsaXQoJywnKVxuICAgICAgPy5tYXAodGFnID0+IHRhZy50cmltKCkpXG4gICAgICA/LmZpbHRlcih0YWcgPT4gISF0YWcpO1xuICAgIGlmIChfdGFncz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICBfdGFncyA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuZGVmYXVsdFZhbHVlc1sndHJlZndvb3JkZW4nXSA9IHRhZ3M7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaGlkZVRhZ3MoaGlkZTogYm9vbGVhbikge1xuICAgIHRoaXMuaGlkZUZpZWxkKGhpZGUsICd0cmVmd29vcmRlbicpO1xuICB9XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxEb2N1bWVudGVuQXBpRmlsZVJlZmVyZW5jZT4+KCk7XG5cbiAgcmVhZG9ubHkgdXBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBmaWxlVG9CZVVwbG9hZGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsZSB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBtb2RhbERpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93TW9kYWwgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB1cGxvYWRQcm9jZXNzTGlua2VkJDogT2JzZXJ2YWJsZTxib29sZWFuIHwgc3RyaW5nPiA9XG4gICAgdGhpcy5tb2RhbFNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQucGlwZShcbiAgICAgIHN3aXRjaE1hcChkb2N1bWVudERlZmluaXRpb25OYW1lID0+XG4gICAgICAgIHRoaXMudXBsb2FkUHJvdmlkZXJTZXJ2aWNlLmNoZWNrVXBsb2FkUHJvY2Vzc0xpbmsoZG9jdW1lbnREZWZpbml0aW9uTmFtZSlcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoJ2xvYWRpbmcnKVxuICAgICk7XG4gIHJlYWRvbmx5IGlzQWRtaW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlXG4gICAgLmdldFVzZXJTdWJqZWN0KClcbiAgICAucGlwZShtYXAodXNlcklkZW50aXR5ID0+IHVzZXJJZGVudGl0eT8ucm9sZXMuaW5jbHVkZXMoJ1JPTEVfQURNSU4nKSkpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzdXBwb3J0ZWREb2N1bWVudGVuQXBpRmVhdHVyZXMkOiBPYnNlcnZhYmxlPFN1cHBvcnRlZERvY3VtZW50ZW5BcGlGZWF0dXJlcz4gPVxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY2FzZURlZmluaXRpb25OYW1lID0+XG4gICAgICAgIHRoaXMuZG9jdW1lbnRlbkFwaVZlcnNpb25TZXJ2aWNlLmdldFN1cHBvcnRlZEFwaUZlYXR1cmVzKGNhc2VEZWZpbml0aW9uTmFtZSlcbiAgICAgIClcbiAgICApO1xuXG4gIHB1YmxpYyBkZWZhdWx0VmFsdWVzOiB7fSA9IHt9O1xuICBwdWJsaWMgaGlkZUZpZWxkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cGxvYWRQcm92aWRlclNlcnZpY2U6IFVwbG9hZFByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogRm9ybUlvU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9tU2VydmljZTogRm9ybUlvRG9tU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvd25sb2FkU2VydmljZTogRG93bmxvYWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kYWxTZXJ2aWNlOiBWYWx0aW1vTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlclByb3ZpZGVyU2VydmljZTogVXNlclByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ZW5BcGlWZXJzaW9uU2VydmljZTogRG9jdW1lbnRlbkFwaVZlcnNpb25TZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRG9jdW1lbnREZWZpbml0aW9uU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgX3ZhbHVlOiBBcnJheTxEb2N1bWVudGVuQXBpRmlsZVJlZmVyZW5jZT4gPSBbXTtcblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEFycmF5PERvY3VtZW50ZW5BcGlGaWxlUmVmZXJlbmNlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogQXJyYXk8RG9jdW1lbnRlbkFwaUZpbGVSZWZlcmVuY2U+KSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGZpbGVTZWxlY3RlZChmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgdGhpcy5maWxlVG9CZVVwbG9hZGVkJC5uZXh0KGZpbGUpO1xuICAgIHRoaXMuc2hvd01vZGFsLnNldCh0cnVlKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZG9tU2VydmljZS50b2dnbGVTdWJtaXRCdXR0b24odHJ1ZSk7XG4gICAgdGhpcy5fdmFsdWUgPSB0aGlzLl92YWx1ZS5maWx0ZXIoKGZpbGU6IERvY3VtZW50ZW5BcGlGaWxlUmVmZXJlbmNlKSA9PlxuICAgICAgZmlsZT8uaWQgPyBmaWxlPy5pZCAhPT0gaWQgOiB0cnVlXG4gICAgKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xuICB9XG5cbiAgY2xvc2VNZXRhZGF0YU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd01vZGFsLnNldChmYWxzZSk7XG4gIH1cblxuICBtZXRhZGF0YVNldChtZXRhZGF0YTogRG9jdW1lbnRlbkFwaU1ldGFkYXRhKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5zaG93TW9kYWwuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmRvbVNlcnZpY2UudG9nZ2xlU3VibWl0QnV0dG9uKHRydWUpO1xuXG4gICAgdGhpcy5maWxlVG9CZVVwbG9hZGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcChmaWxlID0+IHRoaXMudXBsb2FkUHJvdmlkZXJTZXJ2aWNlLnVwbG9hZFRlbXBGaWxlV2l0aE1ldGFkYXRhKGZpbGUsIG1ldGFkYXRhKSksXG4gICAgICAgIHRhcChyZXN1bHQgPT4ge1xuICAgICAgICAgIHRoaXMuZG9tU2VydmljZS50b2dnbGVTdWJtaXRCdXR0b24oZmFsc2UpO1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLl92YWx1ZS5wdXNoKHJlc3VsdCk7XG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkRvY3VtZW50RGVmaW5pdGlvblN1YnNjcmlwdGlvbigpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucm91dGU/LnBhcmFtcyB8fCBvZihudWxsKSwgdGhpcy5yb3V0ZT8uZmlyc3RDaGlsZD8ucGFyYW1zIHx8IG9mKG51bGwpXSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKFxuICAgICAgICAgICAgKFtwYXJhbXMsIGZpcnN0Q2hpbGRQYXJhbXNdKSA9PlxuICAgICAgICAgICAgICAocGFyYW1zPy5kb2N1bWVudERlZmluaXRpb25OYW1lIHx8IGZpcnN0Q2hpbGRQYXJhbXM/LmRvY3VtZW50RGVmaW5pdGlvbk5hbWUpIGFzIHN0cmluZ1xuICAgICAgICAgICksXG4gICAgICAgICAgZmlsdGVyKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgPT4gISFkb2N1bWVudERlZmluaXRpb25OYW1lKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9PlxuICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLnNldERvY3VtZW50RGVmaW5pdGlvbk5hbWUoZG9jdW1lbnREZWZpbml0aW9uTmFtZSlcbiAgICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhpZGVGaWVsZChoaWRlOiBib29sZWFuLCBmaWVsZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZXhpc3RzID0gdGhpcy5oaWRlRmllbGRzLmluY2x1ZGVzKGZpZWxkKTtcbiAgICBpZiAoIWV4aXN0cyAmJiBoaWRlKSB7XG4gICAgICB0aGlzLmhpZGVGaWVsZHMucHVzaChmaWVsZCk7XG4gICAgfSBlbHNlIGlmIChleGlzdHMgJiYgIWhpZGUpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmhpZGVGaWVsZHNbZmllbGRdO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwie2xpbmtlZDogdXBsb2FkUHJvY2Vzc0xpbmtlZCQgfCBhc3luYywgaXNBZG1pbjogaXNBZG1pbiQgfCBhc3luY30gYXMgb2JzXCI+XG4gIDxkaXYgKm5nSWY9XCJvYnMubGlua2VkID09PSBmYWxzZVwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwib2JzLmlzQWRtaW5cIlxuICAgICAgW3RyYW5zbGF0ZV09XCInZG9zc2llci5kb2N1bWVudGVuLm5vUHJvY2Vzc0xpbmtlZC5hZG1pblJvbGUnXCJcbiAgICAgIGNsYXNzPVwiYmctd2FybmluZyB0ZXh0LWJsYWNrIG1iLTIgcC0zIHRleHQtY2VudGVyXCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhb2JzLmlzQWRtaW5cIlxuICAgICAgW3RyYW5zbGF0ZV09XCInZG9zc2llci5kb2N1bWVudGVuLm5vUHJvY2Vzc0xpbmtlZC5yZWd1bGFyVXNlcidcIlxuICAgICAgY2xhc3M9XCJiZy13YXJuaW5nIHRleHQtYmxhY2sgbWItMiBwLTMgdGV4dC1jZW50ZXJcIlxuICAgID48L2Rpdj5cbiAgPC9kaXY+XG4gIDx2YWx0aW1vLWRyb3B6b25lXG4gICAgKGZpbGVTZWxlY3RlZCk9XCJmaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgW2FjY2VwdGVkRmlsZXNdPVwibnVsbFwiXG4gICAgW2NhbWVyYV09XCJjYW1lcmFcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBvYnMubGlua2VkID09PSBmYWxzZSB8fCBvYnMubGlua2VkID09PSAnbG9hZGluZydcIlxuICAgIFtoaWRlRmlsZVByZXZpZXddPVwidHJ1ZVwiXG4gICAgW2hpZGVUaXRsZV09XCJoaWRlVGl0bGVcIlxuICAgIFttYXhGaWxlU2l6ZV09XCJtYXhGaWxlU2l6ZVwiXG4gICAgW21heEZpbGVzXT1cIjFcIlxuICAgIFtzaG93TWF4RmlsZVNpemVdPVwiIWhpZGVNYXhGaWxlU2l6ZVwiXG4gICAgW3N1YnRpdGxlXT1cInN1YnRpdGxlXCJcbiAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgIFt1cGxvYWRpbmddPVwidXBsb2FkaW5nJCB8IGFzeW5jXCJcbiAgPjwvdmFsdGltby1kcm9wem9uZT5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2ICpuZ0Zvcj1cImxldCByZXNvdXJjZSBvZiBfdmFsdWVcIiBjbGFzcz1cImZpbGUtcHJldmlld1wiPlxuICA8ZGl2IGNsYXNzPVwiZmlsZS1wcmV2aWV3LW5hbWVcIj5cbiAgICA8c3Bhbj5cbiAgICAgIHt7IHJlc291cmNlLmZpbGVuYW1lIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZpbGUtcHJldmlldy1zaXplXCI+XG4gICAgPHNwYW4+XG4gICAgICB7eyByZXNvdXJjZS5zaXplSW5CeXRlcyB8IGZpbGVzaXplIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwiZmlsZS1wcmV2aWV3LWRlbGV0ZVwiPlxuICAgIDxhIChjbGljayk9XCJkZWxldGVGaWxlKHJlc291cmNlLmlkKVwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktZGVsZXRlXCI+PC9pPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPHZhbHRpbW8tZG9jdW1lbnRlbi1hcGktbWV0YWRhdGEtbW9kYWxcbiAgY2xhc3M9XCJkb2N1bWVudGVuLWFwaS11cGxvYWRlci1tZXRhZGF0YS1tb2RhbFwiXG4gIChtZXRhZGF0YSk9XCJtZXRhZGF0YVNldCgkZXZlbnQpXCJcbiAgKG1vZGFsQ2xvc2UpPVwiY2xvc2VNZXRhZGF0YU1vZGFsKClcIlxuICBbZGVmYXVsdFZhbHVlc109XCJkZWZhdWx0VmFsdWVzXCJcbiAgW2Rpc2FibGVBdXRob3JdPVwiZGlzYWJsZUF1dGhvclwiXG4gIFtkaXNhYmxlQ29uZmlkZW50aWFsaXR5TGV2ZWxdPVwiZGlzYWJsZUNvbmZpZGVudGlhbGl0eUxldmVsXCJcbiAgW2Rpc2FibGVDcmVhdGlvbkRhdGVdPVwiZGlzYWJsZUNyZWF0aW9uRGF0ZVwiXG4gIFtkaXNhYmxlRGVzY3JpcHRpb25dPVwiZGlzYWJsZURlc2NyaXB0aW9uXCJcbiAgW2Rpc2FibGVEb2N1bWVudFRpdGxlXT1cImRpc2FibGVEb2N1bWVudFRpdGxlXCJcbiAgW2Rpc2FibGVEb2N1bWVudFR5cGVdPVwiZGlzYWJsZURvY3VtZW50VHlwZVwiXG4gIFtkaXNhYmxlRmlsZW5hbWVdPVwiZGlzYWJsZUZpbGVuYW1lXCJcbiAgW2Rpc2FibGVMYW5ndWFnZV09XCJkaXNhYmxlTGFuZ3VhZ2VcIlxuICBbZGlzYWJsZVN0YXR1c109XCJkaXNhYmxlU3RhdHVzXCJcbiAgW2Rpc2FibGVkJF09XCJtb2RhbERpc2FibGVkJFwiXG4gIFtmaWxlJF09XCJmaWxlVG9CZVVwbG9hZGVkJFwiXG4gIFtoaWRlRmllbGRzXT1cImhpZGVGaWVsZHNcIlxuICBbc3VwcG9ydHNUcmVmd29vcmRlbl09XCIoc3VwcG9ydGVkRG9jdW1lbnRlbkFwaUZlYXR1cmVzJCB8IGFzeW5jKT8uc3VwcG9ydHNUcmVmd29vcmRlblwiXG4gIFtvcGVuXT1cInNob3dNb2RhbCgpXCJcbj48L3ZhbHRpbW8tZG9jdW1lbnRlbi1hcGktbWV0YWRhdGEtbW9kYWw+XG4iXX0=
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktdXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby96Z3cvc3JjL2xpYi9tb2R1bGVzL2RvY3VtZW50ZW4tYXBpL2Zvcm1pby9kb2N1bWVudGVuLWFwaS11cGxvYWRlci9kb2N1bWVudGVuLWFwaS11cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3pndy9zcmMvbGliL21vZHVsZXMvZG9jdW1lbnRlbi1hcGkvZm9ybWlvL2RvY3VtZW50ZW4tYXBpLXVwbG9hZGVyL2RvY3VtZW50ZW4tYXBpLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBV2hHLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEtBQUssRUFFTCxFQUFFLEVBQ0YsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQVNsRSxNQUFNLE9BQU8sOEJBQThCO0lBV3pDLElBQWEsYUFBYSxDQUFDLFlBQW9CO1FBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsWUFBWSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFhLGlCQUFpQixDQUFDLElBQWE7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFD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Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFFTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFFTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFTyxZQUFZO3NCQUF4QixLQUFLO2dCQXNCTyxnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBSUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sZUFBZTtzQkFBM0IsS0FBSztnQkFJRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRU8sb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUlPLHdCQUF3QjtzQkFBcEMsS0FBSztnQkFJRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBRU8sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQUlHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFTyxrQkFBa0I7c0JBQTlCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFXTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlJLFdBQVc7c0JBQXBCLE1BQU07Z0JBdURJLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBGb3JtaW9DdXN0b21Db21wb25lbnQsXG4gIEZvcm1Jb0RvbVNlcnZpY2UsXG4gIEZvcm1Jb1N0YXRlU2VydmljZSxcbiAgVmFsdGltb01vZGFsU2VydmljZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtEb2N1bWVudGVuQXBpRmlsZVJlZmVyZW5jZSwgVXBsb2FkUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9yZXNvdXJjZSc7XG5pbXBvcnQge1VzZXJQcm92aWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIFN1YnNjcmlwdGlvbixcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtEb2N1bWVudGVuQXBpTWV0YWRhdGEsIFN1cHBvcnRlZERvY3VtZW50ZW5BcGlGZWF0dXJlc30gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7RG9jdW1lbnRlbkFwaVZlcnNpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9jdW1lbnRlbi1hcGktZm9ybWlvLXVwbG9hZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50ZW4tYXBpLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnRlbi1hcGktdXBsb2FkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRlbkFwaVVwbG9hZGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgRm9ybWlvQ3VzdG9tQ29tcG9uZW50PEFycmF5PERvY3VtZW50ZW5BcGlGaWxlUmVmZXJlbmNlPj4sIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBoaWRlVGl0bGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN1YnRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heEZpbGVTaXplOiBudW1iZXI7XG4gIEBJbnB1dCgpIGhpZGVNYXhGaWxlU2l6ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FtZXJhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBkb2N1bWVudFRpdGxlKGRlZmF1bHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWVzWyd0aXRlbCddID0gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGhpZGVEb2N1bWVudFRpdGxlKGhpZGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmhpZGVGaWVsZChoaWRlLCAndGl0ZWwnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc2FibGVEb2N1bWVudFRpdGxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBmaWxlbmFtZShkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlc1snYmVzdGFuZHNuYWFtJ10gPSBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaGlkZUZpbGVuYW1lKGhpZGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmhpZGVGaWVsZChoaWRlLCAnYmVzdGFuZHNuYWFtJyk7XG4gIH1cblxuICBASW5wdXQoKSBkaXNhYmxlRmlsZW5hbWU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2V0IGF1dGhvcihkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlc1snYXV0ZXVyJ10gPSBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaGlkZUF1dGhvcihoaWRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5oaWRlRmllbGQoaGlkZSwgJ2F1dGV1cicpO1xuICB9XG5cbiAgQElucHV0KCkgZGlzYWJsZUF1dGhvcjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgc3RhdHVzKGRlZmF1bHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWVzWydzdGF0dXMnXSA9IGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBoaWRlU3RhdHVzKGhpZGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmhpZGVGaWVsZChoaWRlLCAnc3RhdHVzJyk7XG4gIH1cblxuICBASW5wdXQoKSBkaXNhYmxlU3RhdHVzOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBsYW5ndWFnZShkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlc1sndGFhbCddID0gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGhpZGVMYW5ndWFnZShoaWRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5oaWRlRmllbGQoaGlkZSwgJ3RhYWwnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc2FibGVMYW5ndWFnZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgZG9jdW1lbnRUeXBlKGRlZmF1bHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWVzWydpbmZvcm1hdGllb2JqZWN0dHlwZSddID0gZGVmYXVsdFZhbHVlO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgPT5cbiAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXREb2N1bWVudFR5cGVzKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUpXG4gICAgICAgICksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlc1snaW5mb3JtYXRpZW9iamVjdHR5cGUnXSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGRvY3VtZW50VHlwZXMgPT4ge1xuICAgICAgICBjb25zdCBmb3VuZERvY3VtZW50VHlwZSA9IGRvY3VtZW50VHlwZXMuZmluZChcbiAgICAgICAgICBkb2N1bWVudFR5cGUgPT4gZG9jdW1lbnRUeXBlLm5hbWUgPT09IGRlZmF1bHRWYWx1ZVxuICAgICAgICApO1xuICAgICAgICBmb3VuZERvY3VtZW50VHlwZVxuICAgICAgICAgID8gKHRoaXMuZGVmYXVsdFZhbHVlc1snaW5mb3JtYXRpZW9iamVjdHR5cGUnXSA9IGZvdW5kRG9jdW1lbnRUeXBlLnVybClcbiAgICAgICAgICA6ICh0aGlzLmRlZmF1bHRWYWx1ZXNbJ2luZm9ybWF0aWVvYmplY3R0eXBlJ10gPSBkZWZhdWx0VmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaGlkZURvY3VtZW50VHlwZShoaWRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5oaWRlRmllbGQoaGlkZSwgJ2luZm9ybWF0aWVvYmplY3R0eXBlJyk7XG4gIH1cblxuICBASW5wdXQoKSBkaXNhYmxlRG9jdW1lbnRUeXBlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBkZXNjcmlwdGlvbihkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlc1snYmVzY2hyaWp2aW5nJ10gPSBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaGlkZURlc2NyaXB0aW9uKGhpZGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmhpZGVGaWVsZChoaWRlLCAnYmVzY2hyaWp2aW5nJyk7XG4gIH1cblxuICBASW5wdXQoKSBkaXNhYmxlRGVzY3JpcHRpb246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2V0IGNvbmZpZGVudGlhbGl0eUxldmVsKGRlZmF1bHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWVzWyd2ZXJ0cm91d2VsaWpraGVpZGFhbmR1aWRpbmcnXSA9IGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBoaWRlQ29uZmlkZW50aWFsaXR5TGV2ZWwoaGlkZTogYm9vbGVhbikge1xuICAgIHRoaXMuaGlkZUZpZWxkKGhpZGUsICd2ZXJ0cm91d2VsaWpraGVpZGFhbmR1aWRpbmcnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc2FibGVDb25maWRlbnRpYWxpdHlMZXZlbDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgaGlkZUNyZWF0aW9uRGF0ZShoaWRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5oaWRlRmllbGQoaGlkZSwgJ2NyZWF0aWVkYXR1bScpO1xuICB9XG5cbiAgQElucHV0KCkgZGlzYWJsZUNyZWF0aW9uRGF0ZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgaGlkZUFkZGl0aW9uYWxEYXRlKGhpZGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmhpZGVGaWVsZChoaWRlLCAnYWFudnVsbGVuZGVEYXR1bScpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRhZ3ModGFnczogc3RyaW5nKSB7XG4gICAgbGV0IF90YWdzID0gdGFnc1xuICAgICAgPy5zcGxpdCgnLCcpXG4gICAgICA/Lm1hcCh0YWcgPT4gdGFnLnRyaW0oKSlcbiAgICAgID8uZmlsdGVyKHRhZyA9PiAhIXRhZyk7XG4gICAgaWYgKF90YWdzPy5sZW5ndGggPT09IDApIHtcbiAgICAgIF90YWdzID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5kZWZhdWx0VmFsdWVzWyd0cmVmd29vcmRlbiddID0gdGFncztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBoaWRlVGFncyhoaWRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5oaWRlRmllbGQoaGlkZSwgJ3RyZWZ3b29yZGVuJyk7XG4gIH1cblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PERvY3VtZW50ZW5BcGlGaWxlUmVmZXJlbmNlPj4oKTtcblxuICByZWFkb25seSB1cGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGZpbGVUb0JlVXBsb2FkZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWxlIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IG1vZGFsRGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNob3dNb2RhbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHVwbG9hZFByb2Nlc3NMaW5rZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBzdHJpbmc+ID1cbiAgICB0aGlzLm1vZGFsU2VydmljZS5kb2N1bWVudERlZmluaXRpb25OYW1lJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgPT5cbiAgICAgICAgdGhpcy51cGxvYWRQcm92aWRlclNlcnZpY2UuY2hlY2tVcGxvYWRQcm9jZXNzTGluayhkb2N1bWVudERlZmluaXRpb25OYW1lKVxuICAgICAgKSxcbiAgICAgIHN0YXJ0V2l0aCgnbG9hZGluZycpXG4gICAgKTtcbiAgcmVhZG9ubHkgaXNBZG1pbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2VcbiAgICAuZ2V0VXNlclN1YmplY3QoKVxuICAgIC5waXBlKG1hcCh1c2VySWRlbnRpdHkgPT4gdXNlcklkZW50aXR5Py5yb2xlcy5pbmNsdWRlcygnUk9MRV9BRE1JTicpKSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN1cHBvcnRlZERvY3VtZW50ZW5BcGlGZWF0dXJlcyQ6IE9ic2VydmFibGU8U3VwcG9ydGVkRG9jdW1lbnRlbkFwaUZlYXR1cmVzPiA9XG4gICAgdGhpcy5tb2RhbFNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQucGlwZShcbiAgICAgIHN3aXRjaE1hcChjYXNlRGVmaW5pdGlvbk5hbWUgPT5cbiAgICAgICAgdGhpcy5kb2N1bWVudGVuQXBpVmVyc2lvblNlcnZpY2UuZ2V0U3VwcG9ydGVkQXBpRmVhdHVyZXMoY2FzZURlZmluaXRpb25OYW1lKVxuICAgICAgKVxuICAgICk7XG5cbiAgcHVibGljIGRlZmF1bHRWYWx1ZXM6IHt9ID0ge307XG4gIHB1YmxpYyBoaWRlRmllbGRzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVwbG9hZFByb3ZpZGVyU2VydmljZTogVXBsb2FkUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9tU2VydmljZTogRm9ybUlvRG9tU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogVmFsdGltb01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQcm92aWRlclNlcnZpY2U6IFVzZXJQcm92aWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudGVuQXBpVmVyc2lvblNlcnZpY2U6IERvY3VtZW50ZW5BcGlWZXJzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogRm9ybUlvU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Eb2N1bWVudERlZmluaXRpb25TdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfdmFsdWU6IEFycmF5PERvY3VtZW50ZW5BcGlGaWxlUmVmZXJlbmNlPiA9IFtdO1xuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogQXJyYXk8RG9jdW1lbnRlbkFwaUZpbGVSZWZlcmVuY2U+IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBBcnJheTxEb2N1bWVudGVuQXBpRmlsZVJlZmVyZW5jZT4pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZmlsZVNlbGVjdGVkKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVUb0JlVXBsb2FkZWQkLm5leHQoZmlsZSk7XG4gICAgdGhpcy5zaG93TW9kYWwuc2V0KHRydWUpO1xuICB9XG5cbiAgZGVsZXRlRmlsZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kb21TZXJ2aWNlLnRvZ2dsZVN1Ym1pdEJ1dHRvbih0cnVlKTtcbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX3ZhbHVlLmZpbHRlcigoZmlsZTogRG9jdW1lbnRlbkFwaUZpbGVSZWZlcmVuY2UpID0+XG4gICAgICBmaWxlPy5pZCA/IGZpbGU/LmlkICE9PSBpZCA6IHRydWVcbiAgICApO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSk7XG4gIH1cblxuICBjbG9zZU1ldGFkYXRhTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TW9kYWwuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIG1ldGFkYXRhU2V0KG1ldGFkYXRhOiBEb2N1bWVudGVuQXBpTWV0YWRhdGEpOiB2b2lkIHtcbiAgICB0aGlzLnVwbG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICB0aGlzLnNob3dNb2RhbC5zZXQoZmFsc2UpO1xuICAgIHRoaXMuZG9tU2VydmljZS50b2dnbGVTdWJtaXRCdXR0b24odHJ1ZSk7XG5cbiAgICB0aGlzLmZpbGVUb0JlVXBsb2FkZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKGZpbGUgPT4gdGhpcy51cGxvYWRQcm92aWRlclNlcnZpY2UudXBsb2FkVGVtcEZpbGVXaXRoTWV0YWRhdGEoZmlsZSwgbWV0YWRhdGEpKSxcbiAgICAgICAgdGFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgdGhpcy5kb21TZXJ2aWNlLnRvZ2dsZVN1Ym1pdEJ1dHRvbihmYWxzZSk7XG4gICAgICAgICAgdGhpcy51cGxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuX3ZhbHVlLnB1c2gocmVzdWx0KTtcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRG9jdW1lbnREZWZpbml0aW9uU3Vic2NyaXB0aW9uKCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5yb3V0ZT8ucGFyYW1zIHx8IG9mKG51bGwpLCB0aGlzLnJvdXRlPy5maXJzdENoaWxkPy5wYXJhbXMgfHwgb2YobnVsbCldKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAoW3BhcmFtcywgZmlyc3RDaGlsZFBhcmFtc10pID0+XG4gICAgICAgICAgICAgIChwYXJhbXM/LmRvY3VtZW50RGVmaW5pdGlvbk5hbWUgfHwgZmlyc3RDaGlsZFBhcmFtcz8uZG9jdW1lbnREZWZpbml0aW9uTmFtZSkgYXMgc3RyaW5nXG4gICAgICAgICAgKSxcbiAgICAgICAgICBmaWx0ZXIoZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9PiAhIWRvY3VtZW50RGVmaW5pdGlvbk5hbWUpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShkb2N1bWVudERlZmluaXRpb25OYW1lID0+XG4gICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uuc2V0RG9jdW1lbnREZWZpbml0aW9uTmFtZShkb2N1bWVudERlZmluaXRpb25OYW1lKVxuICAgICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZUZpZWxkKGhpZGU6IGJvb2xlYW4sIGZpZWxkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBleGlzdHMgPSB0aGlzLmhpZGVGaWVsZHMuaW5jbHVkZXMoZmllbGQpO1xuICAgIGlmICghZXhpc3RzICYmIGhpZGUpIHtcbiAgICAgIHRoaXMuaGlkZUZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgICB9IGVsc2UgaWYgKGV4aXN0cyAmJiAhaGlkZSkge1xuICAgICAgZGVsZXRlIHRoaXMuaGlkZUZpZWxkc1tmaWVsZF07XG4gICAgfVxuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ7bGlua2VkOiB1cGxvYWRQcm9jZXNzTGlua2VkJCB8IGFzeW5jLCBpc0FkbWluOiBpc0FkbWluJCB8IGFzeW5jfSBhcyBvYnNcIj5cbiAgPGRpdiAqbmdJZj1cIm9icy5saW5rZWQgPT09IGZhbHNlXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJvYnMuaXNBZG1pblwiXG4gICAgICBbdHJhbnNsYXRlXT1cIidkb3NzaWVyLmRvY3VtZW50ZW4ubm9Qcm9jZXNzTGlua2VkLmFkbWluUm9sZSdcIlxuICAgICAgY2xhc3M9XCJiZy13YXJuaW5nIHRleHQtYmxhY2sgbWItMiBwLTMgdGV4dC1jZW50ZXJcIlxuICAgID48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiFvYnMuaXNBZG1pblwiXG4gICAgICBbdHJhbnNsYXRlXT1cIidkb3NzaWVyLmRvY3VtZW50ZW4ubm9Qcm9jZXNzTGlua2VkLnJlZ3VsYXJVc2VyJ1wiXG4gICAgICBjbGFzcz1cImJnLXdhcm5pbmcgdGV4dC1ibGFjayBtYi0yIHAtMyB0ZXh0LWNlbnRlclwiXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbiAgPHZhbHRpbW8tZHJvcHpvbmVcbiAgICAoZmlsZVNlbGVjdGVkKT1cImZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICBbYWNjZXB0ZWRGaWxlc109XCJudWxsXCJcbiAgICBbY2FtZXJhXT1cImNhbWVyYVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IG9icy5saW5rZWQgPT09IGZhbHNlIHx8IG9icy5saW5rZWQgPT09ICdsb2FkaW5nJ1wiXG4gICAgW2hpZGVGaWxlUHJldmlld109XCJ0cnVlXCJcbiAgICBbaGlkZVRpdGxlXT1cImhpZGVUaXRsZVwiXG4gICAgW21heEZpbGVTaXplXT1cIm1heEZpbGVTaXplXCJcbiAgICBbbWF4RmlsZXNdPVwiMVwiXG4gICAgW3Nob3dNYXhGaWxlU2l6ZV09XCIhaGlkZU1heEZpbGVTaXplXCJcbiAgICBbc3VidGl0bGVdPVwic3VidGl0bGVcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW3VwbG9hZGluZ109XCJ1cGxvYWRpbmckIHwgYXN5bmNcIlxuICA+PC92YWx0aW1vLWRyb3B6b25lPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgKm5nRm9yPVwibGV0IHJlc291cmNlIG9mIF92YWx1ZVwiIGNsYXNzPVwiZmlsZS1wcmV2aWV3XCI+XG4gIDxkaXYgY2xhc3M9XCJmaWxlLXByZXZpZXctbmFtZVwiPlxuICAgIDxzcGFuPlxuICAgICAge3sgcmVzb3VyY2UuZmlsZW5hbWUgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmlsZS1wcmV2aWV3LXNpemVcIj5cbiAgICA8c3Bhbj5cbiAgICAgIHt7IHJlc291cmNlLnNpemVJbkJ5dGVzIHwgZmlsZXNpemUgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkXCIgY2xhc3M9XCJmaWxlLXByZXZpZXctZGVsZXRlXCI+XG4gICAgPGEgKGNsaWNrKT1cImRlbGV0ZUZpbGUocmVzb3VyY2UuaWQpXCI+XG4gICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS1kZWxldGVcIj48L2k+XG4gICAgPC9hPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48dmFsdGltby1kb2N1bWVudGVuLWFwaS1tZXRhZGF0YS1tb2RhbFxuICBjbGFzcz1cImRvY3VtZW50ZW4tYXBpLXVwbG9hZGVyLW1ldGFkYXRhLW1vZGFsXCJcbiAgKG1ldGFkYXRhKT1cIm1ldGFkYXRhU2V0KCRldmVudClcIlxuICAobW9kYWxDbG9zZSk9XCJjbG9zZU1ldGFkYXRhTW9kYWwoKVwiXG4gIFtkZWZhdWx0VmFsdWVzXT1cImRlZmF1bHRWYWx1ZXNcIlxuICBbZGlzYWJsZUF1dGhvcl09XCJkaXNhYmxlQXV0aG9yXCJcbiAgW2Rpc2FibGVDb25maWRlbnRpYWxpdHlMZXZlbF09XCJkaXNhYmxlQ29uZmlkZW50aWFsaXR5TGV2ZWxcIlxuICBbZGlzYWJsZUNyZWF0aW9uRGF0ZV09XCJkaXNhYmxlQ3JlYXRpb25EYXRlXCJcbiAgW2Rpc2FibGVEZXNjcmlwdGlvbl09XCJkaXNhYmxlRGVzY3JpcHRpb25cIlxuICBbZGlzYWJsZURvY3VtZW50VGl0bGVdPVwiZGlzYWJsZURvY3VtZW50VGl0bGVcIlxuICBbZGlzYWJsZURvY3VtZW50VHlwZV09XCJkaXNhYmxlRG9jdW1lbnRUeXBlXCJcbiAgW2Rpc2FibGVGaWxlbmFtZV09XCJkaXNhYmxlRmlsZW5hbWVcIlxuICBbZGlzYWJsZUxhbmd1YWdlXT1cImRpc2FibGVMYW5ndWFnZVwiXG4gIFtkaXNhYmxlU3RhdHVzXT1cImRpc2FibGVTdGF0dXNcIlxuICBbZGlzYWJsZWQkXT1cIm1vZGFsRGlzYWJsZWQkXCJcbiAgW2ZpbGUkXT1cImZpbGVUb0JlVXBsb2FkZWQkXCJcbiAgW2hpZGVGaWVsZHNdPVwiaGlkZUZpZWxkc1wiXG4gIFtzdXBwb3J0c1RyZWZ3b29yZGVuXT1cIihzdXBwb3J0ZWREb2N1bWVudGVuQXBpRmVhdHVyZXMkIHwgYXN5bmMpPy5zdXBwb3J0c1RyZWZ3b29yZGVuXCJcbiAgW29wZW5dPVwic2hvd01vZGFsKClcIlxuPjwvdmFsdGltby1kb2N1bWVudGVuLWFwaS1tZXRhZGF0YS1tb2RhbD5cbiJdfQ==
@@ -8,7 +8,7 @@ import * as i4 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import * as i1$1 from '@angular/forms';
10
10
  import { Validators, ReactiveFormsModule, FormsModule, FormGroup, FormControl } from '@angular/forms';
11
- import { BehaviorSubject, combineLatest, map, Subscription, switchMap, filter, tap, startWith, debounceTime, Subject, take, of, from, ReplaySubject, distinctUntilChanged } from 'rxjs';
11
+ import { BehaviorSubject, combineLatest, map, Subscription, switchMap, filter, tap, startWith, debounceTime, Subject, take, of, from, ReplaySubject, EMPTY, distinctUntilChanged } from 'rxjs';
12
12
  import * as i3$1 from '@valtimo/components';
13
13
  import { CARBON_CONSTANTS, ViewType, CarbonListModule, ConfirmationModalModule, InputLabelModule, InputModule as InputModule$1, SelectModule, VModalModule, DEFAULT_PAGINATION, DEFAULT_PAGINATOR_CONFIG, ParagraphModule, CarbonListComponent, createCustomFormioComponent, registerCustomFormioComponentWithClass, TableModule, TitleModule, FormIoModule, TimelineItemImpl, ModalModule as ModalModule$1, SpinnerModule, TimelineModule, WidgetModule, ListModule, FilterSidebarModule, PageModule, FormModule, ValtimoCdsModalDirectiveModule, DropzoneModule, FileSizeModule } from '@valtimo/components';
14
14
  import * as i2 from '@valtimo/config';
@@ -3110,6 +3110,17 @@ class DocumentenApiUploaderComponent {
3110
3110
  }
3111
3111
  set documentType(defaultValue) {
3112
3112
  this.defaultValues['informatieobjecttype'] = defaultValue;
3113
+ this.stateService.documentDefinitionName$
3114
+ .pipe(switchMap(documentDefinitionName => this.documentService.getDocumentTypes(documentDefinitionName)), catchError(() => {
3115
+ this.defaultValues['informatieobjecttype'] = defaultValue;
3116
+ return EMPTY;
3117
+ }))
3118
+ .subscribe(documentTypes => {
3119
+ const foundDocumentType = documentTypes.find(documentType => documentType.name === defaultValue);
3120
+ foundDocumentType
3121
+ ? (this.defaultValues['informatieobjecttype'] = foundDocumentType.url)
3122
+ : (this.defaultValues['informatieobjecttype'] = defaultValue);
3123
+ });
3113
3124
  }
3114
3125
  set hideDocumentType(hide) {
3115
3126
  this.hideField(hide, 'informatieobjecttype');
@@ -3145,15 +3156,15 @@ class DocumentenApiUploaderComponent {
3145
3156
  set hideTags(hide) {
3146
3157
  this.hideField(hide, 'trefwoorden');
3147
3158
  }
3148
- constructor(uploadProviderService, stateService, domService, downloadService, modalService, userProviderService, route, documentenApiVersionService) {
3159
+ constructor(uploadProviderService, domService, modalService, userProviderService, route, documentenApiVersionService, stateService, documentService) {
3149
3160
  this.uploadProviderService = uploadProviderService;
3150
- this.stateService = stateService;
3151
3161
  this.domService = domService;
3152
- this.downloadService = downloadService;
3153
3162
  this.modalService = modalService;
3154
3163
  this.userProviderService = userProviderService;
3155
3164
  this.route = route;
3156
3165
  this.documentenApiVersionService = documentenApiVersionService;
3166
+ this.stateService = stateService;
3167
+ this.documentService = documentService;
3157
3168
  this.valueChange = new EventEmitter();
3158
3169
  this.uploading$ = new BehaviorSubject(false);
3159
3170
  this.fileToBeUploaded$ = new BehaviorSubject(null);
@@ -3222,13 +3233,13 @@ class DocumentenApiUploaderComponent {
3222
3233
  delete this.hideFields[field];
3223
3234
  }
3224
3235
  }
3225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiUploaderComponent, deps: [{ token: i2$1.UploadProviderService }, { token: i3$1.FormIoStateService }, { token: i3$1.FormIoDomService }, { token: i2$1.DownloadService }, { token: i3$1.ValtimoModalService }, { token: i5$1.UserProviderService }, { token: i1$2.ActivatedRoute }, { token: DocumentenApiVersionService }], target: i0.ɵɵFactoryTarget.Component }); }
3236
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiUploaderComponent, deps: [{ token: i2$1.UploadProviderService }, { token: i3$1.FormIoDomService }, { token: i3$1.ValtimoModalService }, { token: i5$1.UserProviderService }, { token: i1$2.ActivatedRoute }, { token: DocumentenApiVersionService }, { token: i3$1.FormIoStateService }, { token: i1$3.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
3226
3237
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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", hideDocumentTitle: "hideDocumentTitle", disableDocumentTitle: "disableDocumentTitle", filename: "filename", hideFilename: "hideFilename", disableFilename: "disableFilename", author: "author", hideAuthor: "hideAuthor", disableAuthor: "disableAuthor", status: "status", hideStatus: "hideStatus", disableStatus: "disableStatus", language: "language", hideLanguage: "hideLanguage", disableLanguage: "disableLanguage", documentType: "documentType", hideDocumentType: "hideDocumentType", disableDocumentType: "disableDocumentType", description: "description", hideDescription: "hideDescription", disableDescription: "disableDescription", confidentialityLevel: "confidentialityLevel", hideConfidentialityLevel: "hideConfidentialityLevel", disableConfidentialityLevel: "disableConfidentialityLevel", hideCreationDate: "hideCreationDate", disableCreationDate: "disableCreationDate", hideAdditionalDate: "hideAdditionalDate", tags: "tags", hideTags: "hideTags", 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 class=\"documenten-api-uploader-metadata-modal\"\n (metadata)=\"metadataSet($event)\"\n (modalClose)=\"closeMetadataModal()\"\n [defaultValues]=\"defaultValues\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableCreationDate]=\"disableCreationDate\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hideFields]=\"hideFields\"\n [supportsTrefwoorden]=\"(supportedDocumentenApiFeatures$ | async)?.supportsTrefwoorden\"\n [open]=\"showModal()\"\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$1.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["disabled$", "file$", "hideFields", "defaultValues", "disableAuthor", "disableConfidentialityLevel", "disableDescription", "disableDocumentTitle", "disableDocumentType", "disableFilename", "disableLanguage", "disableStatus", "supportsTrefwoorden", "disableCreationDate", "isEditMode", "open"], outputs: ["metadata", "modalClose"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.FileSizePipe, name: "filesize" }] }); }
3227
3238
  }
3228
3239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentenApiUploaderComponent, decorators: [{
3229
3240
  type: Component,
3230
3241
  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 class=\"documenten-api-uploader-metadata-modal\"\n (metadata)=\"metadataSet($event)\"\n (modalClose)=\"closeMetadataModal()\"\n [defaultValues]=\"defaultValues\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableCreationDate]=\"disableCreationDate\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hideFields]=\"hideFields\"\n [supportsTrefwoorden]=\"(supportedDocumentenApiFeatures$ | async)?.supportsTrefwoorden\"\n [open]=\"showModal()\"\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"] }]
3231
- }], ctorParameters: () => [{ type: i2$1.UploadProviderService }, { type: i3$1.FormIoStateService }, { type: i3$1.FormIoDomService }, { type: i2$1.DownloadService }, { type: i3$1.ValtimoModalService }, { type: i5$1.UserProviderService }, { type: i1$2.ActivatedRoute }, { type: DocumentenApiVersionService }], propDecorators: { disabled: [{
3242
+ }], ctorParameters: () => [{ type: i2$1.UploadProviderService }, { type: i3$1.FormIoDomService }, { type: i3$1.ValtimoModalService }, { type: i5$1.UserProviderService }, { type: i1$2.ActivatedRoute }, { type: DocumentenApiVersionService }, { type: i3$1.FormIoStateService }, { type: i1$3.DocumentService }], propDecorators: { disabled: [{
3232
3243
  type: Input
3233
3244
  }], title: [{
3234
3245
  type: Input