@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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
17
|
+
import { Validators, } from '@angular/forms';
|
|
18
|
+
import { Code16, Development16, WatsonHealthPageScroll16 } from '@carbon/icons';
|
|
19
|
+
import { ApiTabType } from '@valtimo/dossier';
|
|
20
|
+
import { BehaviorSubject, map } from 'rxjs';
|
|
21
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
import * as i1 from "@angular/forms";
|
|
23
|
+
import * as i2 from "carbon-components-angular";
|
|
24
|
+
import * as i3 from "../../../services";
|
|
25
|
+
import * as i4 from "@angular/common";
|
|
26
|
+
import * as i5 from "../tab-form/tab-form.component";
|
|
27
|
+
import * as i6 from "@ngx-translate/core";
|
|
28
|
+
export class DossierManagementAddTabModalComponent {
|
|
29
|
+
constructor(fb, iconService, tabService) {
|
|
30
|
+
this.fb = fb;
|
|
31
|
+
this.iconService = iconService;
|
|
32
|
+
this.tabService = tabService;
|
|
33
|
+
this.open = false;
|
|
34
|
+
this.closeModalEvent = new EventEmitter();
|
|
35
|
+
this.ApiTabType = ApiTabType;
|
|
36
|
+
this.tabTypes$ = this.tabService.disableAddTabs$.pipe(map(disabled => [
|
|
37
|
+
{
|
|
38
|
+
icon: 'development',
|
|
39
|
+
title: 'dossierManagement.tabManagement.addModal.standardTab',
|
|
40
|
+
type: ApiTabType.STANDARD,
|
|
41
|
+
disabled: disabled.standard,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
icon: 'page-scroll',
|
|
45
|
+
title: 'dossierManagement.tabManagement.addModal.formIOComponent',
|
|
46
|
+
type: ApiTabType.FORMIO,
|
|
47
|
+
disabled: disabled.formIO,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
icon: 'code',
|
|
51
|
+
title: 'dossierManagement.tabManagement.addModal.customComponent',
|
|
52
|
+
type: ApiTabType.CUSTOM,
|
|
53
|
+
disabled: disabled.custom,
|
|
54
|
+
},
|
|
55
|
+
]));
|
|
56
|
+
this.form = this.fb.group({
|
|
57
|
+
name: this.fb.control(null),
|
|
58
|
+
key: this.fb.control('', [Validators.required, this.uniqueKeyValidator()]),
|
|
59
|
+
contentKey: this.fb.control('', Validators.required),
|
|
60
|
+
});
|
|
61
|
+
this.selectedTabType$ = new BehaviorSubject(null);
|
|
62
|
+
this.iconService.registerAll([Code16, Development16, WatsonHealthPageScroll16]);
|
|
63
|
+
}
|
|
64
|
+
addTab(type) {
|
|
65
|
+
const { contentKey, key, name } = this.form.getRawValue();
|
|
66
|
+
if (!contentKey || !key) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
this.closeModalEvent.emit({ name, key, contentKey, type });
|
|
70
|
+
}
|
|
71
|
+
backClick() {
|
|
72
|
+
this.resetModal();
|
|
73
|
+
}
|
|
74
|
+
onCloseModal() {
|
|
75
|
+
this.closeModalEvent.emit(null);
|
|
76
|
+
this.resetModal();
|
|
77
|
+
}
|
|
78
|
+
onTabTypeSelect(type) {
|
|
79
|
+
this.selectedTabType$.next(type);
|
|
80
|
+
}
|
|
81
|
+
resetModal() {
|
|
82
|
+
this.selectedTabType$.next(null);
|
|
83
|
+
this.form.reset();
|
|
84
|
+
}
|
|
85
|
+
uniqueKeyValidator() {
|
|
86
|
+
return (control) => this.tabService.configuredTabKeys.every((key) => key !== control.value)
|
|
87
|
+
? null
|
|
88
|
+
: { uniqueKey: { value: control.value } };
|
|
89
|
+
}
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementAddTabModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.IconService }, { token: i3.TabService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
+
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: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i2.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.TabFormComponent, selector: "valtimo-tab-form", inputs: ["tabType"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
92
|
+
}
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementAddTabModalComponent, decorators: [{
|
|
94
|
+
type: Component,
|
|
95
|
+
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"] }]
|
|
96
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.IconService }, { type: i3.TabService }]; }, propDecorators: { documentDefinitionName: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], open: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], closeModalEvent: [{
|
|
101
|
+
type: Output
|
|
102
|
+
}] } });
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LWFkZC10YWItbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzL2Rvc3NpZXItbWFuYWdlbWVudC1hZGQtdGFiLW1vZGFsL2Rvc3NpZXItbWFuYWdlbWVudC1hZGQtdGFiLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtYWRkLXRhYi1tb2RhbC9kb3NzaWVyLW1hbmFnZW1lbnQtYWRkLXRhYi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBS0wsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFhLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU8sRUFBQyxlQUFlLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVUxQyxNQUFNLE9BQU8scUNBQXFDO0lBcUNoRCxZQUNtQixFQUFlLEVBQ2YsV0FBd0IsRUFDeEIsVUFBc0I7UUFGdEIsT0FBRSxHQUFGLEVBQUUs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QUcsS0FBSyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzdFLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLEVBQUMsU0FBUyxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUMsRUFBQyxDQUFDO0lBQzVDLENBQUM7K0dBN0VVLHFDQUFxQzttR0FBckMscUNBQXFDLDZNQzNDbEQsMnJGQW9FQTs7NEZEekJhLHFDQUFxQztrQkFQakQsU0FBUzsrQkFDRSwwQ0FBMEMsbUJBR25DLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7cUpBRzVCLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUJ1aWxkZXIsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0NvZGUxNiwgRGV2ZWxvcG1lbnQxNiwgV2F0c29uSGVhbHRoUGFnZVNjcm9sbDE2fSBmcm9tICdAY2FyYm9uL2ljb25zJztcbmltcG9ydCB7QXBpVGFiSXRlbSwgQXBpVGFiVHlwZX0gZnJvbSAnQHZhbHRpbW8vZG9zc2llcic7XG5pbXBvcnQge0ljb25TZXJ2aWNlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUYWJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LWFkZC10YWItbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LWFkZC10YWItbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtYWRkLXRhYi1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llck1hbmFnZW1lbnRBZGRUYWJNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgb3BlbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8QXBpVGFiSXRlbT4gfCBudWxsPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBBcGlUYWJUeXBlID0gQXBpVGFiVHlwZTtcbiAgcHVibGljIHJlYWRvbmx5IHRhYlR5cGVzJCA9IHRoaXMudGFiU2VydmljZS5kaXNhYmxlQWRkVGFicyQucGlwZShcbiAgICBtYXAoZGlzYWJsZWQgPT4gW1xuICAgICAge1xuICAgICAgICBpY29uOiAnZGV2ZWxvcG1lbnQnLFxuICAgICAgICB0aXRsZTogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuYWRkTW9kYWwuc3RhbmRhcmRUYWInLFxuICAgICAgICB0eXBlOiBBcGlUYWJUeXBlLlNUQU5EQVJELFxuICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQuc3RhbmRhcmQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiAncGFnZS1zY3JvbGwnLFxuICAgICAgICB0aXRsZTogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuYWRkTW9kYWwuZm9ybUlPQ29tcG9uZW50JyxcbiAgICAgICAgdHlwZTogQXBpVGFiVHlwZS5GT1JNSU8sXG4gICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZC5mb3JtSU8sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiAnY29kZScsXG4gICAgICAgIHRpdGxlOiAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5hZGRNb2RhbC5jdXN0b21Db21wb25lbnQnLFxuICAgICAgICB0eXBlOiBBcGlUYWJUeXBlLkNVU1RPTSxcbiAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLmN1c3RvbSxcbiAgICAgIH0sXG4gICAgXSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIG5hbWU6IHRoaXMuZmIuY29udHJvbChudWxsKSxcbiAgICBrZXk6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMudW5pcXVlS2V5VmFsaWRhdG9yKCldKSxcbiAgICBjb250ZW50S2V5OiB0aGlzLmZiLmNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICB9KTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkVGFiVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFwaVRhYlR5cGUgfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBJY29uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYlNlcnZpY2U6IFRhYlNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlckFsbChbQ29kZTE2LCBEZXZlbG9wbWVudDE2LCBXYXRzb25IZWFsdGhQYWdlU2Nyb2xsMTZdKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUYWIodHlwZTogQXBpVGFiVHlwZSk6IHZvaWQge1xuICAgIGNvbnN0IHtjb250ZW50S2V5LCBrZXksIG5hbWV9ID0gdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCk7XG5cbiAgICBpZiAoIWNvbnRlbnRLZXkgfHwgIWtleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlTW9kYWxFdmVudC5lbWl0KHtuYW1lLCBrZXksIGNvbnRlbnRLZXksIHR5cGV9KTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldE1vZGFsKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQobnVsbCk7XG4gICAgdGhpcy5yZXNldE1vZGFsKCk7XG4gIH1cblxuICBwdWJsaWMgb25UYWJUeXBlU2VsZWN0KHR5cGU6IEFwaVRhYlR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVGFiVHlwZSQubmV4dCh0eXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVGFiVHlwZSQubmV4dChudWxsKTtcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5pcXVlS2V5VmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+XG4gICAgICB0aGlzLnRhYlNlcnZpY2UuY29uZmlndXJlZFRhYktleXMuZXZlcnkoKGtleTogc3RyaW5nKSA9PiBrZXkgIT09IGNvbnRyb2wudmFsdWUpXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHt1bmlxdWVLZXk6IHt2YWx1ZTogY29udHJvbC52YWx1ZX19O1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxjZHMtbW9kYWwgKm5nSWY9XCJ7c2VsZWN0ZWRUYWJUeXBlOiBzZWxlY3RlZFRhYlR5cGUkIHwgYXN5bmN9IGFzIG9ic1wiIFtvcGVuXT1cIm9wZW5cIj5cbiAgPGNkcy1tb2RhbC1oZWFkZXIgc2hvd0Nsb3NlQnV0dG9uPVwidHJ1ZVwiIChjbG9zZVNlbGVjdCk9XCJvbkNsb3NlTW9kYWwoKVwiPlxuICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICB7e1xuICAgICAgICAhb2JzLnNlbGVjdGVkVGFiVHlwZVxuICAgICAgICAgID8gKCdkb3NzaWVyTWFuYWdlbWVudC50YWJNYW5hZ2VtZW50LmFkZE1vZGFsLnRpdGxlJ1xuICAgICAgICAgICAgfCB0cmFuc2xhdGU6IHtkb2N1bWVudERlZmluaXRpb25OYW1lOiAoZG9jdW1lbnREZWZpbml0aW9uTmFtZSB8IHRpdGxlY2FzZSl9KVxuICAgICAgICAgIDogKCdkb3NzaWVyTWFuYWdlbWVudC50YWJNYW5hZ2VtZW50LnRpdGxlcy4nICsgb2JzLnNlbGVjdGVkVGFiVHlwZSB8IHRyYW5zbGF0ZSlcbiAgICAgIH19XG4gICAgPC9oMz5cbiAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuXG4gIDxzZWN0aW9uIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNkc01vZGFsQ29udGVudCBjbGFzcz1cInZhbHRpbW8tYWRkLXRhYi1tb2RhbF9fY29udGVudFwiPlxuICAgIDx2YWx0aW1vLXRhYi1mb3JtXG4gICAgICAqbmdJZj1cIm9icy5zZWxlY3RlZFRhYlR5cGU7IGVsc2UgdGFiVHlwZVNlbGVjdGlvblwiXG4gICAgICBbdGFiVHlwZV09XCJvYnMuc2VsZWN0ZWRUYWJUeXBlXCJcbiAgICA+PC92YWx0aW1vLXRhYi1mb3JtPlxuXG4gICAgPG5nLXRlbXBsYXRlICN0YWJUeXBlU2VsZWN0aW9uPlxuICAgICAgPHNwYW4+IHt7ICdkb3NzaWVyTWFuYWdlbWVudC50YWJNYW5hZ2VtZW50LmFkZE1vZGFsLmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fSA8L3NwYW4+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJ0YWJUeXBlcyQgfCBhc3luYyBhcyB0YWJUeXBlc1wiIGNsYXNzPVwidmFsdGltby1hZGQtdGFiLW1vZGFsX190eXBlc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHRhYlR5cGUgb2YgdGFiVHlwZXNcIlxuICAgICAgICAgIGNkc0J1dHRvbj1cInNlY29uZGFyeVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInRhYlR5cGUuZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJvblRhYlR5cGVTZWxlY3QodGFiVHlwZS50eXBlKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB0YWJUeXBlLnRpdGxlIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICA8c3ZnIFtjZHNJY29uXT1cInRhYlR5cGUuaWNvblwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3NlY3Rpb24+XG5cbiAgPGNkcy1tb2RhbC1mb290ZXIgY2xhc3M9XCJ2YWx0aW1vLWFkZC10YWItbW9kYWxfX2Zvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJ2YWx0aW1vLWFkZC10YWItbW9kYWxfX2NhbmNlbFwiIGNkc0J1dHRvbj1cImdob3N0XCIgKGNsaWNrKT1cIm9uQ2xvc2VNb2RhbCgpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJ2YWx0aW1vLWFkZC10YWItbW9kYWxfX2FjdGlvbnNcIiAqbmdJZj1cIm9icy5zZWxlY3RlZFRhYlR5cGVcIj5cbiAgICAgIDxidXR0b24gY2RzQnV0dG9uPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImJhY2tDbGljaygpXCI+XG4gICAgICAgIHt7ICdpbnRlcmZhY2UuYmFjaycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uIGNkc0J1dHRvbj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCIgKGNsaWNrKT1cImFkZFRhYihvYnMuc2VsZWN0ZWRUYWJUeXBlKVwiPlxuICAgICAgICB7eyAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5hZGRNb2RhbC5hZGRUYWInIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9jZHMtbW9kYWw+XG4iXX0=
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
17
|
+
import { Validators } from '@angular/forms';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@angular/forms";
|
|
20
|
+
import * as i2 from "../../../services";
|
|
21
|
+
import * as i3 from "@angular/common";
|
|
22
|
+
import * as i4 from "carbon-components-angular";
|
|
23
|
+
import * as i5 from "../tab-form/tab-form.component";
|
|
24
|
+
import * as i6 from "@ngx-translate/core";
|
|
25
|
+
export class DossierManagementEditTabModalComponent {
|
|
26
|
+
set tab(value) {
|
|
27
|
+
if (!value) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (!!this.tabService.configuredContentKeys) {
|
|
31
|
+
this.configuredKeysForEdit = this.tabService.configuredContentKeys.filter((tabKey) => tabKey !== value.contentKey);
|
|
32
|
+
}
|
|
33
|
+
this._tab = value;
|
|
34
|
+
this.form = this.fb.group({
|
|
35
|
+
name: this.fb.control(value.name),
|
|
36
|
+
key: this.fb.control({ value: value.key, disabled: true }, Validators.required),
|
|
37
|
+
contentKey: this.fb.control(value.contentKey, Validators.required),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
get tab() {
|
|
41
|
+
return this._tab;
|
|
42
|
+
}
|
|
43
|
+
constructor(fb, tabService) {
|
|
44
|
+
this.fb = fb;
|
|
45
|
+
this.tabService = tabService;
|
|
46
|
+
this.closeModalEvent = new EventEmitter();
|
|
47
|
+
}
|
|
48
|
+
onCloseModal() {
|
|
49
|
+
this.closeModalEvent.emit(null);
|
|
50
|
+
}
|
|
51
|
+
editTab() {
|
|
52
|
+
const { contentKey, name } = this.form.getRawValue();
|
|
53
|
+
if (!contentKey) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.closeModalEvent.emit({ ...this.tab, name, contentKey });
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementEditTabModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.TabService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i4.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i4.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i4.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.TabFormComponent, selector: "valtimo-tab-form", inputs: ["tabType"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementEditTabModalComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
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" }]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.TabService }]; }, propDecorators: { open: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], tab: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], closeModalEvent: [{
|
|
69
|
+
type: Output
|
|
70
|
+
}] } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWwvZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWwvZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQXlCLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVFsRSxNQUFNLE9BQU8sc0NBQXNDO0lBSWpELElBQW9CLEdBQUcsQ0FBQyxLQUFpQjtRQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRTtZQUMzQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQ3ZFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLFVBQVUsQ0FDaEQsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNqQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM3RSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ25FLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQU9ELFlBQ21CLEVBQWUsRUFDZixVQUFzQjtRQUR0QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVAvQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO0lBUS9ELENBQUM7SUFFRyxZQUFZO1FBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxPQUFPO1FBQ1osTUFBTSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5ELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQWhEVSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyx3S0N4Qm5ELDRpREEyQ0E7OzRGRG5CYSxzQ0FBc0M7a0JBSmxELFNBQVM7K0JBQ0UsMkNBQTJDOzJIQUk1QyxJQUFJO3NCQUFaLEtBQUs7Z0JBR2MsR0FBRztzQkFBdEIsS0FBSztnQkFzQkksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBcGlUYWJJdGVtfSBmcm9tICdAdmFsdGltby9kb3NzaWVyJztcbmltcG9ydCB7VGFiU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1lZGl0LXRhYi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyTWFuYWdlbWVudEVkaXRUYWJNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG9wZW46IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfdGFiOiBBcGlUYWJJdGVtO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRhYih2YWx1ZTogQXBpVGFiSXRlbSkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISF0aGlzLnRhYlNlcnZpY2UuY29uZmlndXJlZENvbnRlbnRLZXlzKSB7IFxuICAgICAgdGhpcy5jb25maWd1cmVkS2V5c0ZvckVkaXQgPSB0aGlzLnRhYlNlcnZpY2UuY29uZmlndXJlZENvbnRlbnRLZXlzLmZpbHRlcihcbiAgICAgICAgKHRhYktleTogc3RyaW5nKSA9PiB0YWJLZXkgIT09IHZhbHVlLmNvbnRlbnRLZXlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fdGFiID0gdmFsdWU7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiB0aGlzLmZiLmNvbnRyb2wodmFsdWUubmFtZSksXG4gICAgICBrZXk6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6IHZhbHVlLmtleSwgZGlzYWJsZWQ6IHRydWV9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGNvbnRlbnRLZXk6IHRoaXMuZmIuY29udHJvbCh2YWx1ZS5jb250ZW50S2V5LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgZ2V0IHRhYigpOiBBcGlUYWJJdGVtIHtcbiAgICByZXR1cm4gdGhpcy5fdGFiO1xuICB9XG5cbiAgQE91dHB1dCgpIGNsb3NlTW9kYWxFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8QXBpVGFiSXRlbSB8IG51bGw+KCk7XG5cbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIGNvbmZpZ3VyZWRLZXlzRm9yRWRpdDogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWJTZXJ2aWNlOiBUYWJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgb25DbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZWRpdFRhYigpOiB2b2lkIHtcbiAgICBjb25zdCB7Y29udGVudEtleSwgbmFtZX0gPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKTtcblxuICAgIGlmICghY29udGVudEtleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQoey4uLnRoaXMudGFiLCBuYW1lLCBjb250ZW50S2V5fSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGNkcy1tb2RhbCAqbmdJZj1cImZvcm1cIiBbb3Blbl09XCJvcGVuXCI+XG4gIDxjZHMtbW9kYWwtaGVhZGVyIHNob3dDbG9zZUJ1dHRvbj1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwib25DbG9zZU1vZGFsKClcIj5cbiAgICA8aDMgY2RzTW9kYWxIZWFkZXJIZWFkaW5nPlxuICAgICAge3tcbiAgICAgICAgJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuZWRpdE1vZGFsLnRpdGxlJ1xuICAgICAgICAgIHwgdHJhbnNsYXRlOiB7bmFtZTogdGFiPy5uYW1lID8/ICdkb3NzaWVyLnRhYnMuJyArIHRhYi5rZXkgfCB0cmFuc2xhdGV9XG4gICAgICB9fVxuICAgIDwvaDM+XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cblxuICA8c2VjdGlvbiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjZHNNb2RhbENvbnRlbnQ+XG4gICAgPHZhbHRpbW8tdGFiLWZvcm1cbiAgICAgIFtjb25maWd1cmVkQ29udGVudEtleXNdPVwiY29uZmlndXJlZEtleXNGb3JFZGl0XCJcbiAgICAgIFt0YWJUeXBlXT1cInRhYj8udHlwZVwiXG4gICAgPjwvdmFsdGltby10YWItZm9ybT5cbiAgPC9zZWN0aW9uPlxuXG4gIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm9uQ2xvc2VNb2RhbCgpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIiAoY2xpY2spPVwiZWRpdFRhYigpXCI+XG4gICAgICB7eyAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5lZGl0TW9kYWwudXBkYXRlVGFiJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L2Nkcy1tb2RhbD5cbiJdfQ==
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
17
|
+
import { ArrowDown16, ArrowUp16 } from '@carbon/icons';
|
|
18
|
+
import { ViewType } from '@valtimo/components';
|
|
19
|
+
import { BehaviorSubject, map, tap } from 'rxjs';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
import * as i1 from "carbon-components-angular";
|
|
22
|
+
import * as i2 from "../../services";
|
|
23
|
+
import * as i3 from "@ngx-translate/core";
|
|
24
|
+
import * as i4 from "@angular/common";
|
|
25
|
+
import * as i5 from "@valtimo/components";
|
|
26
|
+
import * as i6 from "./dossier-management-add-tab-modal/dossier-management-add-tab-modal.component";
|
|
27
|
+
import * as i7 from "./dossier-management-edit-tab-modal/dossier-management-edit-tab-modal.component";
|
|
28
|
+
export class DossierManagementTabsComponent {
|
|
29
|
+
set documentDefinitionName(value) {
|
|
30
|
+
if (!value) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this._documentDefinitionName = value;
|
|
34
|
+
this.tabManagementService.setCaseDefinitionId(value);
|
|
35
|
+
this.tabManagementService.loadTabs();
|
|
36
|
+
}
|
|
37
|
+
get documentDefinitionName() {
|
|
38
|
+
return this._documentDefinitionName;
|
|
39
|
+
}
|
|
40
|
+
constructor(cd, iconService, tabManagementService, tabService, translateService) {
|
|
41
|
+
this.cd = cd;
|
|
42
|
+
this.iconService = iconService;
|
|
43
|
+
this.tabManagementService = tabManagementService;
|
|
44
|
+
this.tabService = tabService;
|
|
45
|
+
this.translateService = translateService;
|
|
46
|
+
this.deleteRowKey$ = new BehaviorSubject(null);
|
|
47
|
+
this.showDeleteModal$ = this.deleteRowKey$.pipe(map((key) => !!key));
|
|
48
|
+
this.openEditModal$ = new BehaviorSubject(false);
|
|
49
|
+
this.fields$ = new BehaviorSubject([]);
|
|
50
|
+
this.loading$ = this.tabManagementService.loading$;
|
|
51
|
+
this.openAddModal$ = new BehaviorSubject(false);
|
|
52
|
+
this.lastItemIndex$ = new BehaviorSubject(-1);
|
|
53
|
+
this.tabs$ = this.tabManagementService.tabs$.pipe(tap((tabs) => {
|
|
54
|
+
this._tabs = tabs;
|
|
55
|
+
this.tabService.configuredContentKeys = tabs.map((tab) => tab.contentKey);
|
|
56
|
+
this.tabService.configuredTabKeys = tabs.map((tab) => tab.key);
|
|
57
|
+
this.lastItemIndex$.next(tabs.length - 1);
|
|
58
|
+
}));
|
|
59
|
+
this.tab$ = new BehaviorSubject(null);
|
|
60
|
+
}
|
|
61
|
+
ngAfterViewInit() {
|
|
62
|
+
this.iconService.registerAll([ArrowDown16, ArrowUp16]);
|
|
63
|
+
this.fields$.next([
|
|
64
|
+
{
|
|
65
|
+
key: 'name',
|
|
66
|
+
label: 'dossierManagement.tabManagement.columns.name',
|
|
67
|
+
viewType: ViewType.TEXT,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
key: 'key',
|
|
71
|
+
label: 'dossierManagement.tabManagement.columns.key',
|
|
72
|
+
viewType: ViewType.TEXT,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
viewType: ViewType.TEMPLATE,
|
|
76
|
+
template: this.tabTypeColumnTemplate,
|
|
77
|
+
key: '',
|
|
78
|
+
label: 'dossierManagement.tabManagement.columns.type',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
viewType: ViewType.TEMPLATE,
|
|
82
|
+
template: this.tabContentColumnTemplate,
|
|
83
|
+
key: '',
|
|
84
|
+
label: 'dossierManagement.tabManagement.columns.content',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
className: 'valtimo-dossier-management-tabs__actions',
|
|
88
|
+
key: '',
|
|
89
|
+
label: '',
|
|
90
|
+
template: this.moveButtonsTemplate,
|
|
91
|
+
viewType: ViewType.TEMPLATE,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
actions: [
|
|
95
|
+
{
|
|
96
|
+
label: 'interface.delete',
|
|
97
|
+
callback: this.openDeleteConfirmationModal.bind(this),
|
|
98
|
+
type: 'danger',
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
className: 'valtimo-dossier-management-tabs__actions',
|
|
102
|
+
key: '',
|
|
103
|
+
label: '',
|
|
104
|
+
viewType: ViewType.ACTION,
|
|
105
|
+
},
|
|
106
|
+
]);
|
|
107
|
+
this.cd.detectChanges();
|
|
108
|
+
}
|
|
109
|
+
isTranslated(key) {
|
|
110
|
+
return this.translateService.instant(key) !== key;
|
|
111
|
+
}
|
|
112
|
+
onArrowClick(direction, index, event) {
|
|
113
|
+
event.stopImmediatePropagation();
|
|
114
|
+
const orderedTabs = direction === 'UP'
|
|
115
|
+
? this.swapTabs(this._tabs, index - 1, index)
|
|
116
|
+
: this.swapTabs(this._tabs, index, index + 1);
|
|
117
|
+
this.tabManagementService.dispatchAction(this.tabManagementService.editTabsOrder(orderedTabs));
|
|
118
|
+
}
|
|
119
|
+
openAddTabModal() {
|
|
120
|
+
this.openAddModal$.next(true);
|
|
121
|
+
}
|
|
122
|
+
onRowClicked(tab) {
|
|
123
|
+
this.tab$.next(tab);
|
|
124
|
+
this.openEditModal$.next(true);
|
|
125
|
+
}
|
|
126
|
+
onCloseAddModalEvent(tab) {
|
|
127
|
+
this.openAddModal$.next(false);
|
|
128
|
+
if (!tab) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
this.addTab(tab);
|
|
132
|
+
}
|
|
133
|
+
onCloseEditModalEvent(tab) {
|
|
134
|
+
this.openEditModal$.next(false);
|
|
135
|
+
this.tab$.next(null);
|
|
136
|
+
if (!tab) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
this.editTab(tab);
|
|
140
|
+
}
|
|
141
|
+
openDeleteConfirmationModal(tab) {
|
|
142
|
+
this.deleteRowKey$.next(tab.key);
|
|
143
|
+
}
|
|
144
|
+
onConfirmEvent(tabKey) {
|
|
145
|
+
this.deleteTab(tabKey);
|
|
146
|
+
}
|
|
147
|
+
addTab(tab) {
|
|
148
|
+
this.tabManagementService.dispatchAction(this.tabManagementService.addTab(tab));
|
|
149
|
+
}
|
|
150
|
+
deleteTab(tabKey) {
|
|
151
|
+
this.tabManagementService.dispatchAction(this.tabManagementService.deleteTab(tabKey));
|
|
152
|
+
}
|
|
153
|
+
editTab(tab) {
|
|
154
|
+
this.tabManagementService.dispatchAction(this.tabManagementService.editTab(tab, tab.key));
|
|
155
|
+
}
|
|
156
|
+
swapTabs(tabItems, index1, index2) {
|
|
157
|
+
const temp = [...tabItems];
|
|
158
|
+
temp[index1] = temp.splice(index2, 1, temp[index1])[0];
|
|
159
|
+
return temp;
|
|
160
|
+
}
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementTabsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.IconService }, { token: i2.TabManagementService }, { token: i2.TabService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
162
|
+
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: i1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i5.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm"], outputs: ["confirmEvent", "cancelEvent"] }, { kind: "component", type: i5.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: i5.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: i6.DossierManagementAddTabModalComponent, selector: "valtimo-dossier-management-add-tab-modal", inputs: ["documentDefinitionName", "open"], outputs: ["closeModalEvent"] }, { kind: "component", type: i7.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 }); }
|
|
163
|
+
}
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementTabsComponent, decorators: [{
|
|
165
|
+
type: Component,
|
|
166
|
+
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"] }]
|
|
167
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.IconService }, { type: i2.TabManagementService }, { type: i2.TabService }, { type: i3.TranslateService }]; }, propDecorators: { tabContentColumnTemplate: [{
|
|
168
|
+
type: ViewChild,
|
|
169
|
+
args: ['tabContentColumn']
|
|
170
|
+
}], tabTypeColumnTemplate: [{
|
|
171
|
+
type: ViewChild,
|
|
172
|
+
args: ['tabTypeColumn']
|
|
173
|
+
}], moveButtonsTemplate: [{
|
|
174
|
+
type: ViewChild,
|
|
175
|
+
args: ['moveButtonsTemplate']
|
|
176
|
+
}], documentDefinitionName: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}] } });
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBZSxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUczRCxPQUFPLEVBQUMsZUFBZSxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVUzRCxNQUFNLE9BQU8sOEJBQThCO0lBTXpDLElBQW9CLHNCQUFzQixDQUFDLEtBQWE7UUFDdEQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFD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b0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQWU7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU8sUUFBUSxDQUFDLFFBQXNCLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDckUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQXRLVSw4QkFBOEI7bUdBQTlCLDhCQUE4Qix5ZEN4QzNDLG9sSEF3R0E7OzRGRGhFYSw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzZOQUdOLHdCQUF3QjtzQkFBdEQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ0QscUJBQXFCO3NCQUFoRCxTQUFTO3VCQUFDLGVBQWU7Z0JBQ1EsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQjtnQkFHWixzQkFBc0I7c0JBQXpDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fycm93RG93bjE2LCBBcnJvd1VwMTZ9IGZyb20gJ0BjYXJib24vaWNvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q29sdW1uQ29uZmlnLCBWaWV3VHlwZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0FwaVRhYkl0ZW19IGZyb20gJ0B2YWx0aW1vL2Rvc3NpZXInO1xuaW1wb3J0IHtJY29uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUYWJNYW5hZ2VtZW50U2VydmljZSwgVGFiU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9zc2llci1tYW5hZ2VtZW50LXRhYnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50VGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCd0YWJDb250ZW50Q29sdW1uJykgdGFiQ29udGVudENvbHVtblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCd0YWJUeXBlQ29sdW1uJykgdGFiVHlwZUNvbHVtblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdtb3ZlQnV0dG9uc1RlbXBsYXRlJykgbW92ZUJ1dHRvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9kb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZG9jdW1lbnREZWZpbml0aW9uTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lID0gdmFsdWU7XG4gICAgdGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5zZXRDYXNlRGVmaW5pdGlvbklkKHZhbHVlKTtcbiAgICB0aGlzLnRhYk1hbmFnZW1lbnRTZXJ2aWNlLmxvYWRUYWJzKCk7XG4gIH1cbiAgcHVibGljIGdldCBkb2N1bWVudERlZmluaXRpb25OYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWU7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlUm93S2V5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93RGVsZXRlTW9kYWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5kZWxldGVSb3dLZXkkLnBpcGUoXG4gICAgbWFwKChrZXk6IHN0cmluZyB8IG51bGwpID0+ICEha2V5KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlbkVkaXRNb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGZpZWxkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbHVtbkNvbmZpZ1tdPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UubG9hZGluZyQ7XG4gIHB1YmxpYyByZWFkb25seSBvcGVuQWRkTW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBsYXN0SXRlbUluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigtMSk7XG5cbiAgcHJpdmF0ZSBfdGFiczogQXBpVGFiSXRlbVtdO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFicyQgPSB0aGlzLnRhYk1hbmFnZW1lbnRTZXJ2aWNlLnRhYnMkLnBpcGUoXG4gICAgdGFwKCh0YWJzOiBBcGlUYWJJdGVtW10pID0+IHtcbiAgICAgIHRoaXMuX3RhYnMgPSB0YWJzO1xuICAgICAgdGhpcy50YWJTZXJ2aWNlLmNvbmZpZ3VyZWRDb250ZW50S2V5cyA9IHRhYnMubWFwKCh0YWI6IEFwaVRhYkl0ZW0pID0+IHRhYi5jb250ZW50S2V5KTtcbiAgICAgIHRoaXMudGFiU2VydmljZS5jb25maWd1cmVkVGFiS2V5cyA9IHRhYnMubWFwKCh0YWI6IEFwaVRhYkl0ZW0pID0+IHRhYi5rZXkpO1xuICAgICAgdGhpcy5sYXN0SXRlbUluZGV4JC5uZXh0KHRhYnMubGVuZ3RoIC0gMSk7XG4gICAgfSlcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHRhYiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFwaVRhYkl0ZW0gfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBJY29uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYk1hbmFnZW1lbnRTZXJ2aWNlOiBUYWJNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYlNlcnZpY2U6IFRhYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWNvblNlcnZpY2UucmVnaXN0ZXJBbGwoW0Fycm93RG93bjE2LCBBcnJvd1VwMTZdKTtcbiAgICB0aGlzLmZpZWxkcyQubmV4dChbXG4gICAgICB7XG4gICAgICAgIGtleTogJ25hbWUnLFxuICAgICAgICBsYWJlbDogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuY29sdW1ucy5uYW1lJyxcbiAgICAgICAgdmlld1R5cGU6IFZpZXdUeXBlLlRFWFQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdrZXknLFxuICAgICAgICBsYWJlbDogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuY29sdW1ucy5rZXknLFxuICAgICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URU1QTEFURSxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMudGFiVHlwZUNvbHVtblRlbXBsYXRlLFxuICAgICAgICBrZXk6ICcnLFxuICAgICAgICBsYWJlbDogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuY29sdW1ucy50eXBlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URU1QTEFURSxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMudGFiQ29udGVudENvbHVtblRlbXBsYXRlLFxuICAgICAgICBrZXk6ICcnLFxuICAgICAgICBsYWJlbDogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuY29sdW1ucy5jb250ZW50JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXRhYnNfX2FjdGlvbnMnLFxuICAgICAgICBrZXk6ICcnLFxuICAgICAgICBsYWJlbDogJycsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLm1vdmVCdXR0b25zVGVtcGxhdGUsXG4gICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URU1QTEFURSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ2ludGVyZmFjZS5kZWxldGUnLFxuICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMub3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsLmJpbmQodGhpcyksXG4gICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC10YWJzX19hY3Rpb25zJyxcbiAgICAgICAga2V5OiAnJyxcbiAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICB2aWV3VHlwZTogVmlld1R5cGUuQUNUSU9OLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGlzVHJhbnNsYXRlZChrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChrZXkpICE9PSBrZXk7XG4gIH1cblxuICBwdWJsaWMgb25BcnJvd0NsaWNrKGRpcmVjdGlvbjogJ1VQJyB8ICdET1dOJywgaW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3Qgb3JkZXJlZFRhYnM6IEFwaVRhYkl0ZW1bXSA9XG4gICAgICBkaXJlY3Rpb24gPT09ICdVUCdcbiAgICAgICAgPyB0aGlzLnN3YXBUYWJzKHRoaXMuX3RhYnMsIGluZGV4IC0gMSwgaW5kZXgpXG4gICAgICAgIDogdGhpcy5zd2FwVGFicyh0aGlzLl90YWJzLCBpbmRleCwgaW5kZXggKyAxKTtcblxuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24odGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5lZGl0VGFic09yZGVyKG9yZGVyZWRUYWJzKSk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkFkZFRhYk1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkFkZE1vZGFsJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uUm93Q2xpY2tlZCh0YWI6IEFwaVRhYkl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnRhYiQubmV4dCh0YWIpO1xuICAgIHRoaXMub3BlbkVkaXRNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsb3NlQWRkTW9kYWxFdmVudCh0YWI6IEFwaVRhYkl0ZW0gfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuQWRkTW9kYWwkLm5leHQoZmFsc2UpO1xuXG4gICAgaWYgKCF0YWIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFkZFRhYih0YWIpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2VFZGl0TW9kYWxFdmVudCh0YWI6IEFwaVRhYkl0ZW0gfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRWRpdE1vZGFsJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLnRhYiQubmV4dChudWxsKTtcblxuICAgIGlmICghdGFiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lZGl0VGFiKHRhYik7XG4gIH1cblxuICBwdWJsaWMgb3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKHRhYjogQXBpVGFiSXRlbSk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlUm93S2V5JC5uZXh0KHRhYi5rZXkpO1xuICB9XG5cbiAgcHVibGljIG9uQ29uZmlybUV2ZW50KHRhYktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVUYWIodGFiS2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVGFiKHRhYjogUGFydGlhbDxBcGlUYWJJdGVtPik6IHZvaWQge1xuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24odGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5hZGRUYWIodGFiKSk7XG4gIH1cblxuICBwcml2YXRlIGRlbGV0ZVRhYih0YWJLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24odGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5kZWxldGVUYWIodGFiS2V5KSk7XG4gIH1cblxuICBwcml2YXRlIGVkaXRUYWIodGFiOiBBcGlUYWJJdGVtKTogdm9pZCB7XG4gICAgdGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5kaXNwYXRjaEFjdGlvbih0aGlzLnRhYk1hbmFnZW1lbnRTZXJ2aWNlLmVkaXRUYWIodGFiLCB0YWIua2V5KSk7XG4gIH1cblxuICBwcml2YXRlIHN3YXBUYWJzKHRhYkl0ZW1zOiBBcGlUYWJJdGVtW10sIGluZGV4MTogbnVtYmVyLCBpbmRleDI6IG51bWJlcik6IEFwaVRhYkl0ZW1bXSB7XG4gICAgY29uc3QgdGVtcCA9IFsuLi50YWJJdGVtc107XG4gICAgdGVtcFtpbmRleDFdID0gdGVtcC5zcGxpY2UoaW5kZXgyLCAxLCB0ZW1wW2luZGV4MV0pWzBdO1xuXG4gICAgcmV0dXJuIHRlbXA7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tY2FyYm9uLWxpc3RcbiAgKm5nSWY9XCJ7ZmllbGRzOiBmaWVsZHMkIHwgYXN5bmMsIGxvYWRpbmc6IGxvYWRpbmckIHwgYXN5bmMsIHRhYnM6IHRhYnMkIHwgYXN5bmN9IGFzIG9ic1wiXG4gIFtpdGVtc109XCJvYnMudGFic1wiXG4gIFtmaWVsZHNdPVwib2JzLmZpZWxkc1wiXG4gIGhlYWRlcj1cImZhbHNlXCJcbiAgW2xvYWRpbmddPVwib2JzLmxvYWRpbmdcIlxuICAocm93Q2xpY2tlZCk9XCJvblJvd0NsaWNrZWQoJGV2ZW50KVwiXG4+XG4gIDxuZy1jb250YWluZXIgY2FyYm9uVG9vbGJhckNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGRUYWJCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgIFthY3Rpb25dPVwiYWRkVGFiQnV0dG9uXCJcbiAgICBbZGVzY3JpcHRpb25dPVwiJ2Rvc3NpZXIudGFicy5ub1Jlc3VsdHNEZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgIFt0aXRsZV09XCInZG9zc2llci50YWJzLm5vUmVzdWx0cycgfCB0cmFuc2xhdGVcIlxuICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG48L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG5cbjxuZy10ZW1wbGF0ZSAjdGFiVHlwZUNvbHVtbiBsZXQtZGF0YT1cImRhdGFcIj5cbiAge3tcbiAgICBpc1RyYW5zbGF0ZWQoJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYlR5cGUuJyArIGRhdGEuaXRlbS50eXBlKVxuICAgICAgPyAoJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYlR5cGUuJyArIGRhdGEuaXRlbS50eXBlIHwgdHJhbnNsYXRlKVxuICAgICAgOiBkYXRhLml0ZW0udHlwZVxuICB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJDb250ZW50Q29sdW1uIGxldC1kYXRhPVwiZGF0YVwiPlxuICB7e1xuICAgIGlzVHJhbnNsYXRlZCgnZG9zc2llci50YWJzLicgKyBkYXRhLml0ZW0uY29udGVudEtleSlcbiAgICAgID8gKCdkb3NzaWVyLnRhYnMuJyArIGRhdGEuaXRlbS5jb250ZW50S2V5IHwgdHJhbnNsYXRlKVxuICAgICAgOiBkYXRhLml0ZW0uY29udGVudEtleVxuICB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNhZGRUYWJCdXR0b24+XG4gIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuQWRkVGFiTW9kYWwoKVwiPlxuICAgIHt7ICdkb3NzaWVyTWFuYWdlbWVudC50YWJNYW5hZ2VtZW50LmFkZE1vZGFsLmFkZFRhYicgfCB0cmFuc2xhdGUgfX1cblxuICAgIDxzdmcgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vdmVCdXR0b25zVGVtcGxhdGUgbGV0LWRhdGE9XCJkYXRhXCI+XG4gIDxkaXYgY2xhc3M9XCJtb3ZlLWJ1dHRvbnMtY29udGFpbmVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2RzQnV0dG9uPVwidGVydGlhcnlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRhdGEuaW5kZXggPT09IDBcIlxuICAgICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cIm9uQXJyb3dDbGljaygnVVAnLCBkYXRhLmluZGV4LCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3ZnIGNkc0ljb249XCJhcnJvdy0tdXBcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICBjZHNCdXR0b249XCJ0ZXJ0aWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwiKGxhc3RJdGVtSW5kZXgkIHwgYXN5bmMpID09PSBkYXRhLmluZGV4XCJcbiAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJvbkFycm93Q2xpY2soJ0RPV04nLCBkYXRhLmluZGV4LCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3ZnIGNkc0ljb249XCJhcnJvdy0tZG93blwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48dmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtYWRkLXRhYi1tb2RhbFxuICAqbmdJZj1cIm9wZW5BZGRNb2RhbCQgfCBhc3luY1wiXG4gIFtkb2N1bWVudERlZmluaXRpb25OYW1lXT1cImRvY3VtZW50RGVmaW5pdGlvbk5hbWVcIlxuICBbb3Blbl09XCJvcGVuQWRkTW9kYWwkIHwgYXN5bmNcIlxuICAoY2xvc2VNb2RhbEV2ZW50KT1cIm9uQ2xvc2VBZGRNb2RhbEV2ZW50KCRldmVudClcIlxuPjwvdmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtYWRkLXRhYi1tb2RhbD5cblxuPHZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsXG4gICpuZ0lmPVwib3BlbkVkaXRNb2RhbCQgfCBhc3luY1wiXG4gIFt0YWJdPVwidGFiJCB8IGFzeW5jXCJcbiAgKGNsb3NlTW9kYWxFdmVudCk9XCJvbkNsb3NlRWRpdE1vZGFsRXZlbnQoJGV2ZW50KVwiXG4gIFtvcGVuXT1cIm9wZW5FZGl0TW9kYWwkIHwgYXN5bmNcIlxuPjwvdmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWw+XG5cbjx2YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbFxuICBjb25maXJtQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLmRlbGV0ZVwiXG4gIGNvbmZpcm1CdXR0b25UeXBlPVwiZGFuZ2VyXCJcbiAgY29udGVudFRyYW5zbGF0aW9uS2V5PVwiZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5kZWxldGVNb2RhbC5kZXNjcmlwdGlvblwiXG4gIFtvdXRwdXRPbkNvbmZpcm1dPVwiZGVsZXRlUm93S2V5JCB8IGFzeW5jXCJcbiAgW3Nob3dNb2RhbFN1YmplY3QkXT1cInNob3dEZWxldGVNb2RhbCRcIlxuICB0aXRsZVRyYW5zbGF0aW9uS2V5PVwiZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5kZWxldGVNb2RhbC50aXRsZVwiXG4gIChjb25maXJtRXZlbnQpPVwib25Db25maXJtRXZlbnQoJGV2ZW50KVwiXG4+PC92YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbD5cbiJdfQ==
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
17
|
+
import { ApiTabType } from '@valtimo/dossier';
|
|
18
|
+
import { combineLatest, map, startWith } from 'rxjs';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
import * as i1 from "../../../services";
|
|
21
|
+
import * as i2 from "@angular/forms";
|
|
22
|
+
import * as i3 from "@angular/common";
|
|
23
|
+
import * as i4 from "carbon-components-angular";
|
|
24
|
+
import * as i5 from "@ngx-translate/core";
|
|
25
|
+
export class TabFormComponent {
|
|
26
|
+
constructor(tabService, formGroupDirective) {
|
|
27
|
+
this.tabService = tabService;
|
|
28
|
+
this.formGroupDirective = formGroupDirective;
|
|
29
|
+
this.listItems$ = combineLatest([
|
|
30
|
+
this.tabService.configuredContentKeys$,
|
|
31
|
+
this.tabService.formDefinitions$,
|
|
32
|
+
this.tabService.defaultTabs$,
|
|
33
|
+
this.tabService.customComponentKeys$,
|
|
34
|
+
]).pipe(map(([tabKeys, formDefinitions, defaultTabs, customComponentKeys]) => {
|
|
35
|
+
switch (this.tabType) {
|
|
36
|
+
case ApiTabType.STANDARD:
|
|
37
|
+
return this.getListItems(defaultTabs, tabKeys);
|
|
38
|
+
case ApiTabType.CUSTOM:
|
|
39
|
+
return this.getListItems(customComponentKeys, tabKeys);
|
|
40
|
+
case ApiTabType.FORMIO:
|
|
41
|
+
return this.getListItems(formDefinitions, tabKeys);
|
|
42
|
+
}
|
|
43
|
+
}), startWith([]));
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
this.form = this.formGroupDirective.control;
|
|
47
|
+
}
|
|
48
|
+
onSearch() {
|
|
49
|
+
if (this._searchActive) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this._searchActive = true;
|
|
53
|
+
this.form.get('contentKey')?.reset('');
|
|
54
|
+
}
|
|
55
|
+
onSelected() {
|
|
56
|
+
this._searchActive = false;
|
|
57
|
+
}
|
|
58
|
+
getListItems(tabItems, configuredContentKeys) {
|
|
59
|
+
return tabItems
|
|
60
|
+
.filter((tabItem) => !configuredContentKeys.includes(tabItem.contentKey) ||
|
|
61
|
+
this.form?.get('contentKey')?.value === tabItem.contentKey)
|
|
62
|
+
.map((tabItem) => ({
|
|
63
|
+
...tabItem,
|
|
64
|
+
selected: this.form?.get('contentKey')?.value === tabItem.contentKey,
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabFormComponent, deps: [{ token: i1.TabService }, { token: i2.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
+
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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i4.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i4.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: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabFormComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
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"] }]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i1.TabService }, { type: i2.FormGroupDirective }]; }, propDecorators: { tabType: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzL3RhYi1mb3JtL3RhYi1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy90YWItZm9ybS90YWItZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFTbkQsTUFBTSxPQUFPLGdCQUFnQjtJQXlCM0IsWUFDbUIsVUFBc0IsRUFDdEIsa0JBQXNDO1FBRHRDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQXhCekMsZUFBVSxHQUFHLGFBQWEsQ0FBQztZQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQjtZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQjtZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVk7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0I7U0FDckMsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsRUFBRTtZQUNuRSxRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLEtBQUssVUFBVSxDQUFDLFFBQVE7b0JBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2pELEtBQUssVUFBVSxDQUFDLE1BQU07b0JBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDekQsS0FBSyxVQUFVLENBQUMsTUFBTTtvQkFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN0RDtRQUNILENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FDZCxDQUFDO0lBUUMsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7SUFDOUMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVPLFlBQVksQ0FBQyxRQUFvQixFQUFFLHFCQUErQjtRQUN4RSxPQUFPLFFBQVE7YUFDWixNQUFNLENBQ0wsQ0FBQyxPQUFpQixFQUFFLEVBQUUsQ0FDcEIsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNuRCxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FDN0Q7YUFDQSxHQUFHLENBQUMsQ0FBQyxPQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLEdBQUcsT0FBTztZQUNWLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEtBQUssT0FBTyxDQUFDLFVBQVU7U0FDckUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOytHQTFEVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQix3RkM1QjdCLGt1REFpREE7OzRGRHJCYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07a0lBR3RDLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBcGlUYWJUeXBlfSBmcm9tICdAdmFsdGltby9kb3NzaWVyJztcbmltcG9ydCB7TGlzdEl0ZW19IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBtYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RhYlNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby10YWItZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWItZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYi1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdGFiVHlwZTogQXBpVGFiVHlwZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbGlzdEl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMudGFiU2VydmljZS5jb25maWd1cmVkQ29udGVudEtleXMkLFxuICAgIHRoaXMudGFiU2VydmljZS5mb3JtRGVmaW5pdGlvbnMkLFxuICAgIHRoaXMudGFiU2VydmljZS5kZWZhdWx0VGFicyQsXG4gICAgdGhpcy50YWJTZXJ2aWNlLmN1c3RvbUNvbXBvbmVudEtleXMkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3RhYktleXMsIGZvcm1EZWZpbml0aW9ucywgZGVmYXVsdFRhYnMsIGN1c3RvbUNvbXBvbmVudEtleXNdKSA9PiB7XG4gICAgICBzd2l0Y2ggKHRoaXMudGFiVHlwZSkge1xuICAgICAgICBjYXNlIEFwaVRhYlR5cGUuU1RBTkRBUkQ6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGlzdEl0ZW1zKGRlZmF1bHRUYWJzLCB0YWJLZXlzKTtcbiAgICAgICAgY2FzZSBBcGlUYWJUeXBlLkNVU1RPTTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMaXN0SXRlbXMoY3VzdG9tQ29tcG9uZW50S2V5cywgdGFiS2V5cyk7XG4gICAgICAgIGNhc2UgQXBpVGFiVHlwZS5GT1JNSU86XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGlzdEl0ZW1zKGZvcm1EZWZpbml0aW9ucywgdGFiS2V5cyk7XG4gICAgICB9XG4gICAgfSksXG4gICAgc3RhcnRXaXRoKFtdKVxuICApO1xuICBwdWJsaWMgZm9ybSE6IEZvcm1Hcm91cDtcblxuICBwcml2YXRlIF9zZWFyY2hBY3RpdmU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWJTZXJ2aWNlOiBUYWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdyb3VwRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmVcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5jb250cm9sO1xuICB9XG5cbiAgcHVibGljIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zZWFyY2hBY3RpdmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zZWFyY2hBY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuZm9ybS5nZXQoJ2NvbnRlbnRLZXknKT8ucmVzZXQoJycpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fc2VhcmNoQWN0aXZlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldExpc3RJdGVtcyh0YWJJdGVtczogTGlzdEl0ZW1bXSwgY29uZmlndXJlZENvbnRlbnRLZXlzOiBzdHJpbmdbXSk6IExpc3RJdGVtW10ge1xuICAgIHJldHVybiB0YWJJdGVtc1xuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHRhYkl0ZW06IExpc3RJdGVtKSA9PlxuICAgICAgICAgICFjb25maWd1cmVkQ29udGVudEtleXMuaW5jbHVkZXModGFiSXRlbS5jb250ZW50S2V5KSB8fFxuICAgICAgICAgIHRoaXMuZm9ybT8uZ2V0KCdjb250ZW50S2V5Jyk/LnZhbHVlID09PSB0YWJJdGVtLmNvbnRlbnRLZXlcbiAgICAgIClcbiAgICAgIC5tYXAoKHRhYkl0ZW06IExpc3RJdGVtKSA9PiAoe1xuICAgICAgICAuLi50YWJJdGVtLFxuICAgICAgICBzZWxlY3RlZDogdGhpcy5mb3JtPy5nZXQoJ2NvbnRlbnRLZXknKT8udmFsdWUgPT09IHRhYkl0ZW0uY29udGVudEtleSxcbiAgICAgIH0pKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Zm9ybSAqbmdJZj1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cInZhbHRpbW8tdGFiLWZvcm0tbW9kYWxcIj5cbiAgPGNkcy1sYWJlbD5cbiAgICB7eyAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5hZGRNb2RhbC50YWJOYW1lTGFiZWwnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8aW5wdXQgY2RzVGV4dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCIgLz5cbiAgPC9jZHMtbGFiZWw+XG5cbiAgPGNkcy1sYWJlbFxuICAgIFtpbnZhbGlkXT1cIiEhdGhpcy5mb3JtLmdldCgna2V5JykuZXJyb3JzPy51bmlxdWVLZXlcIlxuICAgIFtpbnZhbGlkVGV4dF09XCInZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5hZGRNb2RhbC51bmlxdWVLZXlFcnJvcicgfCB0cmFuc2xhdGVcIlxuICA+XG4gICAge3sgJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuYWRkTW9kYWwudGFiS2V5TGFiZWwnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8aW5wdXRcbiAgICAgIGNkc1RleHRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImtleVwiXG4gICAgICBbaW52YWxpZF09XCIhIXRoaXMuZm9ybS5nZXQoJ2tleScpLmVycm9ycz8udW5pcXVlS2V5XCJcbiAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgLz5cbiAgPC9jZHMtbGFiZWw+XG5cbiAgPGNkcy1jb21iby1ib3hcbiAgICBbZHJvcFVwXT1cImZhbHNlXCJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJjb250ZW50S2V5XCJcbiAgICBbaXRlbXNdPVwibGlzdEl0ZW1zJCB8IGFzeW5jXCJcbiAgICBpdGVtVmFsdWVLZXk9XCJjb250ZW50S2V5XCJcbiAgICBbbGFiZWxdPVwiJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuY29udGVudExhYmVscy4nICsgdGFiVHlwZSB8IHRyYW5zbGF0ZVwiXG4gICAgKHNlYXJjaCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAoc2VsZWN0ZWQpPVwib25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxjZHMtZHJvcGRvd24tbGlzdD48L2Nkcy1kcm9wZG93bi1saXN0PlxuICA8L2Nkcy1jb21iby1ib3g+XG48L2Zvcm0+XG4iXX0=
|