@valtimo/dossier 4.15.3-next-main.16 → 4.17.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 (48) hide show
  1. package/bundles/valtimo-dossier.umd.js +1820 -1675
  2. package/bundles/valtimo-dossier.umd.js.map +1 -1
  3. package/bundles/valtimo-dossier.umd.min.js +1 -15
  4. package/bundles/valtimo-dossier.umd.min.js.map +1 -1
  5. package/esm2015/lib/dossier-detail/dossier-detail.component.js +92 -92
  6. package/esm2015/lib/dossier-detail/tab/audit/audit.component.js +79 -79
  7. package/esm2015/lib/dossier-detail/tab/contact-moments/contact-moments.component.js +90 -91
  8. package/esm2015/lib/dossier-detail/tab/documents/documents.component.js +122 -119
  9. package/esm2015/lib/dossier-detail/tab/progress/progress.component.js +49 -49
  10. package/esm2015/lib/dossier-detail/tab/summary/summary.component.js +126 -126
  11. package/esm2015/lib/dossier-detail-tab-enum.js +24 -24
  12. package/esm2015/lib/dossier-list/dossier-list.component.js +216 -216
  13. package/esm2015/lib/dossier-process-start-modal/dossier-process-start-modal.component.js +130 -131
  14. package/esm2015/lib/dossier-routing.module.js +58 -58
  15. package/esm2015/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.js +125 -126
  16. package/esm2015/lib/dossier-update/dossier-update.component.js +121 -121
  17. package/esm2015/lib/dossier.config.js +29 -29
  18. package/esm2015/lib/dossier.module.js +121 -121
  19. package/esm2015/lib/dossier.service.js +53 -53
  20. package/esm2015/lib/models/index.js +19 -0
  21. package/esm2015/lib/models/tabs.model.js +104 -0
  22. package/esm2015/lib/tab.service.js +44 -44
  23. package/esm2015/public_api.js +32 -31
  24. package/esm2015/valtimo-dossier.js +9 -9
  25. package/fesm2015/valtimo-dossier.js +1457 -1333
  26. package/fesm2015/valtimo-dossier.js.map +1 -1
  27. package/lib/dossier-detail/dossier-detail.component.d.ts +34 -34
  28. package/lib/dossier-detail/tab/audit/audit.component.d.ts +21 -21
  29. package/lib/dossier-detail/tab/contact-moments/contact-moments.component.d.ts +26 -27
  30. package/lib/dossier-detail/tab/documents/documents.component.d.ts +43 -44
  31. package/lib/dossier-detail/tab/progress/progress.component.d.ts +14 -14
  32. package/lib/dossier-detail/tab/summary/summary.component.d.ts +37 -37
  33. package/lib/dossier-detail-tab-enum.d.ts +7 -7
  34. package/lib/dossier-list/dossier-list.component.d.ts +64 -65
  35. package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts +36 -37
  36. package/lib/dossier-routing.module.d.ts +2 -2
  37. package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts +34 -35
  38. package/lib/dossier-update/dossier-update.component.d.ts +33 -33
  39. package/lib/dossier.config.d.ts +3 -3
  40. package/lib/dossier.module.d.ts +5 -5
  41. package/lib/dossier.service.d.ts +10 -10
  42. package/lib/models/index.d.ts +1 -0
  43. package/lib/models/tabs.model.d.ts +50 -0
  44. package/lib/tab.service.d.ts +7 -7
  45. package/package.json +1 -1
  46. package/public_api.d.ts +13 -12
  47. package/valtimo-dossier.d.ts +8 -8
  48. package/valtimo-dossier.metadata.json +1 -1
