@valtimo/dossier-management 11.0.0 → 11.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dossier-management-assignee/dossier-management-assignee.component.mjs +75 -0
- package/esm2022/lib/{dossier-management-connect-modal → components/dossier-management-connect-modal}/dossier-management-connect-modal.component.mjs +1 -1
- package/esm2022/lib/{dossier-management-detail-container/tabs → components}/dossier-management-detail/dossier-management-detail.component.mjs +5 -5
- package/esm2022/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.mjs +68 -0
- package/esm2022/lib/components/dossier-management-link-process/dossier-management-link-process.component.mjs +84 -0
- package/esm2022/lib/{dossier-management-list → components/dossier-management-list}/dossier-management-list.component.mjs +1 -1
- package/esm2022/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.mjs +458 -0
- package/esm2022/lib/{dossier-management-remove-modal → components/dossier-management-remove-modal}/dossier-management-remove-modal.component.mjs +1 -1
- package/esm2022/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.mjs +416 -0
- package/esm2022/lib/components/dossier-management-tabs/dossier-management-add-tab-modal/dossier-management-add-tab-modal.component.mjs +103 -0
- package/esm2022/lib/components/dossier-management-tabs/dossier-management-edit-tab-modal/dossier-management-edit-tab-modal.component.mjs +71 -0
- package/esm2022/lib/components/dossier-management-tabs/dossier-management-tabs.component.mjs +179 -0
- package/esm2022/lib/components/dossier-management-tabs/tab-form/tab-form.component.mjs +76 -0
- package/esm2022/lib/components/dossier-management-upload/dossier-management-upload.component.mjs +161 -0
- package/esm2022/lib/dossier-management-routing.module.mjs +3 -3
- package/esm2022/lib/dossier-management.module.mjs +38 -19
- package/esm2022/lib/models/index.mjs +2 -1
- package/esm2022/lib/models/tab.enum.mjs +23 -0
- package/esm2022/lib/services/index.mjs +18 -0
- package/esm2022/lib/services/tab-management.service.mjs +74 -0
- package/esm2022/lib/services/tab.service.mjs +88 -0
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/valtimo-dossier-management.mjs +1059 -520
- package/fesm2022/valtimo-dossier-management.mjs.map +1 -1
- package/lib/components/dossier-management-assignee/dossier-management-assignee.component.d.ts.map +1 -0
- package/lib/components/dossier-management-connect-modal/dossier-management-connect-modal.component.d.ts.map +1 -0
- package/lib/{dossier-management-detail-container/tabs → components}/dossier-management-detail/dossier-management-detail.component.d.ts +2 -2
- package/lib/components/dossier-management-detail/dossier-management-detail.component.d.ts.map +1 -0
- package/lib/{dossier-management-detail-container → components/dossier-management-detail-container}/dossier-management-detail-container.component.d.ts +3 -2
- package/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.d.ts.map +1 -0
- package/lib/components/dossier-management-link-process/dossier-management-link-process.component.d.ts.map +1 -0
- package/lib/components/dossier-management-list/dossier-management-list.component.d.ts.map +1 -0
- package/lib/{dossier-management-detail-container/tabs → components}/dossier-management-list-columns/dossier-management-list-columns.component.d.ts +1 -1
- package/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.d.ts.map +1 -0
- package/lib/components/dossier-management-remove-modal/dossier-management-remove-modal.component.d.ts.map +1 -0
- package/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.d.ts.map +1 -0
- package/lib/components/dossier-management-tabs/dossier-management-add-tab-modal/dossier-management-add-tab-modal.component.d.ts +38 -0
- package/lib/components/dossier-management-tabs/dossier-management-add-tab-modal/dossier-management-add-tab-modal.component.d.ts.map +1 -0
- package/lib/components/dossier-management-tabs/dossier-management-edit-tab-modal/dossier-management-edit-tab-modal.component.d.ts +22 -0
- package/lib/components/dossier-management-tabs/dossier-management-edit-tab-modal/dossier-management-edit-tab-modal.component.d.ts.map +1 -0
- package/lib/components/dossier-management-tabs/dossier-management-tabs.component.d.ts +48 -0
- package/lib/components/dossier-management-tabs/dossier-management-tabs.component.d.ts.map +1 -0
- package/lib/components/dossier-management-tabs/tab-form/tab-form.component.d.ts +22 -0
- package/lib/components/dossier-management-tabs/tab-form/tab-form.component.d.ts.map +1 -0
- package/lib/components/dossier-management-upload/dossier-management-upload.component.d.ts.map +1 -0
- package/lib/dossier-management.module.d.ts +23 -19
- package/lib/dossier-management.module.d.ts.map +1 -1
- package/lib/models/index.d.ts +1 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/tab.enum.d.ts +7 -0
- package/lib/models/tab.enum.d.ts.map +1 -0
- package/lib/services/index.d.ts +3 -0
- package/lib/services/index.d.ts.map +1 -0
- package/lib/services/tab-management.service.d.ts +26 -0
- package/lib/services/tab-management.service.d.ts.map +1 -0
- package/lib/services/tab.service.d.ts +31 -0
- package/lib/services/tab.service.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/public-api.d.ts.map +1 -1
- package/esm2022/lib/dossier-management-assignee/dossier-management-assignee.component.mjs +0 -75
- package/esm2022/lib/dossier-management-detail-container/dossier-management-detail-container.component.mjs +0 -65
- package/esm2022/lib/dossier-management-detail-container/tabs/dossier-management-list-columns/dossier-management-list-columns.component.mjs +0 -458
- package/esm2022/lib/dossier-management-detail-container/tabs/dossier-management-search-fields/dossier-management-search-fields.component.mjs +0 -416
- package/esm2022/lib/dossier-management-link-process/dossier-management-link-process.component.mjs +0 -84
- package/esm2022/lib/dossier-management-upload/dossier-management-upload.component.mjs +0 -161
- package/esm2022/lib/tab.enum.mjs +0 -22
- package/esm2022/lib/tab.service.mjs +0 -39
- package/lib/dossier-management-assignee/dossier-management-assignee.component.d.ts.map +0 -1
- package/lib/dossier-management-connect-modal/dossier-management-connect-modal.component.d.ts.map +0 -1
- package/lib/dossier-management-detail-container/dossier-management-detail-container.component.d.ts.map +0 -1
- package/lib/dossier-management-detail-container/tabs/dossier-management-detail/dossier-management-detail.component.d.ts.map +0 -1
- package/lib/dossier-management-detail-container/tabs/dossier-management-list-columns/dossier-management-list-columns.component.d.ts.map +0 -1
- package/lib/dossier-management-detail-container/tabs/dossier-management-search-fields/dossier-management-search-fields.component.d.ts.map +0 -1
- package/lib/dossier-management-link-process/dossier-management-link-process.component.d.ts.map +0 -1
- package/lib/dossier-management-list/dossier-management-list.component.d.ts.map +0 -1
- package/lib/dossier-management-remove-modal/dossier-management-remove-modal.component.d.ts.map +0 -1
- package/lib/dossier-management-upload/dossier-management-upload.component.d.ts.map +0 -1
- package/lib/tab.enum.d.ts +0 -6
- package/lib/tab.enum.d.ts.map +0 -1
- package/lib/tab.service.d.ts +0 -11
- package/lib/tab.service.d.ts.map +0 -1
- /package/lib/{dossier-management-assignee → components/dossier-management-assignee}/dossier-management-assignee.component.d.ts +0 -0
- /package/lib/{dossier-management-connect-modal → components/dossier-management-connect-modal}/dossier-management-connect-modal.component.d.ts +0 -0
- /package/lib/{dossier-management-link-process → components/dossier-management-link-process}/dossier-management-link-process.component.d.ts +0 -0
- /package/lib/{dossier-management-list → components/dossier-management-list}/dossier-management-list.component.d.ts +0 -0
- /package/lib/{dossier-management-remove-modal → components/dossier-management-remove-modal}/dossier-management-remove-modal.component.d.ts +0 -0
- /package/lib/{dossier-management-detail-container/tabs → components}/dossier-management-search-fields/dossier-management-search-fields.component.d.ts +0 -0
- /package/lib/{dossier-management-upload → components/dossier-management-upload}/dossier-management-upload.component.d.ts +0 -0
|
@@ -1,30 +1,100 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i4 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import {
|
|
5
|
-
import * as
|
|
4
|
+
import { Component, EventEmitter, Output, ViewChild, Injectable, Optional, Inject, ChangeDetectionStrategy, Input, ViewEncapsulation, NgModule } from '@angular/core';
|
|
5
|
+
import * as i2$1 from '@angular/forms';
|
|
6
6
|
import { FormGroup, FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
7
|
-
import * as
|
|
7
|
+
import * as i7 from '@ng-bootstrap/ng-bootstrap';
|
|
8
|
+
import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
|
|
9
|
+
import * as i3 from '@ngx-translate/core';
|
|
8
10
|
import { TranslateModule } from '@ngx-translate/core';
|
|
9
|
-
import * as i6
|
|
10
|
-
import { ViewType, WidgetModule, DropzoneModule, ListModule, ModalModule, MultiselectDropdownModule, ParagraphModule, SelectModule, SpinnerModule, InputModule, FormModule, TooltipIconModule, CarbonMultiInputModule, ConfirmationModalModule, TableModule, ValtimoCdsModalDirectiveModule } from '@valtimo/components';
|
|
11
|
-
import * as i1$
|
|
11
|
+
import * as i6 from '@valtimo/components';
|
|
12
|
+
import { ViewType, WidgetModule, DropzoneModule, ListModule, ModalModule, MultiselectDropdownModule, ParagraphModule, SelectModule, SpinnerModule, InputModule, FormModule, TooltipIconModule, CarbonMultiInputModule, ConfirmationModalModule, TableModule, ValtimoCdsModalDirectiveModule, CarbonListModule } from '@valtimo/components';
|
|
13
|
+
import * as i1$3 from '@valtimo/config';
|
|
12
14
|
import { UploadProvider, ROLE_ADMIN, ConfigModule } from '@valtimo/config';
|
|
13
|
-
import * as
|
|
14
|
-
import
|
|
15
|
+
import * as i9 from 'carbon-components-angular';
|
|
16
|
+
import { NotificationModule, ButtonModule, IconModule, ModalModule as ModalModule$1, InputModule as InputModule$1, DropdownModule, CheckboxModule, LoadingModule, LinkModule, ComboBoxModule } from 'carbon-components-angular';
|
|
17
|
+
import { BehaviorSubject, map, switchMap, combineLatest, take, tap as tap$1, of, catchError, Subscription, filter, distinctUntilChanged, delay, startWith, Subject } from 'rxjs';
|
|
18
|
+
import { tap, take as take$1, switchMap as switchMap$1 } from 'rxjs/operators';
|
|
19
|
+
import * as i1 from '@valtimo/document';
|
|
15
20
|
import { DocumentDefinitionCreateRequest } from '@valtimo/document';
|
|
16
|
-
import * as i3 from 'ngx-toastr';
|
|
17
|
-
import * as i7 from '@ng-bootstrap/ng-bootstrap';
|
|
18
|
-
import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
|
|
19
21
|
import * as i2 from '@angular/router';
|
|
20
22
|
import { RouterModule } from '@angular/router';
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
+
import * as i1$1 from '@valtimo/process';
|
|
24
|
+
import * as i3$1 from 'ngx-toastr';
|
|
25
|
+
import { DefaultTabs, CASE_TAB_TOKEN, ApiTabType } from '@valtimo/dossier';
|
|
26
|
+
import * as i1$2 from '@valtimo/form';
|
|
27
|
+
import * as i2$2 from '@angular/common/http';
|
|
28
|
+
import * as i4$1 from '@angular/platform-browser';
|
|
29
|
+
import { Code16, Development16, WatsonHealthPageScroll16, ArrowDown16, ArrowUp16 } from '@carbon/icons';
|
|
23
30
|
import moment from 'moment';
|
|
24
31
|
import { AuthGuardService } from '@valtimo/security';
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
35
|
+
*
|
|
36
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
37
|
+
* you may not use this file except in compliance with the License.
|
|
38
|
+
* You may obtain a copy of the License at
|
|
39
|
+
*
|
|
40
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
41
|
+
*
|
|
42
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
43
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
44
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
45
|
+
* See the License for the specific language governing permissions and
|
|
46
|
+
* limitations under the License.
|
|
47
|
+
*/
|
|
48
|
+
class DossierManagementAssigneeComponent {
|
|
49
|
+
constructor(documentService, route) {
|
|
50
|
+
this.documentService = documentService;
|
|
51
|
+
this.route = route;
|
|
52
|
+
this.disabled$ = new BehaviorSubject(false);
|
|
53
|
+
this._refresh$ = new BehaviorSubject(null);
|
|
54
|
+
this.loading$ = new BehaviorSubject(true);
|
|
55
|
+
this.documentDefinitionName$ = this.route.params.pipe(map(params => params.name || ''));
|
|
56
|
+
this.currentValue$ = this._refresh$.pipe(switchMap(() => this.documentDefinitionName$), switchMap(documentDefinitionName => this.documentService.getCaseSettingsForManagement(documentDefinitionName)), tap(() => this.loading$.next(false)));
|
|
57
|
+
this.disabled$ = new BehaviorSubject(false);
|
|
58
|
+
}
|
|
59
|
+
updateCaseSettings(caseSettings, documentDefinitionName) {
|
|
60
|
+
this.disableInput();
|
|
61
|
+
this.documentService
|
|
62
|
+
.patchCaseSettingsForManagement(documentDefinitionName, caseSettings)
|
|
63
|
+
.subscribe(() => {
|
|
64
|
+
this.enableInput();
|
|
65
|
+
this.refreshSettings();
|
|
66
|
+
}, () => {
|
|
67
|
+
this.enableInput();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
disableInput() {
|
|
71
|
+
this.disabled$.next(true);
|
|
72
|
+
}
|
|
73
|
+
enableInput() {
|
|
74
|
+
this.disabled$.next(false);
|
|
75
|
+
}
|
|
76
|
+
refreshSettings() {
|
|
77
|
+
this._refresh$.next(null);
|
|
78
|
+
}
|
|
79
|
+
toggleAssignee(currentSettings, documentDefinitionName) {
|
|
80
|
+
this.updateCaseSettings({
|
|
81
|
+
canHaveAssignee: !currentSettings.canHaveAssignee,
|
|
82
|
+
autoAssignTasks: currentSettings.autoAssignTasks,
|
|
83
|
+
}, documentDefinitionName);
|
|
84
|
+
}
|
|
85
|
+
toggleTaskAssignment(currentSettings, documentDefinitionName) {
|
|
86
|
+
this.updateCaseSettings({
|
|
87
|
+
canHaveAssignee: currentSettings.canHaveAssignee,
|
|
88
|
+
autoAssignTasks: !currentSettings.autoAssignTasks,
|
|
89
|
+
}, documentDefinitionName);
|
|
90
|
+
}
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementAssigneeComponent, deps: [{ token: i1.DocumentService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementAssigneeComponent, selector: "valtimo-dossier-management-assignee", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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<h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.toggleAssignee.title' | translate }}</h2>\n\n<ng-container\n *ngIf=\"{\n currentValue: currentValue$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.canHaveAssignee\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleAssignee(obs.currentValue, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.toggleAssignee.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n <ng-container *ngIf=\"obs.currentValue.canHaveAssignee\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.autoAssignTasks\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleTaskAssignment(obs.currentValue, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.toggleAutoAssignTasks.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n</ng-container>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementAssigneeComponent, decorators: [{
|
|
95
|
+
type: Component,
|
|
96
|
+
args: [{ selector: 'valtimo-dossier-management-assignee', template: "<!--\n ~ Copyright 2015-2023 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<h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.toggleAssignee.title' | translate }}</h2>\n\n<ng-container\n *ngIf=\"{\n currentValue: currentValue$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.canHaveAssignee\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleAssignee(obs.currentValue, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.toggleAssignee.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n <ng-container *ngIf=\"obs.currentValue.canHaveAssignee\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.autoAssignTasks\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleTaskAssignment(obs.currentValue, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.toggleAutoAssignTasks.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n</ng-container>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n" }]
|
|
97
|
+
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.ActivatedRoute }]; } });
|
|
28
98
|
|
|
29
99
|
/*
|
|
30
100
|
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
@@ -95,19 +165,240 @@ class DossierManagementConnectModalComponent {
|
|
|
95
165
|
this.toasterService.error('Failed to add new process document definition');
|
|
96
166
|
});
|
|
97
167
|
}
|
|
98
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementConnectModalComponent, deps: [{ token: i1.ProcessService }, { token: i1
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementConnectModalComponent, selector: "valtimo-dossier-management-connect-modal", outputs: { reloadProcessDocumentDefinitions: "reloadProcessDocumentDefinitions" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["dossierConnectModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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-modal\n #dossierConnectModal\n elementId=\"dossierConnectModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"Connect document definition to process definition\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <p>\n {{ 'Select process definition for document definition' | translate }}\n <strong>{{ documentDefinition.id.name }} *</strong>\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"newDocumentProcessDefinition\">\n <option [ngValue]=\"null\">{{ 'dossierManagement.selectProcessDef' | translate }}</option>\n <option\n *ngFor=\"let processDefinition of processDefinitions\"\n [disabled]=\"processDocumentDefinitionExists[processDefinition.key]\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.name }} ({{ processDefinition.key }})\n </option>\n </select>\n </div>\n <p>\n {{ 'Select options for the selected process' | translate }}\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionInit\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline ml-2 pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionStartableByUser\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!newDocumentProcessDefinition\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type:
|
|
168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementConnectModalComponent, deps: [{ token: i1$1.ProcessService }, { token: i1.DocumentService }, { token: i3$1.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
169
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementConnectModalComponent, selector: "valtimo-dossier-management-connect-modal", outputs: { reloadProcessDocumentDefinitions: "reloadProcessDocumentDefinitions" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["dossierConnectModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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-modal\n #dossierConnectModal\n elementId=\"dossierConnectModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"Connect document definition to process definition\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <p>\n {{ 'Select process definition for document definition' | translate }}\n <strong>{{ documentDefinition.id.name }} *</strong>\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"newDocumentProcessDefinition\">\n <option [ngValue]=\"null\">{{ 'dossierManagement.selectProcessDef' | translate }}</option>\n <option\n *ngFor=\"let processDefinition of processDefinitions\"\n [disabled]=\"processDocumentDefinitionExists[processDefinition.key]\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.name }} ({{ processDefinition.key }})\n </option>\n </select>\n </div>\n <p>\n {{ 'Select options for the selected process' | translate }}\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionInit\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline ml-2 pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionStartableByUser\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!newDocumentProcessDefinition\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "directive", type: i7.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
100
170
|
}
|
|
101
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementConnectModalComponent, decorators: [{
|
|
102
172
|
type: Component,
|
|
103
173
|
args: [{ selector: 'valtimo-dossier-management-connect-modal', template: "<!--\n ~ Copyright 2015-2023 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-modal\n #dossierConnectModal\n elementId=\"dossierConnectModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"Connect document definition to process definition\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <p>\n {{ 'Select process definition for document definition' | translate }}\n <strong>{{ documentDefinition.id.name }} *</strong>\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"newDocumentProcessDefinition\">\n <option [ngValue]=\"null\">{{ 'dossierManagement.selectProcessDef' | translate }}</option>\n <option\n *ngFor=\"let processDefinition of processDefinitions\"\n [disabled]=\"processDocumentDefinitionExists[processDefinition.key]\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.name }} ({{ processDefinition.key }})\n </option>\n </select>\n </div>\n <p>\n {{ 'Select options for the selected process' | translate }}\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionInit\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline ml-2 pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionStartableByUser\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!newDocumentProcessDefinition\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
|
|
104
|
-
}], ctorParameters: function () { return [{ type: i1.ProcessService }, { type: i1
|
|
174
|
+
}], ctorParameters: function () { return [{ type: i1$1.ProcessService }, { type: i1.DocumentService }, { type: i3$1.ToastrService }]; }, propDecorators: { reloadProcessDocumentDefinitions: [{
|
|
105
175
|
type: Output
|
|
106
176
|
}], modal: [{
|
|
107
177
|
type: ViewChild,
|
|
108
178
|
args: ['dossierConnectModal']
|
|
109
179
|
}] } });
|
|
110
180
|
|
|
181
|
+
/*
|
|
182
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
183
|
+
*
|
|
184
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
185
|
+
* you may not use this file except in compliance with the License.
|
|
186
|
+
* You may obtain a copy of the License at
|
|
187
|
+
*
|
|
188
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
189
|
+
*
|
|
190
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
191
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
192
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
193
|
+
* See the License for the specific language governing permissions and
|
|
194
|
+
* limitations under the License.
|
|
195
|
+
*/
|
|
196
|
+
|
|
197
|
+
/*
|
|
198
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
199
|
+
*
|
|
200
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
201
|
+
* you may not use this file except in compliance with the License.
|
|
202
|
+
* You may obtain a copy of the License at
|
|
203
|
+
*
|
|
204
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
205
|
+
*
|
|
206
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
207
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
208
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
209
|
+
* See the License for the specific language governing permissions and
|
|
210
|
+
* limitations under the License.
|
|
211
|
+
*/
|
|
212
|
+
var TabEnum;
|
|
213
|
+
(function (TabEnum) {
|
|
214
|
+
TabEnum["CASE"] = "case";
|
|
215
|
+
TabEnum["SEARCH"] = "search";
|
|
216
|
+
TabEnum["LIST"] = "list";
|
|
217
|
+
TabEnum["TABS"] = "tabs";
|
|
218
|
+
})(TabEnum || (TabEnum = {}));
|
|
219
|
+
|
|
220
|
+
/*
|
|
221
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
222
|
+
*
|
|
223
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
224
|
+
* you may not use this file except in compliance with the License.
|
|
225
|
+
* You may obtain a copy of the License at
|
|
226
|
+
*
|
|
227
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
228
|
+
*
|
|
229
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
230
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
231
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
232
|
+
* See the License for the specific language governing permissions and
|
|
233
|
+
* limitations under the License.
|
|
234
|
+
*/
|
|
235
|
+
|
|
236
|
+
/*
|
|
237
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
238
|
+
*
|
|
239
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
240
|
+
* you may not use this file except in compliance with the License.
|
|
241
|
+
* You may obtain a copy of the License at
|
|
242
|
+
*
|
|
243
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
244
|
+
*
|
|
245
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
246
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
247
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
248
|
+
* See the License for the specific language governing permissions and
|
|
249
|
+
* limitations under the License.
|
|
250
|
+
*/
|
|
251
|
+
class TabService {
|
|
252
|
+
get currentTab$() {
|
|
253
|
+
return this._currentTab$.asObservable();
|
|
254
|
+
}
|
|
255
|
+
set currentTab(tab) {
|
|
256
|
+
this._currentTab$.next(tab);
|
|
257
|
+
}
|
|
258
|
+
get configuredContentKeys$() {
|
|
259
|
+
return this._configuredContentKeys$.asObservable();
|
|
260
|
+
}
|
|
261
|
+
set configuredContentKeys(value) {
|
|
262
|
+
this._configuredContentKeys$.next(value);
|
|
263
|
+
}
|
|
264
|
+
constructor(caseTabConfig, formService, translateService) {
|
|
265
|
+
this.caseTabConfig = caseTabConfig;
|
|
266
|
+
this.formService = formService;
|
|
267
|
+
this.translateService = translateService;
|
|
268
|
+
this._currentTab$ = new BehaviorSubject(TabEnum.CASE);
|
|
269
|
+
this._configuredContentKeys$ = new BehaviorSubject([]);
|
|
270
|
+
this.formDefinitions$ = this.formService
|
|
271
|
+
.getAllFormDefinitions()
|
|
272
|
+
.pipe(map((formDefinitions) => formDefinitions.map((formDefinition) => ({
|
|
273
|
+
contentKey: formDefinition.name,
|
|
274
|
+
content: formDefinition.name,
|
|
275
|
+
selected: false,
|
|
276
|
+
}))));
|
|
277
|
+
this.customComponentKeys$ = new BehaviorSubject(!this.caseTabConfig
|
|
278
|
+
? []
|
|
279
|
+
: Object.keys(this.caseTabConfig).map((contentKey) => ({
|
|
280
|
+
contentKey,
|
|
281
|
+
content: contentKey,
|
|
282
|
+
selected: false,
|
|
283
|
+
})));
|
|
284
|
+
this.defaultTabs$ = this.translateService.stream('key').pipe(map(() => Object.values(DefaultTabs).map((key) => ({
|
|
285
|
+
contentKey: key,
|
|
286
|
+
content: this.translateService.instant(`dossier.tabs.${key}`),
|
|
287
|
+
selected: false,
|
|
288
|
+
}))));
|
|
289
|
+
this.disableAddTabs$ = combineLatest([
|
|
290
|
+
this.configuredContentKeys$,
|
|
291
|
+
this.formDefinitions$,
|
|
292
|
+
this.defaultTabs$,
|
|
293
|
+
this.customComponentKeys$,
|
|
294
|
+
]).pipe(map(([tabKeys, formDefinitions, defaultTabs, customComponentKeys]) => ({
|
|
295
|
+
standard: defaultTabs.every((tabItem) => tabKeys.includes(tabItem.contentKey)),
|
|
296
|
+
custom: !customComponentKeys.length ||
|
|
297
|
+
customComponentKeys.every((tabItem) => tabKeys.includes(tabItem.contentKey)),
|
|
298
|
+
formIO: !formDefinitions.length ||
|
|
299
|
+
formDefinitions.every((tabItem) => tabKeys.includes(tabItem.contentKey)),
|
|
300
|
+
})));
|
|
301
|
+
}
|
|
302
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabService, deps: [{ token: CASE_TAB_TOKEN, optional: true }, { token: i1$2.FormService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
303
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabService, providedIn: 'root' }); }
|
|
304
|
+
}
|
|
305
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabService, decorators: [{
|
|
306
|
+
type: Injectable,
|
|
307
|
+
args: [{
|
|
308
|
+
providedIn: 'root',
|
|
309
|
+
}]
|
|
310
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
311
|
+
type: Optional
|
|
312
|
+
}, {
|
|
313
|
+
type: Inject,
|
|
314
|
+
args: [CASE_TAB_TOKEN]
|
|
315
|
+
}] }, { type: i1$2.FormService }, { type: i3.TranslateService }]; } });
|
|
316
|
+
|
|
317
|
+
class TabManagementService {
|
|
318
|
+
constructor(configService, http) {
|
|
319
|
+
this.configService = configService;
|
|
320
|
+
this.http = http;
|
|
321
|
+
this.tabs$ = new BehaviorSubject([]);
|
|
322
|
+
this.loading$ = new BehaviorSubject(false);
|
|
323
|
+
this._valtimoEndpointUri = `${this.configService.config.valtimoApi.endpointUri}management/v1/case-definition`;
|
|
324
|
+
}
|
|
325
|
+
loadTabs() {
|
|
326
|
+
this.loading$.next(true);
|
|
327
|
+
this.getTabList()
|
|
328
|
+
.pipe(take(1))
|
|
329
|
+
.subscribe({
|
|
330
|
+
next: (items) => {
|
|
331
|
+
this.tabs$.next(items);
|
|
332
|
+
this.loading$.next(false);
|
|
333
|
+
},
|
|
334
|
+
error: error => {
|
|
335
|
+
console.error(error);
|
|
336
|
+
},
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
dispatchAction(actionResult) {
|
|
340
|
+
actionResult
|
|
341
|
+
.pipe(tap$1(() => {
|
|
342
|
+
this.loading$.next(true);
|
|
343
|
+
this.tabs$.next([]);
|
|
344
|
+
}), switchMap((result) => Array.isArray(result) ? of(result) : this.getTabList()), take(1), catchError(error => of(error)))
|
|
345
|
+
.subscribe({
|
|
346
|
+
next: (tabs) => {
|
|
347
|
+
this.loading$.next(false);
|
|
348
|
+
this.tabs$.next(tabs);
|
|
349
|
+
},
|
|
350
|
+
error: error => {
|
|
351
|
+
console.log(error);
|
|
352
|
+
},
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
addTab(tab) {
|
|
356
|
+
return this.http.post(`${this._valtimoEndpointUri}/${this._caseDefinitionId}/tab`, this.getTabDto(tab));
|
|
357
|
+
}
|
|
358
|
+
deleteTab(tabKey) {
|
|
359
|
+
return this.http.delete(`${this._valtimoEndpointUri}/${this._caseDefinitionId}/tab/${tabKey}`);
|
|
360
|
+
}
|
|
361
|
+
editTab(tab, tabKey) {
|
|
362
|
+
return this.http.put(`${this._valtimoEndpointUri}/${this._caseDefinitionId}/tab/${tabKey}`, this.getTabDto(tab));
|
|
363
|
+
}
|
|
364
|
+
editTabsOrder(tabList) {
|
|
365
|
+
return this.http.put(`${this._valtimoEndpointUri}/${this._caseDefinitionId}/tab`, tabList);
|
|
366
|
+
}
|
|
367
|
+
setCaseDefinitionId(caseDefinitionId) {
|
|
368
|
+
this._caseDefinitionId = caseDefinitionId;
|
|
369
|
+
}
|
|
370
|
+
getTabList() {
|
|
371
|
+
return this.http.get(`${this._valtimoEndpointUri}/${this._caseDefinitionId}/tab`);
|
|
372
|
+
}
|
|
373
|
+
getTabDto(tab) {
|
|
374
|
+
if (tab.name === '') {
|
|
375
|
+
delete tab.name;
|
|
376
|
+
}
|
|
377
|
+
return tab;
|
|
378
|
+
}
|
|
379
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabManagementService, deps: [{ token: i1$3.ConfigService }, { token: i2$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
380
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabManagementService }); }
|
|
381
|
+
}
|
|
382
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabManagementService, decorators: [{
|
|
383
|
+
type: Injectable
|
|
384
|
+
}], ctorParameters: function () { return [{ type: i1$3.ConfigService }, { type: i2$2.HttpClient }]; } });
|
|
385
|
+
|
|
386
|
+
/*
|
|
387
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
388
|
+
*
|
|
389
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
390
|
+
* you may not use this file except in compliance with the License.
|
|
391
|
+
* You may obtain a copy of the License at
|
|
392
|
+
*
|
|
393
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
394
|
+
*
|
|
395
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
396
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
397
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
398
|
+
* See the License for the specific language governing permissions and
|
|
399
|
+
* limitations under the License.
|
|
400
|
+
*/
|
|
401
|
+
|
|
111
402
|
/*
|
|
112
403
|
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
113
404
|
*
|
|
@@ -148,13 +439,13 @@ class DossierManagementRemoveModalComponent {
|
|
|
148
439
|
this.errors = result.errors;
|
|
149
440
|
});
|
|
150
441
|
}
|
|
151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementRemoveModalComponent, deps: [{ token: i1
|
|
152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementRemoveModalComponent, selector: "valtimo-dossier-management-remove-modal", viewQueries: [{ propertyName: "modal", first: true, predicate: ["documentDefinitionRemoveModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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-modal\n #documentDefinitionRemoveModal\n elementId=\"documentDefinitionRemoveModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"{{ 'Remove document definition' | translate }}\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <div class=\"alert alert-contrast alert-danger mt-2\" role=\"alert\">\n <div class=\"icon\"><span class=\"mdi mdi-alert-triangle\"></span></div>\n <div\n class=\"message\"\n [innerHTML]=\"'remove-document-definition-confirmation' | translate\"\n ></div>\n </div>\n <div *ngIf=\"errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of errors\">\n {{ error }}\n </li>\n </ol>\n </div>\n </div>\n <div footer>\n <button (click)=\"removeDocumentDefinition()\" class=\"btn btn-primary\" data-dismiss=\"modal\">\n {{ 'remove-document-definition-confirmation-button' | translate }}\n </button>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type:
|
|
442
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementRemoveModalComponent, deps: [{ token: i1.DocumentService }, { token: i3$1.ToastrService }, { token: i2.Router }, { token: i3.TranslateService }, { token: i6.MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
443
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementRemoveModalComponent, selector: "valtimo-dossier-management-remove-modal", viewQueries: [{ propertyName: "modal", first: true, predicate: ["documentDefinitionRemoveModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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-modal\n #documentDefinitionRemoveModal\n elementId=\"documentDefinitionRemoveModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"{{ 'Remove document definition' | translate }}\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <div class=\"alert alert-contrast alert-danger mt-2\" role=\"alert\">\n <div class=\"icon\"><span class=\"mdi mdi-alert-triangle\"></span></div>\n <div\n class=\"message\"\n [innerHTML]=\"'remove-document-definition-confirmation' | translate\"\n ></div>\n </div>\n <div *ngIf=\"errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of errors\">\n {{ error }}\n </li>\n </ol>\n </div>\n </div>\n <div footer>\n <button (click)=\"removeDocumentDefinition()\" class=\"btn btn-primary\" data-dismiss=\"modal\">\n {{ 'remove-document-definition-confirmation-button' | translate }}\n </button>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
153
444
|
}
|
|
154
445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementRemoveModalComponent, decorators: [{
|
|
155
446
|
type: Component,
|
|
156
447
|
args: [{ selector: 'valtimo-dossier-management-remove-modal', template: "<!--\n ~ Copyright 2015-2023 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-modal\n #documentDefinitionRemoveModal\n elementId=\"documentDefinitionRemoveModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"{{ 'Remove document definition' | translate }}\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <div class=\"alert alert-contrast alert-danger mt-2\" role=\"alert\">\n <div class=\"icon\"><span class=\"mdi mdi-alert-triangle\"></span></div>\n <div\n class=\"message\"\n [innerHTML]=\"'remove-document-definition-confirmation' | translate\"\n ></div>\n </div>\n <div *ngIf=\"errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of errors\">\n {{ error }}\n </li>\n </ol>\n </div>\n </div>\n <div footer>\n <button (click)=\"removeDocumentDefinition()\" class=\"btn btn-primary\" data-dismiss=\"modal\">\n {{ 'remove-document-definition-confirmation-button' | translate }}\n </button>\n </div>\n</valtimo-modal>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
|
|
157
|
-
}], ctorParameters: function () { return [{ type: i1
|
|
448
|
+
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i3$1.ToastrService }, { type: i2.Router }, { type: i3.TranslateService }, { type: i6.MenuService }]; }, propDecorators: { modal: [{
|
|
158
449
|
type: ViewChild,
|
|
159
450
|
args: ['documentDefinitionRemoveModal']
|
|
160
451
|
}] } });
|
|
@@ -205,425 +496,32 @@ class DossierManagementLinkProcessComponent {
|
|
|
205
496
|
this.selectionId$.next(processLink.processDefinitionKey);
|
|
206
497
|
this.disabled$.next(false);
|
|
207
498
|
});
|
|
208
|
-
}
|
|
209
|
-
else if (!processDefinitionKey) {
|
|
210
|
-
this.documentService.deleteLinkedUploadProcess(this.documentDefinitionName).subscribe(() => {
|
|
211
|
-
this.disabled$.next(false);
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
setDocumentenApiUploaderProvider(config) {
|
|
216
|
-
this.documentenApiUploadProvider = config.uploadProvider === UploadProvider.DOCUMENTEN_API;
|
|
217
|
-
}
|
|
218
|
-
getDefaultSelection() {
|
|
219
|
-
this.documentService
|
|
220
|
-
.getLinkedUploadProcess(this.documentDefinitionName)
|
|
221
|
-
.subscribe(linkedUploadProcess => {
|
|
222
|
-
if (linkedUploadProcess) {
|
|
223
|
-
this.selectionId$.next(linkedUploadProcess.processDefinitionKey);
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementLinkProcessComponent, deps: [{ token: i1$
|
|
228
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementLinkProcessComponent, selector: "valtimo-dossier-management-link-process", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProvider\">\n <h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n defaultSelectionId: selectionId$ | async\n } as obs\"\n >\n <v-select\n *ngIf=\"obs.processItems\"\n (selectedChange)=\"selectProcess($event)\"\n [defaultSelectionId]=\"obs.defaultSelectionId\"\n [disabled]=\"obs.disabled\"\n [items]=\"obs.processItems\"\n [loading]=\"!obs.processItems\"\n [margin]=\"true\"\n [required]=\"false\"\n ></v-select>\n </ng-container>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type:
|
|
229
|
-
}
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementLinkProcessComponent, decorators: [{
|
|
231
|
-
type: Component,
|
|
232
|
-
args: [{ selector: 'valtimo-dossier-management-link-process', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProvider\">\n <h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n defaultSelectionId: selectionId$ | async\n } as obs\"\n >\n <v-select\n *ngIf=\"obs.processItems\"\n (selectedChange)=\"selectProcess($event)\"\n [defaultSelectionId]=\"obs.defaultSelectionId\"\n [disabled]=\"obs.disabled\"\n [items]=\"obs.processItems\"\n [loading]=\"!obs.processItems\"\n [margin]=\"true\"\n [required]=\"false\"\n ></v-select>\n </ng-container>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
|
|
233
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
234
|
-
|
|
235
|
-
/*
|
|
236
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
237
|
-
*
|
|
238
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
239
|
-
* you may not use this file except in compliance with the License.
|
|
240
|
-
* You may obtain a copy of the License at
|
|
241
|
-
*
|
|
242
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
243
|
-
*
|
|
244
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
245
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
246
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
247
|
-
* See the License for the specific language governing permissions and
|
|
248
|
-
* limitations under the License.
|
|
249
|
-
*/
|
|
250
|
-
class DossierManagementAssigneeComponent {
|
|
251
|
-
constructor(documentService, route) {
|
|
252
|
-
this.documentService = documentService;
|
|
253
|
-
this.route = route;
|
|
254
|
-
this.disabled$ = new BehaviorSubject(false);
|
|
255
|
-
this._refresh$ = new BehaviorSubject(null);
|
|
256
|
-
this.loading$ = new BehaviorSubject(true);
|
|
257
|
-
this.documentDefinitionName$ = this.route.params.pipe(map(params => params.name || ''));
|
|
258
|
-
this.currentValue$ = this._refresh$.pipe(switchMap(() => this.documentDefinitionName$), switchMap(documentDefinitionName => this.documentService.getCaseSettingsForManagement(documentDefinitionName)), tap(() => this.loading$.next(false)));
|
|
259
|
-
this.disabled$ = new BehaviorSubject(false);
|
|
260
|
-
}
|
|
261
|
-
updateCaseSettings(caseSettings, documentDefinitionName) {
|
|
262
|
-
this.disableInput();
|
|
263
|
-
this.documentService
|
|
264
|
-
.patchCaseSettingsForManagement(documentDefinitionName, caseSettings)
|
|
265
|
-
.subscribe(() => {
|
|
266
|
-
this.enableInput();
|
|
267
|
-
this.refreshSettings();
|
|
268
|
-
}, () => {
|
|
269
|
-
this.enableInput();
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
disableInput() {
|
|
273
|
-
this.disabled$.next(true);
|
|
274
|
-
}
|
|
275
|
-
enableInput() {
|
|
276
|
-
this.disabled$.next(false);
|
|
277
|
-
}
|
|
278
|
-
refreshSettings() {
|
|
279
|
-
this._refresh$.next(null);
|
|
280
|
-
}
|
|
281
|
-
toggleAssignee(currentSettings, documentDefinitionName) {
|
|
282
|
-
this.updateCaseSettings({
|
|
283
|
-
canHaveAssignee: !currentSettings.canHaveAssignee,
|
|
284
|
-
autoAssignTasks: currentSettings.autoAssignTasks,
|
|
285
|
-
}, documentDefinitionName);
|
|
286
|
-
}
|
|
287
|
-
toggleTaskAssignment(currentSettings, documentDefinitionName) {
|
|
288
|
-
this.updateCaseSettings({
|
|
289
|
-
canHaveAssignee: currentSettings.canHaveAssignee,
|
|
290
|
-
autoAssignTasks: !currentSettings.autoAssignTasks,
|
|
291
|
-
}, documentDefinitionName);
|
|
292
|
-
}
|
|
293
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementAssigneeComponent, deps: [{ token: i1$1.DocumentService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
294
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementAssigneeComponent, selector: "valtimo-dossier-management-assignee", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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<h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.toggleAssignee.title' | translate }}</h2>\n\n<ng-container\n *ngIf=\"{\n currentValue: currentValue$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.canHaveAssignee\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleAssignee(obs.currentValue, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.toggleAssignee.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n <ng-container *ngIf=\"obs.currentValue.canHaveAssignee\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.autoAssignTasks\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleTaskAssignment(obs.currentValue, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.toggleAutoAssignTasks.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n</ng-container>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
|
|
295
|
-
}
|
|
296
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementAssigneeComponent, decorators: [{
|
|
297
|
-
type: Component,
|
|
298
|
-
args: [{ selector: 'valtimo-dossier-management-assignee', template: "<!--\n ~ Copyright 2015-2023 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<h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.toggleAssignee.title' | translate }}</h2>\n\n<ng-container\n *ngIf=\"{\n currentValue: currentValue$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.canHaveAssignee\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleAssignee(obs.currentValue, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.toggleAssignee.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n <ng-container *ngIf=\"obs.currentValue.canHaveAssignee\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.autoAssignTasks\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleTaskAssignment(obs.currentValue, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.toggleAutoAssignTasks.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n</ng-container>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n" }]
|
|
299
|
-
}], ctorParameters: function () { return [{ type: i1$1.DocumentService }, { type: i2.ActivatedRoute }]; } });
|
|
300
|
-
|
|
301
|
-
/*
|
|
302
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
303
|
-
*
|
|
304
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
305
|
-
* you may not use this file except in compliance with the License.
|
|
306
|
-
* You may obtain a copy of the License at
|
|
307
|
-
*
|
|
308
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
309
|
-
*
|
|
310
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
311
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
312
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
313
|
-
* See the License for the specific language governing permissions and
|
|
314
|
-
* limitations under the License.
|
|
315
|
-
*/
|
|
316
|
-
class DossierManagementDetailComponent {
|
|
317
|
-
constructor(documentService, route, alertService) {
|
|
318
|
-
this.documentService = documentService;
|
|
319
|
-
this.route = route;
|
|
320
|
-
this.alertService = alertService;
|
|
321
|
-
this.documentDefinitionName = null;
|
|
322
|
-
this.documentDefinition = null;
|
|
323
|
-
this.processDocumentDefinitions = [];
|
|
324
|
-
this.documentDefinitionName = this.route.snapshot.paramMap.get('name');
|
|
325
|
-
}
|
|
326
|
-
ngOnInit() {
|
|
327
|
-
this.loadDocumentDefinition();
|
|
328
|
-
this.loadProcessDocumentDefinitions();
|
|
329
|
-
}
|
|
330
|
-
loadProcessDocumentDefinitions() {
|
|
331
|
-
this.documentService
|
|
332
|
-
.findProcessDocumentDefinitions(this.documentDefinitionName)
|
|
333
|
-
.subscribe((processDocumentDefinitions) => {
|
|
334
|
-
this.processDocumentDefinitions = processDocumentDefinitions;
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
loadDocumentDefinition() {
|
|
338
|
-
this.documentService
|
|
339
|
-
.getDocumentDefinitionForManagement(this.documentDefinitionName)
|
|
340
|
-
.subscribe((documentDefinition) => {
|
|
341
|
-
this.documentDefinition = documentDefinition;
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
openDossierConnectModal() {
|
|
345
|
-
this.dossierConnectModal.openModal(this.documentDefinition);
|
|
346
|
-
}
|
|
347
|
-
openDossierRemoveModal() {
|
|
348
|
-
this.dossierRemoveModal.openModal(this.documentDefinition);
|
|
349
|
-
}
|
|
350
|
-
deleteProcessDocumentDefinition(processDocumentDefinition) {
|
|
351
|
-
this.documentService
|
|
352
|
-
.deleteProcessDocumentDefinition({
|
|
353
|
-
documentDefinitionName: processDocumentDefinition.id.documentDefinitionId.name,
|
|
354
|
-
processDefinitionKey: processDocumentDefinition.id.processDefinitionKey,
|
|
355
|
-
canInitializeDocument: processDocumentDefinition.canInitializeDocument,
|
|
356
|
-
startableByUser: processDocumentDefinition.startableByUser,
|
|
357
|
-
})
|
|
358
|
-
.subscribe(() => {
|
|
359
|
-
this.alertService.success('Successfully deleted process document definition');
|
|
360
|
-
this.loadProcessDocumentDefinitions();
|
|
361
|
-
}, () => {
|
|
362
|
-
this.alertService.error('Failed to delete process document definition');
|
|
363
|
-
});
|
|
364
|
-
}
|
|
365
|
-
downloadDefinition() {
|
|
366
|
-
const definition = this.documentDefinition;
|
|
367
|
-
const dataString = 'data:text/json;charset=utf-8,' +
|
|
368
|
-
encodeURIComponent(JSON.stringify(definition.schema, null, 2));
|
|
369
|
-
const downloadAnchorElement = document.getElementById('downloadAnchorElement');
|
|
370
|
-
downloadAnchorElement.setAttribute('href', dataString);
|
|
371
|
-
downloadAnchorElement.setAttribute('download', `${definition.id.name}-v${definition.id.version}.json`);
|
|
372
|
-
downloadAnchorElement.click();
|
|
373
|
-
}
|
|
374
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementDetailComponent, deps: [{ token: i1$1.DocumentService }, { token: i2.ActivatedRoute }, { token: i6$1.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
375
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementDetailComponent, selector: "valtimo-dossier-management-detail", viewQueries: [{ propertyName: "dossierConnectModal", first: true, predicate: ["dossierConnectModal"], descendants: true }, { propertyName: "dossierRemoveModal", first: true, predicate: ["dossierRemoveModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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 id=\"management-datail-content\" class=\"pt-0\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <div class=\"clearfix\"></div>\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n</div>\n\n<ng-template #widget>\n <valtimo-widget *ngIf=\"documentDefinition\">\n <div class=\"row bg-white mt-5 mb-2 pl-2 pr-2\">\n <div class=\"col-5\">\n <h2>{{ 'document definition' | translate }}</h2>\n </div>\n <div class=\"col-5 offset-2\">\n <h2>{{ 'dossierManagement.connectedProcesses' | translate }}</h2>\n </div>\n </div>\n <div class=\"row bg-white mb-5 pb-4 pl-2 pr-2\">\n <div class=\"col-5 bg-red\">\n <textarea class=\"w-100 dossier-schema\" disabled rows=\"25\"\n >{{ documentDefinition | json }}\n </textarea\n >\n </div>\n <div class=\"col-5 offset-2 bg-blue\">\n <div\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"input-group mb-5\"\n >\n <div class=\"input-group-prepend w-75\">\n <button\n (click)=\"deleteProcessDocumentDefinition(processDocumentDefinition)\"\n class=\"btn btn-danger\"\n data-placement=\"left\"\n data-toggle=\"tooltip\"\n title=\"Delete this connected process\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n </button>\n <input\n [value]=\"\n processDocumentDefinition.processName\n ? processDocumentDefinition.processName\n : '' + ' (' + processDocumentDefinition.id.processDefinitionKey + ')'\n \"\n class=\"form-control\"\n disabled\n type=\"text\"\n />\n </div>\n <div class=\"row mb-2 mt-2\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.canInitializeDocument\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.startableByUser\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div class=\"text-right mt-5 mb-5\">\n <button (click)=\"openDossierConnectModal()\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-plus mr-1\"></i\n >{{ 'dossierManagement.connectProcess' | translate }}\n </button>\n </div>\n <valtimo-dossier-management-link-process></valtimo-dossier-management-link-process\n ><valtimo-extension\n module=\"dossier-management\"\n page=\"dossier\"\n section=\"right-panel\"\n ></valtimo-extension>\n <valtimo-dossier-management-assignee></valtimo-dossier-management-assignee>\n </div>\n </div>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #buttons>\n <div *ngIf=\"documentDefinition\" class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <button (click)=\"downloadDefinition()\" class=\"btn btn-primary btn-space\">\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'Download document definition' | translate }}\n </button>\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n <button\n (click)=\"openDossierRemoveModal()\"\n *ngIf=\"!this.documentDefinition.readOnly\"\n class=\"btn btn-secondary btn-space mr-0\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n {{ 'Remove document definition' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-connect-modal\n #dossierConnectModal\n (reloadProcessDocumentDefinitions)=\"loadProcessDocumentDefinitions()\"\n></valtimo-dossier-management-connect-modal>\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n", styles: ["/*!\n * Copyright 2015-2023 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 */.row{margin:0}.dossier-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6$1.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i1$2.ExtensionComponent, selector: "valtimo-extension", inputs: ["module", "page", "section"] }, { kind: "directive", type: i7.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: DossierManagementConnectModalComponent, selector: "valtimo-dossier-management-connect-modal", outputs: ["reloadProcessDocumentDefinitions"] }, { kind: "component", type: DossierManagementRemoveModalComponent, selector: "valtimo-dossier-management-remove-modal" }, { kind: "component", type: DossierManagementLinkProcessComponent, selector: "valtimo-dossier-management-link-process" }, { kind: "component", type: DossierManagementAssigneeComponent, selector: "valtimo-dossier-management-assignee" }, { kind: "pipe", type: i6.JsonPipe, name: "json" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
|
|
376
|
-
}
|
|
377
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementDetailComponent, decorators: [{
|
|
378
|
-
type: Component,
|
|
379
|
-
args: [{ selector: 'valtimo-dossier-management-detail', template: "<!--\n ~ Copyright 2015-2023 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 id=\"management-datail-content\" class=\"pt-0\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <div class=\"clearfix\"></div>\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n</div>\n\n<ng-template #widget>\n <valtimo-widget *ngIf=\"documentDefinition\">\n <div class=\"row bg-white mt-5 mb-2 pl-2 pr-2\">\n <div class=\"col-5\">\n <h2>{{ 'document definition' | translate }}</h2>\n </div>\n <div class=\"col-5 offset-2\">\n <h2>{{ 'dossierManagement.connectedProcesses' | translate }}</h2>\n </div>\n </div>\n <div class=\"row bg-white mb-5 pb-4 pl-2 pr-2\">\n <div class=\"col-5 bg-red\">\n <textarea class=\"w-100 dossier-schema\" disabled rows=\"25\"\n >{{ documentDefinition | json }}\n </textarea\n >\n </div>\n <div class=\"col-5 offset-2 bg-blue\">\n <div\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"input-group mb-5\"\n >\n <div class=\"input-group-prepend w-75\">\n <button\n (click)=\"deleteProcessDocumentDefinition(processDocumentDefinition)\"\n class=\"btn btn-danger\"\n data-placement=\"left\"\n data-toggle=\"tooltip\"\n title=\"Delete this connected process\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n </button>\n <input\n [value]=\"\n processDocumentDefinition.processName\n ? processDocumentDefinition.processName\n : '' + ' (' + processDocumentDefinition.id.processDefinitionKey + ')'\n \"\n class=\"form-control\"\n disabled\n type=\"text\"\n />\n </div>\n <div class=\"row mb-2 mt-2\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.canInitializeDocument\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.startableByUser\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div class=\"text-right mt-5 mb-5\">\n <button (click)=\"openDossierConnectModal()\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-plus mr-1\"></i\n >{{ 'dossierManagement.connectProcess' | translate }}\n </button>\n </div>\n <valtimo-dossier-management-link-process></valtimo-dossier-management-link-process\n ><valtimo-extension\n module=\"dossier-management\"\n page=\"dossier\"\n section=\"right-panel\"\n ></valtimo-extension>\n <valtimo-dossier-management-assignee></valtimo-dossier-management-assignee>\n </div>\n </div>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #buttons>\n <div *ngIf=\"documentDefinition\" class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <button (click)=\"downloadDefinition()\" class=\"btn btn-primary btn-space\">\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'Download document definition' | translate }}\n </button>\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n <button\n (click)=\"openDossierRemoveModal()\"\n *ngIf=\"!this.documentDefinition.readOnly\"\n class=\"btn btn-secondary btn-space mr-0\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n {{ 'Remove document definition' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-connect-modal\n #dossierConnectModal\n (reloadProcessDocumentDefinitions)=\"loadProcessDocumentDefinitions()\"\n></valtimo-dossier-management-connect-modal>\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n", styles: ["/*!\n * Copyright 2015-2023 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 */.row{margin:0}.dossier-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n"] }]
|
|
380
|
-
}], ctorParameters: function () { return [{ type: i1$1.DocumentService }, { type: i2.ActivatedRoute }, { type: i6$1.AlertService }]; }, propDecorators: { dossierConnectModal: [{
|
|
381
|
-
type: ViewChild,
|
|
382
|
-
args: ['dossierConnectModal']
|
|
383
|
-
}], dossierRemoveModal: [{
|
|
384
|
-
type: ViewChild,
|
|
385
|
-
args: ['dossierRemoveModal']
|
|
386
|
-
}] } });
|
|
387
|
-
|
|
388
|
-
/*
|
|
389
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
390
|
-
*
|
|
391
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
392
|
-
* you may not use this file except in compliance with the License.
|
|
393
|
-
* You may obtain a copy of the License at
|
|
394
|
-
*
|
|
395
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
396
|
-
*
|
|
397
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
398
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
399
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
400
|
-
* See the License for the specific language governing permissions and
|
|
401
|
-
* limitations under the License.
|
|
402
|
-
*/
|
|
403
|
-
class DossierManagementUploadComponent {
|
|
404
|
-
constructor(documentService, translateService, menuService) {
|
|
405
|
-
this.documentService = documentService;
|
|
406
|
-
this.translateService = translateService;
|
|
407
|
-
this.menuService = menuService;
|
|
408
|
-
this.definitionUploaded = new EventEmitter();
|
|
409
|
-
this.clear$ = new Subject();
|
|
410
|
-
this.jsonString$ = new BehaviorSubject('');
|
|
411
|
-
this.error$ = new BehaviorSubject('');
|
|
412
|
-
this.disabled$ = new BehaviorSubject(false);
|
|
413
|
-
this.file$ = new BehaviorSubject(undefined);
|
|
414
|
-
}
|
|
415
|
-
ngAfterViewInit() {
|
|
416
|
-
this.openShowSubscription();
|
|
417
|
-
this.openFileSubscription();
|
|
418
|
-
}
|
|
419
|
-
ngOnDestroy() {
|
|
420
|
-
this.showSubscription.unsubscribe();
|
|
421
|
-
this.fileSubscription.unsubscribe();
|
|
422
|
-
this.closeErrorSubscription();
|
|
423
|
-
}
|
|
424
|
-
setFile(file) {
|
|
425
|
-
this.clearError();
|
|
426
|
-
this.file$.next(file);
|
|
427
|
-
}
|
|
428
|
-
uploadDefinition() {
|
|
429
|
-
this.disable();
|
|
430
|
-
this.jsonString$
|
|
431
|
-
.pipe(switchMap$1(jsonString => this.documentService
|
|
432
|
-
.createDocumentDefinitionForManagement(new DocumentDefinitionCreateRequest(jsonString))
|
|
433
|
-
.pipe(tap(
|
|
434
|
-
// success
|
|
435
|
-
() => {
|
|
436
|
-
this.closeErrorSubscription();
|
|
437
|
-
this.clearError();
|
|
438
|
-
this.enable();
|
|
439
|
-
this.hideModal();
|
|
440
|
-
this.menuService.reload();
|
|
441
|
-
this.definitionUploaded.emit();
|
|
442
|
-
},
|
|
443
|
-
// error
|
|
444
|
-
() => {
|
|
445
|
-
this.openErrorSubscription('dropzone.error.invalidDocDef');
|
|
446
|
-
this.enable();
|
|
447
|
-
}))), take(1))
|
|
448
|
-
.subscribe();
|
|
449
|
-
}
|
|
450
|
-
openErrorSubscription(errorCode) {
|
|
451
|
-
this.closeErrorSubscription();
|
|
452
|
-
this.errorSubscription = this.translateService.stream(errorCode).subscribe(error => {
|
|
453
|
-
this.error$.next(error);
|
|
454
|
-
});
|
|
455
|
-
}
|
|
456
|
-
closeErrorSubscription() {
|
|
457
|
-
if (this.errorSubscription) {
|
|
458
|
-
this.errorSubscription.unsubscribe();
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
clearError() {
|
|
462
|
-
this.error$.next('');
|
|
463
|
-
}
|
|
464
|
-
openFileSubscription() {
|
|
465
|
-
this.fileSubscription = this.file$.subscribe(file => {
|
|
466
|
-
if (file) {
|
|
467
|
-
const reader = new FileReader();
|
|
468
|
-
reader.onloadend = () => {
|
|
469
|
-
const result = reader.result.toString();
|
|
470
|
-
if (this.stringIsValidJson(result)) {
|
|
471
|
-
this.jsonString$.next(result);
|
|
472
|
-
}
|
|
473
|
-
else {
|
|
474
|
-
this.clearJsonString();
|
|
475
|
-
this.error$.next(this.translateService.instant('dropzone.error.invalidJson'));
|
|
476
|
-
}
|
|
477
|
-
};
|
|
478
|
-
reader.readAsText(file);
|
|
479
|
-
}
|
|
480
|
-
else {
|
|
481
|
-
this.clearJsonString();
|
|
482
|
-
}
|
|
483
|
-
});
|
|
484
|
-
}
|
|
485
|
-
openShowSubscription() {
|
|
486
|
-
this.showSubscription = this.show$.subscribe(show => {
|
|
487
|
-
if (show) {
|
|
488
|
-
this.showModal();
|
|
489
|
-
}
|
|
490
|
-
else {
|
|
491
|
-
this.hideModal();
|
|
492
|
-
}
|
|
493
|
-
this.clearJsonString();
|
|
494
|
-
this.clearError();
|
|
495
|
-
this.clearDropzone();
|
|
496
|
-
});
|
|
497
|
-
}
|
|
498
|
-
clearJsonString() {
|
|
499
|
-
this.jsonString$.next('');
|
|
500
|
-
}
|
|
501
|
-
clearDropzone() {
|
|
502
|
-
this.clear$.next(null);
|
|
503
|
-
}
|
|
504
|
-
showModal() {
|
|
505
|
-
this.modal.show();
|
|
506
|
-
}
|
|
507
|
-
hideModal() {
|
|
508
|
-
this.modal.hide();
|
|
509
|
-
}
|
|
510
|
-
stringIsValidJson(string) {
|
|
511
|
-
try {
|
|
512
|
-
JSON.parse(string);
|
|
513
|
-
}
|
|
514
|
-
catch (e) {
|
|
515
|
-
return false;
|
|
516
|
-
}
|
|
517
|
-
return true;
|
|
518
|
-
}
|
|
519
|
-
disable() {
|
|
520
|
-
this.disabled$.next(true);
|
|
521
|
-
}
|
|
522
|
-
enable() {
|
|
523
|
-
this.disabled$.next(false);
|
|
524
|
-
}
|
|
525
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementUploadComponent, deps: [{ token: i1$1.DocumentService }, { token: i3$1.TranslateService }, { token: i6$1.MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
526
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementUploadComponent, selector: "valtimo-dossier-management-upload", inputs: { show$: "show$" }, outputs: { definitionUploaded: "definitionUploaded" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["uploadDefinitionModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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-modal\n #uploadDefinitionModal\n [title]=\"'Upload document definition' | translate\"\n showFooter=\"true\"\n>\n <div class=\"mt-2\" body>\n <valtimo-dropzone\n [clear$]=\"clear$\"\n (fileSelected)=\"setFile($event)\"\n [disabled]=\"disabled$ | async\"\n [subtitle]=\"'dropzone.jsonDocDef' | translate\"\n [externalError$]=\"error$\"\n [maxFiles]=\"1\"\n ></valtimo-dropzone>\n </div>\n <div footer>\n <ng-container *ngIf=\"(jsonString$ | async) && (error$ | async) === ''; else disabledUpload\">\n <button [disabled]=\"disabled$ | async\" class=\"btn btn-primary\" (click)=\"uploadDefinition()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n </ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #disabledUpload>\n <button [disabled]=\"true\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "component", type: i6$1.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
|
|
527
|
-
}
|
|
528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementUploadComponent, decorators: [{
|
|
529
|
-
type: Component,
|
|
530
|
-
args: [{ selector: 'valtimo-dossier-management-upload', template: "<!--\n ~ Copyright 2015-2023 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-modal\n #uploadDefinitionModal\n [title]=\"'Upload document definition' | translate\"\n showFooter=\"true\"\n>\n <div class=\"mt-2\" body>\n <valtimo-dropzone\n [clear$]=\"clear$\"\n (fileSelected)=\"setFile($event)\"\n [disabled]=\"disabled$ | async\"\n [subtitle]=\"'dropzone.jsonDocDef' | translate\"\n [externalError$]=\"error$\"\n [maxFiles]=\"1\"\n ></valtimo-dropzone>\n </div>\n <div footer>\n <ng-container *ngIf=\"(jsonString$ | async) && (error$ | async) === ''; else disabledUpload\">\n <button [disabled]=\"disabled$ | async\" class=\"btn btn-primary\" (click)=\"uploadDefinition()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n </ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #disabledUpload>\n <button [disabled]=\"true\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
|
|
531
|
-
}], ctorParameters: function () { return [{ type: i1$1.DocumentService }, { type: i3$1.TranslateService }, { type: i6$1.MenuService }]; }, propDecorators: { show$: [{
|
|
532
|
-
type: Input
|
|
533
|
-
}], definitionUploaded: [{
|
|
534
|
-
type: Output
|
|
535
|
-
}], modal: [{
|
|
536
|
-
type: ViewChild,
|
|
537
|
-
args: ['uploadDefinitionModal']
|
|
538
|
-
}] } });
|
|
539
|
-
|
|
540
|
-
/*
|
|
541
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
542
|
-
*
|
|
543
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
544
|
-
* you may not use this file except in compliance with the License.
|
|
545
|
-
* You may obtain a copy of the License at
|
|
546
|
-
*
|
|
547
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
548
|
-
*
|
|
549
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
550
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
551
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
552
|
-
* See the License for the specific language governing permissions and
|
|
553
|
-
* limitations under the License.
|
|
554
|
-
*/
|
|
555
|
-
moment.locale(localStorage.getItem('langKey') || '');
|
|
556
|
-
class DossierManagementListComponent {
|
|
557
|
-
constructor(documentService, router) {
|
|
558
|
-
this.documentService = documentService;
|
|
559
|
-
this.router = router;
|
|
560
|
-
this.dossiers = [];
|
|
561
|
-
this.pagination = {
|
|
562
|
-
collectionSize: 0,
|
|
563
|
-
page: 1,
|
|
564
|
-
size: 10,
|
|
565
|
-
};
|
|
566
|
-
this.pageParam = 0;
|
|
567
|
-
this.dossierFields = [
|
|
568
|
-
{ key: 'schema.title', label: 'Title' },
|
|
569
|
-
{ key: 'createdOn', label: 'Created On' },
|
|
570
|
-
{ key: 'readOnly', label: 'Read-only' },
|
|
571
|
-
];
|
|
572
|
-
this.showModal$ = new BehaviorSubject(false);
|
|
573
|
-
}
|
|
574
|
-
paginationClicked(page) {
|
|
575
|
-
this.pageParam = page - 1;
|
|
576
|
-
this.getDocumentDefinitions();
|
|
577
|
-
}
|
|
578
|
-
paginationSet() {
|
|
579
|
-
this.getDocumentDefinitions();
|
|
580
|
-
}
|
|
581
|
-
redirectToDetails(documentDefinition) {
|
|
582
|
-
this.router.navigate(['/dossier-management/dossier', documentDefinition.id.name]);
|
|
583
|
-
}
|
|
584
|
-
getDocumentDefinitions() {
|
|
585
|
-
this.documentService
|
|
586
|
-
.queryDefinitionsForManagement({ page: this.pageParam, size: this.pagination.size })
|
|
587
|
-
.subscribe((documentDefinitionPage) => {
|
|
588
|
-
this.pagination.collectionSize = documentDefinitionPage.totalElements;
|
|
589
|
-
this.dossiers = documentDefinitionPage.content;
|
|
590
|
-
this.dossiers.map((dossier) => {
|
|
591
|
-
dossier.createdOn = moment(dossier.createdOn).format('DD MMM YYYY HH:mm');
|
|
592
|
-
});
|
|
593
|
-
});
|
|
594
|
-
}
|
|
595
|
-
showModal() {
|
|
596
|
-
this.showModal$.next(true);
|
|
597
|
-
}
|
|
598
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementListComponent, deps: [{ token: i1$1.DocumentService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
599
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementListComponent, selector: "valtimo-dossier-management-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class=\"btn btn-secondary btn-space mr-0\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload document definition' | translate }}\n </button>\n </div>\n <div class=\"clearfix\"></div>\n <valtimo-widget>\n <valtimo-list\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet()\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Dossiers' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Dossiers' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </div>\n</div>\n\n<valtimo-dossier-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"paginationSet()\"\n></valtimo-dossier-management-upload>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "component", type: i6$1.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i6$1.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: DossierManagementUploadComponent, selector: "valtimo-dossier-management-upload", inputs: ["show$"], outputs: ["definitionUploaded"] }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
|
|
600
|
-
}
|
|
601
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementListComponent, decorators: [{
|
|
602
|
-
type: Component,
|
|
603
|
-
args: [{ selector: 'valtimo-dossier-management-list', template: "<!--\n ~ Copyright 2015-2023 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=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class=\"btn btn-secondary btn-space mr-0\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload document definition' | translate }}\n </button>\n </div>\n <div class=\"clearfix\"></div>\n <valtimo-widget>\n <valtimo-list\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet()\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Dossiers' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Dossiers' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </div>\n</div>\n\n<valtimo-dossier-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"paginationSet()\"\n></valtimo-dossier-management-upload>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
|
|
604
|
-
}], ctorParameters: function () { return [{ type: i1$1.DocumentService }, { type: i2.Router }]; } });
|
|
605
|
-
|
|
606
|
-
/*
|
|
607
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
608
|
-
*
|
|
609
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
610
|
-
* you may not use this file except in compliance with the License.
|
|
611
|
-
* You may obtain a copy of the License at
|
|
612
|
-
*
|
|
613
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
614
|
-
*
|
|
615
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
616
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
617
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
618
|
-
* See the License for the specific language governing permissions and
|
|
619
|
-
* limitations under the License.
|
|
620
|
-
*/
|
|
621
|
-
var TabEnum;
|
|
622
|
-
(function (TabEnum) {
|
|
623
|
-
TabEnum["CASE"] = "case";
|
|
624
|
-
TabEnum["SEARCH"] = "search";
|
|
625
|
-
TabEnum["LIST"] = "list";
|
|
626
|
-
})(TabEnum || (TabEnum = {}));
|
|
499
|
+
}
|
|
500
|
+
else if (!processDefinitionKey) {
|
|
501
|
+
this.documentService.deleteLinkedUploadProcess(this.documentDefinitionName).subscribe(() => {
|
|
502
|
+
this.disabled$.next(false);
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
setDocumentenApiUploaderProvider(config) {
|
|
507
|
+
this.documentenApiUploadProvider = config.uploadProvider === UploadProvider.DOCUMENTEN_API;
|
|
508
|
+
}
|
|
509
|
+
getDefaultSelection() {
|
|
510
|
+
this.documentService
|
|
511
|
+
.getLinkedUploadProcess(this.documentDefinitionName)
|
|
512
|
+
.subscribe(linkedUploadProcess => {
|
|
513
|
+
if (linkedUploadProcess) {
|
|
514
|
+
this.selectionId$.next(linkedUploadProcess.processDefinitionKey);
|
|
515
|
+
}
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementLinkProcessComponent, deps: [{ token: i1$3.ConfigService }, { token: i1$1.ProcessService }, { token: i2.ActivatedRoute }, { token: i1.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
519
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementLinkProcessComponent, selector: "valtimo-dossier-management-link-process", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProvider\">\n <h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n defaultSelectionId: selectionId$ | async\n } as obs\"\n >\n <v-select\n *ngIf=\"obs.processItems\"\n (selectedChange)=\"selectProcess($event)\"\n [defaultSelectionId]=\"obs.defaultSelectionId\"\n [disabled]=\"obs.disabled\"\n [items]=\"obs.processItems\"\n [loading]=\"!obs.processItems\"\n [margin]=\"true\"\n [required]=\"false\"\n ></v-select>\n </ng-container>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "component", type: i6.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme"], outputs: ["selectedChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
520
|
+
}
|
|
521
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementLinkProcessComponent, decorators: [{
|
|
522
|
+
type: Component,
|
|
523
|
+
args: [{ selector: 'valtimo-dossier-management-link-process', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProvider\">\n <h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n defaultSelectionId: selectionId$ | async\n } as obs\"\n >\n <v-select\n *ngIf=\"obs.processItems\"\n (selectedChange)=\"selectProcess($event)\"\n [defaultSelectionId]=\"obs.defaultSelectionId\"\n [disabled]=\"obs.disabled\"\n [items]=\"obs.processItems\"\n [loading]=\"!obs.processItems\"\n [margin]=\"true\"\n [required]=\"false\"\n ></v-select>\n </ng-container>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
|
|
524
|
+
}], ctorParameters: function () { return [{ type: i1$3.ConfigService }, { type: i1$1.ProcessService }, { type: i2.ActivatedRoute }, { type: i1.DocumentService }]; } });
|
|
627
525
|
|
|
628
526
|
/*
|
|
629
527
|
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
@@ -640,25 +538,77 @@ var TabEnum;
|
|
|
640
538
|
* See the License for the specific language governing permissions and
|
|
641
539
|
* limitations under the License.
|
|
642
540
|
*/
|
|
643
|
-
class
|
|
644
|
-
constructor() {
|
|
645
|
-
this.
|
|
541
|
+
class DossierManagementDetailComponent {
|
|
542
|
+
constructor(documentService, route, alertService) {
|
|
543
|
+
this.documentService = documentService;
|
|
544
|
+
this.route = route;
|
|
545
|
+
this.alertService = alertService;
|
|
546
|
+
this.documentDefinitionName = null;
|
|
547
|
+
this.documentDefinition = null;
|
|
548
|
+
this.processDocumentDefinitions = [];
|
|
549
|
+
this.documentDefinitionName = this.route.snapshot.paramMap.get('name');
|
|
646
550
|
}
|
|
647
|
-
|
|
648
|
-
|
|
551
|
+
ngOnInit() {
|
|
552
|
+
this.loadDocumentDefinition();
|
|
553
|
+
this.loadProcessDocumentDefinitions();
|
|
649
554
|
}
|
|
650
|
-
|
|
651
|
-
this.
|
|
555
|
+
loadProcessDocumentDefinitions() {
|
|
556
|
+
this.documentService
|
|
557
|
+
.findProcessDocumentDefinitions(this.documentDefinitionName)
|
|
558
|
+
.subscribe((processDocumentDefinitions) => {
|
|
559
|
+
this.processDocumentDefinitions = processDocumentDefinitions;
|
|
560
|
+
});
|
|
652
561
|
}
|
|
653
|
-
|
|
654
|
-
|
|
562
|
+
loadDocumentDefinition() {
|
|
563
|
+
this.documentService
|
|
564
|
+
.getDocumentDefinitionForManagement(this.documentDefinitionName)
|
|
565
|
+
.subscribe((documentDefinition) => {
|
|
566
|
+
this.documentDefinition = documentDefinition;
|
|
567
|
+
});
|
|
568
|
+
}
|
|
569
|
+
openDossierConnectModal() {
|
|
570
|
+
this.dossierConnectModal.openModal(this.documentDefinition);
|
|
571
|
+
}
|
|
572
|
+
openDossierRemoveModal() {
|
|
573
|
+
this.dossierRemoveModal.openModal(this.documentDefinition);
|
|
574
|
+
}
|
|
575
|
+
deleteProcessDocumentDefinition(processDocumentDefinition) {
|
|
576
|
+
this.documentService
|
|
577
|
+
.deleteProcessDocumentDefinition({
|
|
578
|
+
documentDefinitionName: processDocumentDefinition.id.documentDefinitionId.name,
|
|
579
|
+
processDefinitionKey: processDocumentDefinition.id.processDefinitionKey,
|
|
580
|
+
canInitializeDocument: processDocumentDefinition.canInitializeDocument,
|
|
581
|
+
startableByUser: processDocumentDefinition.startableByUser,
|
|
582
|
+
})
|
|
583
|
+
.subscribe(() => {
|
|
584
|
+
this.alertService.success('Successfully deleted process document definition');
|
|
585
|
+
this.loadProcessDocumentDefinitions();
|
|
586
|
+
}, () => {
|
|
587
|
+
this.alertService.error('Failed to delete process document definition');
|
|
588
|
+
});
|
|
589
|
+
}
|
|
590
|
+
downloadDefinition() {
|
|
591
|
+
const definition = this.documentDefinition;
|
|
592
|
+
const dataString = 'data:text/json;charset=utf-8,' +
|
|
593
|
+
encodeURIComponent(JSON.stringify(definition.schema, null, 2));
|
|
594
|
+
const downloadAnchorElement = document.getElementById('downloadAnchorElement');
|
|
595
|
+
downloadAnchorElement.setAttribute('href', dataString);
|
|
596
|
+
downloadAnchorElement.setAttribute('download', `${definition.id.name}-v${definition.id.version}.json`);
|
|
597
|
+
downloadAnchorElement.click();
|
|
598
|
+
}
|
|
599
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementDetailComponent, deps: [{ token: i1.DocumentService }, { token: i2.ActivatedRoute }, { token: i6.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
600
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementDetailComponent, selector: "valtimo-dossier-management-detail", viewQueries: [{ propertyName: "dossierConnectModal", first: true, predicate: ["dossierConnectModal"], descendants: true }, { propertyName: "dossierRemoveModal", first: true, predicate: ["dossierRemoveModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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 id=\"management-datail-content\" class=\"pt-0\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <div class=\"clearfix\"></div>\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n</div>\n\n<ng-template #widget>\n <valtimo-widget *ngIf=\"documentDefinition\">\n <div class=\"row bg-white mt-5 mb-2 pl-2 pr-2\">\n <div class=\"col-5\">\n <h2>{{ 'document definition' | translate }}</h2>\n </div>\n <div class=\"col-5 offset-2\">\n <h2>{{ 'dossierManagement.connectedProcesses' | translate }}</h2>\n </div>\n </div>\n <div class=\"row bg-white mb-5 pb-4 pl-2 pr-2\">\n <div class=\"col-5 bg-red\">\n <textarea class=\"w-100 dossier-schema\" disabled rows=\"25\"\n >{{ documentDefinition | json }}\n </textarea\n >\n </div>\n <div class=\"col-5 offset-2 bg-blue\">\n <div\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"input-group mb-5\"\n >\n <div class=\"input-group-prepend w-75\">\n <button\n (click)=\"deleteProcessDocumentDefinition(processDocumentDefinition)\"\n class=\"btn btn-danger\"\n data-placement=\"left\"\n data-toggle=\"tooltip\"\n title=\"Delete this connected process\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n </button>\n <input\n [value]=\"\n processDocumentDefinition.processName\n ? processDocumentDefinition.processName\n : '' + ' (' + processDocumentDefinition.id.processDefinitionKey + ')'\n \"\n class=\"form-control\"\n disabled\n type=\"text\"\n />\n </div>\n <div class=\"row mb-2 mt-2\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.canInitializeDocument\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.startableByUser\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div class=\"text-right mt-5 mb-5\">\n <button (click)=\"openDossierConnectModal()\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-plus mr-1\"></i\n >{{ 'dossierManagement.connectProcess' | translate }}\n </button>\n </div>\n <valtimo-dossier-management-link-process></valtimo-dossier-management-link-process\n ><valtimo-extension\n module=\"dossier-management\"\n page=\"dossier\"\n section=\"right-panel\"\n ></valtimo-extension>\n <valtimo-dossier-management-assignee></valtimo-dossier-management-assignee>\n </div>\n </div>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #buttons>\n <div *ngIf=\"documentDefinition\" class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <button (click)=\"downloadDefinition()\" class=\"btn btn-primary btn-space\">\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'Download document definition' | translate }}\n </button>\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n <button\n (click)=\"openDossierRemoveModal()\"\n *ngIf=\"!this.documentDefinition.readOnly\"\n class=\"btn btn-secondary btn-space mr-0\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n {{ 'Remove document definition' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-connect-modal\n #dossierConnectModal\n (reloadProcessDocumentDefinitions)=\"loadProcessDocumentDefinitions()\"\n></valtimo-dossier-management-connect-modal>\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n", styles: ["/*!\n * Copyright 2015-2023 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 */.row{margin:0}.dossier-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i1$3.ExtensionComponent, selector: "valtimo-extension", inputs: ["module", "page", "section"] }, { kind: "directive", type: i7.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: DossierManagementConnectModalComponent, selector: "valtimo-dossier-management-connect-modal", outputs: ["reloadProcessDocumentDefinitions"] }, { kind: "component", type: DossierManagementRemoveModalComponent, selector: "valtimo-dossier-management-remove-modal" }, { kind: "component", type: DossierManagementLinkProcessComponent, selector: "valtimo-dossier-management-link-process" }, { kind: "component", type: DossierManagementAssigneeComponent, selector: "valtimo-dossier-management-assignee" }, { kind: "pipe", type: i4.JsonPipe, name: "json" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
655
601
|
}
|
|
656
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
657
|
-
type:
|
|
658
|
-
args: [{
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
602
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementDetailComponent, decorators: [{
|
|
603
|
+
type: Component,
|
|
604
|
+
args: [{ selector: 'valtimo-dossier-management-detail', template: "<!--\n ~ Copyright 2015-2023 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 id=\"management-datail-content\" class=\"pt-0\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <div class=\"clearfix\"></div>\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n</div>\n\n<ng-template #widget>\n <valtimo-widget *ngIf=\"documentDefinition\">\n <div class=\"row bg-white mt-5 mb-2 pl-2 pr-2\">\n <div class=\"col-5\">\n <h2>{{ 'document definition' | translate }}</h2>\n </div>\n <div class=\"col-5 offset-2\">\n <h2>{{ 'dossierManagement.connectedProcesses' | translate }}</h2>\n </div>\n </div>\n <div class=\"row bg-white mb-5 pb-4 pl-2 pr-2\">\n <div class=\"col-5 bg-red\">\n <textarea class=\"w-100 dossier-schema\" disabled rows=\"25\"\n >{{ documentDefinition | json }}\n </textarea\n >\n </div>\n <div class=\"col-5 offset-2 bg-blue\">\n <div\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"input-group mb-5\"\n >\n <div class=\"input-group-prepend w-75\">\n <button\n (click)=\"deleteProcessDocumentDefinition(processDocumentDefinition)\"\n class=\"btn btn-danger\"\n data-placement=\"left\"\n data-toggle=\"tooltip\"\n title=\"Delete this connected process\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n </button>\n <input\n [value]=\"\n processDocumentDefinition.processName\n ? processDocumentDefinition.processName\n : '' + ' (' + processDocumentDefinition.id.processDefinitionKey + ')'\n \"\n class=\"form-control\"\n disabled\n type=\"text\"\n />\n </div>\n <div class=\"row mb-2 mt-2\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.canInitializeDocument\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.startableByUser\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div class=\"text-right mt-5 mb-5\">\n <button (click)=\"openDossierConnectModal()\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-plus mr-1\"></i\n >{{ 'dossierManagement.connectProcess' | translate }}\n </button>\n </div>\n <valtimo-dossier-management-link-process></valtimo-dossier-management-link-process\n ><valtimo-extension\n module=\"dossier-management\"\n page=\"dossier\"\n section=\"right-panel\"\n ></valtimo-extension>\n <valtimo-dossier-management-assignee></valtimo-dossier-management-assignee>\n </div>\n </div>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #buttons>\n <div *ngIf=\"documentDefinition\" class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <button (click)=\"downloadDefinition()\" class=\"btn btn-primary btn-space\">\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'Download document definition' | translate }}\n </button>\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n <button\n (click)=\"openDossierRemoveModal()\"\n *ngIf=\"!this.documentDefinition.readOnly\"\n class=\"btn btn-secondary btn-space mr-0\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n {{ 'Remove document definition' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-connect-modal\n #dossierConnectModal\n (reloadProcessDocumentDefinitions)=\"loadProcessDocumentDefinitions()\"\n></valtimo-dossier-management-connect-modal>\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n", styles: ["/*!\n * Copyright 2015-2023 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 */.row{margin:0}.dossier-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n"] }]
|
|
605
|
+
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.ActivatedRoute }, { type: i6.AlertService }]; }, propDecorators: { dossierConnectModal: [{
|
|
606
|
+
type: ViewChild,
|
|
607
|
+
args: ['dossierConnectModal']
|
|
608
|
+
}], dossierRemoveModal: [{
|
|
609
|
+
type: ViewChild,
|
|
610
|
+
args: ['dossierRemoveModal']
|
|
611
|
+
}] } });
|
|
662
612
|
|
|
663
613
|
/*
|
|
664
614
|
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
@@ -796,7 +746,7 @@ class DossierManagementSearchFieldsComponent {
|
|
|
796
746
|
this.documentDefinitionName$,
|
|
797
747
|
this.refreshSearchFields$,
|
|
798
748
|
]).pipe(switchMap(([documentDefinitionName]) => this.documentService.getDocumentSearchFields(documentDefinitionName)), tap$1(searchFields => {
|
|
799
|
-
this.documentDefinitionName$.pipe(take
|
|
749
|
+
this.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {
|
|
800
750
|
if (searchFields && Array.isArray(searchFields) && searchFields.length > 0) {
|
|
801
751
|
this.setDownload(documentDefinitionName, searchFields);
|
|
802
752
|
}
|
|
@@ -876,7 +826,7 @@ class DossierManagementSearchFieldsComponent {
|
|
|
876
826
|
this.subscriptions.unsubscribe();
|
|
877
827
|
}
|
|
878
828
|
searchFieldClicked(searchField, searchFieldActionTypeIsAdd) {
|
|
879
|
-
this.disableInput$.pipe(take
|
|
829
|
+
this.disableInput$.pipe(take(1)).subscribe(inputDisabled => {
|
|
880
830
|
if (!inputDisabled) {
|
|
881
831
|
this.searchFieldActionTypeIsAdd = searchFieldActionTypeIsAdd;
|
|
882
832
|
const searchFieldToSelect = this.cachedSearchFields.find(field => field.key === searchField.key);
|
|
@@ -936,7 +886,7 @@ class DossierManagementSearchFieldsComponent {
|
|
|
936
886
|
}
|
|
937
887
|
saveSearchField(documentDefinitionName) {
|
|
938
888
|
this.disableInput();
|
|
939
|
-
this.formData$.pipe(take
|
|
889
|
+
this.formData$.pipe(take(1)).subscribe(formData => {
|
|
940
890
|
const mappedFormData = {
|
|
941
891
|
...formData,
|
|
942
892
|
matchType: !this.isFieldTypeDropdown(formData.fieldType) && formData.dataType === 'text'
|
|
@@ -952,7 +902,7 @@ class DossierManagementSearchFieldsComponent {
|
|
|
952
902
|
.subscribe();
|
|
953
903
|
}
|
|
954
904
|
if (this.dropdownDataProviderSupportsUpdates(mappedFormData.dropdownDataProvider)) {
|
|
955
|
-
this.modifiedDropdownValues$.pipe(take
|
|
905
|
+
this.modifiedDropdownValues$.pipe(take(1)).subscribe(dropdownValues => {
|
|
956
906
|
const request = dropdownValues.reduce((acc, keyValue) => ({ ...acc, [keyValue.key]: keyValue.value }), {});
|
|
957
907
|
this.documentService
|
|
958
908
|
.postDropdownData(mappedFormData.dropdownDataProvider, documentDefinitionName, mappedFormData.key, request)
|
|
@@ -1051,13 +1001,13 @@ class DossierManagementSearchFieldsComponent {
|
|
|
1051
1001
|
refreshSearchFields() {
|
|
1052
1002
|
this.refreshSearchFields$.next(null);
|
|
1053
1003
|
}
|
|
1054
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementSearchFieldsComponent, deps: [{ token: i1
|
|
1055
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementSearchFieldsComponent, selector: "valtimo-dossier-management-search-fields", outputs: { searchField: "searchField" }, viewQueries: [{ propertyName: "moveRowButtonsTemplateRef", first: true, predicate: ["moveRowButtons"], descendants: true }, { propertyName: "modal", first: true, predicate: ["searchFieldModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n searchFields: translatedSearchFields$ | async,\n fields: fields$ | async,\n downloadUrl: downloadUrl$ | async,\n downloadName: downloadName$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n valid: valid$ | async,\n disableInput: disableInput$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <div class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <a\n class=\"btn btn-secondary btn-space\"\n [href]=\"obs.downloadUrl\"\n [download]=\"obs.downloadName\"\n [ngClass]=\"{\n disabled:\n !obs.downloadUrl || !obs.downloadName || obs.searchFields.length <= 0 || obs.disableInput\n }\"\n >\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'searchFields.downloadButtonText' | translate }}\n </a>\n <button\n (click)=\"searchFieldClicked($event, true)\"\n class=\"btn btn-primary btn-space\"\n [ngClass]=\"{disabled: loadingSearchFields || obs.disableInput}\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'searchFieldsOverview.addRow' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.searchFields\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n (rowClicked)=\"searchFieldClicked($event, false)\"\n *ngIf=\"obs.searchFields; else loading\"\n [lastColumnTemplate]=\"moveRowButtonsTemplateRef\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #moveRowButtons let-index=\"index\" let-length=\"length\">\n <div\n class=\"move-row-buttons\"\n *ngIf=\"{\n disableInput: disableInput$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n >\n <i\n class=\"mdi mdi-arrow-up-bold btn btn-outline-primary mr-1\"\n (click)=\"moveRow(index, true, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === 0 || obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-down-bold btn btn-outline-secondary\"\n (click)=\"moveRow(index, false, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{\n 'disabled disabled-move-row-button': index === length - 1 || obs.disableInput\n }\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <valtimo-modal\n #searchFieldModal\n elementId=\"searchFieldModal\"\n [title]=\"\n searchFieldActionTypeIsAdd\n ? ('searchFieldsOverview.addRow' | translate)\n : ('searchFieldsOverview.edit' | translate)\n \"\n [showFooter]=\"true\"\n >\n <div body class=\"mt-2\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"showSearchFieldsForm && {searchField: selectedSearchField$ | async} as searchObs\"\n >\n <v-input\n name=\"title\"\n [title]=\"'searchFieldsOverview.title' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.title\"\n [disabled]=\"obs.disableInput\"\n [required]=\"false\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input>\n <v-input\n name=\"key\"\n [title]=\"'searchFieldsOverview.key' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.key\"\n [disabled]=\"obs.disableInput || !searchFieldActionTypeIsAdd\"\n [required]=\"true\"\n [widthPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.key' | translate\"\n >\n </v-input>\n <v-input\n name=\"path\"\n [title]=\"'searchFieldsOverview.path' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.path\"\n [disabled]=\"obs.disableInput\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input>\n <v-select\n *ngIf=\"dataTypeItems$ | async as dataTypeItems\"\n [items]=\"dataTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"dataType\"\n [defaultSelectionId]=\"searchObs.searchField?.dataType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"(showMatchTypes$ | async) && (matchTypeItems$ | async) as matchTypeItems\"\n [items]=\"matchTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"matchType\"\n [defaultSelectionId]=\"searchObs.searchField?.matchType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"fieldTypeItems$ | async as fieldTypeItems\"\n [items]=\"fieldTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"fieldType\"\n [defaultSelectionId]=\"searchObs.searchField?.fieldType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"\n (fieldTypeIsDropdown$ | async) &&\n (dropdownDataProviderNames$ | async) as dropdownDataProviderNames\n \"\n [items]=\"dropdownDataProviderNames\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.dropdownDataProvider' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"false\"\n name=\"dropdownDataProvider\"\n [defaultSelectionId]=\"searchObs.searchField?.dropdownDataProvider\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownDataProvider' | translate\"\n ></v-select>\n <valtimo-carbon-multi-input\n *ngIf=\"\n (showInputDropdownTable$ | async) &&\n (initialDropdownValues$ | async) as initialDropdownValues\n \"\n name=\"dropdownValues\"\n [title]=\"'searchFieldsOverview.dropdownListValues' | translate\"\n type=\"keyValue\"\n [disabled]=\"obs.disableInput\"\n [defaultValues]=\"initialDropdownValues\"\n [margin]=\"true\"\n [required]=\"false\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownListValues' | translate\"\n (valueChange)=\"dropdownDatalistChange($event)\"\n >\n </valtimo-carbon-multi-input>\n <v-table\n *ngIf=\"\n (showReadonlyDropdownTable$ | async) &&\n (initialDropdownValues$ | async) as initialDropdownValues\n \"\n [items]=\"initialDropdownValues\"\n [columns]=\"dropdownColumns$ | async\"\n [showEditButtons]=\"false\"\n [itemsTranslationKey]=\"'searchFieldsOverview'\"\n [showPagination]=\"false\"\n [mobileBreakpointPx]=\"200\"\n ></v-table>\n </v-form>\n </div>\n <div footer>\n <div class=\"col-12 p-0\">\n <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </valtimo-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\n <div class=\"buttons-container\" *ngIf=\"{searchField: selectedSearchField$ | async} as searchObs\">\n <div class=\"right-buttons\">\n <button\n class=\"btn btn-space btn-secondary\"\n *ngIf=\"!searchFieldActionTypeIsAdd\"\n [disabled]=\"obs.disableInput\"\n (click)=\"deleteSelectedSearchField(obs.documentDefinitionName, searchObs.searchField)\"\n >\n {{ 'searchFieldsOverview.delete' | translate }}\n </button>\n <button\n (click)=\"saveSearchField(obs.documentDefinitionName)\"\n type=\"button\"\n class=\"btn btn-primary btn-space mr-0\"\n [disabled]=\"obs.disableInput || !obs.valid\"\n >\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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 */valtimo-list::ng-deep table{border-top:1px solid rgba(0,0,0,.125)}.modal-header::ng-deep{background-color:#f3f4f7}::ng-deep .disabled-move-row-button{cursor:default!important;filter:grayscale(1);opacity:.5}::ng-deep .move-row-buttons{display:flex;flex-direction:row;justify-content:flex-end;padding-right:13px}::ng-deep .tab-container{min-height:unset!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6$1.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i6$1.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "component", type: i6$1.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme"], outputs: ["selectedChange"] }, { kind: "component", type: i6$1.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i6$1.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder"], outputs: ["valueChange"] }, { kind: "component", type: i6$1.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i6$1.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "component", type: i6$1.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
|
|
1004
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementSearchFieldsComponent, deps: [{ token: i1.DocumentService }, { token: i2.ActivatedRoute }, { token: i3.TranslateService }, { token: i4$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1005
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementSearchFieldsComponent, selector: "valtimo-dossier-management-search-fields", outputs: { searchField: "searchField" }, viewQueries: [{ propertyName: "moveRowButtonsTemplateRef", first: true, predicate: ["moveRowButtons"], descendants: true }, { propertyName: "modal", first: true, predicate: ["searchFieldModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n searchFields: translatedSearchFields$ | async,\n fields: fields$ | async,\n downloadUrl: downloadUrl$ | async,\n downloadName: downloadName$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n valid: valid$ | async,\n disableInput: disableInput$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <div class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <a\n class=\"btn btn-secondary btn-space\"\n [href]=\"obs.downloadUrl\"\n [download]=\"obs.downloadName\"\n [ngClass]=\"{\n disabled:\n !obs.downloadUrl || !obs.downloadName || obs.searchFields.length <= 0 || obs.disableInput\n }\"\n >\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'searchFields.downloadButtonText' | translate }}\n </a>\n <button\n (click)=\"searchFieldClicked($event, true)\"\n class=\"btn btn-primary btn-space\"\n [ngClass]=\"{disabled: loadingSearchFields || obs.disableInput}\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'searchFieldsOverview.addRow' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.searchFields\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n (rowClicked)=\"searchFieldClicked($event, false)\"\n *ngIf=\"obs.searchFields; else loading\"\n [lastColumnTemplate]=\"moveRowButtonsTemplateRef\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #moveRowButtons let-index=\"index\" let-length=\"length\">\n <div\n class=\"move-row-buttons\"\n *ngIf=\"{\n disableInput: disableInput$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n >\n <i\n class=\"mdi mdi-arrow-up-bold btn btn-outline-primary mr-1\"\n (click)=\"moveRow(index, true, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === 0 || obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-down-bold btn btn-outline-secondary\"\n (click)=\"moveRow(index, false, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{\n 'disabled disabled-move-row-button': index === length - 1 || obs.disableInput\n }\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <valtimo-modal\n #searchFieldModal\n elementId=\"searchFieldModal\"\n [title]=\"\n searchFieldActionTypeIsAdd\n ? ('searchFieldsOverview.addRow' | translate)\n : ('searchFieldsOverview.edit' | translate)\n \"\n [showFooter]=\"true\"\n >\n <div body class=\"mt-2\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"showSearchFieldsForm && {searchField: selectedSearchField$ | async} as searchObs\"\n >\n <v-input\n name=\"title\"\n [title]=\"'searchFieldsOverview.title' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.title\"\n [disabled]=\"obs.disableInput\"\n [required]=\"false\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input>\n <v-input\n name=\"key\"\n [title]=\"'searchFieldsOverview.key' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.key\"\n [disabled]=\"obs.disableInput || !searchFieldActionTypeIsAdd\"\n [required]=\"true\"\n [widthPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.key' | translate\"\n >\n </v-input>\n <v-input\n name=\"path\"\n [title]=\"'searchFieldsOverview.path' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.path\"\n [disabled]=\"obs.disableInput\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input>\n <v-select\n *ngIf=\"dataTypeItems$ | async as dataTypeItems\"\n [items]=\"dataTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"dataType\"\n [defaultSelectionId]=\"searchObs.searchField?.dataType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"(showMatchTypes$ | async) && (matchTypeItems$ | async) as matchTypeItems\"\n [items]=\"matchTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"matchType\"\n [defaultSelectionId]=\"searchObs.searchField?.matchType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"fieldTypeItems$ | async as fieldTypeItems\"\n [items]=\"fieldTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"fieldType\"\n [defaultSelectionId]=\"searchObs.searchField?.fieldType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"\n (fieldTypeIsDropdown$ | async) &&\n (dropdownDataProviderNames$ | async) as dropdownDataProviderNames\n \"\n [items]=\"dropdownDataProviderNames\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.dropdownDataProvider' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"false\"\n name=\"dropdownDataProvider\"\n [defaultSelectionId]=\"searchObs.searchField?.dropdownDataProvider\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownDataProvider' | translate\"\n ></v-select>\n <valtimo-carbon-multi-input\n *ngIf=\"\n (showInputDropdownTable$ | async) &&\n (initialDropdownValues$ | async) as initialDropdownValues\n \"\n name=\"dropdownValues\"\n [title]=\"'searchFieldsOverview.dropdownListValues' | translate\"\n type=\"keyValue\"\n [disabled]=\"obs.disableInput\"\n [defaultValues]=\"initialDropdownValues\"\n [margin]=\"true\"\n [required]=\"false\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownListValues' | translate\"\n (valueChange)=\"dropdownDatalistChange($event)\"\n >\n </valtimo-carbon-multi-input>\n <v-table\n *ngIf=\"\n (showReadonlyDropdownTable$ | async) &&\n (initialDropdownValues$ | async) as initialDropdownValues\n \"\n [items]=\"initialDropdownValues\"\n [columns]=\"dropdownColumns$ | async\"\n [showEditButtons]=\"false\"\n [itemsTranslationKey]=\"'searchFieldsOverview'\"\n [showPagination]=\"false\"\n [mobileBreakpointPx]=\"200\"\n ></v-table>\n </v-form>\n </div>\n <div footer>\n <div class=\"col-12 p-0\">\n <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </valtimo-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\n <div class=\"buttons-container\" *ngIf=\"{searchField: selectedSearchField$ | async} as searchObs\">\n <div class=\"right-buttons\">\n <button\n class=\"btn btn-space btn-secondary\"\n *ngIf=\"!searchFieldActionTypeIsAdd\"\n [disabled]=\"obs.disableInput\"\n (click)=\"deleteSelectedSearchField(obs.documentDefinitionName, searchObs.searchField)\"\n >\n {{ 'searchFieldsOverview.delete' | translate }}\n </button>\n <button\n (click)=\"saveSearchField(obs.documentDefinitionName)\"\n type=\"button\"\n class=\"btn btn-primary btn-space mr-0\"\n [disabled]=\"obs.disableInput || !obs.valid\"\n >\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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 */valtimo-list::ng-deep table{border-top:1px solid rgba(0,0,0,.125)}.modal-header::ng-deep{background-color:#f3f4f7}::ng-deep .disabled-move-row-button{cursor:default!important;filter:grayscale(1);opacity:.5}::ng-deep .move-row-buttons{display:flex;flex-direction:row;justify-content:flex-end;padding-right:13px}::ng-deep .tab-container{min-height:unset!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i6.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "component", type: i6.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme"], outputs: ["selectedChange"] }, { kind: "component", type: i6.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i6.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder"], outputs: ["valueChange"] }, { kind: "component", type: i6.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i6.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "component", type: i6.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
1056
1006
|
}
|
|
1057
1007
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementSearchFieldsComponent, decorators: [{
|
|
1058
1008
|
type: Component,
|
|
1059
1009
|
args: [{ selector: 'valtimo-dossier-management-search-fields', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n searchFields: translatedSearchFields$ | async,\n fields: fields$ | async,\n downloadUrl: downloadUrl$ | async,\n downloadName: downloadName$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n valid: valid$ | async,\n disableInput: disableInput$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <div class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <a\n class=\"btn btn-secondary btn-space\"\n [href]=\"obs.downloadUrl\"\n [download]=\"obs.downloadName\"\n [ngClass]=\"{\n disabled:\n !obs.downloadUrl || !obs.downloadName || obs.searchFields.length <= 0 || obs.disableInput\n }\"\n >\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'searchFields.downloadButtonText' | translate }}\n </a>\n <button\n (click)=\"searchFieldClicked($event, true)\"\n class=\"btn btn-primary btn-space\"\n [ngClass]=\"{disabled: loadingSearchFields || obs.disableInput}\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'searchFieldsOverview.addRow' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.searchFields\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n (rowClicked)=\"searchFieldClicked($event, false)\"\n *ngIf=\"obs.searchFields; else loading\"\n [lastColumnTemplate]=\"moveRowButtonsTemplateRef\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #moveRowButtons let-index=\"index\" let-length=\"length\">\n <div\n class=\"move-row-buttons\"\n *ngIf=\"{\n disableInput: disableInput$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n >\n <i\n class=\"mdi mdi-arrow-up-bold btn btn-outline-primary mr-1\"\n (click)=\"moveRow(index, true, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === 0 || obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-down-bold btn btn-outline-secondary\"\n (click)=\"moveRow(index, false, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{\n 'disabled disabled-move-row-button': index === length - 1 || obs.disableInput\n }\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <valtimo-modal\n #searchFieldModal\n elementId=\"searchFieldModal\"\n [title]=\"\n searchFieldActionTypeIsAdd\n ? ('searchFieldsOverview.addRow' | translate)\n : ('searchFieldsOverview.edit' | translate)\n \"\n [showFooter]=\"true\"\n >\n <div body class=\"mt-2\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"showSearchFieldsForm && {searchField: selectedSearchField$ | async} as searchObs\"\n >\n <v-input\n name=\"title\"\n [title]=\"'searchFieldsOverview.title' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.title\"\n [disabled]=\"obs.disableInput\"\n [required]=\"false\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input>\n <v-input\n name=\"key\"\n [title]=\"'searchFieldsOverview.key' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.key\"\n [disabled]=\"obs.disableInput || !searchFieldActionTypeIsAdd\"\n [required]=\"true\"\n [widthPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.key' | translate\"\n >\n </v-input>\n <v-input\n name=\"path\"\n [title]=\"'searchFieldsOverview.path' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.path\"\n [disabled]=\"obs.disableInput\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input>\n <v-select\n *ngIf=\"dataTypeItems$ | async as dataTypeItems\"\n [items]=\"dataTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"dataType\"\n [defaultSelectionId]=\"searchObs.searchField?.dataType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"(showMatchTypes$ | async) && (matchTypeItems$ | async) as matchTypeItems\"\n [items]=\"matchTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"matchType\"\n [defaultSelectionId]=\"searchObs.searchField?.matchType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"fieldTypeItems$ | async as fieldTypeItems\"\n [items]=\"fieldTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"fieldType\"\n [defaultSelectionId]=\"searchObs.searchField?.fieldType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"\n (fieldTypeIsDropdown$ | async) &&\n (dropdownDataProviderNames$ | async) as dropdownDataProviderNames\n \"\n [items]=\"dropdownDataProviderNames\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.dropdownDataProvider' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"false\"\n name=\"dropdownDataProvider\"\n [defaultSelectionId]=\"searchObs.searchField?.dropdownDataProvider\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownDataProvider' | translate\"\n ></v-select>\n <valtimo-carbon-multi-input\n *ngIf=\"\n (showInputDropdownTable$ | async) &&\n (initialDropdownValues$ | async) as initialDropdownValues\n \"\n name=\"dropdownValues\"\n [title]=\"'searchFieldsOverview.dropdownListValues' | translate\"\n type=\"keyValue\"\n [disabled]=\"obs.disableInput\"\n [defaultValues]=\"initialDropdownValues\"\n [margin]=\"true\"\n [required]=\"false\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownListValues' | translate\"\n (valueChange)=\"dropdownDatalistChange($event)\"\n >\n </valtimo-carbon-multi-input>\n <v-table\n *ngIf=\"\n (showReadonlyDropdownTable$ | async) &&\n (initialDropdownValues$ | async) as initialDropdownValues\n \"\n [items]=\"initialDropdownValues\"\n [columns]=\"dropdownColumns$ | async\"\n [showEditButtons]=\"false\"\n [itemsTranslationKey]=\"'searchFieldsOverview'\"\n [showPagination]=\"false\"\n [mobileBreakpointPx]=\"200\"\n ></v-table>\n </v-form>\n </div>\n <div footer>\n <div class=\"col-12 p-0\">\n <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </valtimo-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\n <div class=\"buttons-container\" *ngIf=\"{searchField: selectedSearchField$ | async} as searchObs\">\n <div class=\"right-buttons\">\n <button\n class=\"btn btn-space btn-secondary\"\n *ngIf=\"!searchFieldActionTypeIsAdd\"\n [disabled]=\"obs.disableInput\"\n (click)=\"deleteSelectedSearchField(obs.documentDefinitionName, searchObs.searchField)\"\n >\n {{ 'searchFieldsOverview.delete' | translate }}\n </button>\n <button\n (click)=\"saveSearchField(obs.documentDefinitionName)\"\n type=\"button\"\n class=\"btn btn-primary btn-space mr-0\"\n [disabled]=\"obs.disableInput || !obs.valid\"\n >\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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 */valtimo-list::ng-deep table{border-top:1px solid rgba(0,0,0,.125)}.modal-header::ng-deep{background-color:#f3f4f7}::ng-deep .disabled-move-row-button{cursor:default!important;filter:grayscale(1);opacity:.5}::ng-deep .move-row-buttons{display:flex;flex-direction:row;justify-content:flex-end;padding-right:13px}::ng-deep .tab-container{min-height:unset!important}\n"] }]
|
|
1060
|
-
}], ctorParameters: function () { return [{ type: i1
|
|
1010
|
+
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.ActivatedRoute }, { type: i3.TranslateService }, { type: i4$1.DomSanitizer }]; }, propDecorators: { moveRowButtonsTemplateRef: [{
|
|
1061
1011
|
type: ViewChild,
|
|
1062
1012
|
args: ['moveRowButtons']
|
|
1063
1013
|
}], modal: [{
|
|
@@ -1152,7 +1102,7 @@ class DossierManagementListColumnsComponent {
|
|
|
1152
1102
|
this.documentDefinitionName$,
|
|
1153
1103
|
this.refreshCaseListcolumns$,
|
|
1154
1104
|
]).pipe(switchMap(([documentDefinitionName]) => this.documentService.getCaseListForManagement(documentDefinitionName)), tap$1(caseListColumns => {
|
|
1155
|
-
this.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {
|
|
1105
|
+
this.documentDefinitionName$.pipe(take$1(1)).subscribe(documentDefinitionName => {
|
|
1156
1106
|
if (caseListColumns && Array.isArray(caseListColumns) && caseListColumns.length > 0) {
|
|
1157
1107
|
this.setDownload(documentDefinitionName, caseListColumns);
|
|
1158
1108
|
}
|
|
@@ -1296,7 +1246,7 @@ class DossierManagementListColumnsComponent {
|
|
|
1296
1246
|
const columnKey = this.cachedCaseListColumns[caseListColumnRowIndex]?.key;
|
|
1297
1247
|
if (columnKey) {
|
|
1298
1248
|
this.disableInput();
|
|
1299
|
-
this.documentDefinitionName$.pipe(take(1)).subscribe(docDefName => {
|
|
1249
|
+
this.documentDefinitionName$.pipe(take$1(1)).subscribe(docDefName => {
|
|
1300
1250
|
this.documentService.deleteCaseListForManagement(docDefName, columnKey).subscribe(() => {
|
|
1301
1251
|
this.refreshCaseListColumns();
|
|
1302
1252
|
}, () => {
|
|
@@ -1328,7 +1278,7 @@ class DossierManagementListColumnsComponent {
|
|
|
1328
1278
|
}
|
|
1329
1279
|
saveCasListColumns() {
|
|
1330
1280
|
this.disableInput();
|
|
1331
|
-
this.currentModalType$.pipe(take(1)).subscribe(currentModalType => {
|
|
1281
|
+
this.currentModalType$.pipe(take$1(1)).subscribe(currentModalType => {
|
|
1332
1282
|
if (currentModalType === 'create') {
|
|
1333
1283
|
this.addColumn();
|
|
1334
1284
|
}
|
|
@@ -1343,7 +1293,7 @@ class DossierManagementListColumnsComponent {
|
|
|
1343
1293
|
columnRowClicked(row) {
|
|
1344
1294
|
this.resetFormGroup();
|
|
1345
1295
|
combineLatest([this.viewTypeItems$, this.sortItems$])
|
|
1346
|
-
.pipe(take(1))
|
|
1296
|
+
.pipe(take$1(1))
|
|
1347
1297
|
.subscribe(([viewTypeItems, sortItems]) => {
|
|
1348
1298
|
const column = this.cachedCaseListColumns.find(cachedColumn => cachedColumn.key === row.key);
|
|
1349
1299
|
const viewTypeItem = viewTypeItems.find(item => item.key === column.displayType.type);
|
|
@@ -1395,7 +1345,7 @@ class DossierManagementListColumnsComponent {
|
|
|
1395
1345
|
}
|
|
1396
1346
|
addColumn() {
|
|
1397
1347
|
const formValue = this.formGroup.value;
|
|
1398
|
-
this.documentDefinitionName$.pipe(take(1)).subscribe(docDefName => {
|
|
1348
|
+
this.documentDefinitionName$.pipe(take$1(1)).subscribe(docDefName => {
|
|
1399
1349
|
this.documentService
|
|
1400
1350
|
.postCaseListForManagement(docDefName, this.mapFormValuesToColumn(formValue))
|
|
1401
1351
|
.subscribe(() => {
|
|
@@ -1439,7 +1389,7 @@ class DossierManagementListColumnsComponent {
|
|
|
1439
1389
|
}
|
|
1440
1390
|
return columnCopy;
|
|
1441
1391
|
});
|
|
1442
|
-
this.documentDefinitionName$.pipe(take(1)).subscribe(docDefName => {
|
|
1392
|
+
this.documentDefinitionName$.pipe(take$1(1)).subscribe(docDefName => {
|
|
1443
1393
|
this.documentService.putCaseListForManagement(docDefName, mappedCurrentColumns).subscribe(() => {
|
|
1444
1394
|
this.closeModal();
|
|
1445
1395
|
this.refreshCaseListColumns();
|
|
@@ -1467,7 +1417,7 @@ class DossierManagementListColumnsComponent {
|
|
|
1467
1417
|
resetFormGroup() {
|
|
1468
1418
|
this.formGroup.reset();
|
|
1469
1419
|
combineLatest([this.sortItems$, this.viewTypeItems$])
|
|
1470
|
-
.pipe(take(1))
|
|
1420
|
+
.pipe(take$1(1))
|
|
1471
1421
|
.subscribe(([sortItems, viewTypeItems]) => {
|
|
1472
1422
|
this.defaultEnumValues$.next([{ key: '', value: '' }]);
|
|
1473
1423
|
this.selectedViewTypeItemIndex$.next(0);
|
|
@@ -1499,15 +1449,402 @@ class DossierManagementListColumnsComponent {
|
|
|
1499
1449
|
},
|
|
1500
1450
|
};
|
|
1501
1451
|
}
|
|
1502
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementListColumnsComponent, deps: [{ token: i1
|
|
1503
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementListColumnsComponent, selector: "valtimo-dossier-management-list-columns", viewQueries: [{ propertyName: "moveRowButtonsTemplateRef", first: true, predicate: ["moveRowButtons"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n caseListColumn: translatedCaseListColumns$ | async,\n fields: fields$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n hasEnvironmentConfig: hasEnvironmentConfig$ | async,\n downloadUrl: downloadUrl$ | async,\n downloadName: downloadName$ | async\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-2\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"!obs.hasEnvironmentConfig; else environmentConfigWarning\">\n <ng-container *ngIf=\"!loadingCaseListColumns; else loading\">\n <ng-container *ngIf=\"obs.caseListColumn?.length > 0; else noConfigWarning\">\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <a\n cdsLink\n class=\"center-link\"\n [href]=\"obs.downloadUrl\"\n [download]=\"obs.downloadName\"\n [disabled]=\"\n obs.hasEnvironmentConfig ||\n !obs.downloadUrl ||\n !obs.downloadName ||\n obs.caseListColumn?.length < 1 ||\n obs.disableInput ||\n loadingCaseListColumns\n \"\n >\n {{ 'listColumn.downloadButtonText' | translate }}\n </a>\n <button\n (click)=\"openModal('create')\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"obs.hasEnvironmentConfig || loadingCaseListColumns\"\n class=\"ml-3\"\n >\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #moveRowButtons let-index=\"index\" let-length=\"length\">\n <div\n class=\"move-row-buttons\"\n *ngIf=\"{\n disableInput: disableInput$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n >\n <i\n class=\"mdi mdi-delete btn btn-outline-danger mr-1\"\n (click)=\"deleteRow(index, $event)\"\n [ngClass]=\"{'disabled disabled-move-row-button': obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-up-bold btn btn-outline-primary mr-1\"\n (click)=\"moveRow(index, true, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === 0 || obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-down-bold btn btn-outline-secondary\"\n (click)=\"moveRow(index, false, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{\n 'disabled disabled-move-row-button': index === length - 1 || obs.disableInput\n }\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.caseListColumn\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n *ngIf=\"obs.caseListColumn; else loading\"\n [lastColumnTemplate]=\"moveRowButtonsTemplateRef\"\n (rowClicked)=\"columnRowClicked($event)\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #environmentConfigWarning>\n <div class=\"pl-2 pr-2 pb-2\">\n <cds-notification\n [notificationObj]=\"{\n type: 'warning',\n title: 'listColumn.hasEnvConfigWarningTitle' | translate,\n message: 'listColumn.hasEnvConfigWarning' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #noConfigWarning>\n <div class=\"pl-2 pr-2 pb-2\">\n <cds-notification\n [notificationObj]=\"{\n type: 'info',\n title: 'listColumn.noConfigWarningTitle' | translate,\n message: 'listColumn.noConfigWarning' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n type: currentModalType$ | async,\n show: showModal$ | async,\n valid: valid$ | async,\n disableInput: disableInput$ | async,\n validKey: validKey$ | async,\n disableDefaultSort: disableDefaultSort$ | async,\n showEnum: showEnum$ | async,\n isYesNo: isYesNo$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n modalObs.type === 'create'\n ? ('listColumn.addButtonText' | translate)\n : ('listColumn.editColumnTitle' | translate)\n }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <form [formGroup]=\"formGroup\" class=\"list-column-form\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.titleTitle' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.titleTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"title\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [disabled]=\"modalObs.disableInput || modalObs.type === 'edit'\"\n [invalid]=\"modalObs.validKey === false\"\n [invalidText]=\"'listColumn.uniqueKeyWarning' | translate\"\n >\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.key' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.keyTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"key\" [invalid]=\"modalObs.validKey === false\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.path' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.pathTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"path\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.displayType' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.displayTypeTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <cds-dropdown formControlName=\"displayType\" [disabled]=\"modalObs.disableInput\">\n <cds-dropdown-list [items]=\"viewTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"showDateFormat$ | async\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.dateFormat' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.dateFormatTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"dateFormat\" />\n </cds-label>\n </div>\n <div\n class=\"cds--text-input__field-wrapper\"\n *ngIf=\"modalObs.showEnum || modalObs.isYesNo\"\n [ngClass]=\"{'no-margin': modalObs.isYesNo}\"\n >\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip select-label\">\n {{\n modalObs.isYesNo\n ? ('listColumn.enumTitleOptional' | translate)\n : ('listColumn.enumTitle' | translate)\n }}\n <v-tooltip-icon\n [tooltip]=\"\n modalObs.isYesNo\n ? ('listColumn.enumTooltipOptional' | translate)\n : ('listColumn.enumTooltip' | translate)\n \"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <valtimo-carbon-multi-input\n *ngIf=\"(showModal$ | async) || (modalShowing$ | async)\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n [defaultValues]=\"defaultEnumValues$ | async\"\n [hideAddButton]=\"modalObs.isYesNo\"\n [hideDeleteButton]=\"modalObs.isYesNo\"\n [maxRows]=\"modalObs.isYesNo ? 1 : null\"\n [keyColumnTitle]=\"modalObs.isYesNo && ('viewTypeConverter.Yes' | translate)\"\n [valueColumnTitle]=\"modalObs.isYesNo && ('viewTypeConverter.No' | translate)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-checkbox formControlName=\"sortable\"\n >{{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput || modalObs.disableDefaultSort\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.defaultSortTitle' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.defaultSortTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <cds-dropdown\n formControlName=\"defaultSort\"\n [disabled]=\"modalObs.disableInput || modalObs.disableDefaultSort\"\n >\n <cds-dropdown-list [items]=\"sortItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'listColumn.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"modalObs.valid === false\"\n (click)=\"saveCasListColumns()\"\n [disabled]=\"\n modalObs.disableInput || modalObs.valid === false || modalObs.validKey === false\n \"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><<cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteRowIndex$ | async\"\n (confirmEvent)=\"deleteRowConfirmation($event)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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 */::ng-deep .tab-container{min-height:unset!important}::ng-deep .cds--inline-notification{max-width:100%}.label-with-tooltip{display:flex;align-items:center}.cds--text-input__field-wrapper:not(:last-child){margin-bottom:1rem}.no-margin{margin-bottom:0!important}.display-type-dropdown{width:300px}.list-column-form{margin-bottom:3rem}.select-label{padding-bottom:.5rem;width:250px}.loading-icon{width:100%;display:flex;align-items:center;justify-content:center}.center-link{display:flex;align-items:center}::ng-deep .move-row-buttons{display:flex;flex-direction:row;justify-content:flex-end;padding-right:13px}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6$1.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i6$1.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i9.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i9.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i9.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i9.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i9.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "component", type: i6$1.TooltipIconComponent, selector: "v-tooltip-icon", inputs: ["tooltip", "disabled"] }, { kind: "component", type: i6$1.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "component", type: i9.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i9.Link, selector: "[cdsLink], [ibmLink]", inputs: ["inline", "disabled"] }, { kind: "component", type: i6$1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm"], outputs: ["confirmEvent", "cancelEvent"] }, { kind: "directive", type: i6$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
|
|
1452
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementListColumnsComponent, deps: [{ token: i1.DocumentService }, { token: i2.ActivatedRoute }, { token: i3.TranslateService }, { token: i1$3.ConfigService }, { token: i4$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1453
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementListColumnsComponent, selector: "valtimo-dossier-management-list-columns", viewQueries: [{ propertyName: "moveRowButtonsTemplateRef", first: true, predicate: ["moveRowButtons"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n caseListColumn: translatedCaseListColumns$ | async,\n fields: fields$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n hasEnvironmentConfig: hasEnvironmentConfig$ | async,\n downloadUrl: downloadUrl$ | async,\n downloadName: downloadName$ | async\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-2\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"!obs.hasEnvironmentConfig; else environmentConfigWarning\">\n <ng-container *ngIf=\"!loadingCaseListColumns; else loading\">\n <ng-container *ngIf=\"obs.caseListColumn?.length > 0; else noConfigWarning\">\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <a\n cdsLink\n class=\"center-link\"\n [href]=\"obs.downloadUrl\"\n [download]=\"obs.downloadName\"\n [disabled]=\"\n obs.hasEnvironmentConfig ||\n !obs.downloadUrl ||\n !obs.downloadName ||\n obs.caseListColumn?.length < 1 ||\n obs.disableInput ||\n loadingCaseListColumns\n \"\n >\n {{ 'listColumn.downloadButtonText' | translate }}\n </a>\n <button\n (click)=\"openModal('create')\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"obs.hasEnvironmentConfig || loadingCaseListColumns\"\n class=\"ml-3\"\n >\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #moveRowButtons let-index=\"index\" let-length=\"length\">\n <div\n class=\"move-row-buttons\"\n *ngIf=\"{\n disableInput: disableInput$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n >\n <i\n class=\"mdi mdi-delete btn btn-outline-danger mr-1\"\n (click)=\"deleteRow(index, $event)\"\n [ngClass]=\"{'disabled disabled-move-row-button': obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-up-bold btn btn-outline-primary mr-1\"\n (click)=\"moveRow(index, true, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === 0 || obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-down-bold btn btn-outline-secondary\"\n (click)=\"moveRow(index, false, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{\n 'disabled disabled-move-row-button': index === length - 1 || obs.disableInput\n }\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.caseListColumn\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n *ngIf=\"obs.caseListColumn; else loading\"\n [lastColumnTemplate]=\"moveRowButtonsTemplateRef\"\n (rowClicked)=\"columnRowClicked($event)\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #environmentConfigWarning>\n <div class=\"pl-2 pr-2 pb-2\">\n <cds-notification\n [notificationObj]=\"{\n type: 'warning',\n title: 'listColumn.hasEnvConfigWarningTitle' | translate,\n message: 'listColumn.hasEnvConfigWarning' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #noConfigWarning>\n <div class=\"pl-2 pr-2 pb-2\">\n <cds-notification\n [notificationObj]=\"{\n type: 'info',\n title: 'listColumn.noConfigWarningTitle' | translate,\n message: 'listColumn.noConfigWarning' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n type: currentModalType$ | async,\n show: showModal$ | async,\n valid: valid$ | async,\n disableInput: disableInput$ | async,\n validKey: validKey$ | async,\n disableDefaultSort: disableDefaultSort$ | async,\n showEnum: showEnum$ | async,\n isYesNo: isYesNo$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n modalObs.type === 'create'\n ? ('listColumn.addButtonText' | translate)\n : ('listColumn.editColumnTitle' | translate)\n }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <form [formGroup]=\"formGroup\" class=\"list-column-form\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.titleTitle' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.titleTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"title\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [disabled]=\"modalObs.disableInput || modalObs.type === 'edit'\"\n [invalid]=\"modalObs.validKey === false\"\n [invalidText]=\"'listColumn.uniqueKeyWarning' | translate\"\n >\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.key' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.keyTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"key\" [invalid]=\"modalObs.validKey === false\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.path' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.pathTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"path\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.displayType' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.displayTypeTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <cds-dropdown formControlName=\"displayType\" [disabled]=\"modalObs.disableInput\">\n <cds-dropdown-list [items]=\"viewTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"showDateFormat$ | async\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.dateFormat' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.dateFormatTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"dateFormat\" />\n </cds-label>\n </div>\n <div\n class=\"cds--text-input__field-wrapper\"\n *ngIf=\"modalObs.showEnum || modalObs.isYesNo\"\n [ngClass]=\"{'no-margin': modalObs.isYesNo}\"\n >\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip select-label\">\n {{\n modalObs.isYesNo\n ? ('listColumn.enumTitleOptional' | translate)\n : ('listColumn.enumTitle' | translate)\n }}\n <v-tooltip-icon\n [tooltip]=\"\n modalObs.isYesNo\n ? ('listColumn.enumTooltipOptional' | translate)\n : ('listColumn.enumTooltip' | translate)\n \"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <valtimo-carbon-multi-input\n *ngIf=\"(showModal$ | async) || (modalShowing$ | async)\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n [defaultValues]=\"defaultEnumValues$ | async\"\n [hideAddButton]=\"modalObs.isYesNo\"\n [hideDeleteButton]=\"modalObs.isYesNo\"\n [maxRows]=\"modalObs.isYesNo ? 1 : null\"\n [keyColumnTitle]=\"modalObs.isYesNo && ('viewTypeConverter.Yes' | translate)\"\n [valueColumnTitle]=\"modalObs.isYesNo && ('viewTypeConverter.No' | translate)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-checkbox formControlName=\"sortable\"\n >{{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput || modalObs.disableDefaultSort\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.defaultSortTitle' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.defaultSortTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <cds-dropdown\n formControlName=\"defaultSort\"\n [disabled]=\"modalObs.disableInput || modalObs.disableDefaultSort\"\n >\n <cds-dropdown-list [items]=\"sortItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'listColumn.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"modalObs.valid === false\"\n (click)=\"saveCasListColumns()\"\n [disabled]=\"\n modalObs.disableInput || modalObs.valid === false || modalObs.validKey === false\n \"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><<cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteRowIndex$ | async\"\n (confirmEvent)=\"deleteRowConfirmation($event)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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 */::ng-deep .tab-container{min-height:unset!important}::ng-deep .cds--inline-notification{max-width:100%}.label-with-tooltip{display:flex;align-items:center}.cds--text-input__field-wrapper:not(:last-child){margin-bottom:1rem}.no-margin{margin-bottom:0!important}.display-type-dropdown{width:300px}.list-column-form{margin-bottom:3rem}.select-label{padding-bottom:.5rem;width:250px}.loading-icon{width:100%;display:flex;align-items:center;justify-content:center}.center-link{display:flex;align-items:center}::ng-deep .move-row-buttons{display:flex;flex-direction:row;justify-content:flex-end;padding-right:13px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i6.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i9.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i9.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i9.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i9.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i9.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "component", type: i6.TooltipIconComponent, selector: "v-tooltip-icon", inputs: ["tooltip", "disabled"] }, { kind: "component", type: i6.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "component", type: i9.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i9.Link, selector: "[cdsLink], [ibmLink]", inputs: ["inline", "disabled"] }, { kind: "component", type: i6.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm"], outputs: ["confirmEvent", "cancelEvent"] }, { kind: "directive", type: i6.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
1454
|
+
}
|
|
1455
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementListColumnsComponent, decorators: [{
|
|
1456
|
+
type: Component,
|
|
1457
|
+
args: [{ selector: 'valtimo-dossier-management-list-columns', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n caseListColumn: translatedCaseListColumns$ | async,\n fields: fields$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n hasEnvironmentConfig: hasEnvironmentConfig$ | async,\n downloadUrl: downloadUrl$ | async,\n downloadName: downloadName$ | async\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-2\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"!obs.hasEnvironmentConfig; else environmentConfigWarning\">\n <ng-container *ngIf=\"!loadingCaseListColumns; else loading\">\n <ng-container *ngIf=\"obs.caseListColumn?.length > 0; else noConfigWarning\">\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <a\n cdsLink\n class=\"center-link\"\n [href]=\"obs.downloadUrl\"\n [download]=\"obs.downloadName\"\n [disabled]=\"\n obs.hasEnvironmentConfig ||\n !obs.downloadUrl ||\n !obs.downloadName ||\n obs.caseListColumn?.length < 1 ||\n obs.disableInput ||\n loadingCaseListColumns\n \"\n >\n {{ 'listColumn.downloadButtonText' | translate }}\n </a>\n <button\n (click)=\"openModal('create')\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"obs.hasEnvironmentConfig || loadingCaseListColumns\"\n class=\"ml-3\"\n >\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #moveRowButtons let-index=\"index\" let-length=\"length\">\n <div\n class=\"move-row-buttons\"\n *ngIf=\"{\n disableInput: disableInput$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n >\n <i\n class=\"mdi mdi-delete btn btn-outline-danger mr-1\"\n (click)=\"deleteRow(index, $event)\"\n [ngClass]=\"{'disabled disabled-move-row-button': obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-up-bold btn btn-outline-primary mr-1\"\n (click)=\"moveRow(index, true, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === 0 || obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-down-bold btn btn-outline-secondary\"\n (click)=\"moveRow(index, false, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{\n 'disabled disabled-move-row-button': index === length - 1 || obs.disableInput\n }\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.caseListColumn\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n *ngIf=\"obs.caseListColumn; else loading\"\n [lastColumnTemplate]=\"moveRowButtonsTemplateRef\"\n (rowClicked)=\"columnRowClicked($event)\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #environmentConfigWarning>\n <div class=\"pl-2 pr-2 pb-2\">\n <cds-notification\n [notificationObj]=\"{\n type: 'warning',\n title: 'listColumn.hasEnvConfigWarningTitle' | translate,\n message: 'listColumn.hasEnvConfigWarning' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #noConfigWarning>\n <div class=\"pl-2 pr-2 pb-2\">\n <cds-notification\n [notificationObj]=\"{\n type: 'info',\n title: 'listColumn.noConfigWarningTitle' | translate,\n message: 'listColumn.noConfigWarning' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n type: currentModalType$ | async,\n show: showModal$ | async,\n valid: valid$ | async,\n disableInput: disableInput$ | async,\n validKey: validKey$ | async,\n disableDefaultSort: disableDefaultSort$ | async,\n showEnum: showEnum$ | async,\n isYesNo: isYesNo$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n modalObs.type === 'create'\n ? ('listColumn.addButtonText' | translate)\n : ('listColumn.editColumnTitle' | translate)\n }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <form [formGroup]=\"formGroup\" class=\"list-column-form\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.titleTitle' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.titleTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"title\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [disabled]=\"modalObs.disableInput || modalObs.type === 'edit'\"\n [invalid]=\"modalObs.validKey === false\"\n [invalidText]=\"'listColumn.uniqueKeyWarning' | translate\"\n >\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.key' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.keyTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"key\" [invalid]=\"modalObs.validKey === false\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.path' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.pathTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"path\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.displayType' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.displayTypeTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <cds-dropdown formControlName=\"displayType\" [disabled]=\"modalObs.disableInput\">\n <cds-dropdown-list [items]=\"viewTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"showDateFormat$ | async\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.dateFormat' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.dateFormatTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"dateFormat\" />\n </cds-label>\n </div>\n <div\n class=\"cds--text-input__field-wrapper\"\n *ngIf=\"modalObs.showEnum || modalObs.isYesNo\"\n [ngClass]=\"{'no-margin': modalObs.isYesNo}\"\n >\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip select-label\">\n {{\n modalObs.isYesNo\n ? ('listColumn.enumTitleOptional' | translate)\n : ('listColumn.enumTitle' | translate)\n }}\n <v-tooltip-icon\n [tooltip]=\"\n modalObs.isYesNo\n ? ('listColumn.enumTooltipOptional' | translate)\n : ('listColumn.enumTooltip' | translate)\n \"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <valtimo-carbon-multi-input\n *ngIf=\"(showModal$ | async) || (modalShowing$ | async)\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n [defaultValues]=\"defaultEnumValues$ | async\"\n [hideAddButton]=\"modalObs.isYesNo\"\n [hideDeleteButton]=\"modalObs.isYesNo\"\n [maxRows]=\"modalObs.isYesNo ? 1 : null\"\n [keyColumnTitle]=\"modalObs.isYesNo && ('viewTypeConverter.Yes' | translate)\"\n [valueColumnTitle]=\"modalObs.isYesNo && ('viewTypeConverter.No' | translate)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-checkbox formControlName=\"sortable\"\n >{{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput || modalObs.disableDefaultSort\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.defaultSortTitle' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.defaultSortTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <cds-dropdown\n formControlName=\"defaultSort\"\n [disabled]=\"modalObs.disableInput || modalObs.disableDefaultSort\"\n >\n <cds-dropdown-list [items]=\"sortItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'listColumn.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"modalObs.valid === false\"\n (click)=\"saveCasListColumns()\"\n [disabled]=\"\n modalObs.disableInput || modalObs.valid === false || modalObs.validKey === false\n \"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><<cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteRowIndex$ | async\"\n (confirmEvent)=\"deleteRowConfirmation($event)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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 */::ng-deep .tab-container{min-height:unset!important}::ng-deep .cds--inline-notification{max-width:100%}.label-with-tooltip{display:flex;align-items:center}.cds--text-input__field-wrapper:not(:last-child){margin-bottom:1rem}.no-margin{margin-bottom:0!important}.display-type-dropdown{width:300px}.list-column-form{margin-bottom:3rem}.select-label{padding-bottom:.5rem;width:250px}.loading-icon{width:100%;display:flex;align-items:center;justify-content:center}.center-link{display:flex;align-items:center}::ng-deep .move-row-buttons{display:flex;flex-direction:row;justify-content:flex-end;padding-right:13px}\n"] }]
|
|
1458
|
+
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.ActivatedRoute }, { type: i3.TranslateService }, { type: i1$3.ConfigService }, { type: i4$1.DomSanitizer }]; }, propDecorators: { moveRowButtonsTemplateRef: [{
|
|
1459
|
+
type: ViewChild,
|
|
1460
|
+
args: ['moveRowButtons']
|
|
1461
|
+
}] } });
|
|
1462
|
+
|
|
1463
|
+
/*
|
|
1464
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
1465
|
+
*
|
|
1466
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1467
|
+
* you may not use this file except in compliance with the License.
|
|
1468
|
+
* You may obtain a copy of the License at
|
|
1469
|
+
*
|
|
1470
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1471
|
+
*
|
|
1472
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1473
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1474
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1475
|
+
* See the License for the specific language governing permissions and
|
|
1476
|
+
* limitations under the License.
|
|
1477
|
+
*/
|
|
1478
|
+
class TabFormComponent {
|
|
1479
|
+
constructor(tabService, formGroupDirective) {
|
|
1480
|
+
this.tabService = tabService;
|
|
1481
|
+
this.formGroupDirective = formGroupDirective;
|
|
1482
|
+
this.listItems$ = combineLatest([
|
|
1483
|
+
this.tabService.configuredContentKeys$,
|
|
1484
|
+
this.tabService.formDefinitions$,
|
|
1485
|
+
this.tabService.defaultTabs$,
|
|
1486
|
+
this.tabService.customComponentKeys$,
|
|
1487
|
+
]).pipe(map(([tabKeys, formDefinitions, defaultTabs, customComponentKeys]) => {
|
|
1488
|
+
switch (this.tabType) {
|
|
1489
|
+
case ApiTabType.STANDARD:
|
|
1490
|
+
return this.getListItems(defaultTabs, tabKeys);
|
|
1491
|
+
case ApiTabType.CUSTOM:
|
|
1492
|
+
return this.getListItems(customComponentKeys, tabKeys);
|
|
1493
|
+
case ApiTabType.FORMIO:
|
|
1494
|
+
return this.getListItems(formDefinitions, tabKeys);
|
|
1495
|
+
}
|
|
1496
|
+
}), startWith([]));
|
|
1497
|
+
}
|
|
1498
|
+
ngOnInit() {
|
|
1499
|
+
this.form = this.formGroupDirective.control;
|
|
1500
|
+
}
|
|
1501
|
+
onSearch() {
|
|
1502
|
+
if (this._searchActive) {
|
|
1503
|
+
return;
|
|
1504
|
+
}
|
|
1505
|
+
this._searchActive = true;
|
|
1506
|
+
this.form.get('contentKey')?.reset('');
|
|
1507
|
+
}
|
|
1508
|
+
onSelected() {
|
|
1509
|
+
this._searchActive = false;
|
|
1510
|
+
}
|
|
1511
|
+
getListItems(tabItems, configuredContentKeys) {
|
|
1512
|
+
return tabItems
|
|
1513
|
+
.filter((tabItem) => !configuredContentKeys.includes(tabItem.contentKey) ||
|
|
1514
|
+
this.form?.get('contentKey')?.value === tabItem.contentKey)
|
|
1515
|
+
.map((tabItem) => ({
|
|
1516
|
+
...tabItem,
|
|
1517
|
+
selected: this.form?.get('contentKey')?.value === tabItem.contentKey,
|
|
1518
|
+
}));
|
|
1519
|
+
}
|
|
1520
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabFormComponent, deps: [{ token: TabService }, { token: i2$1.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1521
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TabFormComponent, selector: "valtimo-tab-form", inputs: { tabType: "tabType" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form *ngIf=\"form\" [formGroup]=\"form\" class=\"valtimo-tab-form-modal\">\n <cds-label>\n {{ 'dossierManagement.tabManagement.addModal.tabNameLabel' | translate }}\n\n <input cdsText formControlName=\"name\" [attr.modal-primary-focus]=\"true\" />\n </cds-label>\n\n <cds-label\n [invalid]=\"!!this.form.get('key').errors?.uniqueKey\"\n [invalidText]=\"'dossierManagement.tabManagement.addModal.uniqueKeyError' | translate\"\n >\n {{ 'dossierManagement.tabManagement.addModal.tabKeyLabel' | translate }}\n\n <input\n cdsText\n formControlName=\"key\"\n [invalid]=\"!!this.form.get('key').errors?.uniqueKey\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n\n <cds-combo-box\n [dropUp]=\"false\"\n formControlName=\"contentKey\"\n [items]=\"listItems$ | async\"\n itemValueKey=\"contentKey\"\n [label]=\"'dossierManagement.tabManagement.contentLabels.' + tabType | translate\"\n (search)=\"onSearch($event)\"\n (selected)=\"onSelected($event)\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n</form>\n", styles: ["::ng-deep .valtimo-tab-form-modal{display:flex;flex-direction:column;gap:32px}::ng-deep .valtimo-tab-form-modal .cds--list-box__field{background-color:#fff}::ng-deep .valtimo-tab-form-modal .cds--modal-container,::ng-deep .valtimo-tab-form-modal .cds--modal-content{overflow:unset}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i9.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i9.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i9.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "items", "type", "size", "itemValueKey", "label", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1522
|
+
}
|
|
1523
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabFormComponent, decorators: [{
|
|
1524
|
+
type: Component,
|
|
1525
|
+
args: [{ selector: 'valtimo-tab-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form *ngIf=\"form\" [formGroup]=\"form\" class=\"valtimo-tab-form-modal\">\n <cds-label>\n {{ 'dossierManagement.tabManagement.addModal.tabNameLabel' | translate }}\n\n <input cdsText formControlName=\"name\" [attr.modal-primary-focus]=\"true\" />\n </cds-label>\n\n <cds-label\n [invalid]=\"!!this.form.get('key').errors?.uniqueKey\"\n [invalidText]=\"'dossierManagement.tabManagement.addModal.uniqueKeyError' | translate\"\n >\n {{ 'dossierManagement.tabManagement.addModal.tabKeyLabel' | translate }}\n\n <input\n cdsText\n formControlName=\"key\"\n [invalid]=\"!!this.form.get('key').errors?.uniqueKey\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n\n <cds-combo-box\n [dropUp]=\"false\"\n formControlName=\"contentKey\"\n [items]=\"listItems$ | async\"\n itemValueKey=\"contentKey\"\n [label]=\"'dossierManagement.tabManagement.contentLabels.' + tabType | translate\"\n (search)=\"onSearch($event)\"\n (selected)=\"onSelected($event)\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n</form>\n", styles: ["::ng-deep .valtimo-tab-form-modal{display:flex;flex-direction:column;gap:32px}::ng-deep .valtimo-tab-form-modal .cds--list-box__field{background-color:#fff}::ng-deep .valtimo-tab-form-modal .cds--modal-container,::ng-deep .valtimo-tab-form-modal .cds--modal-content{overflow:unset}\n"] }]
|
|
1526
|
+
}], ctorParameters: function () { return [{ type: TabService }, { type: i2$1.FormGroupDirective }]; }, propDecorators: { tabType: [{
|
|
1527
|
+
type: Input
|
|
1528
|
+
}] } });
|
|
1529
|
+
|
|
1530
|
+
/*
|
|
1531
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
1532
|
+
*
|
|
1533
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1534
|
+
* you may not use this file except in compliance with the License.
|
|
1535
|
+
* You may obtain a copy of the License at
|
|
1536
|
+
*
|
|
1537
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1538
|
+
*
|
|
1539
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1540
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1541
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1542
|
+
* See the License for the specific language governing permissions and
|
|
1543
|
+
* limitations under the License.
|
|
1544
|
+
*/
|
|
1545
|
+
class DossierManagementAddTabModalComponent {
|
|
1546
|
+
constructor(fb, iconService, tabService) {
|
|
1547
|
+
this.fb = fb;
|
|
1548
|
+
this.iconService = iconService;
|
|
1549
|
+
this.tabService = tabService;
|
|
1550
|
+
this.open = false;
|
|
1551
|
+
this.closeModalEvent = new EventEmitter();
|
|
1552
|
+
this.ApiTabType = ApiTabType;
|
|
1553
|
+
this.tabTypes$ = this.tabService.disableAddTabs$.pipe(map(disabled => [
|
|
1554
|
+
{
|
|
1555
|
+
icon: 'development',
|
|
1556
|
+
title: 'dossierManagement.tabManagement.addModal.standardTab',
|
|
1557
|
+
type: ApiTabType.STANDARD,
|
|
1558
|
+
disabled: disabled.standard,
|
|
1559
|
+
},
|
|
1560
|
+
{
|
|
1561
|
+
icon: 'page-scroll',
|
|
1562
|
+
title: 'dossierManagement.tabManagement.addModal.formIOComponent',
|
|
1563
|
+
type: ApiTabType.FORMIO,
|
|
1564
|
+
disabled: disabled.formIO,
|
|
1565
|
+
},
|
|
1566
|
+
{
|
|
1567
|
+
icon: 'code',
|
|
1568
|
+
title: 'dossierManagement.tabManagement.addModal.customComponent',
|
|
1569
|
+
type: ApiTabType.CUSTOM,
|
|
1570
|
+
disabled: disabled.custom,
|
|
1571
|
+
},
|
|
1572
|
+
]));
|
|
1573
|
+
this.form = this.fb.group({
|
|
1574
|
+
name: this.fb.control(null),
|
|
1575
|
+
key: this.fb.control('', [Validators.required, this.uniqueKeyValidator()]),
|
|
1576
|
+
contentKey: this.fb.control('', Validators.required),
|
|
1577
|
+
});
|
|
1578
|
+
this.selectedTabType$ = new BehaviorSubject(null);
|
|
1579
|
+
this.iconService.registerAll([Code16, Development16, WatsonHealthPageScroll16]);
|
|
1580
|
+
}
|
|
1581
|
+
addTab(type) {
|
|
1582
|
+
const { contentKey, key, name } = this.form.getRawValue();
|
|
1583
|
+
if (!contentKey || !key) {
|
|
1584
|
+
return;
|
|
1585
|
+
}
|
|
1586
|
+
this.closeModalEvent.emit({ name, key, contentKey, type });
|
|
1587
|
+
}
|
|
1588
|
+
backClick() {
|
|
1589
|
+
this.resetModal();
|
|
1590
|
+
}
|
|
1591
|
+
onCloseModal() {
|
|
1592
|
+
this.closeModalEvent.emit(null);
|
|
1593
|
+
this.resetModal();
|
|
1594
|
+
}
|
|
1595
|
+
onTabTypeSelect(type) {
|
|
1596
|
+
this.selectedTabType$.next(type);
|
|
1597
|
+
}
|
|
1598
|
+
resetModal() {
|
|
1599
|
+
this.selectedTabType$.next(null);
|
|
1600
|
+
this.form.reset();
|
|
1601
|
+
}
|
|
1602
|
+
uniqueKeyValidator() {
|
|
1603
|
+
return (control) => this.tabService.configuredTabKeys.every((key) => key !== control.value)
|
|
1604
|
+
? null
|
|
1605
|
+
: { uniqueKey: { value: control.value } };
|
|
1606
|
+
}
|
|
1607
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementAddTabModalComponent, deps: [{ token: i2$1.FormBuilder }, { token: i9.IconService }, { token: TabService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1608
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementAddTabModalComponent, selector: "valtimo-dossier-management-add-tab-modal", inputs: { documentDefinitionName: "documentDefinitionName", open: "open" }, outputs: { closeModalEvent: "closeModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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<cds-modal *ngIf=\"{selectedTabType: selectedTabType$ | async} as obs\" [open]=\"open\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n !obs.selectedTabType\n ? ('dossierManagement.tabManagement.addModal.title'\n | translate: {documentDefinitionName: (documentDefinitionName | titlecase)})\n : ('dossierManagement.tabManagement.titles.' + obs.selectedTabType | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section [formGroup]=\"form\" cdsModalContent class=\"valtimo-add-tab-modal__content\">\n <valtimo-tab-form\n *ngIf=\"obs.selectedTabType; else tabTypeSelection\"\n [tabType]=\"obs.selectedTabType\"\n ></valtimo-tab-form>\n\n <ng-template #tabTypeSelection>\n <span> {{ 'dossierManagement.tabManagement.addModal.description' | translate }} </span>\n\n <div *ngIf=\"tabTypes$ | async as tabTypes\" class=\"valtimo-add-tab-modal__types\">\n <button\n *ngFor=\"let tabType of tabTypes\"\n cdsButton=\"secondary\"\n [disabled]=\"tabType.disabled\"\n (click)=\"onTabTypeSelect(tabType.type)\"\n >\n {{ tabType.title | translate }}\n\n <svg [cdsIcon]=\"tabType.icon\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n </ng-template>\n </section>\n\n <cds-modal-footer class=\"valtimo-add-tab-modal__footer\">\n <button class=\"valtimo-add-tab-modal__cancel\" cdsButton=\"ghost\" (click)=\"onCloseModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <div class=\"valtimo-add-tab-modal__actions\" *ngIf=\"obs.selectedTabType\">\n <button cdsButton=\"secondary\" (click)=\"backClick()\">\n {{ 'interface.back' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"form.invalid\" (click)=\"addTab(obs.selectedTabType)\">\n {{ 'dossierManagement.tabManagement.addModal.addTab' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-add-tab-modal__footer .cds--modal-footer{justify-content:unset;display:grid;grid-template-columns:1fr 1fr 2fr;grid-template-areas:\"cancel . actions\"}.valtimo-add-tab-modal__cancel{grid-area:cancel;width:100%}.valtimo-add-tab-modal__actions{grid-area:actions;display:flex}.valtimo-add-tab-modal__types{display:grid;grid-template:1fr/repeat(3,1fr);gap:16px}.valtimo-add-tab-modal__types button{width:100%}.valtimo-add-tab-modal__content{display:flex;flex-direction:column;gap:24px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: TabFormComponent, selector: "valtimo-tab-form", inputs: ["tabType"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1609
|
+
}
|
|
1610
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementAddTabModalComponent, decorators: [{
|
|
1611
|
+
type: Component,
|
|
1612
|
+
args: [{ selector: 'valtimo-dossier-management-add-tab-modal', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2023 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<cds-modal *ngIf=\"{selectedTabType: selectedTabType$ | async} as obs\" [open]=\"open\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n !obs.selectedTabType\n ? ('dossierManagement.tabManagement.addModal.title'\n | translate: {documentDefinitionName: (documentDefinitionName | titlecase)})\n : ('dossierManagement.tabManagement.titles.' + obs.selectedTabType | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section [formGroup]=\"form\" cdsModalContent class=\"valtimo-add-tab-modal__content\">\n <valtimo-tab-form\n *ngIf=\"obs.selectedTabType; else tabTypeSelection\"\n [tabType]=\"obs.selectedTabType\"\n ></valtimo-tab-form>\n\n <ng-template #tabTypeSelection>\n <span> {{ 'dossierManagement.tabManagement.addModal.description' | translate }} </span>\n\n <div *ngIf=\"tabTypes$ | async as tabTypes\" class=\"valtimo-add-tab-modal__types\">\n <button\n *ngFor=\"let tabType of tabTypes\"\n cdsButton=\"secondary\"\n [disabled]=\"tabType.disabled\"\n (click)=\"onTabTypeSelect(tabType.type)\"\n >\n {{ tabType.title | translate }}\n\n <svg [cdsIcon]=\"tabType.icon\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n </ng-template>\n </section>\n\n <cds-modal-footer class=\"valtimo-add-tab-modal__footer\">\n <button class=\"valtimo-add-tab-modal__cancel\" cdsButton=\"ghost\" (click)=\"onCloseModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <div class=\"valtimo-add-tab-modal__actions\" *ngIf=\"obs.selectedTabType\">\n <button cdsButton=\"secondary\" (click)=\"backClick()\">\n {{ 'interface.back' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"form.invalid\" (click)=\"addTab(obs.selectedTabType)\">\n {{ 'dossierManagement.tabManagement.addModal.addTab' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-add-tab-modal__footer .cds--modal-footer{justify-content:unset;display:grid;grid-template-columns:1fr 1fr 2fr;grid-template-areas:\"cancel . actions\"}.valtimo-add-tab-modal__cancel{grid-area:cancel;width:100%}.valtimo-add-tab-modal__actions{grid-area:actions;display:flex}.valtimo-add-tab-modal__types{display:grid;grid-template:1fr/repeat(3,1fr);gap:16px}.valtimo-add-tab-modal__types button{width:100%}.valtimo-add-tab-modal__content{display:flex;flex-direction:column;gap:24px}\n"] }]
|
|
1613
|
+
}], ctorParameters: function () { return [{ type: i2$1.FormBuilder }, { type: i9.IconService }, { type: TabService }]; }, propDecorators: { documentDefinitionName: [{
|
|
1614
|
+
type: Input
|
|
1615
|
+
}], open: [{
|
|
1616
|
+
type: Input
|
|
1617
|
+
}], closeModalEvent: [{
|
|
1618
|
+
type: Output
|
|
1619
|
+
}] } });
|
|
1620
|
+
|
|
1621
|
+
/*
|
|
1622
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
1623
|
+
*
|
|
1624
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1625
|
+
* you may not use this file except in compliance with the License.
|
|
1626
|
+
* You may obtain a copy of the License at
|
|
1627
|
+
*
|
|
1628
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1629
|
+
*
|
|
1630
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1631
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1632
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1633
|
+
* See the License for the specific language governing permissions and
|
|
1634
|
+
* limitations under the License.
|
|
1635
|
+
*/
|
|
1636
|
+
class DossierManagementEditTabModalComponent {
|
|
1637
|
+
set tab(value) {
|
|
1638
|
+
if (!value) {
|
|
1639
|
+
return;
|
|
1640
|
+
}
|
|
1641
|
+
if (!!this.tabService.configuredContentKeys) {
|
|
1642
|
+
this.configuredKeysForEdit = this.tabService.configuredContentKeys.filter((tabKey) => tabKey !== value.contentKey);
|
|
1643
|
+
}
|
|
1644
|
+
this._tab = value;
|
|
1645
|
+
this.form = this.fb.group({
|
|
1646
|
+
name: this.fb.control(value.name),
|
|
1647
|
+
key: this.fb.control({ value: value.key, disabled: true }, Validators.required),
|
|
1648
|
+
contentKey: this.fb.control(value.contentKey, Validators.required),
|
|
1649
|
+
});
|
|
1650
|
+
}
|
|
1651
|
+
get tab() {
|
|
1652
|
+
return this._tab;
|
|
1653
|
+
}
|
|
1654
|
+
constructor(fb, tabService) {
|
|
1655
|
+
this.fb = fb;
|
|
1656
|
+
this.tabService = tabService;
|
|
1657
|
+
this.closeModalEvent = new EventEmitter();
|
|
1658
|
+
}
|
|
1659
|
+
onCloseModal() {
|
|
1660
|
+
this.closeModalEvent.emit(null);
|
|
1661
|
+
}
|
|
1662
|
+
editTab() {
|
|
1663
|
+
const { contentKey, name } = this.form.getRawValue();
|
|
1664
|
+
if (!contentKey) {
|
|
1665
|
+
return;
|
|
1666
|
+
}
|
|
1667
|
+
this.closeModalEvent.emit({ ...this.tab, name, contentKey });
|
|
1668
|
+
}
|
|
1669
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementEditTabModalComponent, deps: [{ token: i2$1.FormBuilder }, { token: TabService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1670
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementEditTabModalComponent, selector: "valtimo-dossier-management-edit-tab-modal", inputs: { open: "open", tab: "tab" }, outputs: { closeModalEvent: "closeModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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<cds-modal *ngIf=\"form\" [open]=\"open\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n 'dossierManagement.tabManagement.editModal.title'\n | translate: {name: tab?.name ?? 'dossier.tabs.' + tab.key | translate}\n }}\n </h3>\n </cds-modal-header>\n\n <section [formGroup]=\"form\" cdsModalContent>\n <valtimo-tab-form\n [configuredContentKeys]=\"configuredKeysForEdit\"\n [tabType]=\"tab?.type\"\n ></valtimo-tab-form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onCloseModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"form.invalid\" (click)=\"editTab()\">\n {{ 'dossierManagement.tabManagement.editModal.updateTab' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: TabFormComponent, selector: "valtimo-tab-form", inputs: ["tabType"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
1671
|
+
}
|
|
1672
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementEditTabModalComponent, decorators: [{
|
|
1673
|
+
type: Component,
|
|
1674
|
+
args: [{ selector: 'valtimo-dossier-management-edit-tab-modal', template: "<!--\n ~ Copyright 2015-2023 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<cds-modal *ngIf=\"form\" [open]=\"open\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n 'dossierManagement.tabManagement.editModal.title'\n | translate: {name: tab?.name ?? 'dossier.tabs.' + tab.key | translate}\n }}\n </h3>\n </cds-modal-header>\n\n <section [formGroup]=\"form\" cdsModalContent>\n <valtimo-tab-form\n [configuredContentKeys]=\"configuredKeysForEdit\"\n [tabType]=\"tab?.type\"\n ></valtimo-tab-form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onCloseModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"form.invalid\" (click)=\"editTab()\">\n {{ 'dossierManagement.tabManagement.editModal.updateTab' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n" }]
|
|
1675
|
+
}], ctorParameters: function () { return [{ type: i2$1.FormBuilder }, { type: TabService }]; }, propDecorators: { open: [{
|
|
1676
|
+
type: Input
|
|
1677
|
+
}], tab: [{
|
|
1678
|
+
type: Input
|
|
1679
|
+
}], closeModalEvent: [{
|
|
1680
|
+
type: Output
|
|
1681
|
+
}] } });
|
|
1682
|
+
|
|
1683
|
+
/*
|
|
1684
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
1685
|
+
*
|
|
1686
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1687
|
+
* you may not use this file except in compliance with the License.
|
|
1688
|
+
* You may obtain a copy of the License at
|
|
1689
|
+
*
|
|
1690
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1691
|
+
*
|
|
1692
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1693
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1694
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1695
|
+
* See the License for the specific language governing permissions and
|
|
1696
|
+
* limitations under the License.
|
|
1697
|
+
*/
|
|
1698
|
+
class DossierManagementTabsComponent {
|
|
1699
|
+
set documentDefinitionName(value) {
|
|
1700
|
+
if (!value) {
|
|
1701
|
+
return;
|
|
1702
|
+
}
|
|
1703
|
+
this._documentDefinitionName = value;
|
|
1704
|
+
this.tabManagementService.setCaseDefinitionId(value);
|
|
1705
|
+
this.tabManagementService.loadTabs();
|
|
1706
|
+
}
|
|
1707
|
+
get documentDefinitionName() {
|
|
1708
|
+
return this._documentDefinitionName;
|
|
1709
|
+
}
|
|
1710
|
+
constructor(cd, iconService, tabManagementService, tabService, translateService) {
|
|
1711
|
+
this.cd = cd;
|
|
1712
|
+
this.iconService = iconService;
|
|
1713
|
+
this.tabManagementService = tabManagementService;
|
|
1714
|
+
this.tabService = tabService;
|
|
1715
|
+
this.translateService = translateService;
|
|
1716
|
+
this.deleteRowKey$ = new BehaviorSubject(null);
|
|
1717
|
+
this.showDeleteModal$ = this.deleteRowKey$.pipe(map((key) => !!key));
|
|
1718
|
+
this.openEditModal$ = new BehaviorSubject(false);
|
|
1719
|
+
this.fields$ = new BehaviorSubject([]);
|
|
1720
|
+
this.loading$ = this.tabManagementService.loading$;
|
|
1721
|
+
this.openAddModal$ = new BehaviorSubject(false);
|
|
1722
|
+
this.lastItemIndex$ = new BehaviorSubject(-1);
|
|
1723
|
+
this.tabs$ = this.tabManagementService.tabs$.pipe(tap$1((tabs) => {
|
|
1724
|
+
this._tabs = tabs;
|
|
1725
|
+
this.tabService.configuredContentKeys = tabs.map((tab) => tab.contentKey);
|
|
1726
|
+
this.tabService.configuredTabKeys = tabs.map((tab) => tab.key);
|
|
1727
|
+
this.lastItemIndex$.next(tabs.length - 1);
|
|
1728
|
+
}));
|
|
1729
|
+
this.tab$ = new BehaviorSubject(null);
|
|
1730
|
+
}
|
|
1731
|
+
ngAfterViewInit() {
|
|
1732
|
+
this.iconService.registerAll([ArrowDown16, ArrowUp16]);
|
|
1733
|
+
this.fields$.next([
|
|
1734
|
+
{
|
|
1735
|
+
key: 'name',
|
|
1736
|
+
label: 'dossierManagement.tabManagement.columns.name',
|
|
1737
|
+
viewType: ViewType.TEXT,
|
|
1738
|
+
},
|
|
1739
|
+
{
|
|
1740
|
+
key: 'key',
|
|
1741
|
+
label: 'dossierManagement.tabManagement.columns.key',
|
|
1742
|
+
viewType: ViewType.TEXT,
|
|
1743
|
+
},
|
|
1744
|
+
{
|
|
1745
|
+
viewType: ViewType.TEMPLATE,
|
|
1746
|
+
template: this.tabTypeColumnTemplate,
|
|
1747
|
+
key: '',
|
|
1748
|
+
label: 'dossierManagement.tabManagement.columns.type',
|
|
1749
|
+
},
|
|
1750
|
+
{
|
|
1751
|
+
viewType: ViewType.TEMPLATE,
|
|
1752
|
+
template: this.tabContentColumnTemplate,
|
|
1753
|
+
key: '',
|
|
1754
|
+
label: 'dossierManagement.tabManagement.columns.content',
|
|
1755
|
+
},
|
|
1756
|
+
{
|
|
1757
|
+
className: 'valtimo-dossier-management-tabs__actions',
|
|
1758
|
+
key: '',
|
|
1759
|
+
label: '',
|
|
1760
|
+
template: this.moveButtonsTemplate,
|
|
1761
|
+
viewType: ViewType.TEMPLATE,
|
|
1762
|
+
},
|
|
1763
|
+
{
|
|
1764
|
+
actions: [
|
|
1765
|
+
{
|
|
1766
|
+
label: 'interface.delete',
|
|
1767
|
+
callback: this.openDeleteConfirmationModal.bind(this),
|
|
1768
|
+
type: 'danger',
|
|
1769
|
+
},
|
|
1770
|
+
],
|
|
1771
|
+
className: 'valtimo-dossier-management-tabs__actions',
|
|
1772
|
+
key: '',
|
|
1773
|
+
label: '',
|
|
1774
|
+
viewType: ViewType.ACTION,
|
|
1775
|
+
},
|
|
1776
|
+
]);
|
|
1777
|
+
this.cd.detectChanges();
|
|
1778
|
+
}
|
|
1779
|
+
isTranslated(key) {
|
|
1780
|
+
return this.translateService.instant(key) !== key;
|
|
1781
|
+
}
|
|
1782
|
+
onArrowClick(direction, index, event) {
|
|
1783
|
+
event.stopImmediatePropagation();
|
|
1784
|
+
const orderedTabs = direction === 'UP'
|
|
1785
|
+
? this.swapTabs(this._tabs, index - 1, index)
|
|
1786
|
+
: this.swapTabs(this._tabs, index, index + 1);
|
|
1787
|
+
this.tabManagementService.dispatchAction(this.tabManagementService.editTabsOrder(orderedTabs));
|
|
1788
|
+
}
|
|
1789
|
+
openAddTabModal() {
|
|
1790
|
+
this.openAddModal$.next(true);
|
|
1791
|
+
}
|
|
1792
|
+
onRowClicked(tab) {
|
|
1793
|
+
this.tab$.next(tab);
|
|
1794
|
+
this.openEditModal$.next(true);
|
|
1795
|
+
}
|
|
1796
|
+
onCloseAddModalEvent(tab) {
|
|
1797
|
+
this.openAddModal$.next(false);
|
|
1798
|
+
if (!tab) {
|
|
1799
|
+
return;
|
|
1800
|
+
}
|
|
1801
|
+
this.addTab(tab);
|
|
1802
|
+
}
|
|
1803
|
+
onCloseEditModalEvent(tab) {
|
|
1804
|
+
this.openEditModal$.next(false);
|
|
1805
|
+
this.tab$.next(null);
|
|
1806
|
+
if (!tab) {
|
|
1807
|
+
return;
|
|
1808
|
+
}
|
|
1809
|
+
this.editTab(tab);
|
|
1810
|
+
}
|
|
1811
|
+
openDeleteConfirmationModal(tab) {
|
|
1812
|
+
this.deleteRowKey$.next(tab.key);
|
|
1813
|
+
}
|
|
1814
|
+
onConfirmEvent(tabKey) {
|
|
1815
|
+
this.deleteTab(tabKey);
|
|
1816
|
+
}
|
|
1817
|
+
addTab(tab) {
|
|
1818
|
+
this.tabManagementService.dispatchAction(this.tabManagementService.addTab(tab));
|
|
1819
|
+
}
|
|
1820
|
+
deleteTab(tabKey) {
|
|
1821
|
+
this.tabManagementService.dispatchAction(this.tabManagementService.deleteTab(tabKey));
|
|
1822
|
+
}
|
|
1823
|
+
editTab(tab) {
|
|
1824
|
+
this.tabManagementService.dispatchAction(this.tabManagementService.editTab(tab, tab.key));
|
|
1825
|
+
}
|
|
1826
|
+
swapTabs(tabItems, index1, index2) {
|
|
1827
|
+
const temp = [...tabItems];
|
|
1828
|
+
temp[index1] = temp.splice(index2, 1, temp[index1])[0];
|
|
1829
|
+
return temp;
|
|
1830
|
+
}
|
|
1831
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementTabsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i9.IconService }, { token: TabManagementService }, { token: TabService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1832
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementTabsComponent, selector: "valtimo-dossier-management-tabs", inputs: { documentDefinitionName: "documentDefinitionName" }, viewQueries: [{ propertyName: "tabContentColumnTemplate", first: true, predicate: ["tabContentColumn"], descendants: true }, { propertyName: "tabTypeColumnTemplate", first: true, predicate: ["tabTypeColumn"], descendants: true }, { propertyName: "moveButtonsTemplate", first: true, predicate: ["moveButtonsTemplate"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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-carbon-list\n *ngIf=\"{fields: fields$ | async, loading: loading$ | async, tabs: tabs$ | async} as obs\"\n [items]=\"obs.tabs\"\n [fields]=\"obs.fields\"\n header=\"false\"\n [loading]=\"obs.loading\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <ng-container carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTabButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTabButton\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #tabTypeColumn let-data=\"data\">\n {{\n isTranslated('dossierManagement.tabType.' + data.item.type)\n ? ('dossierManagement.tabType.' + data.item.type | translate)\n : data.item.type\n }}\n</ng-template>\n\n<ng-template #tabContentColumn let-data=\"data\">\n {{\n isTranslated('dossier.tabs.' + data.item.contentKey)\n ? ('dossier.tabs.' + data.item.contentKey | translate)\n : data.item.contentKey\n }}\n</ng-template>\n\n<ng-template #addTabButton>\n <button cdsButton=\"primary\" (click)=\"openAddTabModal()\">\n {{ 'dossierManagement.tabManagement.addModal.addTab' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<ng-template #moveButtonsTemplate let-data=\"data\">\n <div class=\"move-buttons-container\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n (click)=\"onArrowClick('UP', data.index, $event)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"(lastItemIndex$ | async) === data.index\"\n [iconOnly]=\"true\"\n (click)=\"onArrowClick('DOWN', data.index, $event)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-add-tab-modal\n *ngIf=\"openAddModal$ | async\"\n [documentDefinitionName]=\"documentDefinitionName\"\n [open]=\"openAddModal$ | async\"\n (closeModalEvent)=\"onCloseAddModalEvent($event)\"\n></valtimo-dossier-management-add-tab-modal>\n\n<valtimo-dossier-management-edit-tab-modal\n *ngIf=\"openEditModal$ | async\"\n [tab]=\"tab$ | async\"\n (closeModalEvent)=\"onCloseEditModalEvent($event)\"\n [open]=\"openEditModal$ | async\"\n></valtimo-dossier-management-edit-tab-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.tabManagement.deleteModal.description\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dossierManagement.tabManagement.deleteModal.title\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n", styles: [".valtimo-dossier-management-tabs__actions{width:1px}.valtimo-dossier-management-tabs__actions .move-buttons-container{display:flex;gap:8px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i6.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm"], outputs: ["confirmEvent", "cancelEvent"] }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "header", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: DossierManagementAddTabModalComponent, selector: "valtimo-dossier-management-add-tab-modal", inputs: ["documentDefinitionName", "open"], outputs: ["closeModalEvent"] }, { kind: "component", type: DossierManagementEditTabModalComponent, selector: "valtimo-dossier-management-edit-tab-modal", inputs: ["open", "tab"], outputs: ["closeModalEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1504
1833
|
}
|
|
1505
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
1834
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementTabsComponent, decorators: [{
|
|
1506
1835
|
type: Component,
|
|
1507
|
-
args: [{ selector: 'valtimo-dossier-management-list-columns', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n caseListColumn: translatedCaseListColumns$ | async,\n fields: fields$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n hasEnvironmentConfig: hasEnvironmentConfig$ | async,\n downloadUrl: downloadUrl$ | async,\n downloadName: downloadName$ | async\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-2\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"!obs.hasEnvironmentConfig; else environmentConfigWarning\">\n <ng-container *ngIf=\"!loadingCaseListColumns; else loading\">\n <ng-container *ngIf=\"obs.caseListColumn?.length > 0; else noConfigWarning\">\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <a\n cdsLink\n class=\"center-link\"\n [href]=\"obs.downloadUrl\"\n [download]=\"obs.downloadName\"\n [disabled]=\"\n obs.hasEnvironmentConfig ||\n !obs.downloadUrl ||\n !obs.downloadName ||\n obs.caseListColumn?.length < 1 ||\n obs.disableInput ||\n loadingCaseListColumns\n \"\n >\n {{ 'listColumn.downloadButtonText' | translate }}\n </a>\n <button\n (click)=\"openModal('create')\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"obs.hasEnvironmentConfig || loadingCaseListColumns\"\n class=\"ml-3\"\n >\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #moveRowButtons let-index=\"index\" let-length=\"length\">\n <div\n class=\"move-row-buttons\"\n *ngIf=\"{\n disableInput: disableInput$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n >\n <i\n class=\"mdi mdi-delete btn btn-outline-danger mr-1\"\n (click)=\"deleteRow(index, $event)\"\n [ngClass]=\"{'disabled disabled-move-row-button': obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-up-bold btn btn-outline-primary mr-1\"\n (click)=\"moveRow(index, true, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === 0 || obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-down-bold btn btn-outline-secondary\"\n (click)=\"moveRow(index, false, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{\n 'disabled disabled-move-row-button': index === length - 1 || obs.disableInput\n }\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.caseListColumn\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n *ngIf=\"obs.caseListColumn; else loading\"\n [lastColumnTemplate]=\"moveRowButtonsTemplateRef\"\n (rowClicked)=\"columnRowClicked($event)\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #environmentConfigWarning>\n <div class=\"pl-2 pr-2 pb-2\">\n <cds-notification\n [notificationObj]=\"{\n type: 'warning',\n title: 'listColumn.hasEnvConfigWarningTitle' | translate,\n message: 'listColumn.hasEnvConfigWarning' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #noConfigWarning>\n <div class=\"pl-2 pr-2 pb-2\">\n <cds-notification\n [notificationObj]=\"{\n type: 'info',\n title: 'listColumn.noConfigWarningTitle' | translate,\n message: 'listColumn.noConfigWarning' | translate,\n showClose: false\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n type: currentModalType$ | async,\n show: showModal$ | async,\n valid: valid$ | async,\n disableInput: disableInput$ | async,\n validKey: validKey$ | async,\n disableDefaultSort: disableDefaultSort$ | async,\n showEnum: showEnum$ | async,\n isYesNo: isYesNo$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n modalObs.type === 'create'\n ? ('listColumn.addButtonText' | translate)\n : ('listColumn.editColumnTitle' | translate)\n }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <form [formGroup]=\"formGroup\" class=\"list-column-form\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.titleTitle' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.titleTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"title\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [disabled]=\"modalObs.disableInput || modalObs.type === 'edit'\"\n [invalid]=\"modalObs.validKey === false\"\n [invalidText]=\"'listColumn.uniqueKeyWarning' | translate\"\n >\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.key' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.keyTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"key\" [invalid]=\"modalObs.validKey === false\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.path' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.pathTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"path\" />\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.displayType' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.displayTypeTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <cds-dropdown formControlName=\"displayType\" [disabled]=\"modalObs.disableInput\">\n <cds-dropdown-list [items]=\"viewTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"showDateFormat$ | async\">\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.dateFormat' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.dateFormatTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <input cdsText formControlName=\"dateFormat\" />\n </cds-label>\n </div>\n <div\n class=\"cds--text-input__field-wrapper\"\n *ngIf=\"modalObs.showEnum || modalObs.isYesNo\"\n [ngClass]=\"{'no-margin': modalObs.isYesNo}\"\n >\n <cds-label [disabled]=\"modalObs.disableInput\">\n <span class=\"label-with-tooltip select-label\">\n {{\n modalObs.isYesNo\n ? ('listColumn.enumTitleOptional' | translate)\n : ('listColumn.enumTitle' | translate)\n }}\n <v-tooltip-icon\n [tooltip]=\"\n modalObs.isYesNo\n ? ('listColumn.enumTooltipOptional' | translate)\n : ('listColumn.enumTooltip' | translate)\n \"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <valtimo-carbon-multi-input\n *ngIf=\"(showModal$ | async) || (modalShowing$ | async)\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n [defaultValues]=\"defaultEnumValues$ | async\"\n [hideAddButton]=\"modalObs.isYesNo\"\n [hideDeleteButton]=\"modalObs.isYesNo\"\n [maxRows]=\"modalObs.isYesNo ? 1 : null\"\n [keyColumnTitle]=\"modalObs.isYesNo && ('viewTypeConverter.Yes' | translate)\"\n [valueColumnTitle]=\"modalObs.isYesNo && ('viewTypeConverter.No' | translate)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-checkbox formControlName=\"sortable\"\n >{{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n </div>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"modalObs.disableInput || modalObs.disableDefaultSort\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.defaultSortTitle' | translate }}\n <v-tooltip-icon\n [tooltip]=\"'listColumn.defaultSortTooltip' | translate\"\n [disabled]=\"modalObs.disableInput\"\n ></v-tooltip-icon>\n </span>\n <cds-dropdown\n formControlName=\"defaultSort\"\n [disabled]=\"modalObs.disableInput || modalObs.disableDefaultSort\"\n >\n <cds-dropdown-list [items]=\"sortItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'listColumn.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"modalObs.valid === false\"\n (click)=\"saveCasListColumns()\"\n [disabled]=\"\n modalObs.disableInput || modalObs.valid === false || modalObs.validKey === false\n \"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><<cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteRowIndex$ | async\"\n (confirmEvent)=\"deleteRowConfirmation($event)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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 */::ng-deep .tab-container{min-height:unset!important}::ng-deep .cds--inline-notification{max-width:100%}.label-with-tooltip{display:flex;align-items:center}.cds--text-input__field-wrapper:not(:last-child){margin-bottom:1rem}.no-margin{margin-bottom:0!important}.display-type-dropdown{width:300px}.list-column-form{margin-bottom:3rem}.select-label{padding-bottom:.5rem;width:250px}.loading-icon{width:100%;display:flex;align-items:center;justify-content:center}.center-link{display:flex;align-items:center}::ng-deep .move-row-buttons{display:flex;flex-direction:row;justify-content:flex-end;padding-right:13px}\n"] }]
|
|
1508
|
-
}], ctorParameters: function () { return [{ type:
|
|
1836
|
+
args: [{ selector: 'valtimo-dossier-management-tabs', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2023 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-carbon-list\n *ngIf=\"{fields: fields$ | async, loading: loading$ | async, tabs: tabs$ | async} as obs\"\n [items]=\"obs.tabs\"\n [fields]=\"obs.fields\"\n header=\"false\"\n [loading]=\"obs.loading\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <ng-container carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTabButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTabButton\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #tabTypeColumn let-data=\"data\">\n {{\n isTranslated('dossierManagement.tabType.' + data.item.type)\n ? ('dossierManagement.tabType.' + data.item.type | translate)\n : data.item.type\n }}\n</ng-template>\n\n<ng-template #tabContentColumn let-data=\"data\">\n {{\n isTranslated('dossier.tabs.' + data.item.contentKey)\n ? ('dossier.tabs.' + data.item.contentKey | translate)\n : data.item.contentKey\n }}\n</ng-template>\n\n<ng-template #addTabButton>\n <button cdsButton=\"primary\" (click)=\"openAddTabModal()\">\n {{ 'dossierManagement.tabManagement.addModal.addTab' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<ng-template #moveButtonsTemplate let-data=\"data\">\n <div class=\"move-buttons-container\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n (click)=\"onArrowClick('UP', data.index, $event)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"(lastItemIndex$ | async) === data.index\"\n [iconOnly]=\"true\"\n (click)=\"onArrowClick('DOWN', data.index, $event)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-add-tab-modal\n *ngIf=\"openAddModal$ | async\"\n [documentDefinitionName]=\"documentDefinitionName\"\n [open]=\"openAddModal$ | async\"\n (closeModalEvent)=\"onCloseAddModalEvent($event)\"\n></valtimo-dossier-management-add-tab-modal>\n\n<valtimo-dossier-management-edit-tab-modal\n *ngIf=\"openEditModal$ | async\"\n [tab]=\"tab$ | async\"\n (closeModalEvent)=\"onCloseEditModalEvent($event)\"\n [open]=\"openEditModal$ | async\"\n></valtimo-dossier-management-edit-tab-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.tabManagement.deleteModal.description\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dossierManagement.tabManagement.deleteModal.title\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n", styles: [".valtimo-dossier-management-tabs__actions{width:1px}.valtimo-dossier-management-tabs__actions .move-buttons-container{display:flex;gap:8px}\n"] }]
|
|
1837
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i9.IconService }, { type: TabManagementService }, { type: TabService }, { type: i3.TranslateService }]; }, propDecorators: { tabContentColumnTemplate: [{
|
|
1509
1838
|
type: ViewChild,
|
|
1510
|
-
args: ['
|
|
1839
|
+
args: ['tabContentColumn']
|
|
1840
|
+
}], tabTypeColumnTemplate: [{
|
|
1841
|
+
type: ViewChild,
|
|
1842
|
+
args: ['tabTypeColumn']
|
|
1843
|
+
}], moveButtonsTemplate: [{
|
|
1844
|
+
type: ViewChild,
|
|
1845
|
+
args: ['moveButtonsTemplate']
|
|
1846
|
+
}], documentDefinitionName: [{
|
|
1847
|
+
type: Input
|
|
1511
1848
|
}] } });
|
|
1512
1849
|
|
|
1513
1850
|
/*
|
|
@@ -1537,7 +1874,9 @@ class DossierManagementDetailContainerComponent {
|
|
|
1537
1874
|
this.documentDefinition$ = this.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.documentService.getDocumentDefinitionForManagement(documentDefinitionName)), tap(documentDefinition => {
|
|
1538
1875
|
this.pageTitleService.setCustomPageTitle(documentDefinition.schema.title);
|
|
1539
1876
|
}));
|
|
1540
|
-
|
|
1877
|
+
const featureToggles = this.configService.config.featureToggles;
|
|
1878
|
+
this.caseListColumn = !!featureToggles?.caseListColumn;
|
|
1879
|
+
this.tabManagementEnabled = !!featureToggles?.enableTabManagement;
|
|
1541
1880
|
}
|
|
1542
1881
|
ngOnInit() {
|
|
1543
1882
|
this.openCurrentTabSubscription();
|
|
@@ -1552,13 +1891,231 @@ class DossierManagementDetailContainerComponent {
|
|
|
1552
1891
|
this.tabService.currentTab = TabEnum.CASE;
|
|
1553
1892
|
this.tabSubscription?.unsubscribe();
|
|
1554
1893
|
}
|
|
1555
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementDetailContainerComponent, deps: [{ token: i1
|
|
1556
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementDetailContainerComponent, selector: "valtimo-dossier-management-detail-container", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <ng-container *ngIf=\"documentDefinition$ | async as documentDefinition\">\n <div class=\"bg-light dossier-header\" *ngIf=\"documentDefinition.readOnly\">\n <h3 class=\"dossier-title\">\n <div class=\"pull-right\">\n <span class=\"badge badge-pill badge-info increase-size\">{{\n 'dossierManagement.readonly' | translate\n }}</span>\n </div>\n </h3>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"case-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.CASE)\"\n >\n {{ 'dossierManagement.tabs.cases' | translate }}\n </a>\n </li>\n <li class=\"nav-item\">\n <a\n id=\"search-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.SEARCH)\"\n >\n {{ 'dossierManagement.tabs.searchFields' | translate }}\n </a>\n </li>\n <li class=\"nav-item\" *ngIf=\"caseListColumn\">\n <a\n id=\"list-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.LIST)\"\n >\n {{ 'dossierManagement.tabs.listColumns' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.CASE\">\n <valtimo-dossier-management-detail></valtimo-dossier-management-detail>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.SEARCH\">\n <valtimo-dossier-management-search-fields></valtimo-dossier-management-search-fields>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.LIST\">\n <valtimo-dossier-management-list-columns></valtimo-dossier-management-list-columns>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n"], dependencies: [{ kind: "directive", type:
|
|
1894
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementDetailContainerComponent, deps: [{ token: i1.DocumentService }, { token: i2.ActivatedRoute }, { token: i1$3.ConfigService }, { token: TabService }, { token: i6.PageTitleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1895
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementDetailContainerComponent, selector: "valtimo-dossier-management-detail-container", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <ng-container *ngIf=\"documentDefinition$ | async as documentDefinition\">\n <div class=\"bg-light dossier-header\" *ngIf=\"documentDefinition.readOnly\">\n <h3 class=\"dossier-title\">\n <div class=\"pull-right\">\n <span class=\"badge badge-pill badge-info increase-size\">{{\n 'dossierManagement.readonly' | translate\n }}</span>\n </div>\n </h3>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"case-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.CASE)\"\n >\n {{ 'dossierManagement.tabs.cases' | translate }}\n </a>\n </li>\n <li class=\"nav-item\">\n <a\n id=\"search-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.SEARCH)\"\n >\n {{ 'dossierManagement.tabs.searchFields' | translate }}\n </a>\n </li>\n <li class=\"nav-item\" *ngIf=\"caseListColumn\">\n <a\n id=\"list-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.LIST)\"\n >\n {{ 'dossierManagement.tabs.listColumns' | translate }}\n </a>\n </li>\n <li class=\"nav-item\" *ngIf=\"tabManagementEnabled\">\n <a\n id=\"list-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.TABS)\"\n >\n {{ 'dossierManagement.tabs.tabManagement' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.CASE\">\n <valtimo-dossier-management-detail></valtimo-dossier-management-detail>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.SEARCH\">\n <valtimo-dossier-management-search-fields></valtimo-dossier-management-search-fields>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.LIST\">\n <valtimo-dossier-management-list-columns></valtimo-dossier-management-list-columns>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.TABS\">\n <valtimo-dossier-management-tabs\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n ></valtimo-dossier-management-tabs>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: DossierManagementDetailComponent, selector: "valtimo-dossier-management-detail" }, { kind: "component", type: DossierManagementSearchFieldsComponent, selector: "valtimo-dossier-management-search-fields", outputs: ["searchField"] }, { kind: "component", type: DossierManagementListColumnsComponent, selector: "valtimo-dossier-management-list-columns" }, { kind: "component", type: DossierManagementTabsComponent, selector: "valtimo-dossier-management-tabs", inputs: ["documentDefinitionName"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
1557
1896
|
}
|
|
1558
1897
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementDetailContainerComponent, decorators: [{
|
|
1559
1898
|
type: Component,
|
|
1560
|
-
args: [{ selector: 'valtimo-dossier-management-detail-container', template: "<!--\n ~ Copyright 2015-2023 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=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <ng-container *ngIf=\"documentDefinition$ | async as documentDefinition\">\n <div class=\"bg-light dossier-header\" *ngIf=\"documentDefinition.readOnly\">\n <h3 class=\"dossier-title\">\n <div class=\"pull-right\">\n <span class=\"badge badge-pill badge-info increase-size\">{{\n 'dossierManagement.readonly' | translate\n }}</span>\n </div>\n </h3>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"case-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.CASE)\"\n >\n {{ 'dossierManagement.tabs.cases' | translate }}\n </a>\n </li>\n <li class=\"nav-item\">\n <a\n id=\"search-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.SEARCH)\"\n >\n {{ 'dossierManagement.tabs.searchFields' | translate }}\n </a>\n </li>\n <li class=\"nav-item\" *ngIf=\"caseListColumn\">\n <a\n id=\"list-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.LIST)\"\n >\n {{ 'dossierManagement.tabs.listColumns' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.CASE\">\n <valtimo-dossier-management-detail></valtimo-dossier-management-detail>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.SEARCH\">\n <valtimo-dossier-management-search-fields></valtimo-dossier-management-search-fields>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.LIST\">\n <valtimo-dossier-management-list-columns></valtimo-dossier-management-list-columns>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n"] }]
|
|
1561
|
-
}], ctorParameters: function () { return [{ type: i1
|
|
1899
|
+
args: [{ selector: 'valtimo-dossier-management-detail-container', template: "<!--\n ~ Copyright 2015-2023 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=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <ng-container *ngIf=\"documentDefinition$ | async as documentDefinition\">\n <div class=\"bg-light dossier-header\" *ngIf=\"documentDefinition.readOnly\">\n <h3 class=\"dossier-title\">\n <div class=\"pull-right\">\n <span class=\"badge badge-pill badge-info increase-size\">{{\n 'dossierManagement.readonly' | translate\n }}</span>\n </div>\n </h3>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"case-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.CASE)\"\n >\n {{ 'dossierManagement.tabs.cases' | translate }}\n </a>\n </li>\n <li class=\"nav-item\">\n <a\n id=\"search-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.SEARCH)\"\n >\n {{ 'dossierManagement.tabs.searchFields' | translate }}\n </a>\n </li>\n <li class=\"nav-item\" *ngIf=\"caseListColumn\">\n <a\n id=\"list-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.LIST)\"\n >\n {{ 'dossierManagement.tabs.listColumns' | translate }}\n </a>\n </li>\n <li class=\"nav-item\" *ngIf=\"tabManagementEnabled\">\n <a\n id=\"list-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.TABS)\"\n >\n {{ 'dossierManagement.tabs.tabManagement' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.CASE\">\n <valtimo-dossier-management-detail></valtimo-dossier-management-detail>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.SEARCH\">\n <valtimo-dossier-management-search-fields></valtimo-dossier-management-search-fields>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.LIST\">\n <valtimo-dossier-management-list-columns></valtimo-dossier-management-list-columns>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.TABS\">\n <valtimo-dossier-management-tabs\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n ></valtimo-dossier-management-tabs>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n"] }]
|
|
1900
|
+
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.ActivatedRoute }, { type: i1$3.ConfigService }, { type: TabService }, { type: i6.PageTitleService }]; } });
|
|
1901
|
+
|
|
1902
|
+
/*
|
|
1903
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
1904
|
+
*
|
|
1905
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1906
|
+
* you may not use this file except in compliance with the License.
|
|
1907
|
+
* You may obtain a copy of the License at
|
|
1908
|
+
*
|
|
1909
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1910
|
+
*
|
|
1911
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1912
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1913
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1914
|
+
* See the License for the specific language governing permissions and
|
|
1915
|
+
* limitations under the License.
|
|
1916
|
+
*/
|
|
1917
|
+
class DossierManagementUploadComponent {
|
|
1918
|
+
constructor(documentService, translateService, menuService) {
|
|
1919
|
+
this.documentService = documentService;
|
|
1920
|
+
this.translateService = translateService;
|
|
1921
|
+
this.menuService = menuService;
|
|
1922
|
+
this.definitionUploaded = new EventEmitter();
|
|
1923
|
+
this.clear$ = new Subject();
|
|
1924
|
+
this.jsonString$ = new BehaviorSubject('');
|
|
1925
|
+
this.error$ = new BehaviorSubject('');
|
|
1926
|
+
this.disabled$ = new BehaviorSubject(false);
|
|
1927
|
+
this.file$ = new BehaviorSubject(undefined);
|
|
1928
|
+
}
|
|
1929
|
+
ngAfterViewInit() {
|
|
1930
|
+
this.openShowSubscription();
|
|
1931
|
+
this.openFileSubscription();
|
|
1932
|
+
}
|
|
1933
|
+
ngOnDestroy() {
|
|
1934
|
+
this.showSubscription.unsubscribe();
|
|
1935
|
+
this.fileSubscription.unsubscribe();
|
|
1936
|
+
this.closeErrorSubscription();
|
|
1937
|
+
}
|
|
1938
|
+
setFile(file) {
|
|
1939
|
+
this.clearError();
|
|
1940
|
+
this.file$.next(file);
|
|
1941
|
+
}
|
|
1942
|
+
uploadDefinition() {
|
|
1943
|
+
this.disable();
|
|
1944
|
+
this.jsonString$
|
|
1945
|
+
.pipe(switchMap$1(jsonString => this.documentService
|
|
1946
|
+
.createDocumentDefinitionForManagement(new DocumentDefinitionCreateRequest(jsonString))
|
|
1947
|
+
.pipe(tap(
|
|
1948
|
+
// success
|
|
1949
|
+
() => {
|
|
1950
|
+
this.closeErrorSubscription();
|
|
1951
|
+
this.clearError();
|
|
1952
|
+
this.enable();
|
|
1953
|
+
this.hideModal();
|
|
1954
|
+
this.menuService.reload();
|
|
1955
|
+
this.definitionUploaded.emit();
|
|
1956
|
+
},
|
|
1957
|
+
// error
|
|
1958
|
+
() => {
|
|
1959
|
+
this.openErrorSubscription('dropzone.error.invalidDocDef');
|
|
1960
|
+
this.enable();
|
|
1961
|
+
}))), take$1(1))
|
|
1962
|
+
.subscribe();
|
|
1963
|
+
}
|
|
1964
|
+
openErrorSubscription(errorCode) {
|
|
1965
|
+
this.closeErrorSubscription();
|
|
1966
|
+
this.errorSubscription = this.translateService.stream(errorCode).subscribe(error => {
|
|
1967
|
+
this.error$.next(error);
|
|
1968
|
+
});
|
|
1969
|
+
}
|
|
1970
|
+
closeErrorSubscription() {
|
|
1971
|
+
if (this.errorSubscription) {
|
|
1972
|
+
this.errorSubscription.unsubscribe();
|
|
1973
|
+
}
|
|
1974
|
+
}
|
|
1975
|
+
clearError() {
|
|
1976
|
+
this.error$.next('');
|
|
1977
|
+
}
|
|
1978
|
+
openFileSubscription() {
|
|
1979
|
+
this.fileSubscription = this.file$.subscribe(file => {
|
|
1980
|
+
if (file) {
|
|
1981
|
+
const reader = new FileReader();
|
|
1982
|
+
reader.onloadend = () => {
|
|
1983
|
+
const result = reader.result.toString();
|
|
1984
|
+
if (this.stringIsValidJson(result)) {
|
|
1985
|
+
this.jsonString$.next(result);
|
|
1986
|
+
}
|
|
1987
|
+
else {
|
|
1988
|
+
this.clearJsonString();
|
|
1989
|
+
this.error$.next(this.translateService.instant('dropzone.error.invalidJson'));
|
|
1990
|
+
}
|
|
1991
|
+
};
|
|
1992
|
+
reader.readAsText(file);
|
|
1993
|
+
}
|
|
1994
|
+
else {
|
|
1995
|
+
this.clearJsonString();
|
|
1996
|
+
}
|
|
1997
|
+
});
|
|
1998
|
+
}
|
|
1999
|
+
openShowSubscription() {
|
|
2000
|
+
this.showSubscription = this.show$.subscribe(show => {
|
|
2001
|
+
if (show) {
|
|
2002
|
+
this.showModal();
|
|
2003
|
+
}
|
|
2004
|
+
else {
|
|
2005
|
+
this.hideModal();
|
|
2006
|
+
}
|
|
2007
|
+
this.clearJsonString();
|
|
2008
|
+
this.clearError();
|
|
2009
|
+
this.clearDropzone();
|
|
2010
|
+
});
|
|
2011
|
+
}
|
|
2012
|
+
clearJsonString() {
|
|
2013
|
+
this.jsonString$.next('');
|
|
2014
|
+
}
|
|
2015
|
+
clearDropzone() {
|
|
2016
|
+
this.clear$.next(null);
|
|
2017
|
+
}
|
|
2018
|
+
showModal() {
|
|
2019
|
+
this.modal.show();
|
|
2020
|
+
}
|
|
2021
|
+
hideModal() {
|
|
2022
|
+
this.modal.hide();
|
|
2023
|
+
}
|
|
2024
|
+
stringIsValidJson(string) {
|
|
2025
|
+
try {
|
|
2026
|
+
JSON.parse(string);
|
|
2027
|
+
}
|
|
2028
|
+
catch (e) {
|
|
2029
|
+
return false;
|
|
2030
|
+
}
|
|
2031
|
+
return true;
|
|
2032
|
+
}
|
|
2033
|
+
disable() {
|
|
2034
|
+
this.disabled$.next(true);
|
|
2035
|
+
}
|
|
2036
|
+
enable() {
|
|
2037
|
+
this.disabled$.next(false);
|
|
2038
|
+
}
|
|
2039
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementUploadComponent, deps: [{ token: i1.DocumentService }, { token: i3.TranslateService }, { token: i6.MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2040
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementUploadComponent, selector: "valtimo-dossier-management-upload", inputs: { show$: "show$" }, outputs: { definitionUploaded: "definitionUploaded" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["uploadDefinitionModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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-modal\n #uploadDefinitionModal\n [title]=\"'Upload document definition' | translate\"\n showFooter=\"true\"\n>\n <div class=\"mt-2\" body>\n <valtimo-dropzone\n [clear$]=\"clear$\"\n (fileSelected)=\"setFile($event)\"\n [disabled]=\"disabled$ | async\"\n [subtitle]=\"'dropzone.jsonDocDef' | translate\"\n [externalError$]=\"error$\"\n [maxFiles]=\"1\"\n ></valtimo-dropzone>\n </div>\n <div footer>\n <ng-container *ngIf=\"(jsonString$ | async) && (error$ | async) === ''; else disabledUpload\">\n <button [disabled]=\"disabled$ | async\" class=\"btn btn-primary\" (click)=\"uploadDefinition()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n </ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #disabledUpload>\n <button [disabled]=\"true\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "component", type: i6.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
2041
|
+
}
|
|
2042
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementUploadComponent, decorators: [{
|
|
2043
|
+
type: Component,
|
|
2044
|
+
args: [{ selector: 'valtimo-dossier-management-upload', template: "<!--\n ~ Copyright 2015-2023 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-modal\n #uploadDefinitionModal\n [title]=\"'Upload document definition' | translate\"\n showFooter=\"true\"\n>\n <div class=\"mt-2\" body>\n <valtimo-dropzone\n [clear$]=\"clear$\"\n (fileSelected)=\"setFile($event)\"\n [disabled]=\"disabled$ | async\"\n [subtitle]=\"'dropzone.jsonDocDef' | translate\"\n [externalError$]=\"error$\"\n [maxFiles]=\"1\"\n ></valtimo-dropzone>\n </div>\n <div footer>\n <ng-container *ngIf=\"(jsonString$ | async) && (error$ | async) === ''; else disabledUpload\">\n <button [disabled]=\"disabled$ | async\" class=\"btn btn-primary\" (click)=\"uploadDefinition()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n </ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #disabledUpload>\n <button [disabled]=\"true\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
|
|
2045
|
+
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i3.TranslateService }, { type: i6.MenuService }]; }, propDecorators: { show$: [{
|
|
2046
|
+
type: Input
|
|
2047
|
+
}], definitionUploaded: [{
|
|
2048
|
+
type: Output
|
|
2049
|
+
}], modal: [{
|
|
2050
|
+
type: ViewChild,
|
|
2051
|
+
args: ['uploadDefinitionModal']
|
|
2052
|
+
}] } });
|
|
2053
|
+
|
|
2054
|
+
/*
|
|
2055
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
2056
|
+
*
|
|
2057
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2058
|
+
* you may not use this file except in compliance with the License.
|
|
2059
|
+
* You may obtain a copy of the License at
|
|
2060
|
+
*
|
|
2061
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2062
|
+
*
|
|
2063
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2064
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2065
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2066
|
+
* See the License for the specific language governing permissions and
|
|
2067
|
+
* limitations under the License.
|
|
2068
|
+
*/
|
|
2069
|
+
moment.locale(localStorage.getItem('langKey') || '');
|
|
2070
|
+
class DossierManagementListComponent {
|
|
2071
|
+
constructor(documentService, router) {
|
|
2072
|
+
this.documentService = documentService;
|
|
2073
|
+
this.router = router;
|
|
2074
|
+
this.dossiers = [];
|
|
2075
|
+
this.pagination = {
|
|
2076
|
+
collectionSize: 0,
|
|
2077
|
+
page: 1,
|
|
2078
|
+
size: 10,
|
|
2079
|
+
};
|
|
2080
|
+
this.pageParam = 0;
|
|
2081
|
+
this.dossierFields = [
|
|
2082
|
+
{ key: 'schema.title', label: 'Title' },
|
|
2083
|
+
{ key: 'createdOn', label: 'Created On' },
|
|
2084
|
+
{ key: 'readOnly', label: 'Read-only' },
|
|
2085
|
+
];
|
|
2086
|
+
this.showModal$ = new BehaviorSubject(false);
|
|
2087
|
+
}
|
|
2088
|
+
paginationClicked(page) {
|
|
2089
|
+
this.pageParam = page - 1;
|
|
2090
|
+
this.getDocumentDefinitions();
|
|
2091
|
+
}
|
|
2092
|
+
paginationSet() {
|
|
2093
|
+
this.getDocumentDefinitions();
|
|
2094
|
+
}
|
|
2095
|
+
redirectToDetails(documentDefinition) {
|
|
2096
|
+
this.router.navigate(['/dossier-management/dossier', documentDefinition.id.name]);
|
|
2097
|
+
}
|
|
2098
|
+
getDocumentDefinitions() {
|
|
2099
|
+
this.documentService
|
|
2100
|
+
.queryDefinitionsForManagement({ page: this.pageParam, size: this.pagination.size })
|
|
2101
|
+
.subscribe((documentDefinitionPage) => {
|
|
2102
|
+
this.pagination.collectionSize = documentDefinitionPage.totalElements;
|
|
2103
|
+
this.dossiers = documentDefinitionPage.content;
|
|
2104
|
+
this.dossiers.map((dossier) => {
|
|
2105
|
+
dossier.createdOn = moment(dossier.createdOn).format('DD MMM YYYY HH:mm');
|
|
2106
|
+
});
|
|
2107
|
+
});
|
|
2108
|
+
}
|
|
2109
|
+
showModal() {
|
|
2110
|
+
this.showModal$.next(true);
|
|
2111
|
+
}
|
|
2112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementListComponent, deps: [{ token: i1.DocumentService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementListComponent, selector: "valtimo-dossier-management-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 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=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class=\"btn btn-secondary btn-space mr-0\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload document definition' | translate }}\n </button>\n </div>\n <div class=\"clearfix\"></div>\n <valtimo-widget>\n <valtimo-list\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet()\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Dossiers' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Dossiers' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </div>\n</div>\n\n<valtimo-dossier-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"paginationSet()\"\n></valtimo-dossier-management-upload>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "component", type: i6.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i6.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: DossierManagementUploadComponent, selector: "valtimo-dossier-management-upload", inputs: ["show$"], outputs: ["definitionUploaded"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
2114
|
+
}
|
|
2115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementListComponent, decorators: [{
|
|
2116
|
+
type: Component,
|
|
2117
|
+
args: [{ selector: 'valtimo-dossier-management-list', template: "<!--\n ~ Copyright 2015-2023 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=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class=\"btn btn-secondary btn-space mr-0\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload document definition' | translate }}\n </button>\n </div>\n <div class=\"clearfix\"></div>\n <valtimo-widget>\n <valtimo-list\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet()\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Dossiers' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Dossiers' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </div>\n</div>\n\n<valtimo-dossier-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"paginationSet()\"\n></valtimo-dossier-management-upload>\n", styles: ["/*!\n * Copyright 2015-2023 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"] }]
|
|
2118
|
+
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.Router }]; } });
|
|
1562
2119
|
|
|
1563
2120
|
/*
|
|
1564
2121
|
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
@@ -1629,7 +2186,11 @@ class DossierManagementModule {
|
|
|
1629
2186
|
DossierManagementSearchFieldsComponent,
|
|
1630
2187
|
DossierManagementDetailContainerComponent,
|
|
1631
2188
|
DossierManagementAssigneeComponent,
|
|
1632
|
-
DossierManagementListColumnsComponent
|
|
2189
|
+
DossierManagementListColumnsComponent,
|
|
2190
|
+
DossierManagementTabsComponent,
|
|
2191
|
+
DossierManagementAddTabModalComponent,
|
|
2192
|
+
TabFormComponent,
|
|
2193
|
+
DossierManagementEditTabModalComponent], imports: [CommonModule,
|
|
1633
2194
|
WidgetModule,
|
|
1634
2195
|
DropzoneModule,
|
|
1635
2196
|
ListModule,
|
|
@@ -1661,8 +2222,10 @@ class DossierManagementModule {
|
|
|
1661
2222
|
ConfirmationModalModule,
|
|
1662
2223
|
CarbonMultiInputModule,
|
|
1663
2224
|
TableModule,
|
|
1664
|
-
ValtimoCdsModalDirectiveModule
|
|
1665
|
-
|
|
2225
|
+
ValtimoCdsModalDirectiveModule,
|
|
2226
|
+
CarbonListModule,
|
|
2227
|
+
ComboBoxModule] }); }
|
|
2228
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementModule, providers: [TabManagementService], imports: [CommonModule,
|
|
1666
2229
|
WidgetModule,
|
|
1667
2230
|
DropzoneModule,
|
|
1668
2231
|
ListModule,
|
|
@@ -1694,7 +2257,9 @@ class DossierManagementModule {
|
|
|
1694
2257
|
ConfirmationModalModule,
|
|
1695
2258
|
CarbonMultiInputModule,
|
|
1696
2259
|
TableModule,
|
|
1697
|
-
ValtimoCdsModalDirectiveModule
|
|
2260
|
+
ValtimoCdsModalDirectiveModule,
|
|
2261
|
+
CarbonListModule,
|
|
2262
|
+
ComboBoxModule] }); }
|
|
1698
2263
|
}
|
|
1699
2264
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementModule, decorators: [{
|
|
1700
2265
|
type: NgModule,
|
|
@@ -1710,6 +2275,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1710
2275
|
DossierManagementDetailContainerComponent,
|
|
1711
2276
|
DossierManagementAssigneeComponent,
|
|
1712
2277
|
DossierManagementListColumnsComponent,
|
|
2278
|
+
DossierManagementTabsComponent,
|
|
2279
|
+
DossierManagementAddTabModalComponent,
|
|
2280
|
+
TabFormComponent,
|
|
2281
|
+
DossierManagementEditTabModalComponent,
|
|
1713
2282
|
],
|
|
1714
2283
|
imports: [
|
|
1715
2284
|
CommonModule,
|
|
@@ -1745,43 +2314,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1745
2314
|
CarbonMultiInputModule,
|
|
1746
2315
|
TableModule,
|
|
1747
2316
|
ValtimoCdsModalDirectiveModule,
|
|
2317
|
+
CarbonListModule,
|
|
2318
|
+
ComboBoxModule,
|
|
1748
2319
|
],
|
|
1749
|
-
|
|
2320
|
+
providers: [TabManagementService],
|
|
1750
2321
|
}]
|
|
1751
2322
|
}] });
|
|
1752
2323
|
|
|
1753
|
-
/*
|
|
1754
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
1755
|
-
*
|
|
1756
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1757
|
-
* you may not use this file except in compliance with the License.
|
|
1758
|
-
* You may obtain a copy of the License at
|
|
1759
|
-
*
|
|
1760
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1761
|
-
*
|
|
1762
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
1763
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
1764
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1765
|
-
* See the License for the specific language governing permissions and
|
|
1766
|
-
* limitations under the License.
|
|
1767
|
-
*/
|
|
1768
|
-
|
|
1769
|
-
/*
|
|
1770
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
1771
|
-
*
|
|
1772
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1773
|
-
* you may not use this file except in compliance with the License.
|
|
1774
|
-
* You may obtain a copy of the License at
|
|
1775
|
-
*
|
|
1776
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1777
|
-
*
|
|
1778
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
1779
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
1780
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1781
|
-
* See the License for the specific language governing permissions and
|
|
1782
|
-
* limitations under the License.
|
|
1783
|
-
*/
|
|
1784
|
-
|
|
1785
2324
|
/*
|
|
1786
2325
|
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
1787
2326
|
*
|
|
@@ -1805,5 +2344,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1805
2344
|
* Generated bundle index. Do not edit.
|
|
1806
2345
|
*/
|
|
1807
2346
|
|
|
1808
|
-
export { DossierManagementListComponent, DossierManagementModule };
|
|
2347
|
+
export { DossierManagementListComponent, DossierManagementModule, TabEnum };
|
|
1809
2348
|
//# sourceMappingURL=valtimo-dossier-management.mjs.map
|