@valtimo/components 5.9.1 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +213 -0
  2. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.mjs +69 -0
  3. package/esm2020/lib/components/dropzone/dropzone.component.mjs +5 -2
  4. package/esm2020/lib/components/form-io/documenten-api-uploader/documenten-api-uploader-edit-form.mjs +295 -0
  5. package/esm2020/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.mjs +147 -0
  6. package/esm2020/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio.mjs +43 -0
  7. package/esm2020/lib/components/form-io/form-io-uploader/form-io-uploader.component.mjs +1 -1
  8. package/esm2020/lib/components/form-io/form-io.module.mjs +26 -5
  9. package/esm2020/lib/components/view-content/type-converters/dateTypeConverter.mjs +2 -2
  10. package/esm2020/lib/components/view-content/view-content.service.mjs +11 -1
  11. package/esm2020/lib/models/documenten-api-metadata.model.mjs +17 -0
  12. package/esm2020/lib/models/form-io.model.mjs +1 -1
  13. package/esm2020/lib/models/index.mjs +2 -1
  14. package/esm2020/lib/services/valtimo-modal.service.mjs +9 -2
  15. package/esm2020/public_api.mjs +5 -1
  16. package/fesm2015/valtimo-components.mjs +788 -24
  17. package/fesm2015/valtimo-components.mjs.map +1 -1
  18. package/fesm2020/valtimo-components.mjs +800 -13
  19. package/fesm2020/valtimo-components.mjs.map +1 -1
  20. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts +74 -0
  21. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -0
  22. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.d.ts +11 -0
  23. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.d.ts.map +1 -0
  24. package/lib/components/dropzone/dropzone.component.d.ts +4 -3
  25. package/lib/components/dropzone/dropzone.component.d.ts.map +1 -1
  26. package/lib/components/form-io/documenten-api-uploader/documenten-api-uploader-edit-form.d.ts +105 -0
  27. package/lib/components/form-io/documenten-api-uploader/documenten-api-uploader-edit-form.d.ts.map +1 -0
  28. package/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.d.ts +61 -0
  29. package/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.d.ts.map +1 -0
  30. package/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio.d.ts +4 -0
  31. package/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio.d.ts.map +1 -0
  32. package/lib/components/form-io/form-io.module.d.ts +11 -9
  33. package/lib/components/form-io/form-io.module.d.ts.map +1 -1
  34. package/lib/components/view-content/type-converters/dateTypeConverter.d.ts.map +1 -1
  35. package/lib/components/view-content/view-content.service.d.ts +1 -0
  36. package/lib/components/view-content/view-content.service.d.ts.map +1 -1
  37. package/lib/models/documenten-api-metadata.model.d.ts +19 -0
  38. package/lib/models/documenten-api-metadata.model.d.ts.map +1 -0
  39. package/lib/models/form-io.model.d.ts +3 -0
  40. package/lib/models/form-io.model.d.ts.map +1 -1
  41. package/lib/models/index.d.ts +1 -0
  42. package/lib/models/index.d.ts.map +1 -1
  43. package/lib/services/valtimo-modal.service.d.ts +3 -0
  44. package/lib/services/valtimo-modal.service.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/public_api.d.ts +4 -0
  47. package/public_api.d.ts.map +1 -1
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, Input, Directive, EventEmitter, Output, ViewContainerRef, ViewChild, NgModule, Pipe, HostListener, ViewChildren } from '@angular/core';
3
- import { Subject, from, switchMap, map, BehaviorSubject, Observable, combineLatest, fromEvent, Subscription, timer } from 'rxjs';
3
+ import { Subject, BehaviorSubject, from, switchMap, map, Observable, combineLatest, fromEvent, Subscription, timer, take as take$1, of, filter as filter$1, startWith } from 'rxjs';
4
4
  import * as i3 from '@angular/forms';
5
5
  import { Validators, FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
6
6
  import moment from 'moment';
@@ -11,7 +11,7 @@ import * as i1$2 from 'keycloak-angular';
11
11
  import * as i1$3 from '@valtimo/config';
12
12
  import { HttpLoaderFactory } from '@valtimo/config';
13
13
  import * as i1$4 from '@valtimo/user-interface';
14
- import { ParagraphModule } from '@valtimo/user-interface';
14
+ import { ParagraphModule, ModalModule as ModalModule$1, TitleModule, ButtonModule, FormModule, InputModule, SelectModule, DatePickerModule, InputLabelModule } from '@valtimo/user-interface';
15
15
  import * as i1$5 from '@angular/router';
16
16
  import { RouterModule, NavigationEnd, PRIMARY_OUTLET, NavigationStart } from '@angular/router';
17
17
  import * as i2 from '@valtimo/document';
@@ -25,7 +25,7 @@ import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
25
25
  import * as i1$9 from '@angular/common/http';
26
26
  import { HttpClient } from '@angular/common/http';
27
27
  import * as i5 from '@valtimo/context';
28
- import { map as map$1, debounceTime, take, filter, switchMap as switchMap$1 } from 'rxjs/operators';
28
+ import { map as map$1, debounceTime, take, filter, switchMap as switchMap$1, tap } from 'rxjs/operators';
29
29
  import * as i2$1 from '@angular/platform-browser';
30
30
  import BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';
31
31
  import heatmap from 'heatmap.js-fixed/build/heatmap.js';
@@ -163,13 +163,20 @@ class TimelineItemImpl {
163
163
  class ValtimoModalService {
164
164
  constructor() {
165
165
  this._scrollToTop$ = new Subject();
166
+ this._documentDefinitionName$ = new BehaviorSubject('');
166
167
  }
167
168
  get scrollToTop$() {
168
169
  return this._scrollToTop$.asObservable();
169
170
  }
171
+ get documentDefinitionName$() {
172
+ return this._documentDefinitionName$.asObservable();
173
+ }
170
174
  scrollToTop() {
171
175
  this._scrollToTop$.next(null);
172
176
  }
177
+ setDocumentDefinitionName(documentDefinitionName) {
178
+ this._documentDefinitionName$.next(documentDefinitionName);
179
+ }
173
180
  }
174
181
  ValtimoModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ValtimoModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
175
182
  ValtimoModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ValtimoModalService, providedIn: 'root' });
@@ -1819,7 +1826,7 @@ class DateTypeConverter {
1819
1826
  if (!value) {
1820
1827
  return '-';
1821
1828
  }
1822
- return moment(value).format('DD-MM-YYYY, hh:mm A');
1829
+ return moment(value).format((definition === null || definition === void 0 ? void 0 : definition.format) || 'DD-MM-YYYY, hh:mm A');
1823
1830
  }
1824
1831
  }
1825
1832
 
@@ -1951,9 +1958,16 @@ class ViewContentService {
1951
1958
  TYPE_CONVERTERS.forEach(converter => this.addConverter(converter));
1952
1959
  }
1953
1960
  get(value, definition) {
1961
+ const separator = ':';
1954
1962
  if (!definition.viewType) {
1955
1963
  definition.viewType = typeof value;
1956
1964
  }
1965
+ if (definition.viewType.includes(separator)) {
1966
+ // Get the substring of the string after the separator (:) and assign it to a new key
1967
+ definition.format = definition.viewType.slice(this.getSeparatorIndex(definition, separator) + 1);
1968
+ // Remove the substring after the separator and the separator from the string and assign it back to the viewType
1969
+ definition.viewType = definition.viewType.slice(0, this.getSeparatorIndex(definition, separator));
1970
+ }
1957
1971
  if (typeof this.converters[definition.viewType] !== 'undefined') {
1958
1972
  return this.converters[definition.viewType].convert(value, definition);
1959
1973
  }
@@ -1967,6 +1981,9 @@ class ViewContentService {
1967
1981
  }
1968
1982
  this.converters[converter.getTypeString()] = converter;
1969
1983
  }
1984
+ getSeparatorIndex(definition, separator) {
1985
+ return definition.viewType.indexOf(separator);
1986
+ }
1970
1987
  }
1971
1988
  ViewContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ViewContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1972
1989
  ViewContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ViewContentService, providedIn: 'root' });
@@ -4000,19 +4017,10 @@ class DropzoneComponent {
4000
4017
  this.showingCamera$.next(false);
4001
4018
  }
4002
4019
  initDropzone() {
4003
- this.dropzone = new Dropzone(this.dropzoneRef.nativeElement, {
4004
- url: '/',
4005
- maxFilesize: this.maxFileSize,
4006
- clickable: this.dropzoneRef.nativeElement,
4007
- autoProcessQueue: false,
4008
- createImageThumbnails: false,
4009
- acceptedFiles: this.acceptedFiles,
4010
- previewTemplate: `<p style='display:none'></p>`,
4011
- accept: file => {
4020
+ this.dropzone = new Dropzone(this.dropzoneRef.nativeElement, Object.assign(Object.assign({ url: '/', maxFilesize: this.maxFileSize, clickable: this.dropzoneRef.nativeElement, autoProcessQueue: false, createImageThumbnails: false, acceptedFiles: this.acceptedFiles, previewTemplate: `<p style='display:none'></p>` }, (this.maxFiles && { maxFiles: this.maxFiles })), { accept: file => {
4012
4021
  this.dropzone.removeAllFiles();
4013
4022
  this.setFile(file);
4014
- },
4015
- });
4023
+ } }));
4016
4024
  this.setDropzoneEvents();
4017
4025
  }
