@valtimo/object 13.3.0 → 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -403,7 +403,7 @@ class ObjectListComponent {
|
|
|
403
403
|
return filters;
|
|
404
404
|
}
|
|
405
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", "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" }] }); }
|
|
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" }] }); }
|
|
407
407
|
}
|
|
408
408
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ObjectListComponent, decorators: [{
|
|
409
409
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-object.mjs","sources":["../../../../projects/valtimo/object/src/lib/services/object.service.ts","../../../../projects/valtimo/object/src/lib/models/object.model.ts","../../../../projects/valtimo/object/src/lib/services/object-column.service.ts","../../../../projects/valtimo/object/src/lib/components/object-list/object-list.component.ts","../../../../projects/valtimo/object/src/lib/components/object-list/object-list.component.html","../../../../projects/valtimo/object/src/lib/services/tab.enum.ts","../../../../projects/valtimo/object/src/lib/services/object-state.service.ts","../../../../projects/valtimo/object/src/lib/services/tab.service.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/tabs/object-detail/object-detail.component.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/tabs/object-detail/object-detail.component.html","../../../../projects/valtimo/object/src/lib/components/object-detail-container/object-detail-container.component.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/object-detail-container.component.html","../../../../projects/valtimo/object/src/lib/object-routing.module.ts","../../../../projects/valtimo/object/src/lib/services/object-menu.service.ts","../../../../projects/valtimo/object/src/lib/services/index.ts","../../../../projects/valtimo/object/src/lib/object.module.ts","../../../../projects/valtimo/object/src/public-api.ts","../../../../projects/valtimo/object/src/valtimo-object.ts"],"sourcesContent":["/*\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\nimport {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/shared';\nimport {ObjectConfiguration} from '../models/object.model';\nimport {FormDefinition} from '@valtimo/form-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectService {\n private readonly valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public getObjectsByObjectManagementId(\n objectManagementId: string,\n params?: any\n ): Observable<ObjectConfiguration> {\n return this.http.get<ObjectConfiguration>(\n `${this.valtimoEndpointUri}v1/object/management/configuration/${objectManagementId}/object`,\n {params}\n );\n }\n\n public postObjectsByObjectManagementId(\n objectManagementId: string,\n params?: any,\n payload?: any\n ): Observable<ObjectConfiguration> {\n return this.http.post<ObjectConfiguration>(\n `${this.valtimoEndpointUri}v1/object/management/configuration/${objectManagementId}/object`,\n payload,\n {params}\n );\n }\n\n public createObject(params: {objectManagementId: string}, payload: object): Observable<any> {\n return this.http.post<any>(`${this.valtimoEndpointUri}v1/object`, payload, {params});\n }\n\n public updateObject(\n params: {objectManagementId: string; objectId: string},\n payload: object\n ): Observable<any> {\n return this.http.patch<any>(`${this.valtimoEndpointUri}v1/object`, payload, {params});\n }\n\n public deleteObject(params: {objectManagementId: string; objectId: string}): Observable<any> {\n return this.http.delete<any>(`${this.valtimoEndpointUri}v1/object`, {params});\n }\n\n public getPrefilledObjectFromObjectUrl(params: any): Observable<FormDefinition> {\n return this.http.get<FormDefinition>(`${this.valtimoEndpointUri}v1/object/form`, {params});\n }\n\n public removeEmptyStringValuesFromSubmission(submission) {\n return Object.fromEntries(Object.entries(submission).filter(([_, value]) => value !== ''));\n }\n}\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\ninterface ObjectConfiguration {\n content: ObjectConfigurationItem[];\n}\n\ninterface ObjectConfigurationItem {\n id: string;\n items: Item[];\n}\n\ninterface Item {\n key: string;\n value: string;\n}\n\nenum FormType {\n SUMMARY = 'SUMMARY',\n EDITFORM = 'EDITFORM',\n}\n\nenum ColumnType {\n DEFAULT = 'DEFAULT',\n CUSTOM = 'CUSTOM',\n}\n\nexport {ObjectConfiguration, ObjectConfigurationItem, Item, FormType, ColumnType};\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\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/shared';\nimport {map, Observable} from 'rxjs';\nimport {ObjectManagementService, SearchColumn, SearchListColumn} from '@valtimo/object-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectColumnService {\n constructor(\n private readonly configService: ConfigService,\n private readonly objectManagementService: ObjectManagementService\n ) {}\n\n getObjectColumns(configurationId: string): Observable<Array<SearchColumn>> {\n return this.objectManagementService\n .getSearchList(configurationId)\n .pipe(\n map(\n objectListColumns =>\n objectListColumns &&\n Array.isArray(objectListColumns) &&\n objectListColumns.length > 0 &&\n this.mapObjectListColumnsToSearchColumns(objectListColumns)\n )\n );\n }\n\n private mapObjectListColumnsToSearchColumns(\n searchListColumns: Array<SearchListColumn>\n ): Array<SearchColumn> {\n return searchListColumns.map(searchListColumn => ({\n translationKey: searchListColumn.key,\n sortable: searchListColumn.sortable,\n defaultSort: searchListColumn.defaultSort,\n viewType: this.getDisplayType(searchListColumn.displayType.type),\n propertyName: searchListColumn.path,\n ...(searchListColumn.title && {title: searchListColumn.title}),\n ...(searchListColumn?.displayType?.displayTypeParameters?.enum && {\n enum: searchListColumn.displayType.displayTypeParameters.enum as any,\n }),\n ...(searchListColumn.displayType?.displayTypeParameters?.dateFormat && {\n format: searchListColumn.displayType?.displayTypeParameters?.dateFormat,\n }),\n }));\n }\n\n private getDisplayType(searchListColumnDisplayType: string): string {\n switch (searchListColumnDisplayType) {\n default:\n return searchListColumnDisplayType;\n }\n }\n}\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 */\nimport {Component} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ListField, PageTitleService, Pagination} from '@valtimo/components';\nimport {\n GlobalNotificationService,\n SearchField,\n SearchFieldValues,\n SearchFilter,\n SearchFilterRange,\n} from '@valtimo/shared';\nimport {ObjectManagementService, SearchColumn} from '@valtimo/object-management';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n Observable,\n of,\n startWith,\n throwError,\n} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {ColumnType, FormType} from '../../models/object.model';\nimport {ObjectColumnService} from '../../services/object-column.service';\nimport {ObjectService} from '../../services/object.service';\n\n@Component({\n standalone: false,\n selector: 'valtimo-object-list',\n templateUrl: './object-list.component.html',\n styleUrls: ['./object-list.component.scss'],\n})\nexport class ObjectListComponent {\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly submission$ = new BehaviorSubject<any>({});\n readonly formValid$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly clearForm$ = new BehaviorSubject<boolean>(false);\n readonly columnType$ = new BehaviorSubject<ColumnType>(ColumnType.DEFAULT);\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId),\n tap(objectManagementId => {\n if (objectManagementId) {\n this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {\n if (objectType.title) {\n this.pageTitleService.setCustomPageTitle(objectType.title);\n }\n });\n }\n })\n );\n\n private readonly refreshObjectList$ = new BehaviorSubject<null>(null);\n\n readonly currentPageAndSize$ = new BehaviorSubject<Partial<Pagination>>({\n page: 0,\n size: 10,\n });\n\n readonly pageSizes$ = new BehaviorSubject<Partial<Pagination>>({\n collectionSize: 0,\n });\n\n readonly pagination$: Observable<Pagination> = combineLatest([\n this.currentPageAndSize$,\n this.pageSizes$,\n ]).pipe(\n map(\n ([currentPage, sizes]) =>\n ({...currentPage, ...sizes, page: currentPage.page + 1}) as Pagination\n )\n );\n\n paginationClicked(newPageNumber): void {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, page: newPageNumber - 1});\n });\n }\n\n paginationSet(newPageSize): void {\n if (newPageSize) {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, size: newPageSize});\n });\n }\n }\n\n private readonly searchFieldValues$ = new BehaviorSubject<SearchFieldValues>({});\n readonly objectSearchFields$: Observable<Array<SearchField> | null> =\n this.objectManagementId$.pipe(\n distinctUntilChanged(),\n switchMap(objectManagementId =>\n this.objectManagementService.getSearchField(objectManagementId)\n ),\n map(searchFields =>\n searchFields.map(searchField => {\n // @ts-ignore\n searchField.dataType = searchField.dataType.toLowerCase();\n // @ts-ignore\n searchField.fieldType = searchField.fieldType.toLowerCase();\n return searchField;\n })\n )\n );\n\n readonly objectConfiguration$: Observable<Array<any>> = combineLatest([\n this.objectManagementId$,\n this.currentPageAndSize$,\n this.columnType$,\n this.searchFieldValues$,\n this.translateService.stream('key'),\n this.refreshObjectList$,\n ]).pipe(\n switchMap(([objectManagementId, currentPage, columnType, searchFieldValues]) => {\n const handleError = () => {\n this.disableInput();\n return of(null);\n };\n\n if (columnType === ColumnType.CUSTOM) {\n return this.objectService\n .postObjectsByObjectManagementId(\n objectManagementId,\n {\n page: currentPage.page,\n size: currentPage.size,\n },\n Object.keys(searchFieldValues).length > 0\n ? {otherFilters: this.mapSearchValuesToFilters(searchFieldValues)}\n : {}\n )\n .pipe(catchError(() => handleError()));\n }\n\n return this.objectService\n .getObjectsByObjectManagementId(objectManagementId, {\n page: currentPage.page,\n size: currentPage.size,\n })\n .pipe(catchError(() => handleError()));\n }),\n tap(instanceRes => {\n if (instanceRes != null) {\n this.pageSizes$.pipe(take(1)).subscribe(sizes => {\n // @ts-ignore\n this.pageSizes$.next({...sizes, collectionSize: instanceRes.totalElements});\n });\n }\n }),\n map(res =>\n res?.content?.map(record =>\n record?.items?.reduce(\n (obj, item) => Object.assign(obj, {objectId: record.id}, {[item.key]: item.value}),\n {}\n )\n )\n ),\n tap(() => this.loading$.next(false))\n );\n\n readonly formDefinition$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.clearForm$,\n ]).pipe(\n switchMap(([objectManagementId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({objectManagementId, formType: FormType.EDITFORM})\n .pipe(\n catchError(error => {\n this.handleRetrievingFormError(error);\n this.disableInput();\n return of(null).pipe(startWith(null));\n })\n )\n ),\n map(res => {\n if (res != null) {\n this.enableInput();\n }\n\n return res?.formDefinition;\n }),\n startWith(null),\n finalize(() => this.loading$.next(false))\n );\n\n private readonly columns$: Observable<Array<SearchColumn>> = this.objectManagementId$.pipe(\n switchMap(objectManagementId => this.objectColumnService.getObjectColumns(objectManagementId)),\n map(res => res)\n );\n\n readonly fields$: Observable<Array<ListField>> = combineLatest([\n this.columns$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([columns]) => {\n if (columns?.length > 0) {\n this.columnType$.next(ColumnType.CUSTOM);\n\n return [\n ...columns.map(column => {\n const translationKey = `fieldLabels.${column.translationKey}`;\n const translation = this.translateService.instant(translationKey);\n const validTranslation = translation !== translationKey && translation;\n return {\n key: column.translationKey,\n label: column.title || validTranslation || column.translationKey,\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType || ''}),\n ...(column.enum && {enum: column.enum}),\n ...(column.format && {format: column.format}),\n };\n }),\n ];\n }\n\n this.columnType$.next(ColumnType.DEFAULT);\n return this.setDefaultFields();\n })\n );\n\n constructor(\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly objectColumnService: ObjectColumnService,\n private readonly objectManagementService: ObjectManagementService,\n private readonly objectService: ObjectService,\n private readonly pageTitleService: PageTitleService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translate: TranslateService,\n private readonly translateService: TranslateService\n ) {}\n\n openModal(): void {\n this.showModal$.next(true);\n }\n\n closeModal(): void {\n this.showModal$.next(false);\n this.clearForm$.next(true);\n }\n\n onFormioChange(formio): void {\n if (formio.data != null) {\n this.submission$.next(formio.data);\n this.formValid$.next(formio.isValid);\n }\n }\n\n public addObject(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.submission$, this.formValid$])\n .pipe(\n take(1),\n filter(([objectManagementId, submission, formValid]) => formValid),\n switchMap(([objectManagementId, submission]) =>\n this.objectService\n .createObject(\n {objectManagementId},\n {...this.objectService.removeEmptyStringValuesFromSubmission(submission)}\n )\n .pipe(\n take(1),\n catchError((error: any) => {\n this.handleCreateObjectError(error);\n return throwError(error);\n })\n )\n ),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe({\n next: () => {\n this.closeModal();\n this.refreshObjectList();\n this.clearForm$.next(true);\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectCreated'),\n type: 'success',\n });\n },\n });\n }\n\n redirectToDetails(record): void {\n const objectId = record.objectUrl ? record.objectUrl.split('/').pop() : record.objectId;\n this.objectManagementId$.pipe(take(1)).subscribe(configurationId => {\n this.router.navigate([`/objects/${configurationId}/${objectId}`]);\n });\n }\n\n search(searchFieldValues: SearchFieldValues): void {\n this.searchFieldValues$.next(searchFieldValues || {});\n }\n\n private refreshObjectList(): void {\n this.refreshObjectList$.next(null);\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private setDefaultFields() {\n const keys: Array<string> = ['recordIndex', 'objectUrl'];\n return keys.map(key => ({\n label: `${this.translateService.instant(`object.labels.${key}`)}`,\n key,\n sortable: false,\n type: 'string',\n }));\n }\n\n private handleRetrievingFormError(error: any) {\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectRetrievingFormError'),\n type: 'error',\n });\n return throwError(error);\n }\n\n private handleCreateObjectError(error: any) {\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectCreationError'),\n type: 'error',\n });\n return throwError(error);\n }\n\n private mapSearchValuesToFilters(\n values: SearchFieldValues\n ): Array<SearchFilter | SearchFilterRange> {\n const filters: Array<SearchFilter | SearchFilterRange> = [];\n\n Object.keys(values).forEach(valueKey => {\n const searchValue = values[valueKey] as any;\n if (searchValue.start) {\n filters.push({key: valueKey, rangeFrom: searchValue.start, rangeTo: searchValue.end});\n } else if (Array.isArray(searchValue)) {\n filters.push({key: valueKey, values: searchValue});\n } else {\n // @ts-ignore\n filters.push({key: valueKey, values: [searchValue]});\n }\n });\n\n return filters;\n }\n}\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<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","/*\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\nexport enum TabEnum {\n GENERAL = 'general',\n}\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectStateService {\n private readonly _showModal$ = new Subject();\n private readonly _hideModal$ = new Subject();\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _modalType$ = new BehaviorSubject<any>('add');\n\n constructor() {}\n\n get showModal$(): Observable<any> {\n return this._showModal$.asObservable();\n }\n\n get hideModal$(): Observable<any> {\n return this._hideModal$.asObservable();\n }\n\n get refresh$(): Observable<any> {\n return this._refresh$.asObservable();\n }\n\n get modalType$(): Observable<any> {\n return this._modalType$.asObservable();\n }\n\n showModal(): void {\n this._showModal$.next(null);\n }\n\n hideModal(): void {\n this._hideModal$.next(null);\n }\n\n refresh(): void {\n this._refresh$.next(null);\n }\n\n setModalType(type: any): void {\n this._modalType$.next(type);\n }\n}\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {TabEnum} from './tab.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabService {\n private _currentTab$ = new BehaviorSubject<TabEnum>(TabEnum.GENERAL);\n\n public get currentTab$(): Observable<TabEnum> {\n return this._currentTab$.asObservable();\n }\n\n public set currentTab(tab: TabEnum) {\n this._currentTab$.next(tab);\n }\n}\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 */\nimport {Component, OnDestroy} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {BreadcrumbService} from '@valtimo/components';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {ObjectManagementService} from '@valtimo/object-management';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subject, throwError} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {FormType} from '../../../../models/object.model';\nimport {ObjectService} from '../../../../services/object.service';\n\n@Component({\n standalone: false,\n selector: 'valtimo-object-detail',\n templateUrl: './object-detail.component.html',\n styleUrls: ['./object-detail.component.scss'],\n})\nexport class ObjectDetailComponent implements OnDestroy {\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly submission$ = new BehaviorSubject<any>({});\n readonly formValid$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly showDeleteModal$ = new Subject<boolean>();\n readonly deleteObjectUrl$ = new BehaviorSubject<string>('');\n\n private readonly refreshObject$ = new BehaviorSubject<null>(null);\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId),\n tap(objectManagementId => {\n if (!this._settingBreadcrumb && objectManagementId) {\n this._settingBreadcrumb = true;\n this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {\n if (objectType.id && objectType.title) {\n this.setBreadcrumb(objectType.id, objectType.title);\n }\n });\n }\n })\n );\n readonly objectId$: Observable<string> = this.route.params.pipe(map(params => params.objectId));\n\n readonly formioFormSummary$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.objectId$,\n this.refreshObject$,\n ]).pipe(\n switchMap(([objectManagementId, objectId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({objectManagementId, objectId, formType: FormType.SUMMARY})\n .pipe(catchError(() => this.handleRetrievingFormError()))\n ),\n map(res => res?.formDefinition),\n tap(() => this.loading$.next(false))\n );\n\n readonly formioFormEdit$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.objectId$,\n this.refreshObject$,\n ]).pipe(\n switchMap(([objectManagementId, objectId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({\n objectManagementId,\n objectId,\n formType: FormType.EDITFORM,\n })\n .pipe(\n catchError(() => {\n this.disableInput();\n return this.handleRetrievingFormError();\n })\n )\n ),\n map(res => res?.formDefinition),\n tap(() => this.loading$.next(false))\n );\n\n private _settingBreadcrumb = false;\n\n constructor(\n private readonly breadcrumbService: BreadcrumbService,\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly objectManagementService: ObjectManagementService,\n private readonly objectService: ObjectService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translate: TranslateService\n ) {}\n\n public ngOnDestroy(): void {\n this.breadcrumbService.clearSecondBreadcrumb();\n }\n\n saveObject(): void {\n this.disableInput();\n\n this.updateObject();\n }\n\n deleteObject(): void {\n this.showDeleteModal$.next(true);\n }\n\n deleteObjectConfirmation(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.objectId$])\n .pipe(take(1))\n .subscribe(([objectManagementId, objectId]) => {\n this.objectService\n .deleteObject({objectManagementId, objectId})\n .pipe(\n take(1),\n catchError((error: any) => this.handleDeleteObjectError(error)),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe(() => {\n this.closeModal();\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectDeleted'),\n type: 'success',\n });\n this.router.navigate([`/objects/${objectManagementId}`]);\n });\n });\n }\n\n openModal(): void {\n this.showModal$.next(true);\n this.enableInput();\n }\n\n onFormioChange(formio): void {\n if (formio.data != null) {\n this.submission$.next(formio.data);\n this.formValid$.next(formio.isValid);\n }\n }\n\n closeModal(): void {\n this.showModal$.next(false);\n }\n\n private updateObject(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.objectId$, this.submission$, this.formValid$])\n .pipe(take(1))\n .subscribe(([objectManagementId, objectId, submission, formValid]) => {\n if (formValid) {\n submission = this.objectService.removeEmptyStringValuesFromSubmission(submission);\n this.objectService\n .updateObject({objectManagementId, objectId}, {...submission})\n .pipe(\n take(1),\n catchError((error: any) => this.handleUpdateObjectError(error)),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe(() => {\n this.closeModal();\n this.refreshObject();\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectUpdated'),\n type: 'success',\n });\n });\n }\n });\n }\n\n private refreshObject(): void {\n this.refreshObject$.next(null);\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private handleRetrievingFormError() {\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectRetrievingFormError'),\n type: 'error',\n });\n this.loading$.next(false);\n return of(null);\n }\n\n private handleUpdateObjectError(error: any) {\n this.closeModal();\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectUpdateError'),\n type: 'error',\n });\n return throwError(error);\n }\n\n private handleDeleteObjectError(error: any) {\n this.closeModal();\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectDeleteError'),\n type: 'error',\n });\n return throwError(error);\n }\n\n private setBreadcrumb(objectTypeId: string, title: string): void {\n this.breadcrumbService.setSecondBreadcrumb({\n route: [`/objects/${objectTypeId}`],\n content: title,\n href: `/objects/${objectTypeId}`,\n });\n }\n}\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<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","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {map, Observable, Subscription} from 'rxjs';\nimport {ConfigService} from '@valtimo/shared';\nimport {ObjectStateService} from '../../services/object-state.service';\nimport {ObjectService} from '../../services/object.service';\nimport {TabEnum} from '../../services/tab.enum';\nimport {TabService} from '../../services/tab.service';\n\n@Component({\n standalone: false,\n selector: 'valtimo-object-detail-container',\n templateUrl: './object-detail-container.component.html',\n styleUrls: ['./object-detail-container.component.scss'],\n})\nexport class ObjectDetailContainerComponent implements OnInit, OnDestroy {\n public currentTab: TabEnum;\n public caseListColumn!: boolean;\n\n private tabSubscription: Subscription;\n\n readonly TabEnum = TabEnum;\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId)\n );\n\n constructor(\n private readonly objectState: ObjectStateService,\n private readonly objectService: ObjectService,\n private readonly route: ActivatedRoute,\n private readonly configService: ConfigService,\n private readonly tabService: TabService\n ) {\n this.caseListColumn = this.configService.config.featureToggles?.caseListColumn ?? true;\n }\n\n ngOnInit(): void {\n this.openCurrentTabSubscription();\n }\n\n displayBodyComponent(tab: TabEnum): void {\n this.tabService.currentTab = tab;\n }\n\n openCurrentTabSubscription(): void {\n this.tabSubscription = this.tabService.currentTab$.subscribe(\n value => (this.currentTab = value)\n );\n }\n\n ngOnDestroy(): void {\n this.tabService.currentTab = TabEnum.GENERAL;\n this.tabSubscription?.unsubscribe();\n }\n}\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\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","/*\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\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_USER} from '@valtimo/shared';\nimport {ObjectListComponent} from './components/object-list/object-list.component';\nimport {ObjectDetailContainerComponent} from './components/object-detail-container/object-detail-container.component';\n\nconst routes: Routes = [\n {\n path: 'objects/:objectManagementId',\n canActivate: [AuthGuardService],\n component: ObjectListComponent,\n data: {title: 'Objects', roles: [ROLE_USER], customPageTitle: true},\n },\n {\n path: 'objects/:objectManagementId/:objectId',\n canActivate: [AuthGuardService],\n component: ObjectDetailContainerComponent,\n data: {title: 'object.header', roles: [ROLE_USER]},\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class ObjectRoutingModule {}\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\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {ConfigService, MenuItem} from '@valtimo/shared';\n\n@Injectable({providedIn: 'root'})\nexport class ObjectMenuService {\n constructor(\n private readonly http: HttpClient,\n private readonly configService: ConfigService\n ) {}\n\n public appendObjectMenuItems = (menuItems: MenuItem[]): Observable<MenuItem[]> => {\n const apiBaseUrl = this.configService.config.valtimoApi.endpointUri;\n\n return this.getObjects(apiBaseUrl).pipe(\n map(objects => {\n const visibleObjects = objects.filter(obj => obj?.showInDataMenu !== false);\n\n const objectItems: MenuItem[] = visibleObjects.map((obj, index) => ({\n link: ['/objects/' + obj.id],\n title: obj.title,\n iconClass: 'icon mdi mdi-dot-circle',\n sequence: index,\n show: true,\n }));\n\n const index = menuItems.findIndex(item => item.title === 'Objects');\n\n if (index >= 0) {\n menuItems[index].children = objectItems;\n }\n\n return menuItems;\n })\n );\n };\n\n private getObjects(apiBaseUrl: string): Observable<any[]> {\n const url = `${apiBaseUrl}v1/object/management/configuration`;\n return this.http.get<any[]>(url);\n }\n}\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\nexport * from './object-menu.service';\nexport * from './object.service';\nexport * from './object-column.service';\nexport * from './object-state.service';\nexport * from './tab.service';\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\nimport {NgModule} from '@angular/core';\nimport {ObjectRoutingModule} from './object-routing.module';\nimport {ObjectListComponent} from './components/object-list/object-list.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {AsyncPipe, CommonModule} from '@angular/common';\nimport {\n CarbonListModule,\n ConfirmationModalModule,\n FormIoModule,\n MenuService,\n SearchFieldsModule,\n SpinnerModule,\n TooltipIconModule,\n ValtimoCdsModalDirective,\n WidgetModule,\n} from '@valtimo/components';\nimport {ObjectDetailContainerComponent} from './components/object-detail-container/object-detail-container.component';\nimport {ObjectDetailComponent} from './components/object-detail-container/tabs/object-detail/object-detail.component';\nimport {\n ButtonModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {ConfigService} from '@valtimo/shared';\nimport {ObjectMenuService} from './services';\n\n@NgModule({\n declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],\n imports: [\n CommonModule,\n ObjectRoutingModule,\n TranslateModule,\n AsyncPipe,\n WidgetModule,\n ButtonModule,\n IconModule,\n SpinnerModule,\n LoadingModule,\n FormIoModule,\n ModalModule,\n ReactiveFormsModule,\n InputModule,\n TooltipIconModule,\n ConfirmationModalModule,\n SearchFieldsModule,\n ValtimoCdsModalDirective,\n CarbonListModule,\n ],\n exports: [],\n})\nexport class ObjectModule {\n constructor(\n private readonly menuService: MenuService,\n private readonly configService: ConfigService,\n private readonly objectMenuService: ObjectMenuService\n ) {\n const enabled = this.configService.config?.featureToggles?.enableObjectManagement;\n\n if (!enabled) return;\n\n this.menuService.registerAppendMenuItemsFunction(this.objectMenuService.appendObjectMenuItems);\n }\n}\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\n/*\n * Public API Surface of object\n */\n\nexport * from './lib/services/object.service';\nexport * from './lib/object.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i2.ObjectColumnService","i4.ObjectService","i5","i9","i6","i7","i8","i1.ObjectStateService","i2.ObjectService","i3","i4","i5.TabService","i8.ObjectDetailComponent","map","i3.ObjectMenuService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-object.mjs","sources":["../../../../projects/valtimo/object/src/lib/services/object.service.ts","../../../../projects/valtimo/object/src/lib/models/object.model.ts","../../../../projects/valtimo/object/src/lib/services/object-column.service.ts","../../../../projects/valtimo/object/src/lib/components/object-list/object-list.component.ts","../../../../projects/valtimo/object/src/lib/components/object-list/object-list.component.html","../../../../projects/valtimo/object/src/lib/services/tab.enum.ts","../../../../projects/valtimo/object/src/lib/services/object-state.service.ts","../../../../projects/valtimo/object/src/lib/services/tab.service.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/tabs/object-detail/object-detail.component.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/tabs/object-detail/object-detail.component.html","../../../../projects/valtimo/object/src/lib/components/object-detail-container/object-detail-container.component.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/object-detail-container.component.html","../../../../projects/valtimo/object/src/lib/object-routing.module.ts","../../../../projects/valtimo/object/src/lib/services/object-menu.service.ts","../../../../projects/valtimo/object/src/lib/services/index.ts","../../../../projects/valtimo/object/src/lib/object.module.ts","../../../../projects/valtimo/object/src/public-api.ts","../../../../projects/valtimo/object/src/valtimo-object.ts"],"sourcesContent":["/*\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\nimport {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/shared';\nimport {ObjectConfiguration} from '../models/object.model';\nimport {FormDefinition} from '@valtimo/form-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectService {\n private readonly valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public getObjectsByObjectManagementId(\n objectManagementId: string,\n params?: any\n ): Observable<ObjectConfiguration> {\n return this.http.get<ObjectConfiguration>(\n `${this.valtimoEndpointUri}v1/object/management/configuration/${objectManagementId}/object`,\n {params}\n );\n }\n\n public postObjectsByObjectManagementId(\n objectManagementId: string,\n params?: any,\n payload?: any\n ): Observable<ObjectConfiguration> {\n return this.http.post<ObjectConfiguration>(\n `${this.valtimoEndpointUri}v1/object/management/configuration/${objectManagementId}/object`,\n payload,\n {params}\n );\n }\n\n public createObject(params: {objectManagementId: string}, payload: object): Observable<any> {\n return this.http.post<any>(`${this.valtimoEndpointUri}v1/object`, payload, {params});\n }\n\n public updateObject(\n params: {objectManagementId: string; objectId: string},\n payload: object\n ): Observable<any> {\n return this.http.patch<any>(`${this.valtimoEndpointUri}v1/object`, payload, {params});\n }\n\n public deleteObject(params: {objectManagementId: string; objectId: string}): Observable<any> {\n return this.http.delete<any>(`${this.valtimoEndpointUri}v1/object`, {params});\n }\n\n public getPrefilledObjectFromObjectUrl(params: any): Observable<FormDefinition> {\n return this.http.get<FormDefinition>(`${this.valtimoEndpointUri}v1/object/form`, {params});\n }\n\n public removeEmptyStringValuesFromSubmission(submission) {\n return Object.fromEntries(Object.entries(submission).filter(([_, value]) => value !== ''));\n }\n}\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\ninterface ObjectConfiguration {\n content: ObjectConfigurationItem[];\n}\n\ninterface ObjectConfigurationItem {\n id: string;\n items: Item[];\n}\n\ninterface Item {\n key: string;\n value: string;\n}\n\nenum FormType {\n SUMMARY = 'SUMMARY',\n EDITFORM = 'EDITFORM',\n}\n\nenum ColumnType {\n DEFAULT = 'DEFAULT',\n CUSTOM = 'CUSTOM',\n}\n\nexport {ObjectConfiguration, ObjectConfigurationItem, Item, FormType, ColumnType};\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\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/shared';\nimport {map, Observable} from 'rxjs';\nimport {ObjectManagementService, SearchColumn, SearchListColumn} from '@valtimo/object-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectColumnService {\n constructor(\n private readonly configService: ConfigService,\n private readonly objectManagementService: ObjectManagementService\n ) {}\n\n getObjectColumns(configurationId: string): Observable<Array<SearchColumn>> {\n return this.objectManagementService\n .getSearchList(configurationId)\n .pipe(\n map(\n objectListColumns =>\n objectListColumns &&\n Array.isArray(objectListColumns) &&\n objectListColumns.length > 0 &&\n this.mapObjectListColumnsToSearchColumns(objectListColumns)\n )\n );\n }\n\n private mapObjectListColumnsToSearchColumns(\n searchListColumns: Array<SearchListColumn>\n ): Array<SearchColumn> {\n return searchListColumns.map(searchListColumn => ({\n translationKey: searchListColumn.key,\n sortable: searchListColumn.sortable,\n defaultSort: searchListColumn.defaultSort,\n viewType: this.getDisplayType(searchListColumn.displayType.type),\n propertyName: searchListColumn.path,\n ...(searchListColumn.title && {title: searchListColumn.title}),\n ...(searchListColumn?.displayType?.displayTypeParameters?.enum && {\n enum: searchListColumn.displayType.displayTypeParameters.enum as any,\n }),\n ...(searchListColumn.displayType?.displayTypeParameters?.dateFormat && {\n format: searchListColumn.displayType?.displayTypeParameters?.dateFormat,\n }),\n }));\n }\n\n private getDisplayType(searchListColumnDisplayType: string): string {\n switch (searchListColumnDisplayType) {\n default:\n return searchListColumnDisplayType;\n }\n }\n}\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 */\nimport {Component} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ListField, PageTitleService, Pagination} from '@valtimo/components';\nimport {\n GlobalNotificationService,\n SearchField,\n SearchFieldValues,\n SearchFilter,\n SearchFilterRange,\n} from '@valtimo/shared';\nimport {ObjectManagementService, SearchColumn} from '@valtimo/object-management';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n Observable,\n of,\n startWith,\n throwError,\n} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {ColumnType, FormType} from '../../models/object.model';\nimport {ObjectColumnService} from '../../services/object-column.service';\nimport {ObjectService} from '../../services/object.service';\n\n@Component({\n standalone: false,\n selector: 'valtimo-object-list',\n templateUrl: './object-list.component.html',\n styleUrls: ['./object-list.component.scss'],\n})\nexport class ObjectListComponent {\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly submission$ = new BehaviorSubject<any>({});\n readonly formValid$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly clearForm$ = new BehaviorSubject<boolean>(false);\n readonly columnType$ = new BehaviorSubject<ColumnType>(ColumnType.DEFAULT);\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId),\n tap(objectManagementId => {\n if (objectManagementId) {\n this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {\n if (objectType.title) {\n this.pageTitleService.setCustomPageTitle(objectType.title);\n }\n });\n }\n })\n );\n\n private readonly refreshObjectList$ = new BehaviorSubject<null>(null);\n\n readonly currentPageAndSize$ = new BehaviorSubject<Partial<Pagination>>({\n page: 0,\n size: 10,\n });\n\n readonly pageSizes$ = new BehaviorSubject<Partial<Pagination>>({\n collectionSize: 0,\n });\n\n readonly pagination$: Observable<Pagination> = combineLatest([\n this.currentPageAndSize$,\n this.pageSizes$,\n ]).pipe(\n map(\n ([currentPage, sizes]) =>\n ({...currentPage, ...sizes, page: currentPage.page + 1}) as Pagination\n )\n );\n\n paginationClicked(newPageNumber): void {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, page: newPageNumber - 1});\n });\n }\n\n paginationSet(newPageSize): void {\n if (newPageSize) {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, size: newPageSize});\n });\n }\n }\n\n private readonly searchFieldValues$ = new BehaviorSubject<SearchFieldValues>({});\n readonly objectSearchFields$: Observable<Array<SearchField> | null> =\n this.objectManagementId$.pipe(\n distinctUntilChanged(),\n switchMap(objectManagementId =>\n this.objectManagementService.getSearchField(objectManagementId)\n ),\n map(searchFields =>\n searchFields.map(searchField => {\n // @ts-ignore\n searchField.dataType = searchField.dataType.toLowerCase();\n // @ts-ignore\n searchField.fieldType = searchField.fieldType.toLowerCase();\n return searchField;\n })\n )\n );\n\n readonly objectConfiguration$: Observable<Array<any>> = combineLatest([\n this.objectManagementId$,\n this.currentPageAndSize$,\n this.columnType$,\n this.searchFieldValues$,\n this.translateService.stream('key'),\n this.refreshObjectList$,\n ]).pipe(\n switchMap(([objectManagementId, currentPage, columnType, searchFieldValues]) => {\n const handleError = () => {\n this.disableInput();\n return of(null);\n };\n\n if (columnType === ColumnType.CUSTOM) {\n return this.objectService\n .postObjectsByObjectManagementId(\n objectManagementId,\n {\n page: currentPage.page,\n size: currentPage.size,\n },\n Object.keys(searchFieldValues).length > 0\n ? {otherFilters: this.mapSearchValuesToFilters(searchFieldValues)}\n : {}\n )\n .pipe(catchError(() => handleError()));\n }\n\n return this.objectService\n .getObjectsByObjectManagementId(objectManagementId, {\n page: currentPage.page,\n size: currentPage.size,\n })\n .pipe(catchError(() => handleError()));\n }),\n tap(instanceRes => {\n if (instanceRes != null) {\n this.pageSizes$.pipe(take(1)).subscribe(sizes => {\n // @ts-ignore\n this.pageSizes$.next({...sizes, collectionSize: instanceRes.totalElements});\n });\n }\n }),\n map(res =>\n res?.content?.map(record =>\n record?.items?.reduce(\n (obj, item) => Object.assign(obj, {objectId: record.id}, {[item.key]: item.value}),\n {}\n )\n )\n ),\n tap(() => this.loading$.next(false))\n );\n\n readonly formDefinition$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.clearForm$,\n ]).pipe(\n switchMap(([objectManagementId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({objectManagementId, formType: FormType.EDITFORM})\n .pipe(\n catchError(error => {\n this.handleRetrievingFormError(error);\n this.disableInput();\n return of(null).pipe(startWith(null));\n })\n )\n ),\n map(res => {\n if (res != null) {\n this.enableInput();\n }\n\n return res?.formDefinition;\n }),\n startWith(null),\n finalize(() => this.loading$.next(false))\n );\n\n private readonly columns$: Observable<Array<SearchColumn>> = this.objectManagementId$.pipe(\n switchMap(objectManagementId => this.objectColumnService.getObjectColumns(objectManagementId)),\n map(res => res)\n );\n\n readonly fields$: Observable<Array<ListField>> = combineLatest([\n this.columns$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([columns]) => {\n if (columns?.length > 0) {\n this.columnType$.next(ColumnType.CUSTOM);\n\n return [\n ...columns.map(column => {\n const translationKey = `fieldLabels.${column.translationKey}`;\n const translation = this.translateService.instant(translationKey);\n const validTranslation = translation !== translationKey && translation;\n return {\n key: column.translationKey,\n label: column.title || validTranslation || column.translationKey,\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType || ''}),\n ...(column.enum && {enum: column.enum}),\n ...(column.format && {format: column.format}),\n };\n }),\n ];\n }\n\n this.columnType$.next(ColumnType.DEFAULT);\n return this.setDefaultFields();\n })\n );\n\n constructor(\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly objectColumnService: ObjectColumnService,\n private readonly objectManagementService: ObjectManagementService,\n private readonly objectService: ObjectService,\n private readonly pageTitleService: PageTitleService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translate: TranslateService,\n private readonly translateService: TranslateService\n ) {}\n\n openModal(): void {\n this.showModal$.next(true);\n }\n\n closeModal(): void {\n this.showModal$.next(false);\n this.clearForm$.next(true);\n }\n\n onFormioChange(formio): void {\n if (formio.data != null) {\n this.submission$.next(formio.data);\n this.formValid$.next(formio.isValid);\n }\n }\n\n public addObject(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.submission$, this.formValid$])\n .pipe(\n take(1),\n filter(([objectManagementId, submission, formValid]) => formValid),\n switchMap(([objectManagementId, submission]) =>\n this.objectService\n .createObject(\n {objectManagementId},\n {...this.objectService.removeEmptyStringValuesFromSubmission(submission)}\n )\n .pipe(\n take(1),\n catchError((error: any) => {\n this.handleCreateObjectError(error);\n return throwError(error);\n })\n )\n ),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe({\n next: () => {\n this.closeModal();\n this.refreshObjectList();\n this.clearForm$.next(true);\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectCreated'),\n type: 'success',\n });\n },\n });\n }\n\n redirectToDetails(record): void {\n const objectId = record.objectUrl ? record.objectUrl.split('/').pop() : record.objectId;\n this.objectManagementId$.pipe(take(1)).subscribe(configurationId => {\n this.router.navigate([`/objects/${configurationId}/${objectId}`]);\n });\n }\n\n search(searchFieldValues: SearchFieldValues): void {\n this.searchFieldValues$.next(searchFieldValues || {});\n }\n\n private refreshObjectList(): void {\n this.refreshObjectList$.next(null);\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private setDefaultFields() {\n const keys: Array<string> = ['recordIndex', 'objectUrl'];\n return keys.map(key => ({\n label: `${this.translateService.instant(`object.labels.${key}`)}`,\n key,\n sortable: false,\n type: 'string',\n }));\n }\n\n private handleRetrievingFormError(error: any) {\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectRetrievingFormError'),\n type: 'error',\n });\n return throwError(error);\n }\n\n private handleCreateObjectError(error: any) {\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectCreationError'),\n type: 'error',\n });\n return throwError(error);\n }\n\n private mapSearchValuesToFilters(\n values: SearchFieldValues\n ): Array<SearchFilter | SearchFilterRange> {\n const filters: Array<SearchFilter | SearchFilterRange> = [];\n\n Object.keys(values).forEach(valueKey => {\n const searchValue = values[valueKey] as any;\n if (searchValue.start) {\n filters.push({key: valueKey, rangeFrom: searchValue.start, rangeTo: searchValue.end});\n } else if (Array.isArray(searchValue)) {\n filters.push({key: valueKey, values: searchValue});\n } else {\n // @ts-ignore\n filters.push({key: valueKey, values: [searchValue]});\n }\n });\n\n return filters;\n }\n}\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<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","/*\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\nexport enum TabEnum {\n GENERAL = 'general',\n}\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectStateService {\n private readonly _showModal$ = new Subject();\n private readonly _hideModal$ = new Subject();\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _modalType$ = new BehaviorSubject<any>('add');\n\n constructor() {}\n\n get showModal$(): Observable<any> {\n return this._showModal$.asObservable();\n }\n\n get hideModal$(): Observable<any> {\n return this._hideModal$.asObservable();\n }\n\n get refresh$(): Observable<any> {\n return this._refresh$.asObservable();\n }\n\n get modalType$(): Observable<any> {\n return this._modalType$.asObservable();\n }\n\n showModal(): void {\n this._showModal$.next(null);\n }\n\n hideModal(): void {\n this._hideModal$.next(null);\n }\n\n refresh(): void {\n this._refresh$.next(null);\n }\n\n setModalType(type: any): void {\n this._modalType$.next(type);\n }\n}\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {TabEnum} from './tab.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabService {\n private _currentTab$ = new BehaviorSubject<TabEnum>(TabEnum.GENERAL);\n\n public get currentTab$(): Observable<TabEnum> {\n return this._currentTab$.asObservable();\n }\n\n public set currentTab(tab: TabEnum) {\n this._currentTab$.next(tab);\n }\n}\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 */\nimport {Component, OnDestroy} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {BreadcrumbService} from '@valtimo/components';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {ObjectManagementService} from '@valtimo/object-management';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subject, throwError} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {FormType} from '../../../../models/object.model';\nimport {ObjectService} from '../../../../services/object.service';\n\n@Component({\n standalone: false,\n selector: 'valtimo-object-detail',\n templateUrl: './object-detail.component.html',\n styleUrls: ['./object-detail.component.scss'],\n})\nexport class ObjectDetailComponent implements OnDestroy {\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly submission$ = new BehaviorSubject<any>({});\n readonly formValid$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly showDeleteModal$ = new Subject<boolean>();\n readonly deleteObjectUrl$ = new BehaviorSubject<string>('');\n\n private readonly refreshObject$ = new BehaviorSubject<null>(null);\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId),\n tap(objectManagementId => {\n if (!this._settingBreadcrumb && objectManagementId) {\n this._settingBreadcrumb = true;\n this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {\n if (objectType.id && objectType.title) {\n this.setBreadcrumb(objectType.id, objectType.title);\n }\n });\n }\n })\n );\n readonly objectId$: Observable<string> = this.route.params.pipe(map(params => params.objectId));\n\n readonly formioFormSummary$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.objectId$,\n this.refreshObject$,\n ]).pipe(\n switchMap(([objectManagementId, objectId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({objectManagementId, objectId, formType: FormType.SUMMARY})\n .pipe(catchError(() => this.handleRetrievingFormError()))\n ),\n map(res => res?.formDefinition),\n tap(() => this.loading$.next(false))\n );\n\n readonly formioFormEdit$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.objectId$,\n this.refreshObject$,\n ]).pipe(\n switchMap(([objectManagementId, objectId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({\n objectManagementId,\n objectId,\n formType: FormType.EDITFORM,\n })\n .pipe(\n catchError(() => {\n this.disableInput();\n return this.handleRetrievingFormError();\n })\n )\n ),\n map(res => res?.formDefinition),\n tap(() => this.loading$.next(false))\n );\n\n private _settingBreadcrumb = false;\n\n constructor(\n private readonly breadcrumbService: BreadcrumbService,\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly objectManagementService: ObjectManagementService,\n private readonly objectService: ObjectService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translate: TranslateService\n ) {}\n\n public ngOnDestroy(): void {\n this.breadcrumbService.clearSecondBreadcrumb();\n }\n\n saveObject(): void {\n this.disableInput();\n\n this.updateObject();\n }\n\n deleteObject(): void {\n this.showDeleteModal$.next(true);\n }\n\n deleteObjectConfirmation(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.objectId$])\n .pipe(take(1))\n .subscribe(([objectManagementId, objectId]) => {\n this.objectService\n .deleteObject({objectManagementId, objectId})\n .pipe(\n take(1),\n catchError((error: any) => this.handleDeleteObjectError(error)),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe(() => {\n this.closeModal();\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectDeleted'),\n type: 'success',\n });\n this.router.navigate([`/objects/${objectManagementId}`]);\n });\n });\n }\n\n openModal(): void {\n this.showModal$.next(true);\n this.enableInput();\n }\n\n onFormioChange(formio): void {\n if (formio.data != null) {\n this.submission$.next(formio.data);\n this.formValid$.next(formio.isValid);\n }\n }\n\n closeModal(): void {\n this.showModal$.next(false);\n }\n\n private updateObject(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.objectId$, this.submission$, this.formValid$])\n .pipe(take(1))\n .subscribe(([objectManagementId, objectId, submission, formValid]) => {\n if (formValid) {\n submission = this.objectService.removeEmptyStringValuesFromSubmission(submission);\n this.objectService\n .updateObject({objectManagementId, objectId}, {...submission})\n .pipe(\n take(1),\n catchError((error: any) => this.handleUpdateObjectError(error)),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe(() => {\n this.closeModal();\n this.refreshObject();\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectUpdated'),\n type: 'success',\n });\n });\n }\n });\n }\n\n private refreshObject(): void {\n this.refreshObject$.next(null);\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private handleRetrievingFormError() {\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectRetrievingFormError'),\n type: 'error',\n });\n this.loading$.next(false);\n return of(null);\n }\n\n private handleUpdateObjectError(error: any) {\n this.closeModal();\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectUpdateError'),\n type: 'error',\n });\n return throwError(error);\n }\n\n private handleDeleteObjectError(error: any) {\n this.closeModal();\n this.globalNotificationService.showToast({\n title: this.translate.instant('object.messages.objectDeleteError'),\n type: 'error',\n });\n return throwError(error);\n }\n\n private setBreadcrumb(objectTypeId: string, title: string): void {\n this.breadcrumbService.setSecondBreadcrumb({\n route: [`/objects/${objectTypeId}`],\n content: title,\n href: `/objects/${objectTypeId}`,\n });\n }\n}\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<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","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {map, Observable, Subscription} from 'rxjs';\nimport {ConfigService} from '@valtimo/shared';\nimport {ObjectStateService} from '../../services/object-state.service';\nimport {ObjectService} from '../../services/object.service';\nimport {TabEnum} from '../../services/tab.enum';\nimport {TabService} from '../../services/tab.service';\n\n@Component({\n standalone: false,\n selector: 'valtimo-object-detail-container',\n templateUrl: './object-detail-container.component.html',\n styleUrls: ['./object-detail-container.component.scss'],\n})\nexport class ObjectDetailContainerComponent implements OnInit, OnDestroy {\n public currentTab: TabEnum;\n public caseListColumn!: boolean;\n\n private tabSubscription: Subscription;\n\n readonly TabEnum = TabEnum;\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId)\n );\n\n constructor(\n private readonly objectState: ObjectStateService,\n private readonly objectService: ObjectService,\n private readonly route: ActivatedRoute,\n private readonly configService: ConfigService,\n private readonly tabService: TabService\n ) {\n this.caseListColumn = this.configService.config.featureToggles?.caseListColumn ?? true;\n }\n\n ngOnInit(): void {\n this.openCurrentTabSubscription();\n }\n\n displayBodyComponent(tab: TabEnum): void {\n this.tabService.currentTab = tab;\n }\n\n openCurrentTabSubscription(): void {\n this.tabSubscription = this.tabService.currentTab$.subscribe(\n value => (this.currentTab = value)\n );\n }\n\n ngOnDestroy(): void {\n this.tabService.currentTab = TabEnum.GENERAL;\n this.tabSubscription?.unsubscribe();\n }\n}\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\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","/*\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\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_USER} from '@valtimo/shared';\nimport {ObjectListComponent} from './components/object-list/object-list.component';\nimport {ObjectDetailContainerComponent} from './components/object-detail-container/object-detail-container.component';\n\nconst routes: Routes = [\n {\n path: 'objects/:objectManagementId',\n canActivate: [AuthGuardService],\n component: ObjectListComponent,\n data: {title: 'Objects', roles: [ROLE_USER], customPageTitle: true},\n },\n {\n path: 'objects/:objectManagementId/:objectId',\n canActivate: [AuthGuardService],\n component: ObjectDetailContainerComponent,\n data: {title: 'object.header', roles: [ROLE_USER]},\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class ObjectRoutingModule {}\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\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {ConfigService, MenuItem} from '@valtimo/shared';\n\n@Injectable({providedIn: 'root'})\nexport class ObjectMenuService {\n constructor(\n private readonly http: HttpClient,\n private readonly configService: ConfigService\n ) {}\n\n public appendObjectMenuItems = (menuItems: MenuItem[]): Observable<MenuItem[]> => {\n const apiBaseUrl = this.configService.config.valtimoApi.endpointUri;\n\n return this.getObjects(apiBaseUrl).pipe(\n map(objects => {\n const visibleObjects = objects.filter(obj => obj?.showInDataMenu !== false);\n\n const objectItems: MenuItem[] = visibleObjects.map((obj, index) => ({\n link: ['/objects/' + obj.id],\n title: obj.title,\n iconClass: 'icon mdi mdi-dot-circle',\n sequence: index,\n show: true,\n }));\n\n const index = menuItems.findIndex(item => item.title === 'Objects');\n\n if (index >= 0) {\n menuItems[index].children = objectItems;\n }\n\n return menuItems;\n })\n );\n };\n\n private getObjects(apiBaseUrl: string): Observable<any[]> {\n const url = `${apiBaseUrl}v1/object/management/configuration`;\n return this.http.get<any[]>(url);\n }\n}\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\nexport * from './object-menu.service';\nexport * from './object.service';\nexport * from './object-column.service';\nexport * from './object-state.service';\nexport * from './tab.service';\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\nimport {NgModule} from '@angular/core';\nimport {ObjectRoutingModule} from './object-routing.module';\nimport {ObjectListComponent} from './components/object-list/object-list.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {AsyncPipe, CommonModule} from '@angular/common';\nimport {\n CarbonListModule,\n ConfirmationModalModule,\n FormIoModule,\n MenuService,\n SearchFieldsModule,\n SpinnerModule,\n TooltipIconModule,\n ValtimoCdsModalDirective,\n WidgetModule,\n} from '@valtimo/components';\nimport {ObjectDetailContainerComponent} from './components/object-detail-container/object-detail-container.component';\nimport {ObjectDetailComponent} from './components/object-detail-container/tabs/object-detail/object-detail.component';\nimport {\n ButtonModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {ConfigService} from '@valtimo/shared';\nimport {ObjectMenuService} from './services';\n\n@NgModule({\n declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],\n imports: [\n CommonModule,\n ObjectRoutingModule,\n TranslateModule,\n AsyncPipe,\n WidgetModule,\n ButtonModule,\n IconModule,\n SpinnerModule,\n LoadingModule,\n FormIoModule,\n ModalModule,\n ReactiveFormsModule,\n InputModule,\n TooltipIconModule,\n ConfirmationModalModule,\n SearchFieldsModule,\n ValtimoCdsModalDirective,\n CarbonListModule,\n ],\n exports: [],\n})\nexport class ObjectModule {\n constructor(\n private readonly menuService: MenuService,\n private readonly configService: ConfigService,\n private readonly objectMenuService: ObjectMenuService\n ) {\n const enabled = this.configService.config?.featureToggles?.enableObjectManagement;\n\n if (!enabled) return;\n\n this.menuService.registerAppendMenuItemsFunction(this.objectMenuService.appendObjectMenuItems);\n }\n}\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\n/*\n * Public API Surface of object\n */\n\nexport * from './lib/services/object.service';\nexport * from './lib/object.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i2.ObjectColumnService","i4.ObjectService","i5","i9","i6","i7","i8","i1.ObjectStateService","i2.ObjectService","i3","i4","i5.TabService","i8.ObjectDetailComponent","map","i3.ObjectMenuService"],"mappings":"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"}
|