@valtimo/object 10.5.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.
Files changed (32) hide show
  1. package/README.md +31 -0
  2. package/esm2020/lib/components/object-detail-container/object-detail-container.component.mjs +60 -0
  3. package/esm2020/lib/components/object-detail-container/tabs/object-detail/object-detail.component.mjs +154 -0
  4. package/esm2020/lib/components/object-list/object-list.component.mjs +246 -0
  5. package/esm2020/lib/models/object.model.mjs +27 -0
  6. package/esm2020/lib/object-routing.module.mjs +52 -0
  7. package/esm2020/lib/object.module.mjs +91 -0
  8. package/esm2020/lib/services/object-column.service.mjs +50 -0
  9. package/esm2020/lib/services/object-state.service.mjs +59 -0
  10. package/esm2020/lib/services/object.service.mjs +55 -0
  11. package/esm2020/lib/services/tab.enum.mjs +20 -0
  12. package/esm2020/lib/services/tab.service.mjs +39 -0
  13. package/esm2020/public-api.mjs +21 -0
  14. package/esm2020/valtimo-object.mjs +5 -0
  15. package/fesm2015/valtimo-object.mjs +808 -0
  16. package/fesm2015/valtimo-object.mjs.map +1 -0
  17. package/fesm2020/valtimo-object.mjs +819 -0
  18. package/fesm2020/valtimo-object.mjs.map +1 -0
  19. package/index.d.ts +5 -0
  20. package/lib/components/object-detail-container/object-detail-container.component.d.ts +28 -0
  21. package/lib/components/object-detail-container/tabs/object-detail/object-detail.component.d.ts +43 -0
  22. package/lib/components/object-list/object-list.component.d.ts +57 -0
  23. package/lib/models/object.model.d.ts +20 -0
  24. package/lib/object-routing.module.d.ts +8 -0
  25. package/lib/object.module.d.ts +16 -0
  26. package/lib/services/object-column.service.d.ts +14 -0
  27. package/lib/services/object-state.service.d.ts +19 -0
  28. package/lib/services/object.service.d.ts +30 -0
  29. package/lib/services/tab.enum.d.ts +3 -0
  30. package/lib/services/tab.service.d.ts +10 -0
  31. package/package.json +31 -0
  32. package/public-api.d.ts +2 -0