@@ -1,91 +1,90 @@
1
- /*
2
- * Copyright 2015-2021 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Component, ViewChild } from '@angular/core';
17
- import { ContactMomentService } from '@valtimo/contact-moment';
18
- import * as moment_ from 'moment';
19
- import { TimelineItemImpl } from '@valtimo/contract';
20
- import { BehaviorSubject, combineLatest } from 'rxjs';
21
- import { ModalComponent } from '@valtimo/components';
22
- import { map, switchMap, take } from 'rxjs/operators';
23
- import { AlertService } from '@valtimo/components';
24
- import { TranslateService } from '@ngx-translate/core';
25
- const moment = moment_;
26
- moment.locale(localStorage.getItem('langKey') || '');
27
- export class DossierDetailTabContactMomentsComponent {
28
- constructor(contactMomentService, alertService, translateService) {
29
- this.contactMomentService = contactMomentService;
30
- this.alertService = alertService;
31
- this.translateService = translateService;
32
- this.refetchContactMoments$ = new BehaviorSubject('');
33
- this.contactMoments$ = this.refetchContactMoments$.pipe(switchMap(() => this.contactMomentService.getContactMoments()), map(contactMoments => contactMoments.map(contactMoment => {
34
- const registratieDatum = moment(contactMoment.registratiedatum);
35
- return new TimelineItemImpl(registratieDatum.format('DD MMM YYYY'), registratieDatum.format('HH:mm'), contactMoment.medewerkerIdentificatie.achternaam, contactMoment.kanaal, contactMoment.tekst, null);
36
- })));
37
- this.text$ = new BehaviorSubject('');
38
- this.channel$ = new BehaviorSubject('MAIL');
39
- this.requestData$ = combineLatest([this.text$, this.channel$]);
40
- this.valid$ = this.requestData$.pipe(map(([text, channel]) => !!(text && channel)));
41
- this.disabled$ = new BehaviorSubject(false);
42
- }
43
- textChange(text) {
44
- this.text$.next(text);
45
- }
46
- buttonClick() {
47
- this.modal.show();
48
- }
49
- saveNote() {
50
- this.disable();
51
- this.requestData$.pipe(take(1)).subscribe(([text, channel]) => {
52
- this.contactMomentService.saveContactMoment({ kanaal: channel, tekst: text }).subscribe(() => {
53
- this.alertService.success(this.translateService.instant('dossier.contactMoments.saveSuccess'));
54
- this.enable();
55
- this.clear();
56
- this.modal.hide();
57
- this.refetchContactMoments();
58
- }, () => {
59
- this.enable();
60
- });
61
- });
62
- }
63
- disable() {
64
- this.disabled$.next(true);
65
- }
66
- enable() {
67
- this.disabled$.next(false);
68
- }
69
- clear() {
70
- this.text$.next('');
71
- }
72
- refetchContactMoments() {
73
- this.refetchContactMoments$.next('');
74
- }
75
- }
76
- DossierDetailTabContactMomentsComponent.decorators = [
77
- { type: Component, args: [{
78
- selector: 'valtimo-dossier-detail-tab-contact-moments',
79
- template: "<!--\n ~ Copyright 2015-2021 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-calendar-note\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n",
80
- styles: ["/*!\n * Copyright 2015-2021 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 */.contact-moments-container{display:flex;flex-direction:column}.button-container{align-self:flex-end;display:inline}"]
81
- },] }
82
- ];
83
- DossierDetailTabContactMomentsComponent.ctorParameters = () => [
84
- { type: ContactMomentService },
85
- { type: AlertService },
86
- { type: TranslateService }
87
- ];
88
- DossierDetailTabContactMomentsComponent.propDecorators = {
89
- modal: [{ type: ViewChild, args: ['contactMomentsNoteModal',] }]
90
- };
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1tb21lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3Jrc3BhY2UvdmFsdGltby92YWx0aW1vLWZyb250ZW5kLWxpYnJhcmllcy9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2Rvc3NpZXItZGV0YWlsL3RhYi9jb250YWN0LW1vbWVudHMvY29udGFjdC1tb21lbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBZSxnQkFBZ0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUN6RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFPckQsTUFBTSxPQUFPLHVDQUF1QztJQTZCbEQsWUFDbUIsb0JBQTBDLEVBQzFDLFlBQTBCLEVBQzFCLGdCQUFrQztRQUZsQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNC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WixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7WUFuRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0Q0FBNEM7Z0JBQ3RELCtzRkFBK0M7O2FBRWhEOzs7WUFoQk8sb0JBQW9CO1lBTXBCLFlBQVk7WUFDWixnQkFBZ0I7OztvQkFXckIsU0FBUyxTQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIxIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250YWN0TW9tZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29udGFjdC1tb21lbnQnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtUaW1lbGluZUl0ZW0sIFRpbWVsaW5lSXRlbUltcGx9IGZyb20gJ0B2YWx0aW1vL2NvbnRyYWN0JztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBbGVydFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuY29uc3QgbW9tZW50ID0gbW9tZW50Xztcbm1vbWVudC5sb2NhbGUobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmdLZXknKSB8fCAnJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFiLWNvbnRhY3QtbW9tZW50cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LW1vbWVudHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0LW1vbWVudHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckRldGFpbFRhYkNvbnRhY3RNb21lbnRzQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnY29udGFjdE1vbWVudHNOb3RlTW9kYWwnKSBtb2RhbDogTW9kYWxDb21wb25lbnQ7XG5cbiAgcmVhZG9ubHkgcmVmZXRjaENvbnRhY3RNb21lbnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICByZWFkb25seSBjb250YWN0TW9tZW50cyQ6IE9ic2VydmFibGU8QXJyYXk8VGltZWxpbmVJdGVtPj4gPSB0aGlzLnJlZmV0Y2hDb250YWN0TW9tZW50cyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jb250YWN0TW9tZW50U2VydmljZS5nZXRDb250YWN0TW9tZW50cygpKSxcbiAgICBtYXAoY29udGFjdE1vbWVudHMgPT5cbiAgICAgIGNvbnRhY3RNb21lbnRzLm1hcChjb250YWN0TW9tZW50ID0+IHtcbiAgICAgICAgY29uc3QgcmVnaXN0cmF0aWVEYXR1bSA9IG1vbWVudChjb250YWN0TW9tZW50LnJlZ2lzdHJhdGllZGF0dW0pO1xuICAgICAgICByZXR1cm4gbmV3IFRpbWVsaW5lSXRlbUltcGwoXG4gICAgICAgICAgcmVnaXN0cmF0aWVEYXR1bS5mb3JtYXQoJ0REIE1NTSBZWVlZJyksXG4gICAgICAgICAgcmVnaXN0cmF0aWVEYXR1bS5mb3JtYXQoJ0hIOm1tJyksXG4gICAgICAgICAgY29udGFjdE1vbWVudC5tZWRld2Vya2VySWRlbnRpZmljYXRpZS5hY2h0ZXJuYWFtLFxuICAgICAgICAgIGNvbnRhY3RNb21lbnQua2FuYWFsLFxuICAgICAgICAgIGNvbnRhY3RNb21lbnQudGVrc3QsXG4gICAgICAgICAgbnVsbFxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgcmVhZG9ubHkgdGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBjaGFubmVsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignTUFJTCcpO1xuICByZWFkb25seSByZXF1ZXN0RGF0YSQ6IE9ic2VydmFibGU8QXJyYXk8c3RyaW5nPj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRleHQkLCB0aGlzLmNoYW5uZWwkXSk7XG4gIHJlYWRvbmx5IHZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucmVxdWVzdERhdGEkLnBpcGUoXG4gICAgbWFwKChbdGV4dCwgY2hhbm5lbF0pID0+ICEhKHRleHQgJiYgY2hhbm5lbCkpXG4gICk7XG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGFjdE1vbWVudFNlcnZpY2U6IENvbnRhY3RNb21lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICB0ZXh0Q2hhbmdlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGV4dCQubmV4dCh0ZXh0KTtcbiAgfVxuXG4gIGJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICB9XG5cbiAgc2F2ZU5vdGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlKCk7XG5cbiAgICB0aGlzLnJlcXVlc3REYXRhJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoW3RleHQsIGNoYW5uZWxdKSA9PiB7XG4gICAgICB0aGlzLmNvbnRhY3RNb21lbnRTZXJ2aWNlLnNhdmVDb250YWN0TW9tZW50KHtrYW5hYWw6IGNoYW5uZWwsIHRla3N0OiB0ZXh0fSkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdkb3NzaWVyLmNvbnRhY3RNb21lbnRzLnNhdmVTdWNjZXNzJylcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuZW5hYmxlKCk7XG4gICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgICAgICAgIHRoaXMucmVmZXRjaENvbnRhY3RNb21lbnRzKCk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0JC5uZXh0KCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmZXRjaENvbnRhY3RNb21lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMucmVmZXRjaENvbnRhY3RNb21lbnRzJC5uZXh0KCcnKTtcbiAgfVxufVxuIl19
1
+ /*
2
+ * Copyright 2015-2021 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component, ViewChild } from '@angular/core';
17
+ import { ContactMomentService } from '@valtimo/contact-moment';
18
+ import * as moment_ from 'moment';
19
+ import { BehaviorSubject, combineLatest } from 'rxjs';
20
+ import { ModalComponent, TimelineItemImpl } from '@valtimo/components';
21
+ import { map, switchMap, take } from 'rxjs/operators';
22
+ import { AlertService } from '@valtimo/components';
23
+ import { TranslateService } from '@ngx-translate/core';
24
+ const moment = moment_;
25
+ moment.locale(localStorage.getItem('langKey') || '');
26
+ export class DossierDetailTabContactMomentsComponent {
27
+ constructor(contactMomentService, alertService, translateService) {
28
+ this.contactMomentService = contactMomentService;
29
+ this.alertService = alertService;
30
+ this.translateService = translateService;
31
+ this.refetchContactMoments$ = new BehaviorSubject('');
32
+ this.contactMoments$ = this.refetchContactMoments$.pipe(switchMap(() => this.contactMomentService.getContactMoments()), map(contactMoments => contactMoments.map(contactMoment => {
33
+ const registratieDatum = moment(contactMoment.registratiedatum);
34
+ return new TimelineItemImpl(registratieDatum.format('DD MMM YYYY'), registratieDatum.format('HH:mm'), contactMoment.medewerkerIdentificatie.achternaam, contactMoment.kanaal, contactMoment.tekst, null);
35
+ })));
36
+ this.text$ = new BehaviorSubject('');
37
+ this.channel$ = new BehaviorSubject('MAIL');
38
+ this.requestData$ = combineLatest([this.text$, this.channel$]);
39
+ this.valid$ = this.requestData$.pipe(map(([text, channel]) => !!(text && channel)));
40
+ this.disabled$ = new BehaviorSubject(false);
41
+ }
42
+ textChange(text) {
43
+ this.text$.next(text);
44
+ }
45
+ buttonClick() {
46
+ this.modal.show();
47
+ }
48
+ saveNote() {
49
+ this.disable();
50
+ this.requestData$.pipe(take(1)).subscribe(([text, channel]) => {
51
+ this.contactMomentService.saveContactMoment({ kanaal: channel, tekst: text }).subscribe(() => {
52
+ this.alertService.success(this.translateService.instant('dossier.contactMoments.saveSuccess'));
53
+ this.enable();
54
+ this.clear();
55
+ this.modal.hide();
56
+ this.refetchContactMoments();
57
+ }, () => {
58
+ this.enable();
59
+ });
60
+ });
61
+ }
62
+ disable() {
63
+ this.disabled$.next(true);
64
+ }
65
+ enable() {
66
+ this.disabled$.next(false);
67
+ }
68
+ clear() {
69
+ this.text$.next('');
70
+ }
71
+ refetchContactMoments() {
72
+ this.refetchContactMoments$.next('');
73
+ }
74
+ }
75
+ DossierDetailTabContactMomentsComponent.decorators = [
76
+ { type: Component, args: [{
77
+ selector: 'valtimo-dossier-detail-tab-contact-moments',
78
+ template: "<!--\n ~ Copyright 2015-2021 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-calendar-note\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n",
79
+ styles: ["/*!\n * Copyright 2015-2021 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 */.contact-moments-container{display:flex;flex-direction:column}.button-container{align-self:flex-end;display:inline}"]
80
+ },] }
81
+ ];
82
+ DossierDetailTabContactMomentsComponent.ctorParameters = () => [
83
+ { type: ContactMomentService },
84
+ { type: AlertService },
85
+ { type: TranslateService }
86
+ ];
87
+ DossierDetailTabContactMomentsComponent.propDecorators = {
88
+ modal: [{ type: ViewChild, args: ['contactMomentsNoteModal',] }]
89
+ };
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1tb21lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvdG1wL2plbmtpbnMtM2ZmM2ExOWEvd29ya3NwYWNlL3JvbnRlbmRfbGlicmFyaWVzXy1fcmVsZWFzZV9tYWluL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvIiwic291cmNlcyI6WyJsaWIvZG9zc2llci1kZXRhaWwvdGFiL2NvbnRhY3QtbW9tZW50cy9jb250YWN0LW1vbWVudHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQXNCLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxjQUFjLEVBQWdCLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbkYsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFPckQsTUFBTSxPQUFPLHVDQUF1QztJQTZCbEQsWUFDbUIsb0JBQTBDLEVBQzFDLFlBQTBCLEVBQzFCLGdCQUFrQztRQUZsQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUE3QjVDLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELG9CQUFlLEdBQW9DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQzFGLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxFQUM5RCxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FDbkIsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNqQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRSxPQUFPLElBQUksZ0JBQWdCLENBQ3pCLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFDdEMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNoQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsVUFBVSxFQUNoRCxhQUFhLENBQUMsTUFBTSxFQUNwQixhQUFhLENBQUMsS0FBSyxFQUNuQixJQUFJLENBQ0wsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQztRQUVPLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUN4QyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVMsTUFBTSxDQUFDLENBQUM7UUFDL0MsaUJBQVksR0FBOEIsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNyRixXQUFNLEdBQXdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMzRCxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQzlDLENBQUM7UUFDTyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFNdEQsQ0FBQztJQUVKLFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDNUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQ25GLEdBQUcsRUFBRTtnQkFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUNwRSxDQUFDO2dCQUNGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsQ0FBQyxFQUNELEdBQUcsRUFBRTtnQkFDSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxPQUFPO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7WUFuRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0Q0FBNEM7Z0JBQ3RELCtzRkFBK0M7O2FBRWhEOzs7WUFmTyxvQkFBb0I7WUFLcEIsWUFBWTtZQUNaLGdCQUFnQjs7O29CQVdyQixTQUFTLFNBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjEgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRhY3RNb21lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb250YWN0LW1vbWVudCc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01vZGFsQ29tcG9uZW50LCBUaW1lbGluZUl0ZW0sIFRpbWVsaW5lSXRlbUltcGx9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBbGVydFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuY29uc3QgbW9tZW50ID0gbW9tZW50Xztcbm1vbWVudC5sb2NhbGUobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmdLZXknKSB8fCAnJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFiLWNvbnRhY3QtbW9tZW50cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LW1vbWVudHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0LW1vbWVudHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckRldGFpbFRhYkNvbnRhY3RNb21lbnRzQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnY29udGFjdE1vbWVudHNOb3RlTW9kYWwnKSBtb2RhbDogTW9kYWxDb21wb25lbnQ7XG5cbiAgcmVhZG9ubHkgcmVmZXRjaENvbnRhY3RNb21lbnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICByZWFkb25seSBjb250YWN0TW9tZW50cyQ6IE9ic2VydmFibGU8QXJyYXk8VGltZWxpbmVJdGVtPj4gPSB0aGlzLnJlZmV0Y2hDb250YWN0TW9tZW50cyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jb250YWN0TW9tZW50U2VydmljZS5nZXRDb250YWN0TW9tZW50cygpKSxcbiAgICBtYXAoY29udGFjdE1vbWVudHMgPT5cbiAgICAgIGNvbnRhY3RNb21lbnRzLm1hcChjb250YWN0TW9tZW50ID0+IHtcbiAgICAgICAgY29uc3QgcmVnaXN0cmF0aWVEYXR1bSA9IG1vbWVudChjb250YWN0TW9tZW50LnJlZ2lzdHJhdGllZGF0dW0pO1xuICAgICAgICByZXR1cm4gbmV3IFRpbWVsaW5lSXRlbUltcGwoXG4gICAgICAgICAgcmVnaXN0cmF0aWVEYXR1bS5mb3JtYXQoJ0REIE1NTSBZWVlZJyksXG4gICAgICAgICAgcmVnaXN0cmF0aWVEYXR1bS5mb3JtYXQoJ0hIOm1tJyksXG4gICAgICAgICAgY29udGFjdE1vbWVudC5tZWRld2Vya2VySWRlbnRpZmljYXRpZS5hY2h0ZXJuYWFtLFxuICAgICAgICAgIGNvbnRhY3RNb21lbnQua2FuYWFsLFxuICAgICAgICAgIGNvbnRhY3RNb21lbnQudGVrc3QsXG4gICAgICAgICAgbnVsbFxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgcmVhZG9ubHkgdGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBjaGFubmVsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignTUFJTCcpO1xuICByZWFkb25seSByZXF1ZXN0RGF0YSQ6IE9ic2VydmFibGU8QXJyYXk8c3RyaW5nPj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRleHQkLCB0aGlzLmNoYW5uZWwkXSk7XG4gIHJlYWRvbmx5IHZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucmVxdWVzdERhdGEkLnBpcGUoXG4gICAgbWFwKChbdGV4dCwgY2hhbm5lbF0pID0+ICEhKHRleHQgJiYgY2hhbm5lbCkpXG4gICk7XG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGFjdE1vbWVudFNlcnZpY2U6IENvbnRhY3RNb21lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICB0ZXh0Q2hhbmdlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGV4dCQubmV4dCh0ZXh0KTtcbiAgfVxuXG4gIGJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICB9XG5cbiAgc2F2ZU5vdGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlKCk7XG5cbiAgICB0aGlzLnJlcXVlc3REYXRhJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoW3RleHQsIGNoYW5uZWxdKSA9PiB7XG4gICAgICB0aGlzLmNvbnRhY3RNb21lbnRTZXJ2aWNlLnNhdmVDb250YWN0TW9tZW50KHtrYW5hYWw6IGNoYW5uZWwsIHRla3N0OiB0ZXh0fSkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdkb3NzaWVyLmNvbnRhY3RNb21lbnRzLnNhdmVTdWNjZXNzJylcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuZW5hYmxlKCk7XG4gICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgICAgICAgIHRoaXMucmVmZXRjaENvbnRhY3RNb21lbnRzKCk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0JC5uZXh0KCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmZXRjaENvbnRhY3RNb21lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMucmVmZXRjaENvbnRhY3RNb21lbnRzJC5uZXh0KCcnKTtcbiAgfVxufVxuIl19
@@ -1,119 +1,122 @@
1
- /*
2
- * Copyright 2015-2020 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Component } from '@angular/core';
17
- import { ActivatedRoute } from '@angular/router';
18
- import { DocumentService } from '@valtimo/document';
19
- import { ToastrService } from 'ngx-toastr';
20
- import { DownloadService, UploadProviderService } from '@valtimo/resource';
21
- import { map, switchMap } from 'rxjs/operators';
22
- import { BehaviorSubject, combineLatest } from 'rxjs';
23
- import { TranslateService } from '@ngx-translate/core';
24
- import { ConfigService } from '@valtimo/config';
25
- export class DossierDetailTabDocumentsComponent {
26
- constructor(route, documentService, toastrService, uploadProviderService, downloadService, translateService, configService) {
27
- var _a, _b;
28
- this.route = route;
29
- this.documentService = documentService;
30
- this.toastrService = toastrService;
31
- this.uploadProviderService = uploadProviderService;
32
- this.downloadService = downloadService;
33
- this.translateService = translateService;
34
- this.configService = configService;
35
- this.maxFileSize = ((_b = (_a = this.configService) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.caseFileSizeUploadLimitMB) || 5;
36
- this.refetch$ = new BehaviorSubject(null);
37
- this.relatedFiles$ = this.refetch$.pipe(switchMap(() => combineLatest([this.documentService.getDocument(this.documentId), this.translateService.stream('key')])), map(([document]) => {
38
- const relatedFiles = (document === null || document === void 0 ? void 0 : document.relatedFiles) || [];
39
- const translatedFiles = relatedFiles.map(file => {
40
- return Object.assign(Object.assign({}, file), { createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated') });
41
- });
42
- return translatedFiles || [];
43
- }));
44
- this.fields = [
45
- { key: 'fileName', label: 'File name' },
46
- { key: 'sizeInBytes', label: 'Size in bytes' },
47
- { key: 'createdOn', label: 'Created on', viewType: 'date' },
48
- { key: 'createdBy', label: 'Created by' },
49
- ];
50
- this.actions = [
51
- {
52
- columnName: '',
53
- iconClass: 'fas fa-external-link-alt',
54
- callback: this.downloadDocument.bind(this),
55
- },
56
- {
57
- columnName: '',
58
- iconClass: 'fas fa-trash-alt',
59
- callback: this.removeRelatedFile.bind(this),
60
- },
61
- ];
62
- this.uploading$ = new BehaviorSubject(false);
63
- const snapshot = this.route.snapshot.paramMap;
64
- this.documentId = snapshot.get('documentId') || '';
65
- this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';
66
- }
67
- ngOnInit() {
68
- this.refetchDocuments();
69
- }
70
- fileSelected(file) {
71
- this.uploading$.next(true);
72
- this.uploadProviderService
73
- .uploadFile(file, this.documentDefinitionName)
74
- .pipe(switchMap(resourceFile => this.documentService.assignResource(this.documentId, resourceFile.data.resourceId)))
75
- .subscribe(() => {
76
- this.toastrService.success('Successfully uploaded document to dossier');
77
- this.refetchDocuments();
78
- this.uploading$.next(false);
79
- }, () => {
80
- this.toastrService.error('Failed to upload document to dossier');
81
- this.uploading$.next(false);
82
- });
83
- }
84
- downloadDocument(relatedFile) {
85
- this.uploadProviderService
86
- .getResource(relatedFile.fileId)
87
- .subscribe((resource) => {
88
- this.downloadService.downloadFile(resource.url, resource.resource.name);
89
- });
90
- }
91
- removeRelatedFile(relatedFile) {
92
- this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(() => {
93
- this.toastrService.success('Successfully removed document from dossier');
94
- this.refetchDocuments();
95
- }, () => {
96
- this.toastrService.error('Failed to remove document from dossier');
97
- });
98
- }
99
- refetchDocuments() {
100
- this.refetch$.next(null);
101
- }
102
- }
103
- DossierDetailTabDocumentsComponent.decorators = [
104
- { type: Component, args: [{
105
- selector: 'valtimo-dossier-detail-tab-documents',
106
- 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 [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n",
107
- styles: [""]
108
- },] }
109
- ];
110
- DossierDetailTabDocumentsComponent.ctorParameters = () => [
111
- { type: ActivatedRoute },
112
- { type: DocumentService },
113
- { type: ToastrService },
114
- { type: UploadProviderService },
115
- { type: DownloadService },
116
- { type: TranslateService },
117
- { type: ConfigService }
118
- ];
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3Jrc3BhY2UvdmFsdGltby92YWx0aW1vLWZyb250ZW5kLWxpYnJhcmllcy9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2Rvc3NpZXItZGV0YWlsL3RhYi9kb2N1bWVudHMvZG9jdW1lbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQU85QyxNQUFNLE9BQU8sa0NBQWtDO0lBd0M3QyxZQUNtQixLQUFxQixFQUNyQixlQUFnQyxFQUNoQyxhQUE0QixFQUM1QixxQkFBNEMsRUFDNUMsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBQ2xDLGFBQTRCOztRQU41QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtR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Q0FBd0MsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FDRixDQUFDO0lBRUosQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOzs7WUE3R0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQ0FBc0M7Z0JBQ2hELHU2Q0FBeUM7O2FBRTFDOzs7WUFkTyxjQUFjO1lBQ2QsZUFBZTtZQUVmLGFBQWE7WUFDSSxxQkFBcUI7WUFBdEMsZUFBZTtZQUdmLGdCQUFnQjtZQUNoQixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7UmVsYXRlZEZpbGUsIFJlc291cmNlRHRvfSBmcm9tICdAdmFsdGltby9jb250cmFjdCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtEb3dubG9hZFNlcnZpY2UsIFVwbG9hZFByb3ZpZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcmVzb3VyY2UnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItZG9jdW1lbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50cy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJEZXRhaWxUYWJEb2N1bWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWF4RmlsZVNpemU6IG51bWJlciA9IHRoaXMuY29uZmlnU2VydmljZT8uY29uZmlnPy5jYXNlRmlsZVNpemVVcGxvYWRMaW1pdE1CIHx8IDU7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmZXRjaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVsYXRlZEZpbGVzJDogT2JzZXJ2YWJsZTxBcnJheTxSZWxhdGVkRmlsZT4+ID0gdGhpcy5yZWZldGNoJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5kb2N1bWVudFNlcnZpY2UuZ2V0RG9jdW1lbnQodGhpcy5kb2N1bWVudElkKSwgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyldKVxuICAgICksXG4gICAgbWFwKChbZG9jdW1lbnRdKSA9PiB7XG4gICAgICBjb25zdCByZWxhdGVkRmlsZXMgPSBkb2N1bWVudD8ucmVsYXRlZEZpbGVzIHx8IFtdO1xuICAgICAgY29uc3QgdHJhbnNsYXRlZEZpbGVzID0gcmVsYXRlZEZpbGVzLm1hcChmaWxlID0+IHtcbiAgICAgICAgcmV0dXJuIHsuLi5maWxlLCBjcmVhdGVkQnk6IGZpbGUuY3JlYXRlZEJ5IHx8IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdsaXN0LmF1dG9tYXRpY2FsbHlHZW5lcmF0ZWQnKX07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWRGaWxlcyB8fCBbXTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyBmaWVsZHMgPSBbXG4gICAge2tleTogJ2ZpbGVOYW1lJywgbGFiZWw6ICdGaWxlIG5hbWUnfSxcbiAgICB7a2V5OiAnc2l6ZUluQnl0ZXMnLCBsYWJlbDogJ1NpemUgaW4gYnl0ZXMnfSxcbiAgICB7a2V5OiAnY3JlYXRlZE9uJywgbGFiZWw6ICdDcmVhdGVkIG9uJywgdmlld1R5cGU6ICdkYXRlJ30sXG4gICAge2tleTogJ2NyZWF0ZWRCeScsIGxhYmVsOiAnQ3JlYXRlZCBieSd9LFxuICBdO1xuICBwdWJsaWMgYWN0aW9ucyA9IFtcbiAgICB7XG4gICAgICBjb2x1bW5OYW1lOiAnJyxcbiAgICAgIGljb25DbGFzczogJ2ZhcyBmYS1leHRlcm5hbC1saW5rLWFsdCcsXG4gICAgICBjYWxsYmFjazogdGhpcy5kb3dubG9hZERvY3VtZW50LmJpbmQodGhpcyksXG4gICAgfSxcbiAgICB7XG4gICAgICBjb2x1bW5OYW1lOiAnJyxcbiAgICAgIGljb25DbGFzczogJ2ZhcyBmYS10cmFzaC1hbHQnLFxuICAgICAgY2FsbGJhY2s6IHRoaXMucmVtb3ZlUmVsYXRlZEZpbGUuYmluZCh0aGlzKSxcbiAgICB9LFxuICBdO1xuXG4gIHJlYWRvbmx5IHVwbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVwbG9hZFByb3ZpZGVyU2VydmljZTogVXBsb2FkUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG93bmxvYWRTZXJ2aWNlOiBEb3dubG9hZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXA7XG4gICAgdGhpcy5kb2N1bWVudElkID0gc25hcHNob3QuZ2V0KCdkb2N1bWVudElkJykgfHwgJyc7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gc25hcHNob3QuZ2V0KCdkb2N1bWVudERlZmluaXRpb25OYW1lJykgfHwgJyc7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZmV0Y2hEb2N1bWVudHMoKTtcbiAgfVxuXG4gIGZpbGVTZWxlY3RlZChmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLnVwbG9hZFByb3ZpZGVyU2VydmljZVxuICAgICAgLnVwbG9hZEZpbGUoZmlsZSwgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyZXNvdXJjZUZpbGUgPT5cbiAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5hc3NpZ25SZXNvdXJjZSh0aGlzLmRvY3VtZW50SWQsIHJlc291cmNlRmlsZS5kYXRhLnJlc291cmNlSWQpXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcygnU3VjY2Vzc2Z1bGx5IHVwbG9hZGVkIGRvY3VtZW50IHRvIGRvc3NpZXInKTtcbiAgICAgICAgICB0aGlzLnJlZmV0Y2hEb2N1bWVudHMoKTtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoJ0ZhaWxlZCB0byB1cGxvYWQgZG9jdW1lbnQgdG8gZG9zc2llcicpO1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGRvd25sb2FkRG9jdW1lbnQocmVsYXRlZEZpbGU6IFJlbGF0ZWRGaWxlKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRQcm92aWRlclNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShyZWxhdGVkRmlsZS5maWxlSWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXNvdXJjZTogUmVzb3VyY2VEdG8pID0+IHtcbiAgICAgICAgdGhpcy5kb3dubG9hZFNlcnZpY2UuZG93bmxvYWRGaWxlKHJlc291cmNlLnVybCwgcmVzb3VyY2UucmVzb3VyY2UubmFtZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZVJlbGF0ZWRGaWxlKHJlbGF0ZWRGaWxlOiBSZWxhdGVkRmlsZSk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnJlbW92ZVJlc291cmNlKHRoaXMuZG9jdW1lbnRJZCwgcmVsYXRlZEZpbGUuZmlsZUlkKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgcmVtb3ZlZCBkb2N1bWVudCBmcm9tIGRvc3NpZXInKTtcbiAgICAgICAgdGhpcy5yZWZldGNoRG9jdW1lbnRzKCk7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoJ0ZhaWxlZCB0byByZW1vdmUgZG9jdW1lbnQgZnJvbSBkb3NzaWVyJyk7XG4gICAgICB9XG4gICAgKTtcblxuICB9XG5cbiAgcHJpdmF0ZSByZWZldGNoRG9jdW1lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMucmVmZXRjaCQubmV4dChudWxsKTtcbiAgfVxufVxuIl19
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component } from '@angular/core';
17
+ import { ActivatedRoute } from '@angular/router';
18
+ import { DocumentService } from '@valtimo/document';
19
+ import { ToastrService } from 'ngx-toastr';
20
+ import { DownloadService, UploadProviderService } from '@valtimo/resource';
21
+ import { map, switchMap } from 'rxjs/operators';
22
+ import { BehaviorSubject, combineLatest } from 'rxjs';
23
+ import { TranslateService } from '@ngx-translate/core';
24
+ import { ConfigService } from '@valtimo/config';
25
+ export class DossierDetailTabDocumentsComponent {
26
+ constructor(route, documentService, toastrService, uploadProviderService, downloadService, translateService, configService) {
27
+ var _a, _b;
28
+ this.route = route;
29
+ this.documentService = documentService;
30
+ this.toastrService = toastrService;
31
+ this.uploadProviderService = uploadProviderService;
32
+ this.downloadService = downloadService;
33
+ this.translateService = translateService;
34
+ this.configService = configService;
35
+ this.maxFileSize = ((_b = (_a = this.configService) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.caseFileSizeUploadLimitMB) || 5;
36
+ this.refetch$ = new BehaviorSubject(null);
37
+ this.relatedFiles$ = this.refetch$.pipe(switchMap(() => combineLatest([
38
+ this.documentService.getDocument(this.documentId),
39
+ this.translateService.stream('key'),
40
+ ])), map(([document]) => {
41
+ const relatedFiles = (document === null || document === void 0 ? void 0 : document.relatedFiles) || [];
42
+ const translatedFiles = relatedFiles.map(file => {
43
+ return Object.assign(Object.assign({}, file), { createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated') });
44
+ });
45
+ return translatedFiles || [];
46
+ }));
47
+ this.fields = [
48
+ { key: 'fileName', label: 'File name' },
49
+ { key: 'sizeInBytes', label: 'Size in bytes' },
50
+ { key: 'createdOn', label: 'Created on', viewType: 'date' },
51
+ { key: 'createdBy', label: 'Created by' },
52
+ ];
53
+ this.actions = [
54
+ {
55
+ columnName: '',
56
+ iconClass: 'fas fa-external-link-alt',
57
+ callback: this.downloadDocument.bind(this),
58
+ },
59
+ {
60
+ columnName: '',
61
+ iconClass: 'fas fa-trash-alt',
62
+ callback: this.removeRelatedFile.bind(this),
63
+ },
64
+ ];
65
+ this.uploading$ = new BehaviorSubject(false);
66
+ const snapshot = this.route.snapshot.paramMap;
67
+ this.documentId = snapshot.get('documentId') || '';
68
+ this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';
69
+ }
70
+ ngOnInit() {
71
+ this.refetchDocuments();
72
+ }
73
+ fileSelected(file) {
74
+ this.uploading$.next(true);
75
+ this.uploadProviderService
76
+ .uploadFile(file, this.documentDefinitionName)
77
+ .pipe(switchMap(resourceFile => this.documentService.assignResource(this.documentId, resourceFile.data.resourceId)))
78
+ .subscribe(() => {
79
+ this.toastrService.success('Successfully uploaded document to dossier');
80
+ this.refetchDocuments();
81
+ this.uploading$.next(false);
82
+ }, () => {
83
+ this.toastrService.error('Failed to upload document to dossier');
84
+ this.uploading$.next(false);
85
+ });
86
+ }
87
+ downloadDocument(relatedFile) {
88
+ this.uploadProviderService
89
+ .getResource(relatedFile.fileId)
90
+ .subscribe((resource) => {
91
+ this.downloadService.downloadFile(resource.url, resource.resource.name);
92
+ });
93
+ }
94
+ removeRelatedFile(relatedFile) {
95
+ this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(() => {
96
+ this.toastrService.success('Successfully removed document from dossier');
97
+ this.refetchDocuments();
98
+ }, () => {
99
+ this.toastrService.error('Failed to remove document from dossier');
100
+ });
101
+ }
102
+ refetchDocuments() {
103
+ this.refetch$.next(null);
104
+ }
105
+ }
106
+ DossierDetailTabDocumentsComponent.decorators = [
107
+ { type: Component, args: [{
108
+ selector: 'valtimo-dossier-detail-tab-documents',
109
+ 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 [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n",
110
+ styles: [""]
111
+ },] }
112
+ ];
113
+ DossierDetailTabDocumentsComponent.ctorParameters = () => [
114
+ { type: ActivatedRoute },
115
+ { type: DocumentService },
116
+ { type: ToastrService },
117
+ { type: UploadProviderService },
118
+ { type: DownloadService },
119
+ { type: TranslateService },
120
+ { type: ConfigService }
121
+ ];
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvdG1wL2plbmtpbnMtM2ZmM2ExOWEvd29ya3NwYWNlL3JvbnRlbmRfbGlicmFyaWVzXy1fcmVsZWFzZV9tYWluL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvIiwic291cmNlcyI6WyJsaWIvZG9zc2llci1kZXRhaWwvdGFiL2RvY3VtZW50cy9kb2N1bWVudHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBYyxNQUFNLG1CQUFtQixDQUFDO0FBRS9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBTzlDLE1BQU0sT0FBTyxrQ0FBa0M7SUE4QzdDLFlBQ21CLEtBQXFCLEVBQ3JCLGVBQWdDLEVBQ2hDLGFBQTRCLEVBQzVCLHFCQUE0QyxFQUM1QyxlQUFnQyxFQUNoQyxnQkFBa0MsRUFDbEMsYUFBNEI7O1FBTjVCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QiwwQkFBcUIsR0FB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YSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOzs7WUFsSEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQ0FBc0M7Z0JBQ2hELHU2Q0FBeUM7O2FBRTFDOzs7WUFkTyxjQUFjO1lBQ2QsZUFBZTtZQUVmLGFBQWE7WUFDSSxxQkFBcUI7WUFBdEMsZUFBZTtZQUdmLGdCQUFnQjtZQUNoQixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2UsIFJlbGF0ZWRGaWxlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge1Jlc291cmNlRHRvfSBmcm9tICdAdmFsdGltby9yZXNvdXJjZSc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtEb3dubG9hZFNlcnZpY2UsIFVwbG9hZFByb3ZpZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcmVzb3VyY2UnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItZG9jdW1lbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50cy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJEZXRhaWxUYWJEb2N1bWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWF4RmlsZVNpemU6IG51bWJlciA9IHRoaXMuY29uZmlnU2VydmljZT8uY29uZmlnPy5jYXNlRmlsZVNpemVVcGxvYWRMaW1pdE1CIHx8IDU7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmZXRjaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVsYXRlZEZpbGVzJDogT2JzZXJ2YWJsZTxBcnJheTxSZWxhdGVkRmlsZT4+ID0gdGhpcy5yZWZldGNoJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50KHRoaXMuZG9jdW1lbnRJZCksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICAgICAgXSlcbiAgICApLFxuICAgIG1hcCgoW2RvY3VtZW50XSkgPT4ge1xuICAgICAgY29uc3QgcmVsYXRlZEZpbGVzID0gZG9jdW1lbnQ/LnJlbGF0ZWRGaWxlcyB8fCBbXTtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZWRGaWxlcyA9IHJlbGF0ZWRGaWxlcy5tYXAoZmlsZSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICBjcmVhdGVkQnk6IGZpbGUuY3JlYXRlZEJ5IHx8IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdsaXN0LmF1dG9tYXRpY2FsbHlHZW5lcmF0ZWQnKSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdHJhbnNsYXRlZEZpbGVzIHx8IFtdO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIGZpZWxkcyA9IFtcbiAgICB7a2V5OiAnZmlsZU5hbWUnLCBsYWJlbDogJ0ZpbGUgbmFtZSd9LFxuICAgIHtrZXk6ICdzaXplSW5CeXRlcycsIGxhYmVsOiAnU2l6ZSBpbiBieXRlcyd9LFxuICAgIHtrZXk6ICdjcmVhdGVkT24nLCBsYWJlbDogJ0NyZWF0ZWQgb24nLCB2aWV3VHlwZTogJ2RhdGUnfSxcbiAgICB7a2V5OiAnY3JlYXRlZEJ5JywgbGFiZWw6ICdDcmVhdGVkIGJ5J30sXG4gIF07XG4gIHB1YmxpYyBhY3Rpb25zID0gW1xuICAgIHtcbiAgICAgIGNvbHVtbk5hbWU6ICcnLFxuICAgICAgaWNvbkNsYXNzOiAnZmFzIGZhLWV4dGVybmFsLWxpbmstYWx0JyxcbiAgICAgIGNhbGxiYWNrOiB0aGlzLmRvd25sb2FkRG9jdW1lbnQuYmluZCh0aGlzKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNvbHVtbk5hbWU6ICcnLFxuICAgICAgaWNvbkNsYXNzOiAnZmFzIGZhLXRyYXNoLWFsdCcsXG4gICAgICBjYWxsYmFjazogdGhpcy5yZW1vdmVSZWxhdGVkRmlsZS5iaW5kKHRoaXMpLFxuICAgIH0sXG4gIF07XG5cbiAgcmVhZG9ubHkgdXBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXBsb2FkUHJvdmlkZXJTZXJ2aWNlOiBVcGxvYWRQcm92aWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3dubG9hZFNlcnZpY2U6IERvd25sb2FkU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcDtcbiAgICB0aGlzLmRvY3VtZW50SWQgPSBzbmFwc2hvdC5nZXQoJ2RvY3VtZW50SWQnKSB8fCAnJztcbiAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUgPSBzbmFwc2hvdC5nZXQoJ2RvY3VtZW50RGVmaW5pdGlvbk5hbWUnKSB8fCAnJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVmZXRjaERvY3VtZW50cygpO1xuICB9XG5cbiAgZmlsZVNlbGVjdGVkKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLnVwbG9hZGluZyQubmV4dCh0cnVlKTtcblxuICAgIHRoaXMudXBsb2FkUHJvdmlkZXJTZXJ2aWNlXG4gICAgICAudXBsb2FkRmlsZShmaWxlLCB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHJlc291cmNlRmlsZSA9PlxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmFzc2lnblJlc291cmNlKHRoaXMuZG9jdW1lbnRJZCwgcmVzb3VyY2VGaWxlLmRhdGEucmVzb3VyY2VJZClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgdXBsb2FkZWQgZG9jdW1lbnQgdG8gZG9zc2llcicpO1xuICAgICAgICAgIHRoaXMucmVmZXRjaERvY3VtZW50cygpO1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcignRmFpbGVkIHRvIHVwbG9hZCBkb2N1bWVudCB0byBkb3NzaWVyJyk7XG4gICAgICAgICAgdGhpcy51cGxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZG93bmxvYWREb2N1bWVudChyZWxhdGVkRmlsZTogUmVsYXRlZEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLnVwbG9hZFByb3ZpZGVyU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKHJlbGF0ZWRGaWxlLmZpbGVJZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlOiBSZXNvdXJjZUR0bykgPT4ge1xuICAgICAgICB0aGlzLmRvd25sb2FkU2VydmljZS5kb3dubG9hZEZpbGUocmVzb3VyY2UudXJsLCByZXNvdXJjZS5yZXNvdXJjZS5uYW1lKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlUmVsYXRlZEZpbGUocmVsYXRlZEZpbGU6IFJlbGF0ZWRGaWxlKTogdm9pZCB7XG4gICAgdGhpcy5kb2N1bWVudFNlcnZpY2UucmVtb3ZlUmVzb3VyY2UodGhpcy5kb2N1bWVudElkLCByZWxhdGVkRmlsZS5maWxlSWQpLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3MoJ1N1Y2Nlc3NmdWxseSByZW1vdmVkIGRvY3VtZW50IGZyb20gZG9zc2llcicpO1xuICAgICAgICB0aGlzLnJlZmV0Y2hEb2N1bWVudHMoKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcignRmFpbGVkIHRvIHJlbW92ZSBkb2N1bWVudCBmcm9tIGRvc3NpZXInKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZldGNoRG9jdW1lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMucmVmZXRjaCQubmV4dChudWxsKTtcbiAgfVxufVxuIl19