@valtimo/dossier 4.15.2-next-main.14 → 4.15.3-next-main.15

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 (44) hide show
  1. package/bundles/valtimo-dossier.umd.js +1623 -1580
  2. package/bundles/valtimo-dossier.umd.js.map +1 -1
  3. package/bundles/valtimo-dossier.umd.min.js +2 -2
  4. package/bundles/valtimo-dossier.umd.min.js.map +1 -1
  5. package/esm2015/lib/dossier-detail/dossier-detail.component.js +87 -87
  6. package/esm2015/lib/dossier-detail/tab/audit/audit.component.js +79 -64
  7. package/esm2015/lib/dossier-detail/tab/contact-moments/contact-moments.component.js +91 -50
  8. package/esm2015/lib/dossier-detail/tab/documents/documents.component.js +100 -100
  9. package/esm2015/lib/dossier-detail/tab/progress/progress.component.js +46 -46
  10. package/esm2015/lib/dossier-detail/tab/summary/summary.component.js +123 -123
  11. package/esm2015/lib/dossier-detail-tab-enum.js +23 -23
  12. package/esm2015/lib/dossier-list/dossier-list.component.js +211 -211
  13. package/esm2015/lib/dossier-process-start-modal/dossier-process-start-modal.component.js +121 -121
  14. package/esm2015/lib/dossier-routing.module.js +56 -56
  15. package/esm2015/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.js +116 -116
  16. package/esm2015/lib/dossier-update/dossier-update.component.js +120 -120
  17. package/esm2015/lib/dossier.config.js +28 -28
  18. package/esm2015/lib/dossier.module.js +124 -120
  19. package/esm2015/lib/dossier.service.js +49 -49
  20. package/esm2015/lib/tab.service.js +43 -43
  21. package/esm2015/public_api.js +30 -30
  22. package/esm2015/valtimo-dossier.js +8 -8
  23. package/fesm2015/valtimo-dossier.js +1289 -1236
  24. package/fesm2015/valtimo-dossier.js.map +1 -1
  25. package/lib/dossier-detail/dossier-detail.component.d.ts +34 -34
  26. package/lib/dossier-detail/tab/audit/audit.component.d.ts +21 -15
  27. package/lib/dossier-detail/tab/contact-moments/contact-moments.component.d.ts +27 -11
  28. package/lib/dossier-detail/tab/documents/documents.component.d.ts +38 -38
  29. package/lib/dossier-detail/tab/progress/progress.component.d.ts +14 -14
  30. package/lib/dossier-detail/tab/summary/summary.component.d.ts +37 -37
  31. package/lib/dossier-detail-tab-enum.d.ts +7 -7
  32. package/lib/dossier-list/dossier-list.component.d.ts +65 -65
  33. package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts +37 -37
  34. package/lib/dossier-routing.module.d.ts +2 -2
  35. package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts +35 -35
  36. package/lib/dossier-update/dossier-update.component.d.ts +33 -33
  37. package/lib/dossier.config.d.ts +3 -3
  38. package/lib/dossier.module.d.ts +5 -5
  39. package/lib/dossier.service.d.ts +10 -10
  40. package/lib/tab.service.d.ts +7 -7
  41. package/package.json +1 -1
  42. package/public_api.d.ts +12 -12
  43. package/valtimo-dossier.d.ts +8 -8
  44. package/valtimo-dossier.metadata.json +1 -1