4018
4026
  setDropzoneEvents() {
@@ -4034,7 +4042,7 @@ class DropzoneComponent {
4034
4042
  }
4035
4043
  }
4036
4044
  DropzoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DropzoneComponent, deps: [{ token: i1$8.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
4037
- DropzoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DropzoneComponent, selector: "valtimo-dropzone", inputs: { title: "title", hideTitle: "hideTitle", subtitle: "subtitle", externalError$: "externalError$", maxFileSize: "maxFileSize", showMaxFileSize: "showMaxFileSize", acceptedFiles: "acceptedFiles", clear$: "clear$", disabled: "disabled", hideFilePreview: "hideFilePreview", uploading: "uploading", camera: "camera" }, outputs: { fileSelected: "fileSelected" }, viewQueries: [{ propertyName: "dropzoneRef", first: true, predicate: ["dropzone"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 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<form #dropzone [ngClass]=\"{disabled: disabled || uploading}\" class=\"dropzone dz-clickable\">\n <div class=\"dz-message\">\n <div class=\"icon large-icon\"><span class=\"mdi mdi-cloud-upload\"></span></div>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n <ng-container *ngIf=\"uploading\">\n <ng-container *ngTemplateOutlet=\"progressBar\"></ng-container>\n </ng-container>\n <div class=\"dropzone-mobile-trigger needsclick\"></div>\n </div>\n <button\n (click)=\"showCamera()\"\n *ngIf=\"camera\"\n type=\"button\"\n class=\"btn btn-primary px-3 webcam-button\"\n >\n <i class=\"icon mdi mdi-camera\" aria-hidden=\"true\"></i>\n </button>\n <ng-container *ngIf=\"showingCamera$ | async\">\n <ng-container *ngTemplateOutlet=\"webcam\"></ng-container>\n </ng-container>\n</form>\n\n<ng-template #body>\n <h2 *ngIf=\"!hideTitle\" class=\"mb-4 mt-2\">{{ title || ('dropzone.drop' | translate) }}</h2>\n <span *ngIf=\"subtitle\" class=\"note mb-3\">{{ subtitle }}</span>\n <span *ngIf=\"showMaxFileSize\" class=\"note mb-3 small-font\"\n >{{ 'dropzone.maxFileSize' | translate }}<b>{{ maxFileSize }}mb</b></span\n >\n <ng-container *ngTemplateOutlet=\"preview\"></ng-container>\n</ng-template>\n\n<ng-template #preview>\n <ng-container\n *ngIf=\"{\n errorMessage: errorMessage$ | async,\n externalError: externalError$ | async,\n file: file$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"obs.externalError || obs.errorMessage\">\n <div class=\"alert alert-danger mt-2 mb-0\">\n <div class=\"message\">\n {{ obs.externalError || obs.errorMessage }}\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!hideFilePreview && obs.file && !obs.externalError && !obs.errorMessage\">\n <div class=\"file\">\n <i class=\"icon mdi mdi-file-text mr-2\"></i>\n <span class=\"note\">{{ obs.file.name }}</span>\n <span class=\"note file-size\">- {{ obs.file.size | filesize: 2 }}</span>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #progressBar>\n <div class=\"progress-bar-container\">\n <valtimo-progress-bar></valtimo-progress-bar>\n </div>\n</ng-template>\n\n<ng-template #webcam>\n <valtimo-webcam (imageSaved)=\"webcamImageSaved($event)\"></valtimo-webcam>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */form.dropzone{padding:30px 20px}form.dropzone h2{text-align:center;font-size:2rem}form.dropzone.disabled{opacity:.7;pointer-events:none;cursor:default}form.dropzone.preview{padding:15px 20px;border:none}.dz-message{display:flex;flex-direction:column;align-items:center}.dropzone-mobile-trigger{cursor:pointer}.alert-light{display:flex;align-items:center}form.dropzone .mdi{background-color:transparent;border-radius:0;display:inline-block;height:auto;width:auto;margin-bottom:0;padding:0}form.dropzone .message{padding:1.385rem 2.1542rem}.file{font-size:1.5rem;display:flex;flex-direction:row;align-items:center}.small-font{font-size:1rem;color:#959595}.file-size{margin-left:5px}.progress-bar-container{height:auto;width:100%;position:absolute;bottom:0}.webcam-button{position:absolute;top:10px;right:10px}.large-icon{line-height:4.615rem}\n"], components: [{ type: ProgressBarComponent, selector: "valtimo-progress-bar" }, { type: WebcamComponent, selector: "valtimo-webcam", outputs: ["imageSaved"] }], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i1.AsyncPipe, "translate": i1$8.TranslatePipe, "filesize": FileSizePipe } });
4045
+ DropzoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DropzoneComponent, selector: "valtimo-dropzone", inputs: { title: "title", hideTitle: "hideTitle", subtitle: "subtitle", externalError$: "externalError$", maxFileSize: "maxFileSize", showMaxFileSize: "showMaxFileSize", acceptedFiles: "acceptedFiles", clear$: "clear$", disabled: "disabled", hideFilePreview: "hideFilePreview", uploading: "uploading", camera: "camera", maxFiles: "maxFiles" }, outputs: { fileSelected: "fileSelected" }, viewQueries: [{ propertyName: "dropzoneRef", first: true, predicate: ["dropzone"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 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<form #dropzone [ngClass]=\"{disabled: disabled || uploading}\" class=\"dropzone dz-clickable\">\n <div class=\"dz-message\">\n <div class=\"icon large-icon\"><span class=\"mdi mdi-cloud-upload\"></span></div>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n <ng-container *ngIf=\"uploading\">\n <ng-container *ngTemplateOutlet=\"progressBar\"></ng-container>\n </ng-container>\n <div class=\"dropzone-mobile-trigger needsclick\"></div>\n </div>\n <button\n (click)=\"showCamera()\"\n *ngIf=\"camera\"\n type=\"button\"\n class=\"btn btn-primary px-3 webcam-button\"\n >\n <i class=\"icon mdi mdi-camera\" aria-hidden=\"true\"></i>\n </button>\n <ng-container *ngIf=\"showingCamera$ | async\">\n <ng-container *ngTemplateOutlet=\"webcam\"></ng-container>\n </ng-container>\n</form>\n\n<ng-template #body>\n <h2 *ngIf=\"!hideTitle\" class=\"mb-4 mt-2\">{{ title || ('dropzone.drop' | translate) }}</h2>\n <span *ngIf=\"subtitle\" class=\"note mb-3\">{{ subtitle }}</span>\n <span *ngIf=\"showMaxFileSize\" class=\"note mb-3 small-font\"\n >{{ 'dropzone.maxFileSize' | translate }}<b>{{ maxFileSize }}mb</b></span\n >\n <ng-container *ngTemplateOutlet=\"preview\"></ng-container>\n</ng-template>\n\n<ng-template #preview>\n <ng-container\n *ngIf=\"{\n errorMessage: errorMessage$ | async,\n externalError: externalError$ | async,\n file: file$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"obs.externalError || obs.errorMessage\">\n <div class=\"alert alert-danger mt-2 mb-0\">\n <div class=\"message\">\n {{ obs.externalError || obs.errorMessage }}\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!hideFilePreview && obs.file && !obs.externalError && !obs.errorMessage\">\n <div class=\"file\">\n <i class=\"icon mdi mdi-file-text mr-2\"></i>\n <span class=\"note\">{{ obs.file.name }}</span>\n <span class=\"note file-size\">- {{ obs.file.size | filesize: 2 }}</span>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #progressBar>\n <div class=\"progress-bar-container\">\n <valtimo-progress-bar></valtimo-progress-bar>\n </div>\n</ng-template>\n\n<ng-template #webcam>\n <valtimo-webcam (imageSaved)=\"webcamImageSaved($event)\"></valtimo-webcam>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */form.dropzone{padding:30px 20px}form.dropzone h2{text-align:center;font-size:2rem}form.dropzone.disabled{opacity:.7;pointer-events:none;cursor:default}form.dropzone.preview{padding:15px 20px;border:none}.dz-message{display:flex;flex-direction:column;align-items:center}.dropzone-mobile-trigger{cursor:pointer}.alert-light{display:flex;align-items:center}form.dropzone .mdi{background-color:transparent;border-radius:0;display:inline-block;height:auto;width:auto;margin-bottom:0;padding:0}form.dropzone .message{padding:1.385rem 2.1542rem}.file{font-size:1.5rem;display:flex;flex-direction:row;align-items:center}.small-font{font-size:1rem;color:#959595}.file-size{margin-left:5px}.progress-bar-container{height:auto;width:100%;position:absolute;bottom:0}.webcam-button{position:absolute;top:10px;right:10px}.large-icon{line-height:4.615rem}\n"], components: [{ type: ProgressBarComponent, selector: "valtimo-progress-bar" }, { type: WebcamComponent, selector: "valtimo-webcam", outputs: ["imageSaved"] }], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i1.AsyncPipe, "translate": i1$8.TranslatePipe, "filesize": FileSizePipe } });
4038
4046
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DropzoneComponent, decorators: [{
4039
4047
  type: Component,
4040
4048
  args: [{ selector: 'valtimo-dropzone', template: "<!--\n ~ Copyright 2015-2020 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<form #dropzone [ngClass]=\"{disabled: disabled || uploading}\" class=\"dropzone dz-clickable\">\n <div class=\"dz-message\">\n <div class=\"icon large-icon\"><span class=\"mdi mdi-cloud-upload\"></span></div>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n <ng-container *ngIf=\"uploading\">\n <ng-container *ngTemplateOutlet=\"progressBar\"></ng-container>\n </ng-container>\n <div class=\"dropzone-mobile-trigger needsclick\"></div>\n </div>\n <button\n (click)=\"showCamera()\"\n *ngIf=\"camera\"\n type=\"button\"\n class=\"btn btn-primary px-3 webcam-button\"\n >\n <i class=\"icon mdi mdi-camera\" aria-hidden=\"true\"></i>\n </button>\n <ng-container *ngIf=\"showingCamera$ | async\">\n <ng-container *ngTemplateOutlet=\"webcam\"></ng-container>\n </ng-container>\n</form>\n\n<ng-template #body>\n <h2 *ngIf=\"!hideTitle\" class=\"mb-4 mt-2\">{{ title || ('dropzone.drop' | translate) }}</h2>\n <span *ngIf=\"subtitle\" class=\"note mb-3\">{{ subtitle }}</span>\n <span *ngIf=\"showMaxFileSize\" class=\"note mb-3 small-font\"\n >{{ 'dropzone.maxFileSize' | translate }}<b>{{ maxFileSize }}mb</b></span\n >\n <ng-container *ngTemplateOutlet=\"preview\"></ng-container>\n</ng-template>\n\n<ng-template #preview>\n <ng-container\n *ngIf=\"{\n errorMessage: errorMessage$ | async,\n externalError: externalError$ | async,\n file: file$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"obs.externalError || obs.errorMessage\">\n <div class=\"alert alert-danger mt-2 mb-0\">\n <div class=\"message\">\n {{ obs.externalError || obs.errorMessage }}\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!hideFilePreview && obs.file && !obs.externalError && !obs.errorMessage\">\n <div class=\"file\">\n <i class=\"icon mdi mdi-file-text mr-2\"></i>\n <span class=\"note\">{{ obs.file.name }}</span>\n <span class=\"note file-size\">- {{ obs.file.size | filesize: 2 }}</span>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #progressBar>\n <div class=\"progress-bar-container\">\n <valtimo-progress-bar></valtimo-progress-bar>\n </div>\n</ng-template>\n\n<ng-template #webcam>\n <valtimo-webcam (imageSaved)=\"webcamImageSaved($event)\"></valtimo-webcam>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */form.dropzone{padding:30px 20px}form.dropzone h2{text-align:center;font-size:2rem}form.dropzone.disabled{opacity:.7;pointer-events:none;cursor:default}form.dropzone.preview{padding:15px 20px;border:none}.dz-message{display:flex;flex-direction:column;align-items:center}.dropzone-mobile-trigger{cursor:pointer}.alert-light{display:flex;align-items:center}form.dropzone .mdi{background-color:transparent;border-radius:0;display:inline-block;height:auto;width:auto;margin-bottom:0;padding:0}form.dropzone .message{padding:1.385rem 2.1542rem}.file{font-size:1.5rem;display:flex;flex-direction:row;align-items:center}.small-font{font-size:1rem;color:#959595}.file-size{margin-left:5px}.progress-bar-container{height:auto;width:100%;position:absolute;bottom:0}.webcam-button{position:absolute;top:10px;right:10px}.large-icon{line-height:4.615rem}\n"] }]
@@ -4065,6 +4073,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4065
4073
  type: Input
4066
4074
  }], camera: [{
4067
4075
  type: Input
4076
+ }], maxFiles: [{
4077
+ type: Input
4068
4078
  }], fileSelected: [{
4069
4079
  type: Output
4070
4080
  }] } });
@@ -4128,7 +4138,7 @@ class FormIoUploaderComponent {
4128
4138
  }
4129
4139
  }
4130
4140
  FormIoUploaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormIoUploaderComponent, deps: [{ token: i1$a.UploadProviderService }, { token: FormIoStateService }, { token: FormIoDomService }, { token: i1$a.DownloadService }], target: i0.ɵɵFactoryTarget.Component });
4131
- FormIoUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FormIoUploaderComponent, selector: "valtimo-formio-uploader", inputs: { disabled: "disabled", title: "title", hideTitle: "hideTitle", subtitle: "subtitle", maxFileSize: "maxFileSize", hideMaxFileSize: "hideMaxFileSize", camera: "camera", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [disabled]=\"disabled\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [camera]=\"camera\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<div class=\"file-preview\" *ngFor=\"let resource of _value\">\n <div class=\"file-preview-name\">\n <a href=\"#\" (click)=\"downloadFile(resource)\">\n {{ resource.originalName }}\n </a>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.size | filesize }}\n </span>\n </div>\n <div class=\"file-preview-delete\" *ngIf=\"!disabled\">\n <a (click)=\"deleteFile(resource.data.resourceId)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.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"], components: [{ type: DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera"], outputs: ["fileSelected"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i1.AsyncPipe, "filesize": FileSizePipe } });
4141
+ FormIoUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FormIoUploaderComponent, selector: "valtimo-formio-uploader", inputs: { disabled: "disabled", title: "title", hideTitle: "hideTitle", subtitle: "subtitle", maxFileSize: "maxFileSize", hideMaxFileSize: "hideMaxFileSize", camera: "camera", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [disabled]=\"disabled\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [camera]=\"camera\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<div class=\"file-preview\" *ngFor=\"let resource of _value\">\n <div class=\"file-preview-name\">\n <a href=\"#\" (click)=\"downloadFile(resource)\">\n {{ resource.originalName }}\n </a>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.size | filesize }}\n </span>\n </div>\n <div class=\"file-preview-delete\" *ngIf=\"!disabled\">\n <a (click)=\"deleteFile(resource.data.resourceId)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.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"], components: [{ type: DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i1.AsyncPipe, "filesize": FileSizePipe } });
4132
4142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormIoUploaderComponent, decorators: [{
4133
4143
  type: Component,
4134
4144
  args: [{ selector: 'valtimo-formio-uploader', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [disabled]=\"disabled\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [camera]=\"camera\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<div class=\"file-preview\" *ngFor=\"let resource of _value\">\n <div class=\"file-preview-name\">\n <a href=\"#\" (click)=\"downloadFile(resource)\">\n {{ resource.originalName }}\n </a>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.size | filesize }}\n </span>\n </div>\n <div class=\"file-preview-delete\" *ngIf=\"!disabled\">\n <a (click)=\"deleteFile(resource.data.resourceId)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.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"] }]
@@ -4239,6 +4249,406 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4239
4249
  }]
4240
4250
  }] });
