@valtimo/object 12.19.0 → 13.0.1-next-minor.81
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/fesm2022/valtimo-object.mjs +176 -82
- package/fesm2022/valtimo-object.mjs.map +1 -1
- package/lib/components/object-detail-container/object-detail-container.component.d.ts +1 -1
- package/lib/components/object-detail-container/tabs/object-detail/object-detail.component.d.ts +5 -5
- package/lib/components/object-list/object-list.component.d.ts +11 -12
- package/lib/object.module.d.ts +8 -1
- package/lib/services/index.d.ts +5 -0
- package/lib/services/object-column.service.d.ts +1 -1
- package/lib/services/object-menu.service.d.ts +13 -0
- package/lib/services/object.service.d.ts +1 -1
- package/package.json +4 -6
- package/esm2022/lib/components/object-detail-container/object-detail-container.component.mjs +0 -60
- package/esm2022/lib/components/object-detail-container/tabs/object-detail/object-detail.component.mjs +0 -178
- package/esm2022/lib/components/object-list/object-list.component.mjs +0 -259
- package/esm2022/lib/models/object.model.mjs +0 -27
- package/esm2022/lib/object-routing.module.mjs +0 -52
- package/esm2022/lib/object.module.mjs +0 -95
- package/esm2022/lib/services/object-column.service.mjs +0 -65
- package/esm2022/lib/services/object-state.service.mjs +0 -59
- package/esm2022/lib/services/object.service.mjs +0 -55
- package/esm2022/lib/services/tab.enum.mjs +0 -20
- package/esm2022/lib/services/tab.service.mjs +0 -39
- package/esm2022/public-api.mjs +0 -21
- package/esm2022/valtimo-object.mjs +0 -5
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common/http';
|
|
4
|
-
import * as i2 from '@valtimo/
|
|
5
|
-
import { ROLE_USER } from '@valtimo/
|
|
6
|
-
import * as
|
|
4
|
+
import * as i2 from '@valtimo/shared';
|
|
5
|
+
import { ROLE_USER } from '@valtimo/shared';
|
|
6
|
+
import * as i6 from '@angular/router';
|
|
7
7
|
import { RouterModule } from '@angular/router';
|
|
8
8
|
import * as i8 from '@angular/common';
|
|
9
9
|
import { CommonModule, AsyncPipe } from '@angular/common';
|
|
10
10
|
import { AuthGuardService } from '@valtimo/security';
|
|
11
11
|
import { map, BehaviorSubject, combineLatest, distinctUntilChanged, of, startWith, filter, throwError, Subject } from 'rxjs';
|
|
12
|
-
import { take, tap, switchMap, catchError, finalize } from 'rxjs/operators';
|
|
13
|
-
import * as
|
|
14
|
-
import * as
|
|
12
|
+
import { take, tap, switchMap, catchError, finalize, map as map$1 } from 'rxjs/operators';
|
|
13
|
+
import * as i3 from '@valtimo/object-management';
|
|
14
|
+
import * as i1$1 from '@valtimo/components';
|
|
15
|
+
import { WidgetModule, SpinnerModule, FormIoModule, TooltipIconModule, ConfirmationModalModule, SearchFieldsModule, ValtimoCdsModalDirective, CarbonListModule } from '@valtimo/components';
|
|
16
|
+
import * as i7 from '@ngx-translate/core';
|
|
15
17
|
import { TranslateModule } from '@ngx-translate/core';
|
|
16
|
-
import * as i6 from 'ngx-toastr';
|
|
17
|
-
import * as i7 from '@valtimo/components';
|
|
18
|
-
import { WidgetModule, ListModule, SpinnerModule, FormIoModule, TooltipIconModule, ConfirmationModalModule, SearchFieldsModule, ValtimoCdsModalDirectiveModule, CarbonListModule } from '@valtimo/components';
|
|
19
18
|
import * as i8$1 from 'carbon-components-angular';
|
|
20
19
|
import { ButtonModule, IconModule, LoadingModule, ModalModule, InputModule } from 'carbon-components-angular';
|
|
21
20
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
22
21
|
|
|
23
22
|
/*
|
|
24
|
-
* Copyright 2015-
|
|
23
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
25
24
|
*
|
|
26
25
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
27
26
|
* you may not use this file except in compliance with the License.
|
|
@@ -61,10 +60,10 @@ class ObjectService {
|
|
|
61
60
|
removeEmptyStringValuesFromSubmission(submission) {
|
|
62
61
|
return Object.fromEntries(Object.entries(submission).filter(([_, value]) => value !== ''));
|
|
63
62
|
}
|
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
65
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
64
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectService, providedIn: 'root' }); }
|
|
66
65
|
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectService, decorators: [{
|
|
68
67
|
type: Injectable,
|
|
69
68
|
args: [{
|
|
70
69
|
providedIn: 'root',
|
|
@@ -72,7 +71,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
72
71
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
|
|
73
72
|
|
|
74
73
|
/*
|
|
75
|
-
* Copyright 2015-
|
|
74
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
76
75
|
*
|
|
77
76
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
78
77
|
* you may not use this file except in compliance with the License.
|
|
@@ -98,7 +97,7 @@ var ColumnType;
|
|
|
98
97
|
})(ColumnType || (ColumnType = {}));
|
|
99
98
|
|
|
100
99
|
/*
|
|
101
|
-
* Copyright 2015-
|
|
100
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
102
101
|
*
|
|
103
102
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
104
103
|
* you may not use this file except in compliance with the License.
|
|
@@ -147,18 +146,18 @@ class ObjectColumnService {
|
|
|
147
146
|
return searchListColumnDisplayType;
|
|
148
147
|
}
|
|
149
148
|
}
|
|
150
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
151
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
149
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectColumnService, deps: [{ token: i2.ConfigService }, { token: i3.ObjectManagementService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
150
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectColumnService, providedIn: 'root' }); }
|
|
152
151
|
}
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectColumnService, decorators: [{
|
|
154
153
|
type: Injectable,
|
|
155
154
|
args: [{
|
|
156
155
|
providedIn: 'root',
|
|
157
156
|
}]
|
|
158
|
-
}], ctorParameters: () => [{ type: i2.ConfigService }, { type:
|
|
157
|
+
}], ctorParameters: () => [{ type: i2.ConfigService }, { type: i3.ObjectManagementService }] });
|
|
159
158
|
|
|
160
159
|
/*
|
|
161
|
-
* Copyright 2015-
|
|
160
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
162
161
|
*
|
|
163
162
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
164
163
|
* you may not use this file except in compliance with the License.
|
|
@@ -185,16 +184,16 @@ class ObjectListComponent {
|
|
|
185
184
|
});
|
|
186
185
|
}
|
|
187
186
|
}
|
|
188
|
-
constructor(
|
|
189
|
-
this.
|
|
187
|
+
constructor(globalNotificationService, objectColumnService, objectManagementService, objectService, pageTitleService, route, router, translate, translateService) {
|
|
188
|
+
this.globalNotificationService = globalNotificationService;
|
|
190
189
|
this.objectColumnService = objectColumnService;
|
|
191
190
|
this.objectManagementService = objectManagementService;
|
|
192
|
-
this.
|
|
193
|
-
this.
|
|
191
|
+
this.objectService = objectService;
|
|
192
|
+
this.pageTitleService = pageTitleService;
|
|
194
193
|
this.route = route;
|
|
195
|
-
this.
|
|
194
|
+
this.router = router;
|
|
196
195
|
this.translate = translate;
|
|
197
|
-
this.
|
|
196
|
+
this.translateService = translateService;
|
|
198
197
|
this.loading$ = new BehaviorSubject(true);
|
|
199
198
|
this.submission$ = new BehaviorSubject({});
|
|
200
199
|
this.formValid$ = new BehaviorSubject(false);
|
|
@@ -338,7 +337,10 @@ class ObjectListComponent {
|
|
|
338
337
|
this.closeModal();
|
|
339
338
|
this.refreshObjectList();
|
|
340
339
|
this.clearForm$.next(true);
|
|
341
|
-
this.
|
|
340
|
+
this.globalNotificationService.showToast({
|
|
341
|
+
title: this.translate.instant('object.messages.objectCreated'),
|
|
342
|
+
type: 'success',
|
|
343
|
+
});
|
|
342
344
|
},
|
|
343
345
|
});
|
|
344
346
|
}
|
|
@@ -370,11 +372,17 @@ class ObjectListComponent {
|
|
|
370
372
|
}));
|
|
371
373
|
}
|
|
372
374
|
handleRetrievingFormError(error) {
|
|
373
|
-
this.
|
|
375
|
+
this.globalNotificationService.showToast({
|
|
376
|
+
title: this.translate.instant('object.messages.objectRetrievingFormError'),
|
|
377
|
+
type: 'error',
|
|
378
|
+
});
|
|
374
379
|
return throwError(error);
|
|
375
380
|
}
|
|
376
381
|
handleCreateObjectError(error) {
|
|
377
|
-
this.
|
|
382
|
+
this.globalNotificationService.showToast({
|
|
383
|
+
title: this.translate.instant('object.messages.objectCreationError'),
|
|
384
|
+
type: 'error',
|
|
385
|
+
});
|
|
378
386
|
return throwError(error);
|
|
379
387
|
}
|
|
380
388
|
mapSearchValuesToFilters(values) {
|
|
@@ -394,16 +402,16 @@ class ObjectListComponent {
|
|
|
394
402
|
});
|
|
395
403
|
return filters;
|
|
396
404
|
}
|
|
397
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
398
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
405
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectListComponent, deps: [{ token: i2.GlobalNotificationService }, { token: ObjectColumnService }, { token: i3.ObjectManagementService }, { token: ObjectService }, { token: i1$1.PageTitleService }, { token: i6.ActivatedRoute }, { token: i6.Router }, { token: i7.TranslateService }, { token: i7.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
406
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ObjectListComponent, isStandalone: false, selector: "valtimo-object-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async,\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [objectManagementId]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <ng-container carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'object.createObject' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-container>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n (close)=\"closeModal()\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-carbon-list [loading]=\"true\"> </valtimo-carbon-list>\n</ng-template>\n", styles: [".loading-icon{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i8$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i8$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i1$1.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i8$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i8$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i8$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i8$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i8$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i1$1.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "caseDefinitionKey", "setValuesSubject$", "clearValuesSubject$", "defaultValues", "disableSaveSearch", "inputDisabled", "externalSearchField", "canSaveSearch"], outputs: ["doSearch", "saveSearchEvent", "clearEvent"] }, { kind: "directive", type: i1$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "component", type: i1$1.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "showActionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
399
407
|
}
|
|
400
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
408
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectListComponent, decorators: [{
|
|
401
409
|
type: Component,
|
|
402
|
-
args: [{ selector: 'valtimo-object-list', template: "<!--\n ~ Copyright 2015-
|
|
403
|
-
}], ctorParameters: () => [{ type:
|
|
410
|
+
args: [{ standalone: false, selector: 'valtimo-object-list', template: "<!--\n ~ Copyright 2015-2025 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<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async,\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [objectManagementId]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <ng-container carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'object.createObject' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-container>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n (close)=\"closeModal()\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-carbon-list [loading]=\"true\"> </valtimo-carbon-list>\n</ng-template>\n", styles: [".loading-icon{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
411
|
+
}], ctorParameters: () => [{ type: i2.GlobalNotificationService }, { type: ObjectColumnService }, { type: i3.ObjectManagementService }, { type: ObjectService }, { type: i1$1.PageTitleService }, { type: i6.ActivatedRoute }, { type: i6.Router }, { type: i7.TranslateService }, { type: i7.TranslateService }] });
|
|
404
412
|
|
|
405
413
|
/*
|
|
406
|
-
* Copyright 2015-
|
|
414
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
407
415
|
*
|
|
408
416
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
409
417
|
* you may not use this file except in compliance with the License.
|
|
@@ -423,7 +431,7 @@ var TabEnum;
|
|
|
423
431
|
})(TabEnum || (TabEnum = {}));
|
|
424
432
|
|
|
425
433
|
/*
|
|
426
|
-
* Copyright 2015-
|
|
434
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
427
435
|
*
|
|
428
436
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
429
437
|
* you may not use this file except in compliance with the License.
|
|
@@ -468,10 +476,10 @@ class ObjectStateService {
|
|
|
468
476
|
setModalType(type) {
|
|
469
477
|
this._modalType$.next(type);
|
|
470
478
|
}
|
|
471
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
472
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
479
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
480
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectStateService, providedIn: 'root' }); }
|
|
473
481
|
}
|
|
474
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectStateService, decorators: [{
|
|
475
483
|
type: Injectable,
|
|
476
484
|
args: [{
|
|
477
485
|
providedIn: 'root',
|
|
@@ -479,7 +487,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
479
487
|
}], ctorParameters: () => [] });
|
|
480
488
|
|
|
481
489
|
/*
|
|
482
|
-
* Copyright 2015-
|
|
490
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
483
491
|
*
|
|
484
492
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
485
493
|
* you may not use this file except in compliance with the License.
|
|
@@ -503,10 +511,10 @@ class TabService {
|
|
|
503
511
|
set currentTab(tab) {
|
|
504
512
|
this._currentTab$.next(tab);
|
|
505
513
|
}
|
|
506
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
507
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
514
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TabService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
515
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TabService, providedIn: 'root' }); }
|
|
508
516
|
}
|
|
509
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TabService, decorators: [{
|
|
510
518
|
type: Injectable,
|
|
511
519
|
args: [{
|
|
512
520
|
providedIn: 'root',
|
|
@@ -514,7 +522,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
514
522
|
}] });
|
|
515
523
|
|
|
516
524
|
/*
|
|
517
|
-
* Copyright 2015-
|
|
525
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
518
526
|
*
|
|
519
527
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
520
528
|
* you may not use this file except in compliance with the License.
|
|
@@ -529,14 +537,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
529
537
|
* limitations under the License.
|
|
530
538
|
*/
|
|
531
539
|
class ObjectDetailComponent {
|
|
532
|
-
constructor(
|
|
540
|
+
constructor(breadcrumbService, globalNotificationService, objectManagementService, objectService, route, router, translate) {
|
|
541
|
+
this.breadcrumbService = breadcrumbService;
|
|
542
|
+
this.globalNotificationService = globalNotificationService;
|
|
543
|
+
this.objectManagementService = objectManagementService;
|
|
533
544
|
this.objectService = objectService;
|
|
534
545
|
this.route = route;
|
|
535
546
|
this.router = router;
|
|
536
547
|
this.translate = translate;
|
|
537
|
-
this.toastr = toastr;
|
|
538
|
-
this.breadcrumbService = breadcrumbService;
|
|
539
|
-
this.objectManagementService = objectManagementService;
|
|
540
548
|
this.loading$ = new BehaviorSubject(true);
|
|
541
549
|
this.submission$ = new BehaviorSubject({});
|
|
542
550
|
this.formValid$ = new BehaviorSubject(false);
|
|
@@ -601,7 +609,10 @@ class ObjectDetailComponent {
|
|
|
601
609
|
}))
|
|
602
610
|
.subscribe(() => {
|
|
603
611
|
this.closeModal();
|
|
604
|
-
this.
|
|
612
|
+
this.globalNotificationService.showToast({
|
|
613
|
+
title: this.translate.instant('object.messages.objectDeleted'),
|
|
614
|
+
type: 'success',
|
|
615
|
+
});
|
|
605
616
|
this.router.navigate([`/objects/${objectManagementId}`]);
|
|
606
617
|
});
|
|
607
618
|
});
|
|
@@ -634,7 +645,10 @@ class ObjectDetailComponent {
|
|
|
634
645
|
.subscribe(() => {
|
|
635
646
|
this.closeModal();
|
|
636
647
|
this.refreshObject();
|
|
637
|
-
this.
|
|
648
|
+
this.globalNotificationService.showToast({
|
|
649
|
+
title: this.translate.instant('object.messages.objectUpdated'),
|
|
650
|
+
type: 'success',
|
|
651
|
+
});
|
|
638
652
|
});
|
|
639
653
|
}
|
|
640
654
|
});
|
|
@@ -649,18 +663,27 @@ class ObjectDetailComponent {
|
|
|
649
663
|
this.disableInput$.next(false);
|
|
650
664
|
}
|
|
651
665
|
handleRetrievingFormError() {
|
|
652
|
-
this.
|
|
666
|
+
this.globalNotificationService.showToast({
|
|
667
|
+
title: this.translate.instant('object.messages.objectRetrievingFormError'),
|
|
668
|
+
type: 'error',
|
|
669
|
+
});
|
|
653
670
|
this.loading$.next(false);
|
|
654
671
|
return of(null);
|
|
655
672
|
}
|
|
656
673
|
handleUpdateObjectError(error) {
|
|
657
674
|
this.closeModal();
|
|
658
|
-
this.
|
|
675
|
+
this.globalNotificationService.showToast({
|
|
676
|
+
title: this.translate.instant('object.messages.objectUpdateError'),
|
|
677
|
+
type: 'error',
|
|
678
|
+
});
|
|
659
679
|
return throwError(error);
|
|
660
680
|
}
|
|
661
681
|
handleDeleteObjectError(error) {
|
|
662
682
|
this.closeModal();
|
|
663
|
-
this.
|
|
683
|
+
this.globalNotificationService.showToast({
|
|
684
|
+
title: this.translate.instant('object.messages.objectDeleteError'),
|
|
685
|
+
type: 'error',
|
|
686
|
+
});
|
|
664
687
|
return throwError(error);
|
|
665
688
|
}
|
|
666
689
|
setBreadcrumb(objectTypeId, title) {
|
|
@@ -670,16 +693,16 @@ class ObjectDetailComponent {
|
|
|
670
693
|
href: `/objects/${objectTypeId}`,
|
|
671
694
|
});
|
|
672
695
|
}
|
|
673
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
674
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
696
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectDetailComponent, deps: [{ token: i1$1.BreadcrumbService }, { token: i2.GlobalNotificationService }, { token: i3.ObjectManagementService }, { token: ObjectService }, { token: i6.ActivatedRoute }, { token: i6.Router }, { token: i7.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
697
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ObjectDetailComponent, isStandalone: false, selector: "valtimo-object-detail", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n (close)=\"closeModal()\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i8$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i8$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i8$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i1$1.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i8$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i8$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i8$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i8$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i8$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i1$1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "directive", type: i1$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
675
698
|
}
|
|
676
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
699
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectDetailComponent, decorators: [{
|
|
677
700
|
type: Component,
|
|
678
|
-
args: [{ selector: 'valtimo-object-detail', template: "<!--\n ~ Copyright 2015-
|
|
679
|
-
}], ctorParameters: () => [{ type:
|
|
701
|
+
args: [{ standalone: false, selector: 'valtimo-object-detail', template: "<!--\n ~ Copyright 2015-2025 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<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n (close)=\"closeModal()\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
702
|
+
}], ctorParameters: () => [{ type: i1$1.BreadcrumbService }, { type: i2.GlobalNotificationService }, { type: i3.ObjectManagementService }, { type: ObjectService }, { type: i6.ActivatedRoute }, { type: i6.Router }, { type: i7.TranslateService }] });
|
|
680
703
|
|
|
681
704
|
/*
|
|
682
|
-
* Copyright 2015-
|
|
705
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
683
706
|
*
|
|
684
707
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
685
708
|
* you may not use this file except in compliance with the License.
|
|
@@ -717,16 +740,16 @@ class ObjectDetailContainerComponent {
|
|
|
717
740
|
this.tabService.currentTab = TabEnum.GENERAL;
|
|
718
741
|
this.tabSubscription?.unsubscribe();
|
|
719
742
|
}
|
|
720
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
721
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
743
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectDetailContainerComponent, deps: [{ token: ObjectStateService }, { token: ObjectService }, { token: i6.ActivatedRoute }, { token: i2.ConfigService }, { token: TabService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
744
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ObjectDetailContainerComponent, isStandalone: false, selector: "valtimo-object-detail-container", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\">\n <h3 class=\"dossier-title\">\n {{ 'object.header' | translate }}\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"general-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.GENERAL)\"\n >\n {{ 'object.tabs.general' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pl-1 pr-1 pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.GENERAL\">\n <valtimo-object-detail></valtimo-object-detail>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: ObjectDetailComponent, selector: "valtimo-object-detail" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
722
745
|
}
|
|
723
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
746
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectDetailContainerComponent, decorators: [{
|
|
724
747
|
type: Component,
|
|
725
|
-
args: [{ selector: 'valtimo-object-detail-container', template: "<!--\n ~ Copyright 2015-
|
|
726
|
-
}], ctorParameters: () => [{ type: ObjectStateService }, { type: ObjectService }, { type:
|
|
748
|
+
args: [{ standalone: false, selector: 'valtimo-object-detail-container', template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\">\n <h3 class=\"dossier-title\">\n {{ 'object.header' | translate }}\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"general-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.GENERAL)\"\n >\n {{ 'object.tabs.general' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pl-1 pr-1 pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.GENERAL\">\n <valtimo-object-detail></valtimo-object-detail>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
749
|
+
}], ctorParameters: () => [{ type: ObjectStateService }, { type: ObjectService }, { type: i6.ActivatedRoute }, { type: i2.ConfigService }, { type: TabService }] });
|
|
727
750
|
|
|
728
751
|
/*
|
|
729
|
-
* Copyright 2015-
|
|
752
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
730
753
|
*
|
|
731
754
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
732
755
|
* you may not use this file except in compliance with the License.
|
|
@@ -755,11 +778,11 @@ const routes = [
|
|
|
755
778
|
},
|
|
756
779
|
];
|
|
757
780
|
class ObjectRoutingModule {
|
|
758
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
759
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
760
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
781
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
782
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, i6.RouterModule], exports: [RouterModule] }); }
|
|
783
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
761
784
|
}
|
|
762
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
785
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectRoutingModule, decorators: [{
|
|
763
786
|
type: NgModule,
|
|
764
787
|
args: [{
|
|
765
788
|
imports: [CommonModule, RouterModule.forChild(routes)],
|
|
@@ -769,7 +792,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
769
792
|
}] });
|
|
770
793
|
|
|
771
794
|
/*
|
|
772
|
-
* Copyright 2015-
|
|
795
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
796
|
+
*
|
|
797
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
798
|
+
* you may not use this file except in compliance with the License.
|
|
799
|
+
* You may obtain a copy of the License at
|
|
800
|
+
*
|
|
801
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
802
|
+
*
|
|
803
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
804
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
805
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
806
|
+
* See the License for the specific language governing permissions and
|
|
807
|
+
* limitations under the License.
|
|
808
|
+
*/
|
|
809
|
+
class ObjectMenuService {
|
|
810
|
+
constructor(http, configService) {
|
|
811
|
+
this.http = http;
|
|
812
|
+
this.configService = configService;
|
|
813
|
+
this.appendObjectMenuItems = (menuItems) => {
|
|
814
|
+
const apiBaseUrl = this.configService.config.valtimoApi.endpointUri;
|
|
815
|
+
return this.getObjects(apiBaseUrl).pipe(map$1(objects => {
|
|
816
|
+
const visibleObjects = objects.filter(obj => obj?.showInDataMenu !== false);
|
|
817
|
+
const objectItems = visibleObjects.map((obj, index) => ({
|
|
818
|
+
link: ['/objects/' + obj.id],
|
|
819
|
+
title: obj.title,
|
|
820
|
+
iconClass: 'icon mdi mdi-dot-circle',
|
|
821
|
+
sequence: index,
|
|
822
|
+
show: true,
|
|
823
|
+
}));
|
|
824
|
+
const index = menuItems.findIndex(item => item.title === 'Objects');
|
|
825
|
+
if (index >= 0) {
|
|
826
|
+
menuItems[index].children = objectItems;
|
|
827
|
+
}
|
|
828
|
+
return menuItems;
|
|
829
|
+
}));
|
|
830
|
+
};
|
|
831
|
+
}
|
|
832
|
+
getObjects(apiBaseUrl) {
|
|
833
|
+
const url = `${apiBaseUrl}v1/object/management/configuration`;
|
|
834
|
+
return this.http.get(url);
|
|
835
|
+
}
|
|
836
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectMenuService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
837
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectMenuService, providedIn: 'root' }); }
|
|
838
|
+
}
|
|
839
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectMenuService, decorators: [{
|
|
840
|
+
type: Injectable,
|
|
841
|
+
args: [{ providedIn: 'root' }]
|
|
842
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
|
|
843
|
+
|
|
844
|
+
/*
|
|
845
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
846
|
+
*
|
|
847
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
848
|
+
* you may not use this file except in compliance with the License.
|
|
849
|
+
* You may obtain a copy of the License at
|
|
850
|
+
*
|
|
851
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
852
|
+
*
|
|
853
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
854
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
855
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
856
|
+
* See the License for the specific language governing permissions and
|
|
857
|
+
* limitations under the License.
|
|
858
|
+
*/
|
|
859
|
+
|
|
860
|
+
/*
|
|
861
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
773
862
|
*
|
|
774
863
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
775
864
|
* you may not use this file except in compliance with the License.
|
|
@@ -784,13 +873,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
784
873
|
* limitations under the License.
|
|
785
874
|
*/
|
|
786
875
|
class ObjectModule {
|
|
787
|
-
|
|
788
|
-
|
|
876
|
+
constructor(menuService, configService, objectMenuService) {
|
|
877
|
+
this.menuService = menuService;
|
|
878
|
+
this.configService = configService;
|
|
879
|
+
this.objectMenuService = objectMenuService;
|
|
880
|
+
const enabled = this.configService.config?.featureToggles?.enableObjectManagement;
|
|
881
|
+
if (!enabled)
|
|
882
|
+
return;
|
|
883
|
+
this.menuService.registerAppendMenuItemsFunction(this.objectMenuService.appendObjectMenuItems);
|
|
884
|
+
}
|
|
885
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectModule, deps: [{ token: i1$1.MenuService }, { token: i2.ConfigService }, { token: ObjectMenuService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
886
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: ObjectModule, declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent], imports: [CommonModule,
|
|
789
887
|
ObjectRoutingModule,
|
|
790
888
|
TranslateModule,
|
|
791
889
|
AsyncPipe,
|
|
792
890
|
WidgetModule,
|
|
793
|
-
ListModule,
|
|
794
891
|
ButtonModule,
|
|
795
892
|
IconModule,
|
|
796
893
|
SpinnerModule,
|
|
@@ -802,13 +899,12 @@ class ObjectModule {
|
|
|
802
899
|
TooltipIconModule,
|
|
803
900
|
ConfirmationModalModule,
|
|
804
901
|
SearchFieldsModule,
|
|
805
|
-
|
|
902
|
+
ValtimoCdsModalDirective,
|
|
806
903
|
CarbonListModule] }); }
|
|
807
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
904
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectModule, imports: [CommonModule,
|
|
808
905
|
ObjectRoutingModule,
|
|
809
906
|
TranslateModule,
|
|
810
907
|
WidgetModule,
|
|
811
|
-
ListModule,
|
|
812
908
|
ButtonModule,
|
|
813
909
|
IconModule,
|
|
814
910
|
SpinnerModule,
|
|
@@ -820,10 +916,9 @@ class ObjectModule {
|
|
|
820
916
|
TooltipIconModule,
|
|
821
917
|
ConfirmationModalModule,
|
|
822
918
|
SearchFieldsModule,
|
|
823
|
-
ValtimoCdsModalDirectiveModule,
|
|
824
919
|
CarbonListModule] }); }
|
|
825
920
|
}
|
|
826
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
921
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectModule, decorators: [{
|
|
827
922
|
type: NgModule,
|
|
828
923
|
args: [{
|
|
829
924
|
declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],
|
|
@@ -833,7 +928,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
833
928
|
TranslateModule,
|
|
834
929
|
AsyncPipe,
|
|
835
930
|
WidgetModule,
|
|
836
|
-
ListModule,
|
|
837
931
|
ButtonModule,
|
|
838
932
|
IconModule,
|
|
839
933
|
SpinnerModule,
|
|
@@ -845,15 +939,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
845
939
|
TooltipIconModule,
|
|
846
940
|
ConfirmationModalModule,
|
|
847
941
|
SearchFieldsModule,
|
|
848
|
-
|
|
942
|
+
ValtimoCdsModalDirective,
|
|
849
943
|
CarbonListModule,
|
|
850
944
|
],
|
|
851
945
|
exports: [],
|
|
852
946
|
}]
|
|
853
|
-
}] });
|
|
947
|
+
}], ctorParameters: () => [{ type: i1$1.MenuService }, { type: i2.ConfigService }, { type: ObjectMenuService }] });
|
|
854
948
|
|
|
855
949
|
/*
|
|
856
|
-
* Copyright 2015-
|
|
950
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
857
951
|
*
|
|
858
952
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
859
953
|
* you may not use this file except in compliance with the License.
|