@@ -0,0 +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/object.module.ts","../../../../projects/valtimo/object/src/public-api.ts","../../../../projects/valtimo/object/src/valtimo-object.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/config';\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(private http: HttpClient, configService: ConfigService) {\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-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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","import {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {map, Observable} from 'rxjs';\nimport {ObjectManagementService, SearchListColumn, SearchColumn} 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-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n map,\n Observable,\n of,\n startWith,\n throwError,\n} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ObjectService} from '../../services/object.service';\nimport {ListField, Pagination} from '@valtimo/components';\nimport {ColumnType, FormType} from '../../models/object.model';\nimport {ToastrService} from 'ngx-toastr';\nimport {ObjectColumnService} from '../../services/object-column.service';\nimport {ObjectManagementService, SearchColumn} from '@valtimo/object-management';\nimport {SearchField, SearchFieldValues, SearchFilter, SearchFilterRange} from '@valtimo/config';\n\n@Component({\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 );\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 maxPaginationItemSize: 5,\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 if (columnType === ColumnType.CUSTOM) {\n return this.objectService.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 } else {\n return this.objectService.getObjectsByObjectManagementId(objectManagementId, {\n page: currentPage.page,\n size: currentPage.size,\n });\n }\n }),\n tap(instanceRes => {\n this.pageSizes$.pipe(take(1)).subscribe(sizes => {\n // @ts-ignore\n this.pageSizes$.next({...sizes, collectionSize: instanceRes.totalElements});\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 };\n }),\n ];\n } else {\n this.columnType$.next(ColumnType.DEFAULT);\n return this.setDefaultFields();\n }\n })\n );\n\n constructor(\n private readonly objectService: ObjectService,\n private readonly objectColumnService: ObjectColumnService,\n private readonly objectManagementService: ObjectManagementService,\n private readonly translateService: TranslateService,\n private router: Router,\n private route: ActivatedRoute,\n private toastr: ToastrService,\n private translate: 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 addObject(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.submission$, this.formValid$])\n .pipe(take(1))\n .subscribe(([objectManagementId, submission, formValid]) => {\n if (formValid) {\n submission = this.objectService.removeEmptyStringValuesFromSubmission(submission);\n this.objectService\n .createObject({objectManagementId}, {...submission})\n .pipe(\n take(1),\n catchError((error: any) => this.handleCreateObjectError(error)),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe(() => {\n this.closeModal();\n this.refreshObjectList();\n this.clearForm$.next(true);\n this.toastr.success(this.translate.instant('object.messages.objectCreated'));\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: true,\n viewType: 'string',\n }));\n }\n\n private handleRetrievingFormError(error: any) {\n this.toastr.error(this.translate.instant('object.messages.objectRetrievingFormError'));\n return throwError(error);\n }\n\n private handleCreateObjectError(error: any) {\n this.closeModal();\n this.toastr.error(this.translate.instant('object.messages.objectCreationError'));\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: [{value: searchValue}]});\n }\n });\n\n return filters;\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<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 pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-0\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\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 <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n ibmButton=\"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\" ibmIcon=\"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 [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [viewMode]=\"true\"\n [header]=\"true\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ 'object.title' | translate }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n obs.objectConfiguration?.length || 0\n }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #createNewModal>\n <ibm-modal\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 >\n <ibm-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 ibmModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </ibm-modal-header>\n <section ibmModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </ibm-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 <ibm-modal-footer>\n <ng-container>\n <button\n ibmButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n ibmButton=\"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 </ibm-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><ibm-loading></ibm-loading></div>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum TabEnum {\n GENERAL = 'general',\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subject, throwError} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {ObjectService} from '../../../../services/object.service';\nimport {ObjectStateService} from '../../../../services/object-state.service';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {FormType} from '../../../../models/object.model';\nimport {ToastrService} from 'ngx-toastr';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-object-detail',\n templateUrl: './object-detail.component.html',\n styleUrls: ['./object-detail.component.scss'],\n})\nexport class ObjectDetailComponent {\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 );\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(catchError(() => this.handleRetrievingFormError()))\n ),\n map(res => res?.formDefinition),\n tap(() => this.loading$.next(false))\n );\n\n constructor(\n private readonly objectService: ObjectService,\n private readonly objectState: ObjectStateService,\n private route: ActivatedRoute,\n private router: Router,\n private translate: TranslateService,\n private toastr: ToastrService\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.toastr.success(this.translate.instant('object.messages.objectDeleted'));\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.toastr.success(this.translate.instant('object.messages.objectUpdated'));\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.toastr.error(this.translate.instant('object.messages.objectRetrievingFormError'));\n this.loading$.next(false);\n return of(null);\n }\n\n private handleUpdateObjectError(error: any) {\n this.closeModal();\n this.toastr.error(this.translate.instant('object.messages.objectUpdateError'));\n return throwError(error);\n }\n\n private handleDeleteObjectError(error: any) {\n this.closeModal();\n this.toastr.error(this.translate.instant('object.messages.objectDeleteError'));\n return throwError(error);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | 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 (click)=\"openModal()\" ibmButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" ibmIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" ibmButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" ibmIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io [form]=\"obs.formioFormSummary\" [readOnly]=\"true\"></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <ibm-modal\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 >\n <ibm-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 ibmModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </ibm-modal-header>\n <section ibmModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </ibm-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 <ibm-modal-footer>\n <ng-container>\n <button\n ibmButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n ibmButton=\"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 </ibm-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><ibm-loading></ibm-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-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {map, Observable, Subscription} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\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 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;\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-2022 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-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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/config';\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]},\n },\n {\n path: 'objects/:objectManagementId/:objectId',\n canActivate: [AuthGuardService],\n component: ObjectDetailContainerComponent,\n data: {title: 'Object details', 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-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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 ConfirmationModalModule,\n ListModule,\n SearchFieldsModule,\n SpinnerModule,\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 {TooltipIconModule} from '@valtimo/user-interface';\nimport {FormIoModule} from '@valtimo/components';\n\n@NgModule({\n declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],\n imports: [\n CommonModule,\n ObjectRoutingModule,\n TranslateModule,\n AsyncPipe,\n WidgetModule,\n ListModule,\n ButtonModule,\n IconModule,\n SpinnerModule,\n LoadingModule,\n FormIoModule,\n ModalModule,\n ReactiveFormsModule,\n InputModule,\n TooltipIconModule,\n ConfirmationModalModule,\n SearchFieldsModule,\n ],\n exports: [],\n})\nexport class ObjectModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\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","i1.ObjectService","i2.ObjectColumnService","i3","i5","i7","i2.ObjectStateService","i6","i1.ObjectStateService","i2.ObjectService","i4","i5.TabService","i8.ObjectDetailComponent","i9"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@valtimo/object" />
5
+ export * from './public-api';
@@ -0,0 +1,28 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { ActivatedRoute } from '@angular/router';
3
+ import { Observable } from 'rxjs';
4
+ import { ConfigService } from '@valtimo/config';
5
+ import { ObjectStateService } from '../../services/object-state.service';
6
+ import { ObjectService } from '../../services/object.service';
7
+ import { TabEnum } from '../../services/tab.enum';
8
+ import { TabService } from '../../services/tab.service';
9
+ import * as i0 from "@angular/core";
10
+ export declare class ObjectDetailContainerComponent implements OnInit, OnDestroy {
11
+ private readonly objectState;
12
+ private readonly objectService;
13
+ private readonly route;
14
+ private readonly configService;
15
+ private readonly tabService;
16
+ currentTab: TabEnum;
17
+ caseListColumn: boolean;
18
+ private tabSubscription;
19
+ readonly TabEnum: typeof TabEnum;
20
+ readonly objectManagementId$: Observable<string>;
21
+ constructor(objectState: ObjectStateService, objectService: ObjectService, route: ActivatedRoute, configService: ConfigService, tabService: TabService);
22
+ ngOnInit(): void;
23
+ displayBodyComponent(tab: TabEnum): void;
24
+ openCurrentTabSubscription(): void;
25
+ ngOnDestroy(): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectDetailContainerComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<ObjectDetailContainerComponent, "valtimo-object-detail-container", never, {}, {}, never, never, false>;
28
+ }
@@ -0,0 +1,43 @@
1
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
2
+ import { ObjectService } from '../../../../services/object.service';
3
+ import { ObjectStateService } from '../../../../services/object-state.service';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
+ import { ToastrService } from 'ngx-toastr';
6
+ import { TranslateService } from '@ngx-translate/core';
7
+ import * as i0 from "@angular/core";
8
+ export declare class ObjectDetailComponent {
9
+ private readonly objectService;
10
+ private readonly objectState;
11
+ private route;
12
+ private router;
13
+ private translate;
14
+ private toastr;
15
+ readonly loading$: BehaviorSubject<boolean>;
16
+ readonly submission$: BehaviorSubject<any>;
17
+ readonly formValid$: BehaviorSubject<boolean>;
18
+ readonly showModal$: BehaviorSubject<boolean>;
19
+ readonly disableInput$: BehaviorSubject<boolean>;
20
+ readonly showDeleteModal$: Subject<boolean>;
21
+ readonly deleteObjectUrl$: BehaviorSubject<string>;
22
+ private readonly refreshObject$;
23
+ readonly objectManagementId$: Observable<string>;
24
+ readonly objectId$: Observable<string>;
25
+ readonly formioFormSummary$: Observable<any>;
26
+ readonly formioFormEdit$: Observable<any>;
27
+ constructor(objectService: ObjectService, objectState: ObjectStateService, route: ActivatedRoute, router: Router, translate: TranslateService, toastr: ToastrService);
28
+ saveObject(): void;
29
+ deleteObject(): void;
30
+ deleteObjectConfirmation(): void;
31
+ openModal(): void;
32
+ onFormioChange(formio: any): void;
33
+ closeModal(): void;
34
+ private updateObject;
35
+ private refreshObject;
36
+ private disableInput;
37
+ private enableInput;
38
+ private handleRetrievingFormError;
39
+ private handleUpdateObjectError;
40
+ private handleDeleteObjectError;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectDetailComponent, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<ObjectDetailComponent, "valtimo-object-detail", never, {}, {}, never, never, false>;
43
+ }
@@ -0,0 +1,57 @@
1
+ import { BehaviorSubject, Observable } from 'rxjs';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import { ActivatedRoute, Router } from '@angular/router';
4
+ import { ObjectService } from '../../services/object.service';
5
+ import { ListField, Pagination } from '@valtimo/components';
6
+ import { ColumnType } from '../../models/object.model';
7
+ import { ToastrService } from 'ngx-toastr';
8
+ import { ObjectColumnService } from '../../services/object-column.service';
9
+ import { ObjectManagementService } from '@valtimo/object-management';
10
+ import { SearchField, SearchFieldValues } from '@valtimo/config';
11
+ import * as i0 from "@angular/core";
12
+ export declare class ObjectListComponent {
13
+ private readonly objectService;
14
+ private readonly objectColumnService;
15
+ private readonly objectManagementService;
16
+ private readonly translateService;
17
+ private router;
18
+ private route;
19
+ private toastr;
20
+ private translate;
21
+ readonly loading$: BehaviorSubject<boolean>;
22
+ readonly submission$: BehaviorSubject<any>;
23
+ readonly formValid$: BehaviorSubject<boolean>;
24
+ readonly showModal$: BehaviorSubject<boolean>;
25
+ readonly disableInput$: BehaviorSubject<boolean>;
26
+ readonly clearForm$: BehaviorSubject<boolean>;
27
+ readonly columnType$: BehaviorSubject<ColumnType>;
28
+ readonly objectManagementId$: Observable<string>;
29
+ private readonly refreshObjectList$;
30
+ readonly currentPageAndSize$: BehaviorSubject<Partial<Pagination>>;
31
+ readonly pageSizes$: BehaviorSubject<Partial<Pagination>>;
32
+ readonly pagination$: Observable<Pagination>;
33
+ paginationClicked(newPageNumber: any): void;
34
+ paginationSet(newPageSize: any): void;
35
+ private readonly searchFieldValues$;
36
+ readonly objectSearchFields$: Observable<Array<SearchField> | null>;
37
+ readonly objectConfiguration$: Observable<Array<any>>;
38
+ readonly formDefinition$: Observable<any>;
39
+ private readonly columns$;
40
+ readonly fields$: Observable<Array<ListField>>;
41
+ constructor(objectService: ObjectService, objectColumnService: ObjectColumnService, objectManagementService: ObjectManagementService, translateService: TranslateService, router: Router, route: ActivatedRoute, toastr: ToastrService, translate: TranslateService);
42
+ openModal(): void;
43
+ closeModal(): void;
44
+ onFormioChange(formio: any): void;
45
+ addObject(): void;
46
+ redirectToDetails(record: any): void;
47
+ search(searchFieldValues: SearchFieldValues): void;
48
+ private refreshObjectList;
49
+ private disableInput;
50
+ private enableInput;
51
+ private setDefaultFields;
52
+ private handleRetrievingFormError;
53
+ private handleCreateObjectError;
54
+ private mapSearchValuesToFilters;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectListComponent, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<ObjectListComponent, "valtimo-object-list", never, {}, {}, never, never, false>;
57
+ }
@@ -0,0 +1,20 @@
1
+ interface ObjectConfiguration {
2
+ content: ObjectConfigurationItem[];
3
+ }
4
+ interface ObjectConfigurationItem {
5
+ id: string;
6
+ items: Item[];
7
+ }
8
+ interface Item {
9
+ key: string;
10
+ value: string;
11
+ }
12
+ declare enum FormType {
13
+ SUMMARY = "SUMMARY",
14
+ EDITFORM = "EDITFORM"
15
+ }
16
+ declare enum ColumnType {
17
+ DEFAULT = "DEFAULT",
18
+ CUSTOM = "CUSTOM"
19
+ }
20
+ export { ObjectConfiguration, ObjectConfigurationItem, Item, FormType, ColumnType };
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "@angular/router";
4
+ export declare class ObjectRoutingModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectRoutingModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ObjectRoutingModule, never, [typeof i1.CommonModule, typeof i2.RouterModule], [typeof i2.RouterModule]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<ObjectRoutingModule>;
8
+ }
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./components/object-list/object-list.component";
3
+ import * as i2 from "./components/object-detail-container/object-detail-container.component";
4
+ import * as i3 from "./components/object-detail-container/tabs/object-detail/object-detail.component";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "./object-routing.module";
7
+ import * as i6 from "@ngx-translate/core";
8
+ import * as i7 from "@valtimo/components";
9
+ import * as i8 from "carbon-components-angular";
10
+ import * as i9 from "@angular/forms";
11
+ import * as i10 from "@valtimo/user-interface";
12
+ export declare class ObjectModule {
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectModule, never>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ObjectModule, [typeof i1.ObjectListComponent, typeof i2.ObjectDetailContainerComponent, typeof i3.ObjectDetailComponent], [typeof i4.CommonModule, typeof i5.ObjectRoutingModule, typeof i6.TranslateModule, typeof i4.AsyncPipe, typeof i7.WidgetModule, typeof i7.ListModule, typeof i8.ButtonModule, typeof i8.IconModule, typeof i7.SpinnerModule, typeof i8.LoadingModule, typeof i7.FormIoModule, typeof i8.ModalModule, typeof i9.ReactiveFormsModule, typeof i8.InputModule, typeof i10.TooltipIconModule, typeof i7.ConfirmationModalModule, typeof i7.SearchFieldsModule], never>;
15
+ static ɵinj: i0.ɵɵInjectorDeclaration<ObjectModule>;
16
+ }
@@ -0,0 +1,14 @@
1
+ import { ConfigService } from '@valtimo/config';
2
+ import { Observable } from 'rxjs';
3
+ import { ObjectManagementService, SearchColumn } from '@valtimo/object-management';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ObjectColumnService {
6
+ private readonly configService;
7
+ private readonly objectManagementService;
8
+ constructor(configService: ConfigService, objectManagementService: ObjectManagementService);
9
+ getObjectColumns(configurationId: string): Observable<Array<SearchColumn>>;
10
+ private mapObjectListColumnsToSearchColumns;
11
+ private getDisplayType;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectColumnService, never>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<ObjectColumnService>;
14
+ }
@@ -0,0 +1,19 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ObjectStateService {
4
+ private readonly _showModal$;
5
+ private readonly _hideModal$;
6
+ private readonly _refresh$;
7
+ private readonly _modalType$;
8
+ constructor();
9
+ get showModal$(): Observable<any>;
10
+ get hideModal$(): Observable<any>;
11
+ get refresh$(): Observable<any>;
12
+ get modalType$(): Observable<any>;
13
+ showModal(): void;
14
+ hideModal(): void;
15
+ refresh(): void;
16
+ setModalType(type: any): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectStateService, never>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<ObjectStateService>;
19
+ }
@@ -0,0 +1,30 @@
1
+ import { Observable } from 'rxjs';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { ConfigService } from '@valtimo/config';
4
+ import { ObjectConfiguration } from '../models/object.model';
5
+ import { FormDefinition } from '@valtimo/form-management';
6
+ import * as i0 from "@angular/core";
7
+ export declare class ObjectService {
8
+ private http;
9
+ private readonly valtimoEndpointUri;
10
+ constructor(http: HttpClient, configService: ConfigService);
11
+ getObjectsByObjectManagementId(objectManagementId: string, params?: any): Observable<ObjectConfiguration>;
12
+ postObjectsByObjectManagementId(objectManagementId: string, params?: any, payload?: any): Observable<ObjectConfiguration>;
13
+ createObject(params: {
14
+ objectManagementId: string;
15
+ }, payload: object): Observable<any>;
16
+ updateObject(params: {
17
+ objectManagementId: string;
18
+ objectId: string;
19
+ }, payload: object): Observable<any>;
20
+ deleteObject(params: {
21
+ objectManagementId: string;
22
+ objectId: string;
23
+ }): Observable<any>;
24
+ getPrefilledObjectFromObjectUrl(params: any): Observable<FormDefinition>;
25
+ removeEmptyStringValuesFromSubmission(submission: any): {
26
+ [k: string]: unknown;
27
+ };
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectService, never>;
29
+ static ɵprov: i0.ɵɵInjectableDeclaration<ObjectService>;
30
+ }
@@ -0,0 +1,3 @@
1
+ export declare enum TabEnum {
2
+ GENERAL = "general"
3
+ }
@@ -0,0 +1,10 @@
1
+ import { Observable } from 'rxjs';
2
+ import { TabEnum } from './tab.enum';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TabService {
5
+ private _currentTab$;
6
+ get currentTab$(): Observable<TabEnum>;
7
+ set currentTab(tab: TabEnum);
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<TabService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<TabService>;
10
+ }
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@valtimo/object",
3
+ "version": "10.5.0",
4
+ "peerDependencies": {
5
+ "@angular/common": "^14.2.5",
6
+ "@angular/core": "^14.2.5"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "module": "fesm2015/valtimo-object.mjs",
12
+ "es2020": "fesm2020/valtimo-object.mjs",
13
+ "esm2020": "esm2020/valtimo-object.mjs",
14
+ "fesm2020": "fesm2020/valtimo-object.mjs",
15
+ "fesm2015": "fesm2015/valtimo-object.mjs",
16
+ "typings": "index.d.ts",
17
+ "exports": {
18
+ "./package.json": {
19
+ "default": "./package.json"
20
+ },
21
+ ".": {
22
+ "types": "./index.d.ts",
23
+ "esm2020": "./esm2020/valtimo-object.mjs",
24
+ "es2020": "./fesm2020/valtimo-object.mjs",
25
+ "es2015": "./fesm2015/valtimo-object.mjs",
26
+ "node": "./fesm2015/valtimo-object.mjs",
27
+ "default": "./fesm2020/valtimo-object.mjs"
28
+ }
29
+ },
30
+ "sideEffects": false
31
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/services/object.service';
2
+ export * from './lib/object.module';