4241
4251
 
4252
+ /*
4253
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
4254
+ *
4255
+ * Licensed under EUPL, Version 1.2 (the "License");
4256
+ * you may not use this file except in compliance with the License.
4257
+ * You may obtain a copy of the License at
4258
+ *
4259
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
4260
+ *
4261
+ * Unless required by applicable law or agreed to in writing, software
4262
+ * distributed under the License is distributed on an "AS IS" basis,
4263
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4264
+ * See the License for the specific language governing permissions and
4265
+ * limitations under the License.
4266
+ */
4267
+ class DocumentenApiMetadataModalComponent {
4268
+ constructor(modalService, translateService, route, documentService, keycloakService, valtimoModalService) {
4269
+ var _a, _b, _c;
4270
+ this.modalService = modalService;
4271
+ this.translateService = translateService;
4272
+ this.route = route;
4273
+ this.documentService = documentService;
4274
+ this.keycloakService = keycloakService;
4275
+ this.valtimoModalService = valtimoModalService;
4276
+ this.documentTitle = '';
4277
+ this.metadata = new EventEmitter();
4278
+ this.CONFIDENTIALITY_LEVELS = [
4279
+ 'openbaar',
4280
+ 'beperkt_openbaar',
4281
+ 'intern',
4282
+ 'zaakvertrouwelijk',
4283
+ 'vertrouwelijk',
4284
+ 'confidentieel',
4285
+ 'geheim',
4286
+ 'zeer_geheim',
4287
+ ];
4288
+ this.confidentialityLevelItems$ = this.translateService
4289
+ .stream('key')
4290
+ .pipe(map(() => this.CONFIDENTIALITY_LEVELS.map(confidentialityLevel => ({
4291
+ id: confidentialityLevel,
4292
+ text: this.translateService.instant(`document.${confidentialityLevel}`),
4293
+ }))));
4294
+ this.ADDITONAL_DOCUMENT_DATE_OPTIONS = [
4295
+ {
4296
+ value: 'neither',
4297
+ translationKey: 'document.noAdditionalDate',
4298
+ },
4299
+ {
4300
+ value: 'sent',
4301
+ translationKey: 'document.sendDate',
4302
+ },
4303
+ {
4304
+ value: 'received',
4305
+ translationKey: 'document.receiptDate',
4306
+ },
4307
+ ];
4308
+ this.clearStatusSelection$ = new Subject();
4309
+ this.additionalDocumentDate$ = new BehaviorSubject('neither');
4310
+ this.STATUSES = [
4311
+ 'in_bewerking',
4312
+ 'ter_vaststelling',
4313
+ 'definitief',
4314
+ 'gearchiveerd',
4315
+ ];
4316
+ this.RECEIPT_STATUSES = ['definitief', 'gearchiveerd'];
4317
+ this.formData$ = new BehaviorSubject(null);
4318
+ this.statusItems$ = combineLatest([
4319
+ this.additionalDocumentDate$,
4320
+ this.translateService.stream('key'),
4321
+ ]).pipe(tap(([additionalDocumentDate]) => {
4322
+ this.formData$.pipe(take$1(1)).subscribe(formData => {
4323
+ if (additionalDocumentDate === 'received' &&
4324
+ (formData.status === 'in_bewerking' || formData.status === 'ter_vaststelling')) {
4325
+ this.clearStatusSelection$.next(null);
4326
+ }
4327
+ });
4328
+ }), map(([additionalDocumentDate]) => (additionalDocumentDate === 'received' ? this.RECEIPT_STATUSES : this.STATUSES).map(status => ({
4329
+ id: status,
4330
+ text: this.translateService.instant(`document.${status}`),
4331
+ }))));
4332
+ this.LANGUAGES = ['nld', 'eng', 'deu'];
4333
+ this.languageItems$ = this.translateService.stream('key').pipe(map(() => this.LANGUAGES.map(language => ({
4334
+ id: language,
4335
+ text: this.translateService.instant(`document.${language}`),
4336
+ }))));
4337
+ this.documentTypeItems$ = combineLatest([
4338
+ ((_a = this.route) === null || _a === void 0 ? void 0 : _a.params) || of(null),
4339
+ ((_c = (_b = this.route) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.params) || of(null),
4340
+ this.valtimoModalService.documentDefinitionName$,
4341
+ ]).pipe(filter$1(([params, firstChildParams, documentDefinitionName]) => !!((params === null || params === void 0 ? void 0 : params.documentDefinitionName) ||
4342
+ (firstChildParams === null || firstChildParams === void 0 ? void 0 : firstChildParams.documentDefinitionName) ||
4343
+ documentDefinitionName)), switchMap(([params, firstChildParams, documentDefinitionName]) => this.documentService.getDocumentTypes((params === null || params === void 0 ? void 0 : params.documentDefinitionName) ||
4344
+ (firstChildParams === null || firstChildParams === void 0 ? void 0 : firstChildParams.documentDefinitionName) ||
4345
+ documentDefinitionName)), map(documentTypes => documentTypes.map(type => ({ id: type.url, text: type.name }))));
4346
+ this.showForm$ = this.modalService.modalVisible$;
4347
+ this.valid$ = new BehaviorSubject(false);
4348
+ this.userEmail$ = from(this.keycloakService.loadUserProfile()).pipe(map(userProfile => (userProfile === null || userProfile === void 0 ? void 0 : userProfile.email) || ''));
4349
+ }
4350
+ ngOnInit() {
4351
+ this.openShowSubscription();
4352
+ this.openHideSubscription();
4353
+ }
4354
+ ngOnDestroy() {
4355
+ var _a, _b;
4356
+ (_a = this.showSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
4357
+ (_b = this.hideSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
4358
+ }
4359
+ hide() {
4360
+ this.formData$.next(null);
4361
+ this.valid$.next(false);
4362
+ this.additionalDocumentDate$.next('neither');
4363
+ this.modalService.closeModal();
4364
+ }
4365
+ cancel() {
4366
+ this.hide();
4367
+ }
4368
+ save() {
4369
+ combineLatest([this.valid$, this.formData$])
4370
+ .pipe(take$1(1))
4371
+ .subscribe(([valid, formData]) => {
4372
+ if (valid) {
4373
+ this.metadata.emit(formData);
4374
+ }
4375
+ });
4376
+ }
4377
+ formValueChange(data) {
4378
+ this.formData$.next(data);
4379
+ this.setValid(data);
4380
+ }
4381
+ setAdditionalDate(value) {
4382
+ this.additionalDocumentDate$.next(value);
4383
+ }
4384
+ setValid(data) {
4385
+ this.valid$.next(!!(data.filename &&
4386
+ data.title &&
4387
+ data.author &&
4388
+ data.creationDate &&
4389
+ data.status &&
4390
+ data.language &&
4391
+ data.informatieobjecttype));
4392
+ }
4393
+ openShowSubscription() {
4394
+ this.showSubscription = this.show$.subscribe(() => {
4395
+ this.modalService.openModal(this.documentenApiMetadataModal);
4396
+ });
4397
+ }
4398
+ openHideSubscription() {
4399
+ this.hideSubscription = this.hide$.subscribe(() => {
4400
+ this.hide();
4401
+ });
4402
+ }
4403
+ }
4404
+ DocumentenApiMetadataModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DocumentenApiMetadataModalComponent, deps: [{ token: i1$4.ModalService }, { token: i1$8.TranslateService }, { token: i1$5.ActivatedRoute }, { token: i2.DocumentService }, { token: i1$2.KeycloakService }, { token: ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component });
4405
+ DocumentenApiMetadataModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: { show$: "show$", hide$: "hide$", disabled$: "disabled$", file$: "file$", documentTitle: "documentTitle", disableDocumentTitle: "disableDocumentTitle", filename: "filename", disableFilename: "disableFilename", author: "author", disableAuthor: "disableAuthor", status: "status", disableStatus: "disableStatus", language: "language", disableLanguage: "disableLanguage", documentType: "documentType", disableDocumentType: "disableDocumentType", description: "description", disableDescription: "disableDescription", confidentialityLevel: "confidentialityLevel", disableConfidentialityLevel: "disableConfidentialityLevel" }, outputs: { metadata: "metadata" }, viewQueries: [{ propertyName: "documentenApiMetadataModal", first: true, predicate: ["documentenApiMetadataModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #documentenApiMetadataModal\n (closeEvent)=\"hide()\"\n *ngIf=\"{file: file$ | async, disabled: disabled$ | async, valid: valid$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"edit-configuration-title\">\n <v-title [center]=\"true\" [fullWidth]=\"true\" [margin]=\"false\" type=\"h2\">{{\n 'document.fillInMetadata' | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">{{\n 'document.cancel' | translate\n }}</v-button>\n <v-button\n (clickEvent)=\"save()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"upload\"\n type=\"success\"\n >{{ 'document.upload' | translate }}</v-button\n >\n </div>\n </div>\n</v-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"additionalDocumentDate$ | async as additionalDate\"\n >\n <v-input\n [defaultValue]=\"filename || obs.file?.name\"\n [disabled]=\"obs.disabled || disableFilename\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.filename' | translate\"\n [tooltip]=\"'document.filenameTooltip' | translate\"\n name=\"filename\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"documentTitle\"\n [disabled]=\"obs.disabled || disableDocumentTitle\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.inputTitle' | translate\"\n [tooltip]=\"'document.inputTitleTooltip' | translate\"\n [widthPx]=\"400\"\n name=\"title\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"author || (userEmail$ | async)\"\n [disabled]=\"obs.disabled || disableAuthor\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.author' | translate\"\n [tooltip]=\"'document.authorTooltip' | translate\"\n [widthPx]=\"300\"\n name=\"author\"\n >\n </v-input>\n <v-select\n *ngIf=\"languageItems$ | async as languageItems\"\n [defaultSelectionId]=\"language || languageItems[0].id\"\n [disabled]=\"obs.disabled || disableLanguage\"\n [items]=\"languageItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.language' | translate\"\n [tooltip]=\"'document.languageTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"language\"\n ></v-select>\n <ng-container *ngIf=\"{documentTypeItems: documentTypeItems$ | async} as obs\">\n <v-select\n [defaultSelectionId]=\"documentType\"\n [disabled]=\"obs.disabled || disableDocumentType\"\n [items]=\"obs.documentTypeItems\"\n [loading]=\"!obs.documentTypeItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.informatieobjecttype' | translate\"\n [tooltip]=\"'document.informatieobjecttypeTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"informatieobjecttype\"\n ></v-select>\n </ng-container>\n <v-date-picker\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.creationDate' | translate\"\n [tooltip]=\"'document.creationDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"creationDate\"\n ></v-date-picker>\n <ng-container\n *ngTemplateOutlet=\"additionalDatePicker; context: {additionalDate: additionalDate}\"\n ></ng-container>\n <v-date-picker\n *ngIf=\"additionalDate === 'received'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.receiptDate' | translate\"\n [tooltip]=\"'document.receiptDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"receiptDate\"\n ></v-date-picker>\n <v-date-picker\n *ngIf=\"additionalDate === 'sent'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.sendDate' | translate\"\n [tooltip]=\"'document.sendDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"sendDate\"\n ></v-date-picker>\n <v-select\n [defaultSelectionId]=\"status\"\n [disabled]=\"obs.disabled || disableStatus\"\n [items]=\"statusItems$ | async\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.status' | translate\"\n [tooltip]=\"'document.statusTooltip' | translate\"\n [widthInPx]=\"200\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n name=\"status\"\n ></v-select>\n <v-input\n [defaultValue]=\"description\"\n [disabled]=\"obs.disabled || disableDescription\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [title]=\"'document.inputDescription' | translate\"\n [tooltip]=\"'document.inputDescriptionTooltip' | translate\"\n name=\"description\"\n >\n </v-input>\n <v-select\n [defaultSelectionId]=\"confidentialityLevel\"\n [disabled]=\"obs.disabled || disableConfidentialityLevel\"\n [items]=\"confidentialityLevelItems$ | async\"\n [margin]=\"true\"\n [title]=\"'document.confidentialityLevel' | translate\"\n [tooltip]=\"'document.confidentialityLevelTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"confidentialityLevel\"\n ></v-select>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template #additionalDatePicker let-additionalDate=\"additionalDate\">\n <v-input-label\n [title]=\"'document.additionalDate' | translate\"\n [name]=\"'additionalDate'\"\n [tooltip]=\"'document.additionalDateTooltip' | translate\"\n [required]=\"true\"\n >\n </v-input-label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1 additional-date\">\n <label\n class=\"custom-control custom-radio custom-control-inline\"\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n (click)=\"setAdditionalDate(option.value)\"\n >\n <input\n class=\"custom-control-input\"\n type=\"radio\"\n name=\"radio-inline\"\n [checked]=\"additionalDate === option.value\"\n /><span class=\"custom-control-label\">{{ option.translationKey | translate }}</span>\n </label>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.buttons{display:flex;flex-direction:row;width:100%;justify-content:space-between}.additional-date{padding:0;width:100%;max-width:100%;margin:0;margin-block-end:var(--v-input-margin)}.additional-date .custom-control{margin-bottom:0}\n"], components: [{ type: i1$4.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { type: i1$4.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { type: i1$4.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { type: i1$4.FormComponent, selector: "v-form", outputs: ["valueChange"] }, { type: i1$4.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox"], outputs: ["valueChange"] }, { type: i1$4.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "clearable", "disabled", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder"], outputs: ["selectedChange", "clear"] }, { type: i1$4.DatePickerComponent, selector: "v-date-picker", inputs: ["name", "title", "titleTranslationKey", "widthPx", "fullWidth", "margin", "disabled", "tooltip", "required", "defaultDate", "defaultDateIsToday"] }, { type: i1$4.InputLabelComponent, selector: "v-input-label", inputs: ["name", "title", "titleTranslationKey", "tooltip", "required", "largeMargin"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe, "translate": i1$8.TranslatePipe } });
4406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DocumentenApiMetadataModalComponent, decorators: [{
4407
+ type: Component,
4408
+ args: [{ selector: 'valtimo-documenten-api-metadata-modal', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #documentenApiMetadataModal\n (closeEvent)=\"hide()\"\n *ngIf=\"{file: file$ | async, disabled: disabled$ | async, valid: valid$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"edit-configuration-title\">\n <v-title [center]=\"true\" [fullWidth]=\"true\" [margin]=\"false\" type=\"h2\">{{\n 'document.fillInMetadata' | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">{{\n 'document.cancel' | translate\n }}</v-button>\n <v-button\n (clickEvent)=\"save()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"upload\"\n type=\"success\"\n >{{ 'document.upload' | translate }}</v-button\n >\n </div>\n </div>\n</v-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"additionalDocumentDate$ | async as additionalDate\"\n >\n <v-input\n [defaultValue]=\"filename || obs.file?.name\"\n [disabled]=\"obs.disabled || disableFilename\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.filename' | translate\"\n [tooltip]=\"'document.filenameTooltip' | translate\"\n name=\"filename\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"documentTitle\"\n [disabled]=\"obs.disabled || disableDocumentTitle\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.inputTitle' | translate\"\n [tooltip]=\"'document.inputTitleTooltip' | translate\"\n [widthPx]=\"400\"\n name=\"title\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"author || (userEmail$ | async)\"\n [disabled]=\"obs.disabled || disableAuthor\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.author' | translate\"\n [tooltip]=\"'document.authorTooltip' | translate\"\n [widthPx]=\"300\"\n name=\"author\"\n >\n </v-input>\n <v-select\n *ngIf=\"languageItems$ | async as languageItems\"\n [defaultSelectionId]=\"language || languageItems[0].id\"\n [disabled]=\"obs.disabled || disableLanguage\"\n [items]=\"languageItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.language' | translate\"\n [tooltip]=\"'document.languageTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"language\"\n ></v-select>\n <ng-container *ngIf=\"{documentTypeItems: documentTypeItems$ | async} as obs\">\n <v-select\n [defaultSelectionId]=\"documentType\"\n [disabled]=\"obs.disabled || disableDocumentType\"\n [items]=\"obs.documentTypeItems\"\n [loading]=\"!obs.documentTypeItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.informatieobjecttype' | translate\"\n [tooltip]=\"'document.informatieobjecttypeTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"informatieobjecttype\"\n ></v-select>\n </ng-container>\n <v-date-picker\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.creationDate' | translate\"\n [tooltip]=\"'document.creationDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"creationDate\"\n ></v-date-picker>\n <ng-container\n *ngTemplateOutlet=\"additionalDatePicker; context: {additionalDate: additionalDate}\"\n ></ng-container>\n <v-date-picker\n *ngIf=\"additionalDate === 'received'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.receiptDate' | translate\"\n [tooltip]=\"'document.receiptDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"receiptDate\"\n ></v-date-picker>\n <v-date-picker\n *ngIf=\"additionalDate === 'sent'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.sendDate' | translate\"\n [tooltip]=\"'document.sendDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"sendDate\"\n ></v-date-picker>\n <v-select\n [defaultSelectionId]=\"status\"\n [disabled]=\"obs.disabled || disableStatus\"\n [items]=\"statusItems$ | async\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.status' | translate\"\n [tooltip]=\"'document.statusTooltip' | translate\"\n [widthInPx]=\"200\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n name=\"status\"\n ></v-select>\n <v-input\n [defaultValue]=\"description\"\n [disabled]=\"obs.disabled || disableDescription\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [title]=\"'document.inputDescription' | translate\"\n [tooltip]=\"'document.inputDescriptionTooltip' | translate\"\n name=\"description\"\n >\n </v-input>\n <v-select\n [defaultSelectionId]=\"confidentialityLevel\"\n [disabled]=\"obs.disabled || disableConfidentialityLevel\"\n [items]=\"confidentialityLevelItems$ | async\"\n [margin]=\"true\"\n [title]=\"'document.confidentialityLevel' | translate\"\n [tooltip]=\"'document.confidentialityLevelTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"confidentialityLevel\"\n ></v-select>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template #additionalDatePicker let-additionalDate=\"additionalDate\">\n <v-input-label\n [title]=\"'document.additionalDate' | translate\"\n [name]=\"'additionalDate'\"\n [tooltip]=\"'document.additionalDateTooltip' | translate\"\n [required]=\"true\"\n >\n </v-input-label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1 additional-date\">\n <label\n class=\"custom-control custom-radio custom-control-inline\"\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n (click)=\"setAdditionalDate(option.value)\"\n >\n <input\n class=\"custom-control-input\"\n type=\"radio\"\n name=\"radio-inline\"\n [checked]=\"additionalDate === option.value\"\n /><span class=\"custom-control-label\">{{ option.translationKey | translate }}</span>\n </label>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.buttons{display:flex;flex-direction:row;width:100%;justify-content:space-between}.additional-date{padding:0;width:100%;max-width:100%;margin:0;margin-block-end:var(--v-input-margin)}.additional-date .custom-control{margin-bottom:0}\n"] }]
4409
+ }], ctorParameters: function () { return [{ type: i1$4.ModalService }, { type: i1$8.TranslateService }, { type: i1$5.ActivatedRoute }, { type: i2.DocumentService }, { type: i1$2.KeycloakService }, { type: ValtimoModalService }]; }, propDecorators: { documentenApiMetadataModal: [{
4410
+ type: ViewChild,
4411
+ args: ['documentenApiMetadataModal']
4412
+ }], show$: [{
4413
+ type: Input
4414
+ }], hide$: [{
4415
+ type: Input
4416
+ }], disabled$: [{
4417
+ type: Input
4418
+ }], file$: [{
4419
+ type: Input
4420
+ }], documentTitle: [{
4421
+ type: Input
4422
+ }], disableDocumentTitle: [{
4423
+ type: Input
4424
+ }], filename: [{
4425
+ type: Input
4426
+ }], disableFilename: [{
4427
+ type: Input
4428
+ }], author: [{
4429
+ type: Input
4430
+ }], disableAuthor: [{
4431
+ type: Input
4432
+ }], status: [{
4433
+ type: Input
4434
+ }], disableStatus: [{
4435
+ type: Input
4436
+ }], language: [{
4437
+ type: Input
4438
+ }], disableLanguage: [{
4439
+ type: Input
4440
+ }], documentType: [{
4441
+ type: Input
4442
+ }], disableDocumentType: [{
4443
+ type: Input
4444
+ }], description: [{
4445
+ type: Input
4446
+ }], disableDescription: [{
4447
+ type: Input
4448
+ }], confidentialityLevel: [{
4449
+ type: Input
4450
+ }], disableConfidentialityLevel: [{
4451
+ type: Input
4452
+ }], metadata: [{
4453
+ type: Output
4454
+ }] } });
4455
+
4456
+ /*
4457
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
4458
+ *
4459
+ * Licensed under EUPL, Version 1.2 (the "License");
4460
+ * you may not use this file except in compliance with the License.
4461
+ * You may obtain a copy of the License at
4462
+ *
4463
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
4464
+ *
4465
+ * Unless required by applicable law or agreed to in writing, software
4466
+ * distributed under the License is distributed on an "AS IS" basis,
4467
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4468
+ * See the License for the specific language governing permissions and
4469
+ * limitations under the License.
4470
+ */
4471
+ class DocumentenApiUploaderComponent {
4472
+ constructor(uploadProviderService, stateService, domService, downloadService, modalService, userProviderService, route) {
4473
+ var _a, _b, _c;
4474
+ this.uploadProviderService = uploadProviderService;
4475
+ this.stateService = stateService;
4476
+ this.domService = domService;
4477
+ this.downloadService = downloadService;
4478
+ this.modalService = modalService;
4479
+ this.userProviderService = userProviderService;
4480
+ this.route = route;
4481
+ this.valueChange = new EventEmitter();
4482
+ this.uploading$ = new BehaviorSubject(false);
4483
+ this.fileToBeUploaded$ = new BehaviorSubject(null);
4484
+ this.modalDisabled$ = new BehaviorSubject(false);
4485
+ this.showModal$ = new Subject();
4486
+ this.hideModal$ = new Subject();
4487
+ this.uploadProcessLinked$ = combineLatest([
4488
+ ((_a = this.route) === null || _a === void 0 ? void 0 : _a.params) || of(null),
4489
+ ((_c = (_b = this.route) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.params) || of(null),
4490
+ this.modalService.documentDefinitionName$,
4491
+ ]).pipe(filter(([params, firstChildParams, documentDefinitionName]) => !!((params === null || params === void 0 ? void 0 : params.documentDefinitionName) ||
4492
+ (firstChildParams === null || firstChildParams === void 0 ? void 0 : firstChildParams.documentDefinitionName) ||
4493
+ documentDefinitionName)), switchMap(([params, firstChildParams, documentDefinitionName]) => this.uploadProviderService.checkUploadProcessLink((params === null || params === void 0 ? void 0 : params.documentDefinitionName) ||
4494
+ (firstChildParams === null || firstChildParams === void 0 ? void 0 : firstChildParams.documentDefinitionName) ||
4495
+ documentDefinitionName)), startWith('loading'));
4496
+ this.isAdmin$ = this.userProviderService
4497
+ .getUserSubject()
4498
+ .pipe(map$1(userIdentity => userIdentity === null || userIdentity === void 0 ? void 0 : userIdentity.roles.includes('ROLE_ADMIN')));
4499
+ this._value = [];
4500
+ }
4501
+ get value() {
4502
+ return this._value;
4503
+ }
4504
+ set value(value) {
4505
+ if (Array.isArray(value)) {
4506
+ this._value = value;
4507
+ }
4508
+ }
4509
+ fileSelected(file) {
4510
+ this.fileToBeUploaded$.next(file);
4511
+ this.showModal$.next(null);
4512
+ }
4513
+ deleteFile(id) {
4514
+ this.domService.toggleSubmitButton(true);
4515
+ this._value = this._value.filter((file) => (file === null || file === void 0 ? void 0 : file.id) ? (file === null || file === void 0 ? void 0 : file.id) !== id : true);
4516
+ this.valueChange.emit(this._value);
4517
+ }
4518
+ metadataSet(metadata) {
4519
+ this.uploading$.next(true);
4520
+ this.hideModal$.next(null);
4521
+ this.domService.toggleSubmitButton(true);
4522
+ this.fileToBeUploaded$
4523
+ .pipe(take(1), switchMap(file => this.uploadProviderService.uploadTempFileWithMetadata(file, metadata)), tap(result => {
4524
+ this.domService.toggleSubmitButton(false);
4525
+ this.uploading$.next(false);
4526
+ this._value.push(result);
4527
+ this.valueChange.emit(this._value);
4528
+ }))
4529
+ .subscribe();
4530
+ }
4531
+ }
4532
+ DocumentenApiUploaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DocumentenApiUploaderComponent, deps: [{ token: i1$a.UploadProviderService }, { token: FormIoStateService }, { token: FormIoDomService }, { token: i1$a.DownloadService }, { token: ValtimoModalService }, { token: i1$6.UserProviderService }, { token: i1$5.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
4533
+ DocumentenApiUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DocumentenApiUploaderComponent, selector: "valtimo-documenten-api-formio-uploader", inputs: { disabled: "disabled", title: "title", hideTitle: "hideTitle", subtitle: "subtitle", maxFileSize: "maxFileSize", hideMaxFileSize: "hideMaxFileSize", camera: "camera", documentTitle: "documentTitle", disableDocumentTitle: "disableDocumentTitle", filename: "filename", disableFilename: "disableFilename", author: "author", disableAuthor: "disableAuthor", status: "status", disableStatus: "disableStatus", language: "language", disableLanguage: "disableLanguage", documentType: "documentType", disableDocumentType: "disableDocumentType", description: "description", disableDescription: "disableDescription", confidentialityLevel: "confidentialityLevel", disableConfidentialityLevel: "disableConfidentialityLevel", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [author]=\"author\"\n [confidentialityLevel]=\"confidentialityLevel\"\n [description]=\"description\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [documentTitle]=\"documentTitle\"\n [documentType]=\"documentType\"\n [file$]=\"fileToBeUploaded$\"\n [filename]=\"filename\"\n [hide$]=\"hideModal$\"\n [language]=\"language\"\n [show$]=\"showModal$\"\n [status]=\"status\"\n></valtimo-documenten-api-metadata-modal>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.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"], components: [{ type: DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { type: DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["show$", "hide$", "disabled$", "file$", "documentTitle", "disableDocumentTitle", "filename", "disableFilename", "author", "disableAuthor", "status", "disableStatus", "language", "disableLanguage", "documentType", "disableDocumentType", "description", "disableDescription", "confidentialityLevel", "disableConfidentialityLevel"], outputs: ["metadata"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$8.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1.AsyncPipe, "filesize": FileSizePipe } });
4534
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DocumentenApiUploaderComponent, decorators: [{
4535
+ type: Component,
4536
+ args: [{ selector: 'valtimo-documenten-api-formio-uploader', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [author]=\"author\"\n [confidentialityLevel]=\"confidentialityLevel\"\n [description]=\"description\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [documentTitle]=\"documentTitle\"\n [documentType]=\"documentType\"\n [file$]=\"fileToBeUploaded$\"\n [filename]=\"filename\"\n [hide$]=\"hideModal$\"\n [language]=\"language\"\n [show$]=\"showModal$\"\n [status]=\"status\"\n></valtimo-documenten-api-metadata-modal>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.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"] }]
4537
+ }], ctorParameters: function () { return [{ type: i1$a.UploadProviderService }, { type: FormIoStateService }, { type: FormIoDomService }, { type: i1$a.DownloadService }, { type: ValtimoModalService }, { type: i1$6.UserProviderService }, { type: i1$5.ActivatedRoute }]; }, propDecorators: { disabled: [{
4538
+ type: Input
4539
+ }], title: [{
4540
+ type: Input
4541
+ }], hideTitle: [{
4542
+ type: Input
4543
+ }], subtitle: [{
4544
+ type: Input
4545
+ }], maxFileSize: [{
4546
+ type: Input
4547
+ }], hideMaxFileSize: [{
4548
+ type: Input
4549
+ }], camera: [{
4550
+ type: Input
4551
+ }], documentTitle: [{
4552
+ type: Input
4553
+ }], disableDocumentTitle: [{
4554
+ type: Input
4555
+ }], filename: [{
4556
+ type: Input
4557
+ }], disableFilename: [{
4558
+ type: Input
4559
+ }], author: [{
4560
+ type: Input
4561
+ }], disableAuthor: [{
4562
+ type: Input
4563
+ }], status: [{
4564
+ type: Input
4565
+ }], disableStatus: [{
4566
+ type: Input
4567
+ }], language: [{
4568
+ type: Input
4569
+ }], disableLanguage: [{
4570
+ type: Input
4571
+ }], documentType: [{
4572
+ type: Input
4573
+ }], disableDocumentType: [{
4574
+ type: Input
4575
+ }], description: [{
4576
+ type: Input
4577
+ }], disableDescription: [{
4578
+ type: Input
4579
+ }], confidentialityLevel: [{
4580
+ type: Input
4581
+ }], disableConfidentialityLevel: [{
4582
+ type: Input
4583
+ }], valueChange: [{
4584
+ type: Output
4585
+ }], value: [{
4586
+ type: Input
4587
+ }] } });
4588
+
4589
+ /*
4590
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
4591
+ *
4592
+ * Licensed under EUPL, Version 1.2 (the "License");
4593
+ * you may not use this file except in compliance with the License.
4594
+ * You may obtain a copy of the License at
4595
+ *
4596
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
4597
+ *
4598
+ * Unless required by applicable law or agreed to in writing, software
4599
+ * distributed under the License is distributed on an "AS IS" basis,
4600
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4601
+ * See the License for the specific language governing permissions and
4602
+ * limitations under the License.
4603
+ */
4604
+ class DocumentenApiMetadataModalModule {
4605
+ }
4606
+ DocumentenApiMetadataModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DocumentenApiMetadataModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4607
+ DocumentenApiMetadataModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DocumentenApiMetadataModalModule, declarations: [DocumentenApiMetadataModalComponent], imports: [CommonModule,
4608
+ TranslateModule,
4609
+ ModalModule$1,
4610
+ TitleModule,
4611
+ ButtonModule,
4612
+ TranslateModule,
4613
+ FormModule,
4614
+ InputModule,
4615
+ SelectModule,
4616
+ DatePickerModule,
4617
+ InputLabelModule], exports: [DocumentenApiMetadataModalComponent] });
4618
+ DocumentenApiMetadataModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DocumentenApiMetadataModalModule, imports: [[
4619
+ CommonModule,
4620
+ TranslateModule,
4621
+ ModalModule$1,
4622
+ TitleModule,
4623
+ ButtonModule,
4624
+ TranslateModule,
4625
+ FormModule,
4626
+ InputModule,
4627
+ SelectModule,
4628
+ DatePickerModule,
4629
+ InputLabelModule,
4630
+ ]] });
4631
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DocumentenApiMetadataModalModule, decorators: [{
4632
+ type: NgModule,
4633
+ args: [{
4634
+ declarations: [DocumentenApiMetadataModalComponent],
4635
+ exports: [DocumentenApiMetadataModalComponent],
4636
+ imports: [
4637
+ CommonModule,
4638
+ TranslateModule,
4639
+ ModalModule$1,
4640
+ TitleModule,
4641
+ ButtonModule,
4642
+ TranslateModule,
4643
+ FormModule,
4644
+ InputModule,
4645
+ SelectModule,
4646
+ DatePickerModule,
4647
+ InputLabelModule,
4648
+ ],
4649
+ }]
4650
+ }] });
4651
+
4242
4652
  /*
4243
4653
  * Copyright 2015-2020 Ritense BV, the Netherlands.
4244
4654
  *
@@ -4257,14 +4667,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4257
4667
  class FormIoModule {
4258
4668
  }
4259
4669
  FormIoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormIoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4260
- FormIoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormIoModule, declarations: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent], imports: [CommonModule,
4670
+ FormIoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormIoModule, declarations: [FormioComponent,
4671
+ FormioBuilderComponent,
4672
+ FormIoUploaderComponent,
4673
+ DocumentenApiUploaderComponent], imports: [CommonModule,
4261
4674
  FormioModule,
4262
4675
  DropzoneModule,
4263
4676
  TranslateModule,
4264
4677
  DocumentModule,
4265
4678
  FileSizeModule,
4266
4679
  ResourceModule,
4267
- RouterModule], exports: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent] });
4680
+ RouterModule,
4681
+ DocumentenApiMetadataModalModule], exports: [FormioComponent,
4682
+ FormioBuilderComponent,
4683
+ FormIoUploaderComponent,
4684
+ DocumentenApiUploaderComponent] });
4268
4685
  FormIoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormIoModule, providers: [FormIoDomService, { provide: FormioAppConfig, useValue: AppConfig }], imports: [[
4269
4686
  CommonModule,
4270
4687
  FormioModule,
@@ -4274,6 +4691,7 @@ FormIoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
4274
4691
  FileSizeModule,
4275
4692
  ResourceModule,
4276
4693
  RouterModule,
4694
+ DocumentenApiMetadataModalModule,
4277
4695
  ]] });
4278
4696
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormIoModule, decorators: [{
4279
4697
  type: NgModule,
@@ -4287,9 +4705,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4287
4705
  FileSizeModule,
4288
4706
  ResourceModule,
4289
4707
  RouterModule,
4708
+ DocumentenApiMetadataModalModule,
4709
+ ],
4710
+ declarations: [
4711
+ FormioComponent,
4712
+ FormioBuilderComponent,
4713
+ FormIoUploaderComponent,
4714
+ DocumentenApiUploaderComponent,
4715
+ ],
4716
+ exports: [
4717
+ FormioComponent,
4718
+ FormioBuilderComponent,
4719
+ FormIoUploaderComponent,
4720
+ DocumentenApiUploaderComponent,
4290
4721
  ],
4291
- declarations: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent],
4292
- exports: [FormioComponent, FormioBuilderComponent, FormIoUploaderComponent],
4293
4722
  providers: [FormIoDomService, { provide: FormioAppConfig, useValue: AppConfig }],
4294
4723
  }]
4295
4724
  }] });
@@ -4810,7 +5239,7 @@ const formIoUploaderEditForm = () => ({
4810
5239
  * limitations under the License.
4811
5240
  */
4812
5241
  const customUploaderType = 'valtimo-file';
4813
- const COMPONENT_OPTIONS = {
5242
+ const COMPONENT_OPTIONS$1 = {
4814
5243
  type: customUploaderType,
4815
5244
  selector: 'valtimo-form-io-uploader',
4816
5245
  title: 'Valtimo File Upload',
@@ -4821,6 +5250,341 @@ const COMPONENT_OPTIONS = {
4821
5250
  editForm: formIoUploaderEditForm,
4822
5251
  };
4823
5252
  function registerFormioUploadComponent(injector) {
5253
+ const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS$1);
5254
+ // override setValue function to allow for setting an array value
5255
+ class UploaderComponent extends originalUploadComponent {
5256
+ setValue(value) {
5257
+ this._customAngularElement.value = value;
5258
+ return true;
5259
+ }
5260
+ }
5261
+ if (!customElements.get(COMPONENT_OPTIONS$1.selector)) {
5262
+ registerCustomFormioComponentWithClass(COMPONENT_OPTIONS$1, FormIoUploaderComponent, UploaderComponent, injector);
5263
+ }
5264
+ }
5265
+
5266
+ /*
5267
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
5268
+ *
5269
+ * Licensed under EUPL, Version 1.2 (the "License");
5270
+ * you may not use this file except in compliance with the License.
5271
+ * You may obtain a copy of the License at
5272
+ *
5273
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
5274
+ *
5275
+ * Unless required by applicable law or agreed to in writing, software
5276
+ * distributed under the License is distributed on an "AS IS" basis,
5277
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5278
+ * See the License for the specific language governing permissions and
5279
+ * limitations under the License.
5280
+ */
5281
+ const documentenApiUploaderEditForm = () => ({
5282
+ components: [
5283
+ { key: 'type', type: 'hidden' },
5284
+ {
5285
+ type: 'textfield',
5286
+ input: true,
5287
+ key: 'label',
5288
+ label: 'Label',
5289
+ placeholder: 'Label',
5290
+ validate: {
5291
+ required: true,
5292
+ },
5293
+ },
5294
+ {
5295
+ type: 'textfield',
5296
+ input: true,
5297
+ key: 'key',
5298
+ label: 'Property Name',
5299
+ placeholder: 'Property Name',
5300
+ tooltip: 'The name of this field in the API endpoint.',
5301
+ validate: {
5302
+ required: true,
5303
+ },
5304
+ },
5305
+ {
5306
+ type: 'textfield',
5307
+ input: true,
5308
+ key: 'customOptions.title',
5309
+ label: 'Title',
5310
+ placeholder: 'Title',
5311
+ tooltip: 'Leave empty to use the default title',
5312
+ validate: {
5313
+ required: false,
5314
+ },
5315
+ },
5316
+ {
5317
+ type: 'checkbox',
5318
+ input: true,
5319
+ inputType: 'checkbox',
5320
+ key: 'customOptions.hideTitle',
5321
+ label: 'Hide title',
5322
+ validate: {
5323
+ required: false,
5324
+ },
5325
+ },
5326
+ {
5327
+ type: 'textfield',
5328
+ input: true,
5329
+ key: 'customOptions.subtitle',
5330
+ label: 'Subtitle',
5331
+ placeholder: 'Title',
5332
+ tooltip: 'Leave empty to hide subtitle',
5333
+ validate: {
5334
+ required: false,
5335
+ },
5336
+ },
5337
+ {
5338
+ type: 'number',
5339
+ input: true,
5340
+ key: 'customOptions.maxFileSize',
5341
+ label: 'Maximum file size',
5342
+ placeholder: 'Maximum file size',
5343
+ defaultValue: 5,
5344
+ validate: {
5345
+ required: true,
5346
+ },
5347
+ },
5348
+ {
5349
+ type: 'checkbox',
5350
+ input: true,
5351
+ inputType: 'checkbox',
5352
+ key: 'customOptions.hideMaxFileSize',
5353
+ label: 'Hide maximum file size',
5354
+ validate: {
5355
+ required: false,
5356
+ },
5357
+ },
5358
+ {
5359
+ type: 'checkbox',
5360
+ input: true,
5361
+ inputType: 'checkbox',
5362
+ key: 'customOptions.camera',
5363
+ label: 'Allow camera uploads',
5364
+ validate: {
5365
+ required: false,
5366
+ },
5367
+ },
5368
+ {
5369
+ type: 'textfield',
5370
+ input: true,
5371
+ key: 'customOptions.documentTitle',
5372
+ label: 'Default document title',
5373
+ tooltip: 'Leave empty to let the user input their own title',
5374
+ validate: {
5375
+ required: false,
5376
+ },
5377
+ },
5378
+ {
5379
+ type: 'checkbox',
5380
+ input: true,
5381
+ inputType: 'checkbox',
5382
+ key: 'customOptions.disableDocumentTitle',
5383
+ label: 'Disable document title input',
5384
+ validate: {
5385
+ required: false,
5386
+ },
5387
+ },
5388
+ {
5389
+ type: 'textfield',
5390
+ input: true,
5391
+ key: 'customOptions.filename',
5392
+ label: 'Default filename',
5393
+ tooltip: 'Leave empty to let the user input their own filename',
5394
+ validate: {
5395
+ required: false,
5396
+ },
5397
+ },
5398
+ {
5399
+ type: 'checkbox',
5400
+ input: true,
5401
+ inputType: 'checkbox',
5402
+ key: 'customOptions.disableFilename',
5403
+ label: 'Disable filename input',
5404
+ validate: {
5405
+ required: false,
5406
+ },
5407
+ },
5408
+ {
5409
+ type: 'textfield',
5410
+ input: true,
5411
+ key: 'customOptions.author',
5412
+ label: 'Default author',
5413
+ tooltip: 'Leave empty to let the user input their own author',
5414
+ validate: {
5415
+ required: false,
5416
+ },
5417
+ },
5418
+ {
5419
+ type: 'checkbox',
5420
+ input: true,
5421
+ inputType: 'checkbox',
5422
+ key: 'customOptions.disableAuthor',
5423
+ label: 'Disable author input',
5424
+ validate: {
5425
+ required: false,
5426
+ },
5427
+ },
5428
+ {
5429
+ type: 'select',
5430
+ label: 'Default status',
5431
+ key: 'customOptions.status',
5432
+ placeholder: 'Select a default status',
5433
+ data: {
5434
+ values: [
5435
+ { value: 'in_bewerking', label: 'In editing' },
5436
+ { value: 'ter_vaststelling', label: 'To be confirmed' },
5437
+ { value: 'definitief', label: 'Definitive' },
5438
+ { value: 'gearchiveerd', label: 'Archived' },
5439
+ ],
5440
+ },
5441
+ dataSrc: 'values',
5442
+ input: true,
5443
+ validate: {
5444
+ required: false,
5445
+ },
5446
+ },
5447
+ {
5448
+ type: 'checkbox',
5449
+ input: true,
5450
+ inputType: 'checkbox',
5451
+ key: 'customOptions.disableStatus',
5452
+ label: 'Disable status input',
5453
+ validate: {
5454
+ required: false,
5455
+ },
5456
+ },
5457
+ {
5458
+ type: 'select',
5459
+ label: 'Default language',
5460
+ key: 'customOptions.language',
5461
+ placeholder: 'Select a default language',
5462
+ data: {
5463
+ values: [
5464
+ { value: 'nld', label: 'Dutch' },
5465
+ { value: 'eng', label: 'English' },
5466
+ { value: 'deu', label: 'German' },
5467
+ ],
5468
+ },
5469
+ dataSrc: 'values',
5470
+ input: true,
5471
+ validate: {
5472
+ required: false,
5473
+ },
5474
+ },
5475
+ {
5476
+ type: 'checkbox',
5477
+ input: true,
5478
+ inputType: 'checkbox',
5479
+ key: 'customOptions.disableLanguage',
5480
+ label: 'Disable language input',
5481
+ validate: {
5482
+ required: false,
5483
+ },
5484
+ },
5485
+ {
5486
+ type: 'textfield',
5487
+ input: true,
5488
+ key: 'customOptions.documentType',
5489
+ label: 'Default document type url',
5490
+ tooltip: 'Must match the document type url exactly. Leave empty to let the user input their own document type',
5491
+ validate: {
5492
+ required: false,
5493
+ },
5494
+ },
5495
+ {
5496
+ type: 'checkbox',
5497
+ input: true,
5498
+ inputType: 'checkbox',
5499
+ key: 'customOptions.disableDocumentType',
5500
+ label: 'Disable document type input',
5501
+ validate: {
5502
+ required: false,
5503
+ },
5504
+ },
5505
+ {
5506
+ type: 'textfield',
5507
+ input: true,
5508
+ key: 'customOptions.description',
5509
+ label: 'Default description',
5510
+ tooltip: 'Leave empty to let the user input their own description',
5511
+ validate: {
5512
+ required: false,
5513
+ },
5514
+ },
5515
+ {
5516
+ type: 'checkbox',
5517
+ input: true,
5518
+ inputType: 'checkbox',
5519
+ key: 'customOptions.disableDescription',
5520
+ label: 'Disable description input',
5521
+ validate: {
5522
+ required: false,
5523
+ },
5524
+ },
5525
+ {
5526
+ type: 'select',
5527
+ label: 'Default confidentiality level',
5528
+ key: 'customOptions.confidentialityLevel',
5529
+ placeholder: 'Select a default confidentiality level',
5530
+ data: {
5531
+ values: [
5532
+ { value: 'openbaar', label: 'Public' },
5533
+ { value: 'beperkt_openbaar', label: 'Restricted public' },
5534
+ { value: 'intern', label: 'Internal' },
5535
+ { value: 'zaakvertrouwelijk', label: 'Case confidential' },
5536
+ { value: 'vertrouwelijk', label: 'Private' },
5537
+ { value: 'confidentieel', label: 'Confidential' },
5538
+ { value: 'geheim', label: 'Secret' },
5539
+ { value: 'zeer_geheim', label: 'Very secret' },
5540
+ ],
5541
+ },
5542
+ dataSrc: 'values',
5543
+ input: true,
5544
+ validate: {
5545
+ required: false,
5546
+ },
5547
+ },
5548
+ {
5549
+ type: 'checkbox',
5550
+ input: true,
5551
+ inputType: 'checkbox',
5552
+ key: 'customOptions.disableConfidentialityLevel',
5553
+ label: 'Disable confidentiality level input',
5554
+ validate: {
5555
+ required: false,
5556
+ },
5557
+ },
5558
+ ],
5559
+ });
5560
+
5561
+ /*
5562
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
5563
+ *
5564
+ * Licensed under EUPL, Version 1.2 (the "License");
5565
+ * you may not use this file except in compliance with the License.
5566
+ * You may obtain a copy of the License at
5567
+ *
5568
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
5569
+ *
5570
+ * Unless required by applicable law or agreed to in writing, software
5571
+ * distributed under the License is distributed on an "AS IS" basis,
5572
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5573
+ * See the License for the specific language governing permissions and
5574
+ * limitations under the License.
5575
+ */
5576
+ const customDocumentApiUploaderType = 'documenten-api-file';
5577
+ const COMPONENT_OPTIONS = {
5578
+ type: customDocumentApiUploaderType,
5579
+ selector: 'documenten-api-form-io-uploader',
5580
+ title: 'Documenten API File Upload',
5581
+ group: 'advanced',
5582
+ icon: 'upload',
5583
+ // set empty value to force formio to accept arrays as valid input value for this field type
5584
+ emptyValue: [],
5585
+ editForm: documentenApiUploaderEditForm,
5586
+ };
5587
+ function registerDocumentenApiFormioUploadComponent(injector) {
4824
5588
  const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);
4825
5589
  // override setValue function to allow for setting an array value
4826
5590
  class UploaderComponent extends originalUploadComponent {
@@ -4830,7 +5594,7 @@ function registerFormioUploadComponent(injector) {
4830
5594
  }
4831
5595
  }
4832
5596
  if (!customElements.get(COMPONENT_OPTIONS.selector)) {
4833
- registerCustomFormioComponentWithClass(COMPONENT_OPTIONS, FormIoUploaderComponent, UploaderComponent, injector);
5597
+ registerCustomFormioComponentWithClass(COMPONENT_OPTIONS, DocumentenApiUploaderComponent, UploaderComponent, injector);
4834
5598
  }
4835
5599
  }
4836
5600
 
@@ -5091,5 +5855,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
5091
5855
  * Generated bundle index. Do not edit.
5092
5856
  */
5093
5857
 
5094
- export { Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, CamundaFormComponent, CamundaFormModule, CardComponent, CardModule, ComponentsModule, DataListComponent, DataListModule, DropzoneComponent, DropzoneModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FormIoModule, FormIoStateService, FormIoUploaderComponent, FormioBuilderComponent, FormioComponent, FormioOptionsImpl, LeftSidebarComponent, LeftSidebarModule, ListComponent, ListFilterPipe, ListModule, MenuComponent, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, MultiselectDropdownComponent, MultiselectDropdownModule, PageHeaderComponent, PageHeaderModule, PageTitleComponent, PageTitleModule, ProgressBarComponent, ProgressBarModule, RightSidebarComponent, RightSidebarModule, SearchableDropdownComponent, SearchableDropdownModule, SearchableDropdownSelectComponent, SearchableDropdownSelectModule, SpinnerComponent, SpinnerModule, TimelineComponent, TimelineItemImpl, TimelineModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, ValtimoModalService, ViewContentService, WebcamComponent, WebcamModule, WidgetComponent, WidgetModule, customUploaderType, menuInitializer, registerFormioFileSelectorComponent, registerFormioUploadComponent };
5858
+ export { Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, CamundaFormComponent, CamundaFormModule, CardComponent, CardModule, ComponentsModule, DataListComponent, DataListModule, DocumentenApiMetadataModalComponent, DocumentenApiMetadataModalModule, DocumentenApiUploaderComponent, DropzoneComponent, DropzoneModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FormIoModule, FormIoStateService, FormIoUploaderComponent, FormioBuilderComponent, FormioComponent, FormioOptionsImpl, LeftSidebarComponent, LeftSidebarModule, ListComponent, ListFilterPipe, ListModule, MenuComponent, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, MultiselectDropdownComponent, MultiselectDropdownModule, PageHeaderComponent, PageHeaderModule, PageTitleComponent, PageTitleModule, ProgressBarComponent, ProgressBarModule, RightSidebarComponent, RightSidebarModule, SearchableDropdownComponent, SearchableDropdownModule, SearchableDropdownSelectComponent, SearchableDropdownSelectModule, SpinnerComponent, SpinnerModule, TimelineComponent, TimelineItemImpl, TimelineModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, ValtimoModalService, ViewContentService, WebcamComponent, WebcamModule, WidgetComponent, WidgetModule, customDocumentApiUploaderType, customUploaderType, menuInitializer, registerDocumentenApiFormioUploadComponent, registerFormioFileSelectorComponent, registerFormioUploadComponent };
5095
5859
  //# sourceMappingURL=valtimo-components.mjs.map