@@ -1,101 +1,101 @@
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 { switchMap } from 'rxjs/operators';
22
- import { BehaviorSubject } from 'rxjs';
23
- export class DossierDetailTabDocumentsComponent {
24
- constructor(route, documentService, toastrService, uploadProviderService, downloadService) {
25
- this.route = route;
26
- this.documentService = documentService;
27
- this.toastrService = toastrService;
28
- this.uploadProviderService = uploadProviderService;
29
- this.downloadService = downloadService;
30
- this.relatedFiles = [];
31
- this.fields = [
32
- { key: 'fileName', label: 'File name' },
33
- { key: 'sizeInBytes', label: 'Size in bytes' },
34
- { key: 'createdOn', label: 'Created on', viewType: 'date' },
35
- { key: 'createdBy', label: 'Created by' }
36
- ];
37
- this.actions = [
38
- {
39
- columnName: '',
40
- iconClass: 'fas fa-external-link-alt',
41
- callback: this.downloadDocument.bind(this)
42
- },
43
- {
44
- columnName: '',
45
- iconClass: 'fas fa-trash-alt',
46
- callback: this.removeRelatedFile.bind(this)
47
- }
48
- ];
49
- this.uploading$ = new BehaviorSubject(false);
50
- const snapshot = this.route.snapshot.paramMap;
51
- this.documentId = snapshot.get('documentId') || '';
52
- this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';
53
- }
54
- ngOnInit() {
55
- this.loadDocuments();
56
- }
57
- fileSelected(file) {
58
- this.uploading$.next(true);
59
- this.uploadProviderService.uploadFile(file, this.documentDefinitionName).pipe(switchMap((resourceFile) => this.documentService.assignResource(this.documentId, resourceFile.data.resourceId))).subscribe(() => {
60
- this.toastrService.success('Successfully uploaded document to dossier');
61
- this.loadDocuments();
62
- this.uploading$.next(false);
63
- }, () => {
64
- this.toastrService.error('Failed to upload document to dossier');
65
- this.uploading$.next(false);
66
- });
67
- }
68
- loadDocuments() {
69
- this.documentService.getDocument(this.documentId).subscribe((document) => {
70
- this.relatedFiles = document.relatedFiles;
71
- });
72
- }
73
- downloadDocument(relatedFile) {
74
- this.uploadProviderService.getResource(relatedFile.fileId).subscribe((resource) => {
75
- this.downloadService.downloadFile(resource.url, resource.resource.name);
76
- });
77
- }
78
- removeRelatedFile(relatedFile) {
79
- this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(() => {
80
- this.toastrService.success('Successfully removed document from dossier');
81
- this.loadDocuments();
82
- }, () => {
83
- this.toastrService.error('Failed to remove document from dossier');
84
- });
85
- }
86
- }
87
- DossierDetailTabDocumentsComponent.decorators = [
88
- { type: Component, args: [{
89
- selector: 'valtimo-dossier-detail-tab-documents',
90
- 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]=\"5\"\n [showMaxFileSize]=\"false\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles\"\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\">{{ 'Overview of all documents in this dossier' | translate }}</h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n",
91
- styles: [""]
92
- },] }
93
- ];
94
- DossierDetailTabDocumentsComponent.ctorParameters = () => [
95
- { type: ActivatedRoute },
96
- { type: DocumentService },
97
- { type: ToastrService },
98
- { type: UploadProviderService },
99
- { type: DownloadService }
100
- ];
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 { switchMap } from 'rxjs/operators';
22
+ import { BehaviorSubject } from 'rxjs';
23
+ export class DossierDetailTabDocumentsComponent {
24
+ constructor(route, documentService, toastrService, uploadProviderService, downloadService) {
25
+ this.route = route;
26
+ this.documentService = documentService;
27
+ this.toastrService = toastrService;
28
+ this.uploadProviderService = uploadProviderService;
29
+ this.downloadService = downloadService;
30
+ this.relatedFiles = [];
31
+ this.fields = [
32
+ { key: 'fileName', label: 'File name' },
33
+ { key: 'sizeInBytes', label: 'Size in bytes' },
34
+ { key: 'createdOn', label: 'Created on', viewType: 'date' },
35
+ { key: 'createdBy', label: 'Created by' }
36
+ ];
37
+ this.actions = [
38
+ {
39
+ columnName: '',
40
+ iconClass: 'fas fa-external-link-alt',
41
+ callback: this.downloadDocument.bind(this)
42
+ },
43
+ {
44
+ columnName: '',
45
+ iconClass: 'fas fa-trash-alt',
46
+ callback: this.removeRelatedFile.bind(this)
47
+ }
48
+ ];
49
+ this.uploading$ = new BehaviorSubject(false);
50
+ const snapshot = this.route.snapshot.paramMap;
51
+ this.documentId = snapshot.get('documentId') || '';
52
+ this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';
53
+ }
54
+ ngOnInit() {
55
+ this.loadDocuments();
56
+ }
57
+ fileSelected(file) {
58
+ this.uploading$.next(true);
59
+ this.uploadProviderService.uploadFile(file, this.documentDefinitionName).pipe(switchMap((resourceFile) => this.documentService.assignResource(this.documentId, resourceFile.data.resourceId))).subscribe(() => {
60
+ this.toastrService.success('Successfully uploaded document to dossier');
61
+ this.loadDocuments();
62
+ this.uploading$.next(false);
63
+ }, () => {
64
+ this.toastrService.error('Failed to upload document to dossier');
65
+ this.uploading$.next(false);
66
+ });
67
+ }
68
+ loadDocuments() {
69
+ this.documentService.getDocument(this.documentId).subscribe((document) => {
70
+ this.relatedFiles = document.relatedFiles;
71
+ });
72
+ }
73
+ downloadDocument(relatedFile) {
74
+ this.uploadProviderService.getResource(relatedFile.fileId).subscribe((resource) => {
75
+ this.downloadService.downloadFile(resource.url, resource.resource.name);
76
+ });
77
+ }
78
+ removeRelatedFile(relatedFile) {
79
+ this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(() => {
80
+ this.toastrService.success('Successfully removed document from dossier');
81
+ this.loadDocuments();
82
+ }, () => {
83
+ this.toastrService.error('Failed to remove document from dossier');
84
+ });
85
+ }
86
+ }
87
+ DossierDetailTabDocumentsComponent.decorators = [
88
+ { type: Component, args: [{
89
+ selector: 'valtimo-dossier-detail-tab-documents',
90
+ 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]=\"5\"\n [showMaxFileSize]=\"false\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles\"\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\">{{ 'Overview of all documents in this dossier' | translate }}</h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n",
91
+ styles: [""]
92
+ },] }
93
+ ];
94
+ DossierDetailTabDocumentsComponent.ctorParameters = () => [
95
+ { type: ActivatedRoute },
96
+ { type: DocumentService },
97
+ { type: ToastrService },
98
+ { type: UploadProviderService },
99
+ { type: DownloadService }
100
+ ];
101
101
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2Rvc3NpZXItZGV0YWlsL3RhYi9kb2N1bWVudHMvZG9jdW1lbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU9yQyxNQUFNLE9BQU8sa0NBQWtDO0lBeUI3QyxZQUNtQixLQUFxQixFQUNyQixlQUFnQyxFQUNoQyxhQUE0QixFQUM1QixxQkFBNEMsRUFDNUMsZUFBZ0M7UUFKaEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBM0I1QyxpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFDakMsV0FBTSxHQUFHO1lBQ2QsRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUM7WUFDckMsRUFBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLEtBQUss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QUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RGLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDekUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBaEZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0NBQXNDO2dCQUNoRCxpNENBQXlDOzthQUUxQzs7O1lBWk8sY0FBYztZQUNkLGVBQWU7WUFFZixhQUFhO1lBQ0kscUJBQXFCO1lBQXRDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtEb2N1bWVudCwgUmVsYXRlZEZpbGUsIFJlc291cmNlRHRvfSBmcm9tICdAdmFsdGltby9jb250cmFjdCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtEb3dubG9hZFNlcnZpY2UsIFVwbG9hZFByb3ZpZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcmVzb3VyY2UnO1xuaW1wb3J0IHtzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItZG9jdW1lbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50cy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckRldGFpbFRhYkRvY3VtZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudElkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWxhdGVkRmlsZXM6IFJlbGF0ZWRGaWxlW10gPSBbXTtcbiAgcHVibGljIGZpZWxkcyA9IFtcbiAgICB7a2V5OiAnZmlsZU5hbWUnLCBsYWJlbDogJ0ZpbGUgbmFtZSd9LFxuICAgIHtrZXk6ICdzaXplSW5CeXRlcycsIGxhYmVsOiAnU2l6ZSBpbiBieXRlcyd9LFxuICAgIHtrZXk6ICdjcmVhdGVkT24nLCBsYWJlbDogJ0NyZWF0ZWQgb24nLCB2aWV3VHlwZTogJ2RhdGUnfSxcbiAgICB7a2V5OiAnY3JlYXRlZEJ5JywgbGFiZWw6ICdDcmVhdGVkIGJ5J31cbiAgXTtcbiAgcHVibGljIGFjdGlvbnMgPSBbXG4gICAge1xuICAgICAgY29sdW1uTmFtZTogJycsXG4gICAgICBpY29uQ2xhc3M6ICdmYXMgZmEtZXh0ZXJuYWwtbGluay1hbHQnLFxuICAgICAgY2FsbGJhY2s6IHRoaXMuZG93bmxvYWREb2N1bWVudC5iaW5kKHRoaXMpXG4gICAgfSxcbiAgICB7XG4gICAgICBjb2x1bW5OYW1lOiAnJyxcbiAgICAgIGljb25DbGFzczogJ2ZhcyBmYS10cmFzaC1hbHQnLFxuICAgICAgY2FsbGJhY2s6IHRoaXMucmVtb3ZlUmVsYXRlZEZpbGUuYmluZCh0aGlzKVxuICAgIH1cbiAgXTtcblxuICByZWFkb25seSB1cGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cGxvYWRQcm92aWRlclNlcnZpY2U6IFVwbG9hZFByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvd25sb2FkU2VydmljZTogRG93bmxvYWRTZXJ2aWNlLFxuICApIHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXA7XG4gICAgdGhpcy5kb2N1bWVudElkID0gc25hcHNob3QuZ2V0KCdkb2N1bWVudElkJykgfHwgJyc7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gc25hcHNob3QuZ2V0KCdkb2N1bWVudERlZmluaXRpb25OYW1lJykgfHwgJyc7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWREb2N1bWVudHMoKTtcbiAgfVxuXG4gIGZpbGVTZWxlY3RlZChmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLnVwbG9hZFByb3ZpZGVyU2VydmljZS51cGxvYWRGaWxlKGZpbGUsIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocmVzb3VyY2VGaWxlKSA9PiB0aGlzLmRvY3VtZW50U2VydmljZS5hc3NpZ25SZXNvdXJjZSh0aGlzLmRvY3VtZW50SWQsIHJlc291cmNlRmlsZS5kYXRhLnJlc291cmNlSWQpKVxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudG9hc3RyU2VydmljZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgdXBsb2FkZWQgZG9jdW1lbnQgdG8gZG9zc2llcicpO1xuICAgICAgdGhpcy5sb2FkRG9jdW1lbnRzKCk7XG4gICAgICB0aGlzLnVwbG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgfSwgKCkgPT4ge1xuICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKCdGYWlsZWQgdG8gdXBsb2FkIGRvY3VtZW50IHRvIGRvc3NpZXInKTtcbiAgICAgIHRoaXMudXBsb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWREb2N1bWVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZ2V0RG9jdW1lbnQodGhpcy5kb2N1bWVudElkKS5zdWJzY3JpYmUoKGRvY3VtZW50OiBEb2N1bWVudCkgPT4ge1xuICAgICAgdGhpcy5yZWxhdGVkRmlsZXMgPSBkb2N1bWVudC5yZWxhdGVkRmlsZXM7XG4gICAgfSk7XG4gIH1cblxuICBkb3dubG9hZERvY3VtZW50KHJlbGF0ZWRGaWxlOiBSZWxhdGVkRmlsZSk6IHZvaWQge1xuICAgIHRoaXMudXBsb2FkUHJvdmlkZXJTZXJ2aWNlLmdldFJlc291cmNlKHJlbGF0ZWRGaWxlLmZpbGVJZCkuc3Vic2NyaWJlKChyZXNvdXJjZTogUmVzb3VyY2VEdG8pID0+IHtcbiAgICAgIHRoaXMuZG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkRmlsZShyZXNvdXJjZS51cmwsIHJlc291cmNlLnJlc291cmNlLm5hbWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlUmVsYXRlZEZpbGUocmVsYXRlZEZpbGU6IFJlbGF0ZWRGaWxlKTogdm9pZCB7XG4gICAgdGhpcy5kb2N1bWVudFNlcnZpY2UucmVtb3ZlUmVzb3VyY2UodGhpcy5kb2N1bWVudElkLCByZWxhdGVkRmlsZS5maWxlSWQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcygnU3VjY2Vzc2Z1bGx5IHJlbW92ZWQgZG9jdW1lbnQgZnJvbSBkb3NzaWVyJyk7XG4gICAgICB0aGlzLmxvYWREb2N1bWVudHMoKTtcbiAgICB9LCAoKSA9PiB7XG4gICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoJ0ZhaWxlZCB0byByZW1vdmUgZG9jdW1lbnQgZnJvbSBkb3NzaWVyJyk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,47 +1,47 @@
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
- export class DossierDetailTabProgressComponent {
20
- constructor(route, documentService) {
21
- this.route = route;
22
- this.documentService = documentService;
23
- const snapshot = this.route.snapshot.paramMap;
24
- this.documentId = snapshot.get('documentId') || '';
25
- }
26
- ngOnInit() {
27
- this.documentService.findProcessDocumentInstances(this.documentId).subscribe(processDocumentInstances => {
28
- this.processDocumentInstances = processDocumentInstances;
29
- this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;
30
- });
31
- }
32
- loadProcessInstance(processInstanceId) {
33
- this.selectedProcessInstanceId = processInstanceId;
34
- }
35
- }
36
- DossierDetailTabProgressComponent.decorators = [
37
- { type: Component, args: [{
38
- selector: 'valtimo-dossier-detail-tab-progress',
39
- 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<div class=\"full-height-tab-content\" *ngIf=\"processDocumentInstances\">\n <div class=\"col-3\">\n <label><strong>Process</strong></label><br/>\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\">\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram [processInstanceId]=\"selectedProcessInstanceId\"></valtimo-process-diagram>\n</div>\n",
40
- styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}"]
41
- },] }
42
- ];
43
- DossierDetailTabProgressComponent.ctorParameters = () => [
44
- { type: ActivatedRoute },
45
- { type: DocumentService }
46
- ];
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
+ export class DossierDetailTabProgressComponent {
20
+ constructor(route, documentService) {
21
+ this.route = route;
22
+ this.documentService = documentService;
23
+ const snapshot = this.route.snapshot.paramMap;
24
+ this.documentId = snapshot.get('documentId') || '';
25
+ }
26
+ ngOnInit() {
27
+ this.documentService.findProcessDocumentInstances(this.documentId).subscribe(processDocumentInstances => {
28
+ this.processDocumentInstances = processDocumentInstances;
29
+ this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;
30
+ });
31
+ }
32
+ loadProcessInstance(processInstanceId) {
33
+ this.selectedProcessInstanceId = processInstanceId;
34
+ }
35
+ }
36
+ DossierDetailTabProgressComponent.decorators = [
37
+ { type: Component, args: [{
38
+ selector: 'valtimo-dossier-detail-tab-progress',
39
+ 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<div class=\"full-height-tab-content\" *ngIf=\"processDocumentInstances\">\n <div class=\"col-3\">\n <label><strong>Process</strong></label><br/>\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\">\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram [processInstanceId]=\"selectedProcessInstanceId\"></valtimo-process-diagram>\n</div>\n",
40
+ styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}"]
41
+ },] }
42
+ ];
43
+ DossierDetailTabProgressComponent.ctorParameters = () => [
44
+ { type: ActivatedRoute },
45
+ { type: DocumentService }
46
+ ];
47
47
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvZG9zc2llci1kZXRhaWwvdGFiL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQVFsRCxNQUFNLE9BQU8saUNBQWlDO0lBSzVDLFlBQ1UsS0FBcUIsRUFDckIsZUFBZ0M7UUFEaEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRXhDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDdEcsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHdCQUF3QixDQUFDO1lBQ3pELElBQUksQ0FBQyx5QkFBeUIsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsaUJBQXlCO1FBQ2xELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxpQkFBaUIsQ0FBQztJQUNyRCxDQUFDOzs7WUEzQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQ0FBcUM7Z0JBQy9DLGcyQ0FBd0M7O2FBRXpDOzs7WUFSTyxjQUFjO1lBQ2QsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge1Byb2Nlc3NEb2N1bWVudEluc3RhbmNlfSBmcm9tICdAdmFsdGltby9jb250cmFjdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFiLXByb2dyZXNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2dyZXNzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZ3Jlc3MuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJEZXRhaWxUYWJQcm9ncmVzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBwcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXM6IFByb2Nlc3NEb2N1bWVudEluc3RhbmNlW107XG4gIHB1YmxpYyBzZWxlY3RlZFByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudElkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgKSB7XG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwO1xuICAgIHRoaXMuZG9jdW1lbnRJZCA9IHNuYXBzaG90LmdldCgnZG9jdW1lbnRJZCcpIHx8ICcnO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZmluZFByb2Nlc3NEb2N1bWVudEluc3RhbmNlcyh0aGlzLmRvY3VtZW50SWQpLnN1YnNjcmliZShwcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXMgPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXMgPSBwcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXM7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvY2Vzc0luc3RhbmNlSWQgPSBwcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXNbMF0uaWQucHJvY2Vzc0luc3RhbmNlSWQ7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFByb2Nlc3NJbnN0YW5jZShwcm9jZXNzSW5zdGFuY2VJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZFByb2Nlc3NJbnN0YW5jZUlkID0gcHJvY2Vzc0luc3RhbmNlSWQ7XG4gIH1cblxufVxuIl19
@@ -1,124 +1,124 @@
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, ElementRef, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';
17
- import { ProcessService } from '@valtimo/process';
18
- import { ActivatedRoute, Router } from '@angular/router';
19
- import { DocumentService } from '@valtimo/document';
20
- import { TaskDetailModalComponent, TaskService } from '@valtimo/task';
21
- import { FormService } from '@valtimo/form';
22
- import { FormioOptionsImpl } from '@valtimo/contract';
23
- import * as moment_ from 'moment';
24
- import { UserProviderService } from '@valtimo/security';
25
- const moment = moment_;
26
- moment.locale(localStorage.getItem('langKey') || '');
27
- moment.defaultFormat = 'DD MMM YYYY HH:mm';
28
- export class DossierDetailTabSummaryComponent {
29
- constructor(router, documentService, taskService, processService, el, renderer, route, formService, userProviderService) {
30
- this.router = router;
31
- this.documentService = documentService;
32
- this.taskService = taskService;
33
- this.processService = processService;
34
- this.el = el;
35
- this.renderer = renderer;
36
- this.route = route;
37
- this.formService = formService;
38
- this.userProviderService = userProviderService;
39
- this.processDocumentInstances = [];
40
- this.tasks = [];
41
- this.formDefinition = null;
42
- this.roles = [];
43
- this.snapshot = this.route.snapshot.paramMap;
44
- this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';
45
- this.documentId = this.snapshot.get('documentId') || '';
46
- this.options = new FormioOptionsImpl();
47
- this.options.disableAlerts = true;
48
- }
49
- ngOnInit() {
50
- this.moment = moment;
51
- this.init();
52
- }
53
- init() {
54
- this.documentService.getDocument(this.documentId).subscribe(document => {
55
- this.document = document;
56
- });
57
- this.formService
58
- .getFormDefinitionByNamePreFilled(`${this.documentDefinitionName}.summary`, this.documentId)
59
- .subscribe(formDefinition => {
60
- this.formDefinition = formDefinition;
61
- });
62
- this.userProviderService.getUserSubject().subscribe(user => {
63
- this.roles = user.roles;
64
- this.tasks = [];
65
- this.loadProcessDocumentInstances(this.documentId);
66
- });
67
- }
68
- loadProcessDocumentInstances(documentId) {
69
- this.documentService.findProcessDocumentInstances(documentId).subscribe(processDocumentInstances => {
70
- this.processDocumentInstances = processDocumentInstances;
71
- this.processDocumentInstances.forEach(instance => {
72
- this.loadProcessInstanceTasks(instance.id.processInstanceId);
73
- });
74
- });
75
- }
76
- loadProcessInstanceTasks(processInstanceId) {
77
- this.processService.getProcessInstanceTasks(processInstanceId).subscribe(tasks => {
78
- tasks.forEach(task => {
79
- task.createdUnix = this.moment(task.created).unix();
80
- task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');
81
- task.isLocked = () => {
82
- let locked = true;
83
- for (const link of task.identityLinks) {
84
- if (link.type === 'candidate' && link.groupId) {
85
- if (this.roles.includes(link.groupId)) {
86
- locked = false;
87
- break;
88
- }
89
- }
90
- }
91
- return locked;
92
- };
93
- });
94
- this.tasks = this.tasks.concat(tasks);
95
- this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);
96
- });
97
- }
98
- rowTaskClick(task) {
99
- this.taskDetail.openTaskDetails(task);
100
- }
101
- }
102
- DossierDetailTabSummaryComponent.decorators = [
103
- { type: Component, args: [{
104
- selector: 'valtimo-dossier-detail-tab-summary',
105
- 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<div class=\"container-fluid\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">User tasks</h4>\n <ng-container *ngIf=\"!tasks.length\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n <ng-container *ngFor=\"let task of tasks\">\n <valtimo-widget>\n <div class=\"p-3 clickable hoverable\" (click)=\"rowTaskClick(task)\" *ngIf=\"!task.isLocked()\">\n <span class=\"float-right badge badge-pill badge-primary\">Open</span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked()\">\n <span class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\">\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n",
106
- encapsulation: ViewEncapsulation.None,
107
- 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 */.hoverable:hover{background-color:#eee}.summaryForm .formio-component{margin-bottom:0!important}.summaryForm .formio-component div[ref=element] .form-control{background-color:#fff;border:0;font-size:13px;height:24px!important;margin:0;padding:0!important}.summaryForm .formio-field div[ref=element] .form-control{font-weight:400}.summaryForm .formio-value div[ref=element] .form-control{font-weight:700}.user-tasks-title{color:#000;font-weight:400;height:20px;margin-bottom:12px;margin-top:0}"]
108
- },] }
109
- ];
110
- DossierDetailTabSummaryComponent.ctorParameters = () => [
111
- { type: Router },
112
- { type: DocumentService },
113
- { type: TaskService },
114
- { type: ProcessService },
115
- { type: ElementRef },
116
- { type: Renderer2 },
117
- { type: ActivatedRoute },
118
- { type: FormService },
119
- { type: UserProviderService }
120
- ];
121
- DossierDetailTabSummaryComponent.propDecorators = {
122
- taskDetail: [{ type: ViewChild, args: ['taskDetail',] }]
123
- };
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, ElementRef, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';
17
+ import { ProcessService } from '@valtimo/process';
18
+ import { ActivatedRoute, Router } from '@angular/router';
19
+ import { DocumentService } from '@valtimo/document';
20
+ import { TaskDetailModalComponent, TaskService } from '@valtimo/task';
21
+ import { FormService } from '@valtimo/form';
22
+ import { FormioOptionsImpl } from '@valtimo/contract';
23
+ import * as moment_ from 'moment';
24
+ import { UserProviderService } from '@valtimo/security';
25
+ const moment = moment_;
26
+ moment.locale(localStorage.getItem('langKey') || '');
27
+ moment.defaultFormat = 'DD MMM YYYY HH:mm';
28
+ export class DossierDetailTabSummaryComponent {
29
+ constructor(router, documentService, taskService, processService, el, renderer, route, formService, userProviderService) {
30
+ this.router = router;
31
+ this.documentService = documentService;
32
+ this.taskService = taskService;
33
+ this.processService = processService;
34
+ this.el = el;
35
+ this.renderer = renderer;
36
+ this.route = route;
37
+ this.formService = formService;
38
+ this.userProviderService = userProviderService;
39
+ this.processDocumentInstances = [];
40
+ this.tasks = [];
41
+ this.formDefinition = null;
42
+ this.roles = [];
43
+ this.snapshot = this.route.snapshot.paramMap;
44
+ this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';
45
+ this.documentId = this.snapshot.get('documentId') || '';
46
+ this.options = new FormioOptionsImpl();
47
+ this.options.disableAlerts = true;
48
+ }
49
+ ngOnInit() {
50
+ this.moment = moment;
51
+ this.init();
52
+ }
53
+ init() {
54
+ this.documentService.getDocument(this.documentId).subscribe(document => {
55
+ this.document = document;
56
+ });
57
+ this.formService
58
+ .getFormDefinitionByNamePreFilled(`${this.documentDefinitionName}.summary`, this.documentId)
59
+ .subscribe(formDefinition => {
60
+ this.formDefinition = formDefinition;
61
+ });
62
+ this.userProviderService.getUserSubject().subscribe(user => {
63
+ this.roles = user.roles;
64
+ this.tasks = [];
65
+ this.loadProcessDocumentInstances(this.documentId);
66
+ });
67
+ }
68
+ loadProcessDocumentInstances(documentId) {
69
+ this.documentService.findProcessDocumentInstances(documentId).subscribe(processDocumentInstances => {
70
+ this.processDocumentInstances = processDocumentInstances;
71
+ this.processDocumentInstances.forEach(instance => {
72
+ this.loadProcessInstanceTasks(instance.id.processInstanceId);
73
+ });
74
+ });
75
+ }
76
+ loadProcessInstanceTasks(processInstanceId) {
77
+ this.processService.getProcessInstanceTasks(processInstanceId).subscribe(tasks => {
78
+ tasks.forEach(task => {
79
+ task.createdUnix = this.moment(task.created).unix();
80
+ task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');
81
+ task.isLocked = () => {
82
+ let locked = true;
83
+ for (const link of task.identityLinks) {
84
+ if (link.type === 'candidate' && link.groupId) {
85
+ if (this.roles.includes(link.groupId)) {
86
+ locked = false;
87
+ break;
88
+ }
89
+ }
90
+ }
91
+ return locked;
92
+ };
93
+ });
94
+ this.tasks = this.tasks.concat(tasks);
95
+ this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);
96
+ });
97
+ }
98
+ rowTaskClick(task) {
99
+ this.taskDetail.openTaskDetails(task);
100
+ }
101
+ }
102
+ DossierDetailTabSummaryComponent.decorators = [
103
+ { type: Component, args: [{
104
+ selector: 'valtimo-dossier-detail-tab-summary',
105
+ 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<div class=\"container-fluid\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">User tasks</h4>\n <ng-container *ngIf=\"!tasks.length\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n <ng-container *ngFor=\"let task of tasks\">\n <valtimo-widget>\n <div class=\"p-3 clickable hoverable\" (click)=\"rowTaskClick(task)\" *ngIf=\"!task.isLocked()\">\n <span class=\"float-right badge badge-pill badge-primary\">Open</span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked()\">\n <span class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\">\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>Created {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n",
106
+ encapsulation: ViewEncapsulation.None,
107
+ 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 */.hoverable:hover{background-color:#eee}.summaryForm .formio-component{margin-bottom:0!important}.summaryForm .formio-component div[ref=element] .form-control{background-color:#fff;border:0;font-size:13px;height:24px!important;margin:0;padding:0!important}.summaryForm .formio-field div[ref=element] .form-control{font-weight:400}.summaryForm .formio-value div[ref=element] .form-control{font-weight:700}.user-tasks-title{color:#000;font-weight:400;height:20px;margin-bottom:12px;margin-top:0}"]
108
+ },] }
109
+ ];
110
+ DossierDetailTabSummaryComponent.ctorParameters = () => [
111
+ { type: Router },
112
+ { type: DocumentService },
113
+ { type: TaskService },
114
+ { type: ProcessService },
115
+ { type: ElementRef },
116
+ { type: Renderer2 },
117
+ { type: ActivatedRoute },
118
+ { type: FormService },
119
+ { type: UserProviderService }
120
+ ];
121
+ DossierDetailTabSummaryComponent.propDecorators = {
122
+ taskDetail: [{ type: ViewChild, args: ['taskDetail',] }]
123
+ };
124
124
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9kb3NzaWVyLWRldGFpbC90YWIvc3VtbWFyeS9zdW1tYXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFVLFNBQVMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQVksTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQVcsaUJBQWlCLEVBQXFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEksT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFFbEMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyRCxNQUFNLENBQUMsYUFBYSxHQUFHLG1CQUFtQixDQUFDO0FBUTNDLE1BQU0sT0FBTyxnQ0FBZ0M7SUFhM0MsWUFDVSxNQUFjLEVBQ2QsZUFBZ0MsRUFDaEMsV0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsRUFBYyxFQUNk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QUFDO2dCQUNULFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLHVsRkFBdUM7Z0JBRXZDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBbkJpQyxNQUFNO1lBQ2hDLGVBQWU7WUFDVyxXQUFXO1lBSHJDLGNBQWM7WUFESCxVQUFVO1lBQVUsU0FBUztZQUV4QyxjQUFjO1lBR2QsV0FBVztZQUtYLG1CQUFtQjs7O3lCQXVCeEIsU0FBUyxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcm9jZXNzU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBQYXJhbU1hcCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7VGFza0RldGFpbE1vZGFsQ29tcG9uZW50LCBUYXNrU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vdGFzayc7XG5pbXBvcnQge0Zvcm1TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9mb3JtJztcbmltcG9ydCB7RG9jdW1lbnQsIEZvcm1pb09wdGlvbnNJbXBsLCBQcm9jZXNzRG9jdW1lbnRJbnN0YW5jZSwgUHJvY2Vzc0luc3RhbmNlVGFzaywgVmFsdGltb0Zvcm1pb09wdGlvbnN9IGZyb20gJ0B2YWx0aW1vL2NvbnRyYWN0JztcblxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtGb3JtaW9Gb3JtfSBmcm9tICdhbmd1bGFyLWZvcm1pbyc7XG5pbXBvcnQge1VzZXJQcm92aWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcblxuY29uc3QgbW9tZW50ID0gbW9tZW50Xztcbm1vbWVudC5sb2NhbGUobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmdLZXknKSB8fCAnJyk7XG5tb21lbnQuZGVmYXVsdEZvcm1hdCA9ICdERCBNTU0gWVlZWSBISDptbSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1kZXRhaWwtdGFiLXN1bW1hcnknLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1bW1hcnkuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyRGV0YWlsVGFiU3VtbWFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnQ7XG4gIHB1YmxpYyBkb2N1bWVudElkOiBzdHJpbmc7XG4gIHB1YmxpYyBwcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXM6IFByb2Nlc3NEb2N1bWVudEluc3RhbmNlW10gPSBbXTtcbiAgcHJpdmF0ZSBzbmFwc2hvdDogUGFyYW1NYXA7XG4gIHB1YmxpYyB0YXNrczogUHJvY2Vzc0luc3RhbmNlVGFza1tdID0gW107XG4gIHB1YmxpYyBtb21lbnQ7XG4gIHB1YmxpYyBmb3JtRGVmaW5pdGlvbjogRm9ybWlvRm9ybSA9IG51bGw7XG4gIHB1YmxpYyBvcHRpb25zOiBWYWx0aW1vRm9ybWlvT3B0aW9ucztcbiAgcHVibGljIHJvbGVzOiBzdHJpbmdbXSA9IFtdO1xuICBAVmlld0NoaWxkKCd0YXNrRGV0YWlsJykgdGFza0RldGFpbDogVGFza0RldGFpbE1vZGFsQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHRhc2tTZXJ2aWNlOiBUYXNrU2VydmljZSxcbiAgICBwcml2YXRlIHByb2Nlc3NTZXJ2aWNlOiBQcm9jZXNzU2VydmljZSxcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJQcm92aWRlclNlcnZpY2U6IFVzZXJQcm92aWRlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zbmFwc2hvdCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXA7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gdGhpcy5zbmFwc2hvdC5nZXQoJ2RvY3VtZW50RGVmaW5pdGlvbk5hbWUnKSB8fCAnJztcbiAgICB0aGlzLmRvY3VtZW50SWQgPSB0aGlzLnNuYXBzaG90LmdldCgnZG9jdW1lbnRJZCcpIHx8ICcnO1xuICAgIHRoaXMub3B0aW9ucyA9IG5ldyBGb3JtaW9PcHRpb25zSW1wbCgpO1xuICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlQWxlcnRzID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubW9tZW50ID0gbW9tZW50O1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgaW5pdCgpIHtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXREb2N1bWVudCh0aGlzLmRvY3VtZW50SWQpLnN1YnNjcmliZShkb2N1bWVudCA9PiB7XG4gICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgfSk7XG4gICAgdGhpcy5mb3JtU2VydmljZVxuICAgICAgLmdldEZvcm1EZWZpbml0aW9uQnlOYW1lUHJlRmlsbGVkKGAke3RoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZX0uc3VtbWFyeWAsIHRoaXMuZG9jdW1lbnRJZClcbiAgICAgIC5zdWJzY3JpYmUoZm9ybURlZmluaXRpb24gPT4ge1xuICAgICAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gZm9ybURlZmluaXRpb247XG4gICAgICB9KTtcbiAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UuZ2V0VXNlclN1YmplY3QoKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICB0aGlzLnJvbGVzID0gdXNlci5yb2xlcztcbiAgICAgIHRoaXMudGFza3MgPSBbXTtcbiAgICAgIHRoaXMubG9hZFByb2Nlc3NEb2N1bWVudEluc3RhbmNlcyh0aGlzLmRvY3VtZW50SWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxvYWRQcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXMoZG9jdW1lbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZmluZFByb2Nlc3NEb2N1bWVudEluc3RhbmNlcyhkb2N1bWVudElkKS5zdWJzY3JpYmUocHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzID0+IHtcbiAgICAgIHRoaXMucHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzID0gcHJvY2Vzc0RvY3VtZW50SW5zdGFuY2VzO1xuICAgICAgdGhpcy5wcm9jZXNzRG9jdW1lbnRJbnN0YW5jZXMuZm9yRWFjaChpbnN0YW5jZSA9PiB7XG4gICAgICAgIHRoaXMubG9hZFByb2Nlc3NJbnN0YW5jZVRhc2tzKGluc3RhbmNlLmlkLnByb2Nlc3NJbnN0YW5jZUlkKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUHJvY2Vzc0luc3RhbmNlVGFza3MocHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc0luc3RhbmNlVGFza3MocHJvY2Vzc0luc3RhbmNlSWQpLnN1YnNjcmliZSh0YXNrcyA9PiB7XG4gICAgICB0YXNrcy5mb3JFYWNoKHRhc2sgPT4ge1xuICAgICAgICB0YXNrLmNyZWF0ZWRVbml4ID0gdGhpcy5tb21lbnQodGFzay5jcmVhdGVkKS51bml4KCk7XG4gICAgICAgIHRhc2suY3JlYXRlZCA9IHRoaXMubW9tZW50KHRhc2suY3JlYXRlZCkuZm9ybWF0KCdERCBNTU0gWVlZWSBISDptbScpO1xuICAgICAgICB0YXNrLmlzTG9ja2VkID0gKCkgPT4ge1xuICAgICAgICAgIGxldCBsb2NrZWQgPSB0cnVlO1xuICAgICAgICAgIGZvciAoY29uc3QgbGluayBvZiB0YXNrLmlkZW50aXR5TGlua3MpIHtcbiAgICAgICAgICAgIGlmIChsaW5rLnR5cGUgPT09ICdjYW5kaWRhdGUnICYmIGxpbmsuZ3JvdXBJZCkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5yb2xlcy5pbmNsdWRlcyhsaW5rLmdyb3VwSWQpKSB7XG4gICAgICAgICAgICAgICAgbG9ja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGxvY2tlZDtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YXNrcyA9IHRoaXMudGFza3MuY29uY2F0KHRhc2tzKTtcbiAgICAgIHRoaXMudGFza3Muc29ydCgodDEsIHQyKSA9PiB0Mi5jcmVhdGVkVW5peCAtIHQxLmNyZWF0ZWRVbml4KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByb3dUYXNrQ2xpY2sodGFzazogYW55KSB7XG4gICAgdGhpcy50YXNrRGV0YWlsLm9wZW5UYXNrRGV0YWlscyh0YXNrKTtcbiAgfVxufVxuIl19