@mediusinc/mng-commons-audit 3.0.0-rc.0 → 3.0.0-rc.1

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 (44) hide show
  1. package/README.md +32 -4
  2. package/assets/i18n/en.json +23 -21
  3. package/assets/i18n/sl.json +25 -14
  4. package/esm2022/lib/api/models/guiPropertyModel.mjs +6 -1
  5. package/esm2022/lib/api/models/index.mjs +1 -4
  6. package/esm2022/lib/api/services/audit-revisions-api.service.mjs +38 -21
  7. package/esm2022/lib/api/services/audit.service.mjs +45 -0
  8. package/esm2022/lib/audit.routes.mjs +33 -10
  9. package/esm2022/lib/components/entity-changes-field/entity-changes-field.component.mjs +49 -35
  10. package/esm2022/lib/components/pages/audit/audit-page.component.mjs +12 -0
  11. package/esm2022/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.mjs +90 -32
  12. package/esm2022/lib/components/pages/revisions/audit-revisions-page.component.mjs +41 -45
  13. package/esm2022/lib/models/config.model.mjs +2 -0
  14. package/esm2022/lib/models/new-filter-match-type.model.mjs +19 -0
  15. package/esm2022/lib/models/revEntityWithId.model.mjs +9 -0
  16. package/esm2022/lib/service/module-config.token.mjs +3 -0
  17. package/esm2022/lib/utils/audit.util.mjs +300 -0
  18. package/fesm2022/mediusinc-mng-commons-audit.mjs +615 -306
  19. package/fesm2022/mediusinc-mng-commons-audit.mjs.map +1 -1
  20. package/lib/api/models/guiPropertyModel.d.ts +1 -0
  21. package/lib/api/models/index.d.ts +0 -3
  22. package/lib/api/services/audit-revisions-api.service.d.ts +16 -10
  23. package/lib/api/services/audit.service.d.ts +20 -0
  24. package/lib/audit.routes.d.ts +3 -2
  25. package/lib/components/entity-changes-field/entity-changes-field.component.d.ts +9 -6
  26. package/lib/components/pages/audit/audit-page.component.d.ts +5 -0
  27. package/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.d.ts +21 -12
  28. package/lib/components/pages/revisions/audit-revisions-page.component.d.ts +8 -5
  29. package/lib/models/config.model.d.ts +4 -0
  30. package/lib/models/new-filter-match-type.model.d.ts +17 -0
  31. package/lib/models/revEntityWithId.model.d.ts +4 -0
  32. package/lib/service/module-config.token.d.ts +3 -0
  33. package/lib/utils/audit.util.d.ts +9 -0
  34. package/package.json +2 -3
  35. package/esm2022/lib/api/models/revEntityChangeDto.mjs +0 -52
  36. package/esm2022/lib/api/models/revEntityDto.mjs +0 -42
  37. package/esm2022/lib/api/models/revisionTypeEnumDto.mjs +0 -20
  38. package/esm2022/lib/api/services/audit-entity-revisions-api.service.mjs +0 -47
  39. package/esm2022/lib/components/pages/entity-revisions/entity-dropdown-page.component.mjs +0 -32
  40. package/lib/api/models/revEntityChangeDto.d.ts +0 -25
  41. package/lib/api/models/revEntityDto.d.ts +0 -20
  42. package/lib/api/models/revisionTypeEnumDto.d.ts +0 -5
  43. package/lib/api/services/audit-entity-revisions-api.service.d.ts +0 -14
  44. package/lib/components/pages/entity-revisions/entity-dropdown-page.component.d.ts +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-audit.mjs","sources":["../../src/lib/api/services/audit-entity-revisions-api.service.ts","../../src/lib/components/pages/entity-revisions/entity-dropdown-page.component.ts","../../src/lib/components/pages/entity-revisions/entity-dropdown-page.component.html","../../src/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.ts","../../src/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.html","../../src/lib/api/models/entityChange.ts","../../src/lib/api/models/guiEntityModel.ts","../../src/lib/api/models/guiPropertyModel.ts","../../src/lib/api/models/guiPropertyType.ts","../../src/lib/api/models/guiRelationModel.ts","../../src/lib/api/models/revEntityChangeDto.ts","../../src/lib/api/models/revEntityDto.ts","../../src/lib/api/models/revEntityWithChangesDto.ts","../../src/lib/api/models/revEntityWithStateDto.ts","../../src/lib/api/models/revisionType.ts","../../src/lib/api/models/revisionTypeEnumDto.ts","../../src/lib/api/services/audit-revisions-api.service.ts","../../src/lib/components/pages/revisions/audit-revisions-page.component.ts","../../src/lib/components/pages/revisions/audit-revisions-page.component.html","../../src/lib/audit.routes.ts","../../src/lib/models/entity-changes.model.ts","../../src/lib/components/entity-changes-field/entity-changes-field.component.ts","../../src/lib/components/entity-changes-field/entity-changes-field.component.html","../../src/mediusinc-mng-commons-audit.ts"],"sourcesContent":["import {HttpParams} from '@angular/common/http';\nimport {Injectable, inject} from '@angular/core';\n\nimport {Observable, map} from 'rxjs';\n\nimport {AMngGetAllApiService, ClassType, MediusQueryParam, MngConfigurationService} from '@mediusinc/mng-commons';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MngAuditEntityRevisionsApiService extends AMngGetAllApiService<unknown, any> {\n protected configService = inject(MngConfigurationService);\n\n constructor() {\n super({} as ClassType<any>, {} as ClassType<any>);\n }\n\n public getModels(): Observable<string[]> {\n const url = this.getUrl('/model');\n return this.http.get<string[]>(url);\n }\n\n public getAllRevisionsForEntity(revisionEntity: string, queryParamBody?: MediusQueryParam, params?: HttpParams, locale?: string): Observable<any> {\n const url = this.getUrl(revisionEntity, this.getGetAllPostPath());\n if (params && locale) {\n params = params.set('lang', locale);\n } else if (locale) {\n params = new HttpParams().set('lang', locale);\n }\n return this.http\n .post(url, queryParamBody ? this.serializeQueryParam(queryParamBody) : undefined, {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n params: params\n })\n .pipe(map(res => this.deserializeQueryResult(res, this.queryResultType)));\n }\n\n protected getServiceBasePath(): string | null {\n return 'revision/entity';\n }\n\n protected getBasePath(): string {\n return this.configService.getConfigValue('coreBasePath');\n }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {ActivatedRoute, Router, RouterOutlet} from '@angular/router';\n\nimport {MngDropdownComponent} from '@mediusinc/mng-commons';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-entity-dropdown-component',\n templateUrl: 'entity-dropdown-page.component.html',\n imports: [MngDropdownComponent, RouterOutlet, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntityDropdownPageComponent {\n public selectedRevisionEntity!: string;\n\n // public revisionEntitiesLookupProvider?: LookupDataProvider<string, MngAuditEntityRevisionsApiService>;\n public revisionEntitiesLookupProvider?: any;\n\n constructor(private router: Router, private route: ActivatedRoute) {\n // this.revisionEntitiesLookupProvider = new LookupDataProvider<string, MngAuditEntityRevisionsApiService>(\n // {} as ClassType<string>,\n // MngAuditEntityRevisionsApiService\n // ).withLookup((qp, service) => (service as MngAuditEntityRevisionsApiService).getModels());\n }\n\n public onRevisionEntityChange() {\n if (this.selectedRevisionEntity) {\n this.router.navigate([this.selectedRevisionEntity], {relativeTo: this.route});\n } else {\n this.router.navigate(['/audit/entity-revisions']);\n }\n }\n}\n","<div class=\"card\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n</div>\n<router-outlet></router-outlet>\n","import {Component} from '@angular/core';\n\nimport {map} from 'rxjs/operators';\n\nimport {\n AMngTableviewRouteComponent,\n ActionDataProviderUtil,\n ActionDescriptor,\n DynamicTableviewDataProvider,\n ITableviewDataProvider,\n MediusFilterMatchType,\n MediusQueryParamBuilder,\n MngTableviewComponent,\n TablePaginationModeEnum,\n TableviewDescriptor,\n TableviewDynamicDescriptor\n} from '@mediusinc/mng-commons';\n\nimport {MngAuditEntityRevisionsApiService} from '../../../api/services/audit-entity-revisions-api.service';\nimport {EntityDropdownPageComponent} from './entity-dropdown-page.component';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-entity-revisions-page',\n templateUrl: 'audit-entity-revisions-page.component.html',\n imports: [MngTableviewComponent]\n})\nexport class AuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent<unknown, MngAuditEntityRevisionsApiService> {\n constructor(private dropdownPage: EntityDropdownPageComponent, private mngAuditEntityRevisionsApiService: MngAuditEntityRevisionsApiService) {\n super();\n this.dropdownPage.selectedRevisionEntity = this.route.snapshot.params['entityClass'];\n }\n\n protected override createTableviewDataProvider(): ITableviewDataProvider<unknown, MngAuditEntityRevisionsApiService> {\n return new DynamicTableviewDataProvider().withGetAll(qp => this.mngAuditEntityRevisionsApiService.getAllRevisionsForEntity(this.dropdownPage.selectedRevisionEntity, qp));\n }\n\n protected override createTableviewDescriptor(): TableviewDescriptor<unknown> {\n const descriptor = new TableviewDynamicDescriptor('rev', 'rev', this.dropdownPage.selectedRevisionEntity);\n descriptor.table.withDefaultSort('rev').withColumnsExcluded(['revDate']).withPaginationMode(TablePaginationModeEnum.Pagination);\n return descriptor;\n }\n\n protected override createActionDescriptors(): Array<ActionDescriptor<unknown>> {\n return [\n this.createActionDescriptorForDetails()!\n .withFetchFunction(ctx => {\n const queryParamBuilder = ctx.parameters.queryParam ? MediusQueryParamBuilder.createFromExisting(ctx.parameters.queryParam) : MediusQueryParamBuilder.create();\n queryParamBuilder.withFilter('rev', ctx.parameters.itemId, ctx.parameters.itemId, MediusFilterMatchType.Equals);\n ctx.parameters.withQueryParam(queryParamBuilder.build());\n return ActionDataProviderUtil.runGetAllOrFail(ctx).pipe(map(res => (res.pageData ? res.pageData[0] : {})));\n })\n .withEditorTitle('entityRevisionDetails.title', {revEntity: this.dropdownPage.selectedRevisionEntity})\n ];\n }\n}\n","<mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview>\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {RevisionType} from './revisionType';\n\n@TypeName('EntityChange')\nexport class EntityChange {\n revType?: RevisionType;\n entityOldState?: {[key: string]: any};\n entityNewState?: {[key: string]: any};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revType',\n baseName: 'revType',\n type: 'RevisionType'\n },\n {\n name: 'entityOldState',\n baseName: 'entityOldState',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'entityNewState',\n baseName: 'entityNewState',\n type: '{ [key: string]: any; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return EntityChange.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(EntityChange);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {GuiPropertyModel} from './guiPropertyModel';\n\n@TypeName('GuiEntityModel')\nexport class GuiEntityModel {\n entityName?: string;\n properties?: Array<GuiPropertyModel>;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'entityName',\n baseName: 'entityName',\n type: 'string'\n },\n {\n name: 'properties',\n baseName: 'properties',\n type: 'Array<GuiPropertyModel>'\n }\n ];\n\n public static getAttributeTypeMap() {\n return GuiEntityModel.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(GuiEntityModel);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {GuiPropertyType} from './guiPropertyType';\nimport {GuiRelationModel} from './guiRelationModel';\n\n@TypeName('GuiPropertyModel')\nexport class GuiPropertyModel {\n propertyName?: string;\n resolvedPropertyName?: string;\n possibleEnumValues?: Array<string>;\n isId?: boolean;\n propertyType?: GuiPropertyType;\n relationModel?: GuiRelationModel;\n id?: boolean;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'propertyName',\n baseName: 'propertyName',\n type: 'string'\n },\n {\n name: 'resolvedPropertyName',\n baseName: 'resolvedPropertyName',\n type: 'string'\n },\n {\n name: 'possibleEnumValues',\n baseName: 'possibleEnumValues',\n type: 'Array<string>'\n },\n {\n name: 'isId',\n baseName: 'isId',\n type: 'boolean'\n },\n {\n name: 'propertyType',\n baseName: 'propertyType',\n type: 'GuiPropertyType'\n },\n {\n name: 'relationModel',\n baseName: 'relationModel',\n type: 'GuiRelationModel'\n },\n {\n name: 'id',\n baseName: 'id',\n type: 'boolean'\n }\n ];\n\n public static getAttributeTypeMap() {\n return GuiPropertyModel.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(GuiPropertyModel);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ObjectSerializer} from '@mediusinc/mng-commons';\n\nexport enum GuiPropertyType {\n LocalDate = 'LOCAL_DATE',\n OffsetDateTime = 'OFFSET_DATE_TIME',\n String = 'STRING',\n Number = 'NUMBER',\n Boolean = 'BOOLEAN',\n Enum = 'ENUM',\n Wildcard = 'WILDCARD'\n}\n\nObjectSerializer.get().registerEnum(GuiPropertyType, 'GuiPropertyType');\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\n@TypeName('GuiRelationModel')\nexport class GuiRelationModel {\n idPropertyName?: string;\n isAudited?: boolean;\n audited?: boolean;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'idPropertyName',\n baseName: 'idPropertyName',\n type: 'string'\n },\n {\n name: 'isAudited',\n baseName: 'isAudited',\n type: 'boolean'\n },\n {\n name: 'audited',\n baseName: 'audited',\n type: 'boolean'\n }\n ];\n\n public static getAttributeTypeMap() {\n return GuiRelationModel.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(GuiRelationModel);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {RevisionTypeEnumDto} from './revisionTypeEnumDto';\n\n@TypeName('RevEntityChangeDto')\nexport class RevEntityChangeDto {\n rev?: number;\n revDate?: Date;\n revUsername?: string;\n revType?: RevisionTypeEnumDto;\n state?: {[key: string]: any};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'rev',\n baseName: 'rev',\n type: 'number'\n },\n {\n name: 'revDate',\n baseName: 'revDate',\n type: 'Date'\n },\n {\n name: 'revUsername',\n baseName: 'revUsername',\n type: 'string'\n },\n {\n name: 'revType',\n baseName: 'revType',\n type: 'RevisionTypeEnumDto'\n },\n {\n name: 'state',\n baseName: 'state',\n type: '{ [key: string]: any; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return RevEntityChangeDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(RevEntityChangeDto);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\n@TypeName('RevEntityDto')\nexport class RevEntityDto {\n rev?: number;\n revDate?: Date;\n revUsername?: string;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'rev',\n baseName: 'rev',\n type: 'number'\n },\n {\n name: 'revDate',\n baseName: 'revDate',\n type: 'Date'\n },\n {\n name: 'revUsername',\n baseName: 'revUsername',\n type: 'string'\n }\n ];\n\n public static getAttributeTypeMap() {\n return RevEntityDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(RevEntityDto);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {EntityChange} from './entityChange';\n\n@TypeName('RevEntityWithChangesDto')\nexport class RevEntityWithChangesDto {\n revEntity?: {[key: string]: any};\n entityNameChangesMap?: {[key: string]: Array<EntityChange>};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revEntity',\n baseName: 'revEntity',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'entityNameChangesMap',\n baseName: 'entityNameChangesMap',\n type: '{ [key: string]: Array<EntityChange>; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return RevEntityWithChangesDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(RevEntityWithChangesDto);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {RevisionType} from './revisionType';\n\n@TypeName('RevEntityWithStateDto')\nexport class RevEntityWithStateDto {\n revEntity?: {[key: string]: any};\n revType?: RevisionType;\n entityClassName?: string;\n entityState?: {[key: string]: any};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revEntity',\n baseName: 'revEntity',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'revType',\n baseName: 'revType',\n type: 'RevisionType'\n },\n {\n name: 'entityClassName',\n baseName: 'entityClassName',\n type: 'string'\n },\n {\n name: 'entityState',\n baseName: 'entityState',\n type: '{ [key: string]: any; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return RevEntityWithStateDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(RevEntityWithStateDto);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ObjectSerializer} from '@mediusinc/mng-commons';\n\nexport enum RevisionType {\n Add = 'ADD',\n Mod = 'MOD',\n Del = 'DEL'\n}\n\nObjectSerializer.get().registerEnum(RevisionType, 'RevisionType');\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ObjectSerializer} from '@mediusinc/mng-commons';\n\nexport enum RevisionTypeEnumDto {\n Add = 'ADD',\n Mod = 'MOD',\n Del = 'DEL'\n}\n\nObjectSerializer.get().registerEnum(RevisionTypeEnumDto, 'RevisionTypeEnumDto');\n","import {HttpClient} from '@angular/common/http';\nimport {Injectable, inject} from '@angular/core';\n\nimport {Observable} from 'rxjs';\n\nimport {IdType, MngConfigurationService} from '@mediusinc/mng-commons';\n\nimport {GuiEntityModel, RevEntityWithChangesDto} from '../models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MngAuditRevisionsApiService {\n protected http = inject(HttpClient);\n protected configService = inject(MngConfigurationService);\n\n public getRevModel(): Observable<GuiEntityModel> {\n return this.http.get<GuiEntityModel>(`${this.configService.getConfigValue('coreBasePath')}/revision/rev-model`);\n }\n\n public getAuditModel(): Observable<GuiEntityModel[]> {\n return this.http.get<GuiEntityModel[]>(`${this.configService.getConfigValue('coreBasePath')}/revision/audit-model`);\n }\n\n public getRevisionList(): Observable<any> {\n return this.http.get(`${this.configService.getConfigValue('coreBasePath')}/revision/list?firstResult=0&maxResults=20`);\n }\n\n public getRevisionCount(): Observable<any> {\n return this.http.get(`${this.configService.getConfigValue('coreBasePath')}/revision/count`);\n }\n\n public getAllChangesForRevision(revId: IdType): Observable<RevEntityWithChangesDto> {\n return this.http.get<RevEntityWithChangesDto>(`${this.configService.getConfigValue('coreBasePath')}/revision/changes/${revId}`);\n }\n}\n","import {AsyncPipe, JsonPipe, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, OnInit, inject} from '@angular/core';\nimport {RouterOutlet} from '@angular/router';\n\nimport {BehaviorSubject, of, switchMap} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {\n AMngTableviewRouteComponent,\n ClassType,\n ITableviewDataProvider,\n MediusQueryResult,\n MngTableviewComponent,\n MngTableviewRouteComponent,\n ObjectSerializer,\n TableviewDataProvider,\n TableviewDescriptor\n} from '@mediusinc/mng-commons';\n\nimport {GuiEntityModel, GuiPropertyType} from '../../../api/models';\nimport {MngAuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-revisions-page',\n templateUrl: './audit-revisions-page.component.html',\n imports: [NgIf, MngTableviewComponent, AsyncPipe, MngTableviewComponent, RouterOutlet, JsonPipe, MngTableviewRouteComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MngAuditRevisionsPageComponent extends AMngTableviewRouteComponent<any, unknown> implements OnInit {\n private revModel!: GuiEntityModel;\n public descriptorCreated = new BehaviorSubject(false);\n\n private auditRevisionApiService = inject(MngAuditRevisionsApiService);\n\n override ngOnInit(): void {\n this.auditRevisionApiService.getRevModel().subscribe({\n next: revModel => {\n this.revModel = revModel;\n this.descriptor = this.createTableviewDescriptor();\n this.dataProvider = this.createTableviewDataProvider();\n this.descriptorCreated.next(true);\n }\n });\n }\n\n protected createTableviewDescriptor(): TableviewDescriptor<unknown> {\n if (this.revModel) {\n const desc = new TableviewDescriptor(ObjectSerializer.get().findType(this.revModel.entityName! + 'Dto'));\n for (const property of this.revModel.properties!) {\n if (property.propertyType === GuiPropertyType.Enum) {\n desc.addColumn(property.resolvedPropertyName!)\n .asEnum(ObjectSerializer.get().findEnum(property.resolvedPropertyName!))\n .withFilterLookupEnum(property.possibleEnumValues);\n } else if (property.propertyType === GuiPropertyType.Number) {\n desc.addColumn(property.resolvedPropertyName!).asNumber();\n } else if (property.propertyType === GuiPropertyType.Boolean) {\n desc.addColumn(property.resolvedPropertyName!).asBoolean();\n } else if (property.propertyType === GuiPropertyType.LocalDate) {\n desc.addColumn(property.resolvedPropertyName!).asDate('dd. MMM yyyy');\n } else if (property.propertyType === GuiPropertyType.OffsetDateTime) {\n desc.addColumn(property.resolvedPropertyName!).asDate('dd. MMM yyyy HH:mm');\n } else {\n // string / wildcard\n desc.addColumn(property.resolvedPropertyName!);\n }\n }\n return desc;\n }\n return new TableviewDescriptor<unknown>({} as ClassType<unknown>);\n }\n\n protected createTableviewDataProvider(): ITableviewDataProvider<unknown, any> {\n if (this.revModel) {\n let allDataCount = 0;\n return new TableviewDataProvider(ObjectSerializer.get().findType(this.revModel.entityName! + 'Dto'), MngAuditRevisionsApiService).withGetAll((qp, service) =>\n service\n ? service.getRevisionCount().pipe(\n switchMap(revisionsCount => {\n allDataCount = revisionsCount;\n return service.getRevisionList();\n }),\n map(values => MediusQueryResult.fromArray(values, allDataCount))\n )\n : of(MediusQueryResult.fromArray([], 0))\n );\n }\n return new TableviewDataProvider({} as ClassType<unknown>);\n }\n}\n","<div *ngIf=\"descriptorCreated | async\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n","import {RouteBuilder, RoutesBuilder, TableviewRouteBuilder} from '@mediusinc/mng-commons';\n\nimport {AuditEntityRevisionsPageComponent} from './components/pages/entity-revisions/audit-entity-revisions-page.component';\nimport {EntityDropdownPageComponent} from './components/pages/entity-revisions/entity-dropdown-page.component';\nimport {MngAuditRevisionsPageComponent} from './components/pages/revisions/audit-revisions-page.component';\n\nexport const auditRouteBuilder = RoutesBuilder.create()\n .addRouteBuilder(RouteBuilder.createRedirect('', 'revisions', 'full'))\n .addRouteBuilder(\n TableviewRouteBuilder.fromComponent('revisions', MngAuditRevisionsPageComponent).withMenuItem('pi pi-history', 'pages.revisions.title').withTitle('pages.revisions.title')\n )\n .addRouteBuilder(\n RouteBuilder.create('entity-revisions', EntityDropdownPageComponent)\n .withMenuItem('pi pi-history', 'pages.entityRevisions.title')\n .withTitle('pages.entityRevisions.title')\n .addChildBuilder(TableviewRouteBuilder.fromComponent(':entityClass', AuditEntityRevisionsPageComponent))\n );\n","import {TypeName} from '@mediusinc/mng-commons';\n\n@TypeName('EntityChanges')\nexport class EntityChanges {\n entityType?: string;\n items?: any[];\n}\n","import {NgForOf} from '@angular/common';\nimport {Component, OnInit} from '@angular/core';\n\nimport {FieldType} from '@ngx-formly/core';\n\nimport {MediusQueryResult, MngFormlyFieldConfig, MngTableComponent, TableviewDynamicDescriptor} from '@mediusinc/mng-commons';\n\nimport {RevisionTypeEnumDto} from '../../api/models';\nimport {EntityChanges} from '../../models/entity-changes.model';\n\n@Component({\n standalone: true,\n selector: 'mng-entity-changes-field',\n imports: [NgForOf, MngTableComponent],\n styleUrls: ['entity-changes-field.component.scss'],\n templateUrl: 'entity-changes-field.component.html'\n})\nexport class EntityChangesFieldComponent extends FieldType<MngFormlyFieldConfig> implements OnInit {\n public entityChanges: EntityChanges[] = [];\n\n ngOnInit(): void {\n for (const key of Object.keys(this.model['entityChanges'])) {\n const ec = new EntityChanges();\n ec.entityType = key;\n ec.items = [];\n for (const change of this.model['entityChanges'][key]) {\n if (change.revType === RevisionTypeEnumDto.Add) {\n ec.items.push({revType: change.revType, ...change.newState, color: 'green'});\n } else if (change.revType === RevisionTypeEnumDto.Del) {\n ec.items.push({revType: change.revType, ...change.oldState, color: 'red'});\n } else {\n ec.items.push({revType: change.revType, ...change.oldState, color: 'red'});\n ec.items.push({revType: change.revType, ...change.newState, color: 'green'});\n }\n }\n this.entityChanges.push(ec);\n }\n }\n\n public createDynamicDescriptor(entityChanges: EntityChanges) {\n const changedFields: string[] = [];\n if (entityChanges.items && entityChanges.items[0].revType === RevisionTypeEnumDto.Mod) {\n for (const key in entityChanges.items[0]) {\n if (entityChanges.items[0][key] !== entityChanges.items[1][key]) {\n changedFields.push(key);\n }\n }\n }\n const tableDescriptor = new TableviewDynamicDescriptor().table\n .withTitle(entityChanges.entityType ?? '')\n .withColumnsExcluded(['color'])\n .toTableDescriptorFromData(MediusQueryResult.fromArray(entityChanges.items ?? []))\n .withRowClassName(undefined, (_, item) => (item.color === 'green' ? 'audit-row-added' : 'audit-row-deleted'));\n tableDescriptor.columns.forEach(col => {\n col.withSort(false);\n if (changedFields.length > 0 && changedFields.some(val => col.property === val)) {\n col.withClassName('audit-cell');\n }\n });\n return tableDescriptor;\n }\n}\n","<mng-table *ngFor=\"let ec of entityChanges\" [items]=\"ec.items\" [descriptor]=\"createDynamicDescriptor(ec)\"></mng-table>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","i1.EntityDropdownPageComponent","i2.MngAuditEntityRevisionsApiService"],"mappings":"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"}
1
+ {"version":3,"file":"mediusinc-mng-commons-audit.mjs","sources":["../../src/lib/api/models/entityChange.ts","../../src/lib/api/models/guiEntityModel.ts","../../src/lib/api/models/guiPropertyModel.ts","../../src/lib/api/models/guiPropertyType.ts","../../src/lib/api/models/guiRelationModel.ts","../../src/lib/api/models/revEntityWithChangesDto.ts","../../src/lib/api/models/revEntityWithStateDto.ts","../../src/lib/api/models/revisionType.ts","../../src/lib/models/revEntityWithId.model.ts","../../src/lib/models/new-filter-match-type.model.ts","../../src/lib/utils/audit.util.ts","../../src/lib/service/module-config.token.ts","../../src/lib/api/services/audit-revisions-api.service.ts","../../src/lib/api/services/audit.service.ts","../../src/lib/components/pages/audit/audit-page.component.ts","../../src/lib/components/pages/audit/audit-page.component.html","../../src/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.ts","../../src/lib/components/pages/entity-revisions/audit-entity-revisions-page.component.html","../../src/lib/models/entity-changes.model.ts","../../src/lib/components/entity-changes-field/entity-changes-field.component.ts","../../src/lib/components/entity-changes-field/entity-changes-field.component.html","../../src/lib/components/pages/revisions/audit-revisions-page.component.ts","../../src/lib/components/pages/revisions/audit-revisions-page.component.html","../../src/lib/audit.routes.ts","../../src/mediusinc-mng-commons-audit.ts"],"sourcesContent":["/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {RevisionType} from './revisionType';\n\n@TypeName('EntityChange')\nexport class EntityChange {\n revType?: RevisionType;\n entityOldState?: {[key: string]: any};\n entityNewState?: {[key: string]: any};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revType',\n baseName: 'revType',\n type: 'RevisionType'\n },\n {\n name: 'entityOldState',\n baseName: 'entityOldState',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'entityNewState',\n baseName: 'entityNewState',\n type: '{ [key: string]: any; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return EntityChange.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(EntityChange);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {GuiPropertyModel} from './guiPropertyModel';\n\n@TypeName('GuiEntityModel')\nexport class GuiEntityModel {\n entityName?: string;\n properties?: Array<GuiPropertyModel>;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'entityName',\n baseName: 'entityName',\n type: 'string'\n },\n {\n name: 'properties',\n baseName: 'properties',\n type: 'Array<GuiPropertyModel>'\n }\n ];\n\n public static getAttributeTypeMap() {\n return GuiEntityModel.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(GuiEntityModel);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {GuiPropertyType} from './guiPropertyType';\nimport {GuiRelationModel} from './guiRelationModel';\n\n@TypeName('GuiPropertyModel')\nexport class GuiPropertyModel {\n propertyName?: string;\n resolvedPropertyName?: string;\n enumClassSimpleName?: string;\n possibleEnumValues?: Array<string>;\n isId?: boolean;\n propertyType?: GuiPropertyType;\n relationModel?: GuiRelationModel;\n id?: boolean;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'propertyName',\n baseName: 'propertyName',\n type: 'string'\n },\n {\n name: 'resolvedPropertyName',\n baseName: 'resolvedPropertyName',\n type: 'string'\n },\n {\n name: 'enumClassSimpleName',\n baseName: 'enumClassSimpleName',\n type: 'string'\n },\n {\n name: 'possibleEnumValues',\n baseName: 'possibleEnumValues',\n type: 'Array<string>'\n },\n {\n name: 'isId',\n baseName: 'isId',\n type: 'boolean'\n },\n {\n name: 'propertyType',\n baseName: 'propertyType',\n type: 'GuiPropertyType'\n },\n {\n name: 'relationModel',\n baseName: 'relationModel',\n type: 'GuiRelationModel'\n },\n {\n name: 'id',\n baseName: 'id',\n type: 'boolean'\n }\n ];\n\n public static getAttributeTypeMap() {\n return GuiPropertyModel.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(GuiPropertyModel);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ObjectSerializer} from '@mediusinc/mng-commons';\n\nexport enum GuiPropertyType {\n LocalDate = 'LOCAL_DATE',\n OffsetDateTime = 'OFFSET_DATE_TIME',\n String = 'STRING',\n Number = 'NUMBER',\n Boolean = 'BOOLEAN',\n Enum = 'ENUM',\n Wildcard = 'WILDCARD'\n}\n\nObjectSerializer.get().registerEnum(GuiPropertyType, 'GuiPropertyType');\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\n@TypeName('GuiRelationModel')\nexport class GuiRelationModel {\n idPropertyName?: string;\n isAudited?: boolean;\n audited?: boolean;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'idPropertyName',\n baseName: 'idPropertyName',\n type: 'string'\n },\n {\n name: 'isAudited',\n baseName: 'isAudited',\n type: 'boolean'\n },\n {\n name: 'audited',\n baseName: 'audited',\n type: 'boolean'\n }\n ];\n\n public static getAttributeTypeMap() {\n return GuiRelationModel.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(GuiRelationModel);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {EntityChange} from './entityChange';\n\n@TypeName('RevEntityWithChangesDto')\nexport class RevEntityWithChangesDto {\n revEntity?: {[key: string]: any};\n entityNameChangesMap?: {[key: string]: Array<EntityChange>};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revEntity',\n baseName: 'revEntity',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'entityNameChangesMap',\n baseName: 'entityNameChangesMap',\n type: '{ [key: string]: Array<EntityChange>; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return RevEntityWithChangesDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(RevEntityWithChangesDto);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {AttributeDef, ObjectSerializer, TypeName} from '@mediusinc/mng-commons';\n\nimport {RevisionType} from './revisionType';\n\n@TypeName('RevEntityWithStateDto')\nexport class RevEntityWithStateDto {\n revEntity?: {[key: string]: any};\n revType?: RevisionType;\n entityClassName?: string;\n entityState?: {[key: string]: any};\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<AttributeDef> = [\n {\n name: 'revEntity',\n baseName: 'revEntity',\n type: '{ [key: string]: any; }'\n },\n {\n name: 'revType',\n baseName: 'revType',\n type: 'RevisionType'\n },\n {\n name: 'entityClassName',\n baseName: 'entityClassName',\n type: 'string'\n },\n {\n name: 'entityState',\n baseName: 'entityState',\n type: '{ [key: string]: any; }'\n }\n ];\n\n public static getAttributeTypeMap() {\n return RevEntityWithStateDto.attributeTypeMap;\n }\n}\n\nObjectSerializer.get().registerType(RevEntityWithStateDto);\n","/**\n * Medius quarkus sampler\n * Sampler OPENAPI definition\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@medius.si\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ObjectSerializer} from '@mediusinc/mng-commons';\n\nexport enum RevisionType {\n Add = 'ADD',\n Mod = 'MOD',\n Del = 'DEL'\n}\n\nObjectSerializer.get().registerEnum(RevisionType, 'RevisionType');\n","import {TypeName} from '@mediusinc/mng-commons';\n\nimport {RevEntityWithStateDto} from '../api/models';\n\n@TypeName('RevEntityWithId')\nexport class RevEntityWithId extends RevEntityWithStateDto {\n mergedId?: string;\n}\n","export enum NewMediusFilterMatchType {\n Equals = 'eq',\n NotEquals = 'ne',\n Between = 'bt',\n Contains = 'cn',\n NotContains = 'nc',\n StartsWith = 'sw',\n EndsWith = 'ew',\n In = 'in',\n NotIn = 'ni',\n LessThan = 'lt',\n LessThanOrEqualTo = 'le',\n GreaterThan = 'gt',\n GreaterThanOrEqualTo = 'ge',\n Exists = 'ex',\n DoesNotExist = 'nx'\n}\n","import {EditorDescriptor, MediusFilterMatchType, MediusQueryParam, ObjectSerializer, TableDescriptor, TableviewDescriptor} from '@mediusinc/mng-commons';\n\nimport {GuiEntityModel, GuiPropertyModel, GuiPropertyType, RevEntityWithStateDto, RevisionType} from '../api/models';\nimport {NewMediusFilterMatchType} from '../models/new-filter-match-type.model';\n\nexport class AuditUtil {\n public static addColumnsFromModel(descriptor: TableDescriptor<any>, propertyList: GuiPropertyModel[]): TableDescriptor<any> {\n for (const property of propertyList) {\n if (property.propertyType === GuiPropertyType.Enum) {\n // TODO is there a nicer way than appending \"Dto\" at the end of the simple name to match\n descriptor\n .addColumn(property.resolvedPropertyName!)\n .withSort()\n .asEnum(ObjectSerializer.get().findEnum(property.enumClassSimpleName + 'Dto'))\n .withFilterLookupEnum(property.possibleEnumValues);\n } else if (property.propertyType === GuiPropertyType.Number) {\n descriptor.addColumn(property.resolvedPropertyName!).withSort().asNumber().withFilter();\n } else if (property.propertyType === GuiPropertyType.Boolean) {\n descriptor.addColumn(property.resolvedPropertyName!).withSort().asBoolean().withFilter();\n } else if (property.propertyType === GuiPropertyType.LocalDate) {\n descriptor.addColumn(property.resolvedPropertyName!).withSort().asDate('dd. MMM yyyy').withFilter();\n } else if (property.propertyType === GuiPropertyType.OffsetDateTime) {\n descriptor.addColumn(property.resolvedPropertyName!).withSort().asDate('dd. MMM yyyy HH:mm').withFilter();\n } else {\n // string / wildcard\n descriptor.addColumn(property.resolvedPropertyName!).withSort().withFilter();\n }\n }\n return descriptor;\n }\n\n public static addFieldsFromModel<T>(descriptor: EditorDescriptor<T>, revModel: GuiEntityModel): EditorDescriptor<T> {\n for (const property of revModel.properties!) {\n if (property.propertyType === GuiPropertyType.Enum) {\n descriptor\n .addFieldLookupEnum('revEntity.' + property.resolvedPropertyName!, ObjectSerializer.get().findEnum(property.enumClassSimpleName!), property.possibleEnumValues)\n .withLabel(property.resolvedPropertyName!)\n .withDisabled();\n } else if (property.propertyType === GuiPropertyType.Number) {\n descriptor\n .addField('revEntity.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .asNumber()\n .withDisabled();\n } else if (property.propertyType === GuiPropertyType.Boolean) {\n descriptor\n .addField('revEntity.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .withDisabled();\n } else if (property.propertyType === GuiPropertyType.LocalDate) {\n descriptor\n .addField('revEntity.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .asDatePicker('dd. MMM yyyy')\n .withDisabled();\n } else if (property.propertyType === GuiPropertyType.OffsetDateTime) {\n descriptor\n .addField('revEntity.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .asDatePicker('dd. MM yy', undefined, undefined, true, false)\n .withDisabled();\n } else {\n // string / wildcard\n descriptor\n .addField('revEntity.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .withDisabled();\n }\n }\n return descriptor;\n }\n\n public static buildDescriptorForEntityRevision(\n descriptor: TableviewDescriptor<RevEntityWithStateDto>,\n revModel: GuiEntityModel,\n entityModel: GuiEntityModel\n ): TableviewDescriptor<RevEntityWithStateDto> {\n descriptor\n .addColumn('revType')\n .withTitle('revType')\n .asEnum(ObjectSerializer.get().findEnum('RevisionType'))\n .withFilterLookupEnum([RevisionType.Add, RevisionType.Mod, RevisionType.Del]);\n descriptor.addFieldLookupEnum('revType', ObjectSerializer.get().findEnum('RevisionType'), [RevisionType.Add, RevisionType.Mod, RevisionType.Del]).withLabel('revType');\n for (const property of revModel.properties!) {\n if (property.propertyType === GuiPropertyType.Enum) {\n // TODO is there a nicer way than appending \"Dto\" at the end of the simple name to match\n descriptor\n .addColumn('revEntity.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asEnum(ObjectSerializer.get().findEnum(property.enumClassSimpleName + 'Dto'))\n .withSort()\n .withFilterLookupEnum(property.possibleEnumValues);\n\n descriptor\n .addFieldLookupEnum(\n 'revEntity.' + property.resolvedPropertyName!,\n ObjectSerializer.get().findEnum(property.enumClassSimpleName! + 'Dto'),\n property.possibleEnumValues\n )\n .withLabel(property.resolvedPropertyName!);\n } else if (property.propertyType === GuiPropertyType.Number) {\n descriptor\n .addColumn('revEntity.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asNumber()\n .withSort()\n .withFilter();\n descriptor\n .addField('revEntity.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .asNumber();\n } else if (property.propertyType === GuiPropertyType.Boolean) {\n descriptor\n .addColumn('revEntity.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asBoolean()\n .withSort()\n .withFilter();\n descriptor.addField('revEntity.' + property.resolvedPropertyName!).withLabel(property.resolvedPropertyName!);\n } else if (property.propertyType === GuiPropertyType.LocalDate) {\n descriptor\n .addColumn('revEntity.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asDate('dd. MMM yyyy')\n .withSort()\n .withFilter();\n descriptor\n .addField('revEntity.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .asDatePicker('dd. MMM yyyy');\n } else if (property.propertyType === GuiPropertyType.OffsetDateTime) {\n descriptor\n .addColumn('revEntity.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asDate('dd. MMM yyyy HH:mm')\n .withSort()\n .withFilter();\n descriptor\n .addField('revEntity.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .asDatePicker('dd. MM yy', undefined, undefined, true, false);\n } else {\n // string / wildcard\n descriptor\n .addColumn('revEntity.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .withSort()\n .withFilter();\n descriptor.addField('revEntity.' + property.resolvedPropertyName!).withLabel(property.resolvedPropertyName!);\n }\n }\n for (const property of entityModel.properties!) {\n if (property.propertyType === GuiPropertyType.Enum) {\n // TODO is there a nicer way than appending \"Dto\" at the end of the simple name to match\n descriptor\n .addColumn('entityState.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asEnum(ObjectSerializer.get().findEnum(property.enumClassSimpleName + 'Dto'))\n .withSort()\n .withFilterLookupEnum(property.possibleEnumValues);\n descriptor\n .addFieldLookupEnum(\n 'entityState.' + property.resolvedPropertyName!,\n ObjectSerializer.get().findEnum(property.enumClassSimpleName! + 'Dto'),\n property.possibleEnumValues\n )\n .withLabel(property.resolvedPropertyName!);\n } else if (property.propertyType === GuiPropertyType.Number) {\n descriptor\n .addColumn('entityState.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asNumber()\n .withSort()\n .withFilter();\n descriptor\n .addField('entityState.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .asNumber();\n } else if (property.propertyType === GuiPropertyType.Boolean) {\n descriptor\n .addColumn('entityState.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asBoolean()\n .withSort()\n .withFilter();\n descriptor.addField('entityState.' + property.resolvedPropertyName!).withLabel(property.resolvedPropertyName!);\n } else if (property.propertyType === GuiPropertyType.LocalDate) {\n descriptor\n .addColumn('entityState.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asDate('dd. MMM yyyy')\n .withSort()\n .withFilter();\n descriptor\n .addField('entityState.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .asDatePicker('dd. MMM yyyy');\n } else if (property.propertyType === GuiPropertyType.OffsetDateTime) {\n descriptor\n .addColumn('entityState.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .asDate('dd. MMM yyyy HH:mm')\n .withSort()\n .withFilter();\n descriptor\n .addField('entityState.' + property.resolvedPropertyName!)\n .withLabel(property.resolvedPropertyName!)\n .asDatePicker('dd. MM yy', undefined, undefined, true, false);\n } else {\n // string / wildcard\n descriptor\n .addColumn('entityState.' + property.resolvedPropertyName!)\n .withTitle(property.resolvedPropertyName!)\n .withSort()\n .withFilter();\n descriptor.addField('entityState.' + property.resolvedPropertyName!).withLabel(property.resolvedPropertyName!);\n }\n }\n return descriptor;\n }\n\n private static extractPropertyName(fullPropertyName: string | undefined): string | undefined {\n if (fullPropertyName?.includes('entityState.')) {\n return fullPropertyName.replace('entityState.', '');\n } else if (fullPropertyName?.includes('revEntity.')) {\n return fullPropertyName?.replace('revEntity.', '');\n }\n return fullPropertyName;\n }\n\n public static appendMediusQueryParamsToUrl(queryParams: MediusQueryParam): string {\n let url = `?firstResult=${queryParams.itemsOffset}&maxResults=${queryParams.itemsPerPage}`;\n if (queryParams.sortProperty && queryParams.sortProperty.length > 0) {\n url += '&sorts=';\n const sortingQPs = [];\n for (let i = 0; i < queryParams.sortProperty.length; i++) {\n if (queryParams.sortAsc![i]) {\n sortingQPs.push(`asc:${this.extractPropertyName(queryParams.sortProperty[i])}`);\n } else {\n sortingQPs.push(`desc:${this.extractPropertyName(queryParams.sortProperty[i])}`);\n }\n }\n url += sortingQPs.join(',');\n }\n if (queryParams.filterParams && queryParams.filterParams.length > 0) {\n const filterQPs = [];\n for (const mfp of queryParams.filterParams) {\n switch (mfp.filterMatchType) {\n case MediusFilterMatchType.Equals: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Equals}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.NotEquals: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.NotEquals}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.FromTo: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Between}:${mfp.filterValue},${mfp.filterValueTo}`);\n break;\n }\n case MediusFilterMatchType.Contains: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.Contains}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.StartsWith: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.StartsWith}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.EndsWith: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.EndsWith}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.In: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.In}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.NotIn: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.NotIn}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.SmallerThan: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.LessThan}:${mfp.filterValue}`);\n break;\n }\n case MediusFilterMatchType.GreaterThan: {\n filterQPs.push(`${this.extractPropertyName(mfp.property)}=${NewMediusFilterMatchType.GreaterThan}:${mfp.filterValue}`);\n break;\n }\n }\n }\n url += '&';\n url += filterQPs.join('&');\n }\n return url;\n }\n}\n","import {InjectionToken} from '@angular/core';\n\nimport {MngAuditModuleConfig} from '../models/config.model';\n\nexport const MNG_AUDIT_MODULE_CONFIG_IT = new InjectionToken<MngAuditModuleConfig>('MngAuditModuleConfig');\n","import {Injectable, inject} from '@angular/core';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {AMngBaseApiService, IdType, MediusQueryParam, MngConfigurationService} from '@mediusinc/mng-commons';\n\nimport {RevEntityWithId} from '../../models/revEntityWithId.model';\nimport {AuditUtil} from '../../utils/audit.util';\nimport {MNG_AUDIT_MODULE_CONFIG_IT} from '../../service/module-config.token';\nimport {RevEntityWithChangesDto, RevEntityWithStateDto} from '../models';\n\n@Injectable()\nexport class MngAuditRevisionsApiService extends AMngBaseApiService {\n protected readonly configService: MngConfigurationService;\n\n protected readonly moduleConfig = inject(MNG_AUDIT_MODULE_CONFIG_IT);\n\n constructor() {\n super();\n this.configService = MngConfigurationService.get();\n }\n\n protected getServiceBasePath(): string | null {\n return this.moduleConfig.apiServiceBasePath ?? '';\n }\n\n protected getBasePath(): string {\n return `${this.configService.getConfigValue(this.moduleConfig.apiBasePathConfigKey)}`;\n }\n\n public getRevisionList(queryParams: MediusQueryParam): Observable<Array<{[key: string]: any}>> {\n return this.http.get<Array<{[key: string]: any}>>(this.getUrl(AuditUtil.appendMediusQueryParamsToUrl(queryParams)));\n }\n\n public getRevisionCount(queryParams: MediusQueryParam): Observable<number> {\n return this.http.get<number>(this.getUrl('/count', AuditUtil.appendMediusQueryParamsToUrl(queryParams)));\n }\n\n public getAllChangesForRevision(revId: IdType): Observable<RevEntityWithChangesDto> {\n return this.http.get(this.getUrl(`/changes/${revId}`));\n }\n\n public listRevisionsWithStateForEntityType(queryParams: MediusQueryParam, entityType: string): Observable<Array<RevEntityWithStateDto>> {\n return this.http\n .get(this.getUrl(`/states/${entityType}`, AuditUtil.appendMediusQueryParamsToUrl(queryParams)))\n .pipe(map(response => this.deserializeClassArray(response, RevEntityWithStateDto)));\n }\n\n public fetchRevisionsWithStateForEntityType(entityType: string, revId: IdType, itemId: IdType): Observable<RevEntityWithId> {\n return this.http.get<Array<RevEntityWithStateDto>>(this.getUrl(`/states/${entityType}?rev=eq:${revId}&id=eq:${itemId}`)).pipe(\n map(response => {\n const item = this.deserializeClass(response[0], RevEntityWithId);\n item.mergedId = response[0].revEntity!['rev'] + '_' + response[0].entityState!['id'];\n return item;\n })\n );\n }\n\n public countRevisionsWithStateForEntityType(queryParams: MediusQueryParam, entityType: string): Observable<number> {\n return this.http.get<number>(this.getUrl(`/states/${entityType}/count`, AuditUtil.appendMediusQueryParamsToUrl(queryParams)));\n }\n}\n","import {Injectable, inject} from '@angular/core';\n\nimport {Observable, shareReplay} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {AMngBaseApiService, MngConfigurationService} from '@mediusinc/mng-commons';\n\nimport {MNG_AUDIT_MODULE_CONFIG_IT} from '../../service/module-config.token';\nimport {GuiEntityModel} from '../models';\n\n@Injectable()\nexport class MngAuditService extends AMngBaseApiService {\n private readonly CACHE_SIZE = 1;\n private readonly configService: MngConfigurationService;\n private readonly moduleConfig = inject(MNG_AUDIT_MODULE_CONFIG_IT);\n\n private revModelObs?: Observable<GuiEntityModel>;\n private auditModelObs?: Observable<Array<GuiEntityModel>>;\n\n constructor() {\n super();\n this.configService = MngConfigurationService.get();\n }\n\n protected getServiceBasePath(): string | null {\n return this.moduleConfig.apiServiceBasePath ?? '';\n }\n\n protected getBasePath(): string {\n return `${this.configService.getConfigValue(this.moduleConfig.apiBasePathConfigKey)}`;\n }\n\n public get revModel$() {\n if (!this.revModelObs) {\n this.revModelObs = this.requestRevModel().pipe(shareReplay(this.CACHE_SIZE));\n }\n return this.revModelObs;\n }\n\n public get auditModel$() {\n if (!this.auditModelObs) {\n this.auditModelObs = this.requestAuditModel().pipe(shareReplay(this.CACHE_SIZE));\n }\n return this.auditModelObs;\n }\n\n private requestRevModel(): Observable<GuiEntityModel> {\n return this.http.get(this.getUrl('/rev-model'));\n }\n\n private requestAuditModel(): Observable<Array<GuiEntityModel>> {\n return this.http.get(this.getUrl('/audit-models')).pipe(map(response => this.deserializeClassArray(response, GuiEntityModel)));\n }\n}\n","import {Component} from '@angular/core';\nimport {RouterOutlet} from '@angular/router';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-page',\n imports: [RouterOutlet],\n templateUrl: 'audit-page.component.html'\n})\nexport class MngAuditPageComponent {}\n","<router-outlet></router-outlet>\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {Component, WritableSignal, inject, signal} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {Router} from '@angular/router';\n\nimport {FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {of, switchMap} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {\n AMngTableviewRouteComponent,\n ActionDataProviderUtil,\n ActionDescriptor,\n ActionEditorDescriptor,\n ActionEditorSubmitDescriptor,\n ActionEditorSubmitTypeEnum,\n ActionPositionEnum,\n LookupDataProvider,\n MediusQueryResult,\n MngDropdownComponent,\n MngTableviewRouteComponent,\n TableFilterDisplayEnum,\n TableviewActionDefaultCategories,\n TableviewDataProvider,\n TableviewDescriptor\n} from '@mediusinc/mng-commons';\n\nimport {GuiEntityModel} from '../../../api/models';\nimport {MngAuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {MngAuditService} from '../../../api/services/audit.service';\nimport {RevEntityWithId} from '../../../models/revEntityWithId.model';\nimport {AuditUtil} from '../../../utils/audit.util';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-entity-revisions-page',\n imports: [MngDropdownComponent, MngTableviewRouteComponent, FormsModule, AsyncPipe, NgIf, TranslateModule, FormlyModule],\n templateUrl: 'audit-entity-revisions-page.component.html'\n})\nexport class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent<RevEntityWithId, any> {\n private auditService = inject(MngAuditService);\n private revisisonsApiService = inject(MngAuditRevisionsApiService);\n\n public revModel!: GuiEntityModel;\n public selectedRevisionEntity!: GuiEntityModel;\n public revisionEntitiesLookupProvider?: LookupDataProvider<GuiEntityModel, never>;\n\n public showTable: WritableSignal<boolean> = signal(false);\n\n constructor(private router: Router) {\n super();\n this.revisionEntitiesLookupProvider = new LookupDataProvider<GuiEntityModel, never>(GuiEntityModel).withLookup(() => this.auditService.auditModel$);\n\n this.auditService.revModel$.subscribe({\n next: model => (this.revModel = model)\n });\n }\n\n override ngOnInit() {\n this.route.paramMap.subscribe(params => {\n const entityClass = params.get('entityClass');\n if (entityClass) {\n this.auditService.auditModel$.subscribe(entities => {\n for (const e of entities) {\n if (e.entityName === entityClass) {\n this.selectedRevisionEntity = e;\n super.ngOnInit();\n setTimeout(() => this.showTable.set(true));\n }\n }\n });\n }\n });\n }\n\n public onRevisionEntityChange() {\n this.showTable.set(false);\n if (this.selectedRevisionEntity) {\n this.router.navigate(['/audit/entity-revisions/' + this.selectedRevisionEntity.entityName]);\n } else {\n this.router.navigate(['/audit/entity-revisions/']);\n }\n }\n\n protected createTableviewDescriptor() {\n const desc = new TableviewDescriptor(RevEntityWithId, 'mergedId', undefined, this.selectedRevisionEntity.entityName);\n desc.table.withFilterDisplay(TableFilterDisplayEnum.Row);\n return AuditUtil.buildDescriptorForEntityRevision(desc, this.revModel, this.selectedRevisionEntity);\n }\n\n protected createTableviewDataProvider() {\n let allDataCount = 0;\n return new TableviewDataProvider(RevEntityWithId).withGetAll(qp =>\n this.revisisonsApiService.countRevisionsWithStateForEntityType(qp, this.selectedRevisionEntity.entityName!).pipe(\n switchMap(revisionCount => {\n allDataCount = revisionCount;\n return this.revisisonsApiService.listRevisionsWithStateForEntityType(qp, this.selectedRevisionEntity.entityName!);\n }),\n map(values => {\n const revEntityWithStateAndIdList = [];\n for (const revEntityWithState of values) {\n const revEntityWithStateAndId = new RevEntityWithId();\n revEntityWithStateAndId.mergedId = revEntityWithState.revEntity!['rev'] + '_' + revEntityWithState.entityState!['id'];\n revEntityWithStateAndId.revType = revEntityWithState.revType;\n revEntityWithStateAndId.revEntity = revEntityWithState.revEntity;\n revEntityWithStateAndId.entityState = revEntityWithState.entityState;\n revEntityWithStateAndId.entityClassName = revEntityWithState.entityClassName;\n revEntityWithStateAndIdList.push(revEntityWithStateAndId);\n }\n return MediusQueryResult.fromArray(revEntityWithStateAndIdList, allDataCount);\n })\n )\n );\n }\n\n public override createActionDescriptors(): Array<ActionDescriptor<RevEntityWithId>> {\n const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'entity-revision-details')\n .withPosition(ActionPositionEnum.RowClick)\n .withRouteTrigger(':itemId')\n .withFetchFunction(ActionDataProviderUtil.runFetchOrFail)\n .withTableviewCategory(TableviewActionDefaultCategories.DETAILS)\n .withFetchFunction(ctx => {\n const revId = ctx.parameters.itemId!.toString().split('_')[0];\n const itemId = ctx.parameters.itemId!.toString().split('_')[1];\n return this.revisisonsApiService.fetchRevisionsWithStateForEntityType(this.selectedRevisionEntity.entityName!, revId, itemId);\n });\n detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);\n return [detailsAction];\n }\n}\n","<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n [itemsLabelProperty]=\"'entityName'\"\n [(ngModel)]=\"selectedRevisionEntity\"\n (valueChange)=\"onRevisionEntityChange()\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"></mng-dropdown>\n <small *ngIf=\"!selectedRevisionEntity\" class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n </div>\n</div>\n<div *ngIf=\"showTable()\">\n <mng-tableview-route [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n</div>\n","import {TypeName} from '@mediusinc/mng-commons';\n\n@TypeName('EntityChanges')\nexport class EntityChanges {\n entityType?: string;\n items?: any[];\n}\n","import {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {Component, Injector, Input, OnInit} from '@angular/core';\n\nimport {BehaviorSubject} from 'rxjs';\n\nimport {AMngFormlyCustomFieldComponent, ClassType, MngTableComponent, TableDescriptor, TablePaginationModeEnum} from '@mediusinc/mng-commons';\n\nimport {GuiEntityModel, RevisionType} from '../../api/models';\nimport {MngAuditService} from '../../api/services/audit.service';\nimport {EntityChanges} from '../../models/entity-changes.model';\nimport {AuditUtil} from '../../utils/audit.util';\n\n@Component({\n standalone: true,\n selector: 'mng-entity-changes-field',\n imports: [NgForOf, MngTableComponent, NgIf, AsyncPipe],\n styleUrls: ['entity-changes-field.component.scss'],\n templateUrl: 'entity-changes-field.component.html'\n})\nexport class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent implements OnInit {\n @Input() public injector?: Injector;\n\n public entityChanges: EntityChanges[] = [];\n public modelFetched = new BehaviorSubject(false);\n\n private auditModel!: GuiEntityModel[];\n\n ngOnInit(): void {\n this.injector?.get(MngAuditService, undefined, {optional: true})?.auditModel$.subscribe({\n next: model => {\n this.auditModel = model;\n\n if ('entityNameChangesMap' in this.model) {\n for (const key of Object.keys(this.model['entityNameChangesMap'])) {\n const ec = new EntityChanges();\n ec.entityType = key;\n ec.items = [];\n for (const change of this.model['entityNameChangesMap'][key]) {\n if (change.revType === RevisionType.Add) {\n ec.items.push({revType: change.revType, ...change.entityNewState, color: 'green'});\n } else if (change.revType === RevisionType.Del) {\n ec.items.push({revType: change.revType, ...change.entityOldState, color: 'red'});\n } else {\n ec.items.push({revType: change.revType, ...change.entityOldState, color: 'red'});\n ec.items.push({revType: change.revType, ...change.entityNewState, color: 'green'});\n }\n }\n this.entityChanges.push(ec);\n }\n this.modelFetched.next(true);\n }\n }\n });\n }\n\n public createDescriptor(entityChanges: EntityChanges) {\n const changedFields: string[] = [];\n if (entityChanges.items && entityChanges.items[0].revType === RevisionType.Mod) {\n for (const key in entityChanges.items[0]) {\n if (entityChanges.items[0][key] !== entityChanges.items[1][key]) {\n changedFields.push(key);\n }\n }\n }\n\n const guiEntityModel = this.auditModel.filter(m => m.entityName === entityChanges.entityType)[0];\n\n const desc = new TableDescriptor({} as ClassType<any>, undefined, undefined, guiEntityModel.entityName).withTitle(guiEntityModel.entityName!).withClassName('py-2');\n desc.addColumn('revType').asEnum(RevisionType);\n AuditUtil.addColumnsFromModel(desc, guiEntityModel.properties!);\n desc.withRowClassName(undefined, (_, item) => (item.color === 'green' ? 'audit-row-added' : 'audit-row-deleted'));\n desc.columns.forEach(col => {\n col.withSort(false);\n if (changedFields.length > 0 && changedFields.some(val => col.property === val)) {\n col.withClassName('audit-cell');\n }\n });\n desc.withPaginationMode(TablePaginationModeEnum.Pagination);\n return desc;\n }\n}\n","<div *ngIf=\"modelFetched | async\">\n <mng-table *ngFor=\"let ec of entityChanges\" [items]=\"ec.items\" [descriptor]=\"createDescriptor(ec)\"></mng-table>\n</div>\n","import {AsyncPipe, JsonPipe, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Injector, OnInit, WritableSignal, inject, signal} from '@angular/core';\nimport {RouterOutlet} from '@angular/router';\n\nimport {switchMap} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {\n AMngTableviewRouteComponent,\n ActionDataProviderUtil,\n ActionDescriptor,\n ActionEditorDescriptor,\n ActionEditorSubmitDescriptor,\n ActionEditorSubmitTypeEnum,\n ActionPositionEnum,\n ClassType,\n EditorDescriptor,\n ITableviewDataProvider,\n MediusQueryResult,\n MngTableviewComponent,\n MngTableviewRouteComponent,\n TableFilterDisplayEnum,\n TableviewActionDefaultCategories,\n TableviewDataProvider,\n TableviewDescriptor,\n TableviewEditorTypeEnum\n} from '@mediusinc/mng-commons';\n\nimport {GuiEntityModel, RevEntityWithChangesDto} from '../../../api/models';\nimport {MngAuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {MngAuditService} from '../../../api/services/audit.service';\nimport {AuditUtil} from '../../../utils/audit.util';\nimport {EntityChangesFieldComponent} from '../../entity-changes-field/entity-changes-field.component';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-revisions-page',\n templateUrl: './audit-revisions-page.component.html',\n imports: [NgIf, MngTableviewComponent, AsyncPipe, MngTableviewComponent, RouterOutlet, JsonPipe, MngTableviewRouteComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MngAuditRevisionsPageComponent extends AMngTableviewRouteComponent<any, unknown> implements OnInit {\n private revModel!: GuiEntityModel;\n private auditService = inject(MngAuditService);\n private revisisonsApiService = inject(MngAuditRevisionsApiService);\n private injector = inject(Injector);\n public showTable: WritableSignal<boolean> = signal(false);\n\n override ngOnInit(): void {\n this.auditService.revModel$.subscribe({\n next: model => {\n this.revModel = model;\n super.ngOnInit();\n setTimeout(() => this.showTable.set(true));\n }\n });\n }\n\n protected createTableviewDescriptor(): TableviewDescriptor<unknown> {\n if (this.revModel) {\n const idProperty = this.revModel.properties?.filter(prop => prop.isId).map(prop => prop.resolvedPropertyName)[0];\n const desc = new TableviewDescriptor({} as ClassType<any>, idProperty, undefined, this.revModel.entityName);\n const detailsDescriptor = new EditorDescriptor(RevEntityWithChangesDto, 'revEntity.' + idProperty, undefined, TableviewEditorTypeEnum.Details);\n\n AuditUtil.addColumnsFromModel(desc.table, this.revModel.properties!);\n AuditUtil.addFieldsFromModel<RevEntityWithChangesDto>(detailsDescriptor, this.revModel);\n detailsDescriptor.addField('entityNameChangesMap').asCustomComponent(EntityChangesFieldComponent, ['field-no-label'], {injector: this.injector}).withDisabled();\n desc.withDetailsDescriptor(detailsDescriptor);\n desc.table.withFilterDisplay(TableFilterDisplayEnum.Row);\n\n return desc;\n }\n return new TableviewDescriptor<unknown>({} as ClassType<unknown>);\n }\n\n protected createTableviewDataProvider(): ITableviewDataProvider<unknown, any> {\n if (this.revModel) {\n let allDataCount = 0;\n return new TableviewDataProvider({} as ClassType<any>).withGetAll(qp =>\n this.revisisonsApiService.getRevisionCount(qp).pipe(\n switchMap(revisionsCount => {\n allDataCount = revisionsCount;\n return this.revisisonsApiService.getRevisionList(qp);\n }),\n map(values => MediusQueryResult.fromArray(values, allDataCount))\n )\n );\n }\n return new TableviewDataProvider({} as ClassType<unknown>);\n }\n\n protected override createActionDescriptors(): Array<ActionDescriptor<RevEntityWithChangesDto>> {\n const detailsAction = new ActionEditorDescriptor(this.descriptor.detailsEditor, 'revision-details')\n .withPosition(ActionPositionEnum.RowClick)\n .withRouteTrigger(':itemId')\n .withFetchFunction(ActionDataProviderUtil.runFetchOrFail)\n .withTableviewCategory(TableviewActionDefaultCategories.DETAILS)\n .withFetchFunction(ctx => this.revisisonsApiService.getAllChangesForRevision(ctx.parameters.itemId!));\n detailsAction.withEditorActions([new ActionEditorSubmitDescriptor(detailsAction, ActionEditorSubmitTypeEnum.Cancel)]);\n return [detailsAction];\n }\n}\n","<mng-tableview-route *ngIf=\"showTable()\" [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"></mng-tableview-route>\n","import {Routes} from '@angular/router';\n\nimport {RouteBuilder, RoutesBuilder, TableviewRouteBuilder} from '@mediusinc/mng-commons';\n\nimport {MngAuditRevisionsApiService} from './api/services/audit-revisions-api.service';\nimport {MngAuditService} from './api/services/audit.service';\nimport {MngAuditPageComponent} from './components/pages/audit/audit-page.component';\nimport {MngAuditEntityRevisionsPageComponent} from './components/pages/entity-revisions/audit-entity-revisions-page.component';\nimport {MngAuditRevisionsPageComponent} from './components/pages/revisions/audit-revisions-page.component';\nimport {MngAuditModuleConfig} from './models/config.model';\nimport {MNG_AUDIT_MODULE_CONFIG_IT} from './service/module-config.token';\n\nexport function provideMngAuditRoutes(config: MngAuditModuleConfig): Routes {\n return RoutesBuilder.create()\n .addRouteBuilder(\n RouteBuilder.create('', MngAuditPageComponent)\n .withProvider(MngAuditService)\n .withProvider(MngAuditRevisionsApiService)\n .withProvider({\n provide: MNG_AUDIT_MODULE_CONFIG_IT,\n useValue: config\n })\n .addChildBuilder(RouteBuilder.createRedirect('', 'revisions', 'full'))\n .addChildBuilder(\n TableviewRouteBuilder.fromComponent('revisions', MngAuditRevisionsPageComponent)\n .withProvider({\n useValue: 'zamenjajMeZInjectionTokenom',\n provide: config\n })\n .withMenuItem('pi pi-history', 'pages.revisions.title')\n .withTitle('pages.revisions.title')\n )\n .addChildBuilder(\n RouteBuilder.create('entity-revisions', MngAuditEntityRevisionsPageComponent)\n .withProvider({\n useValue: 'zamenjajMeZInjectionTokenom',\n provide: config\n })\n .withMenuItem('pi pi-history', 'pages.entityRevisions.title')\n .withTitle('pages.entityRevisions.title')\n )\n .addChildBuilder(\n TableviewRouteBuilder.fromComponent('entity-revisions/:entityClass', MngAuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title')\n )\n )\n .build();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { GuiRelationModel } from './guiRelationModel';
15
15
  export declare class GuiPropertyModel {
16
16
  propertyName?: string;
17
17
  resolvedPropertyName?: string;
18
+ enumClassSimpleName?: string;
18
19
  possibleEnumValues?: Array<string>;
19
20
  isId?: boolean;
20
21
  propertyType?: GuiPropertyType;
@@ -3,9 +3,6 @@ export * from './guiEntityModel';
3
3
  export * from './guiPropertyModel';
4
4
  export * from './guiPropertyType';
5
5
  export * from './guiRelationModel';
6
- export * from './revEntityChangeDto';
7
- export * from './revEntityDto';
8
6
  export * from './revEntityWithChangesDto';
9
7
  export * from './revEntityWithStateDto';
10
8
  export * from './revisionType';
11
- export * from './revisionTypeEnumDto';
@@ -1,16 +1,22 @@
1
- import { HttpClient } from '@angular/common/http';
2
1
  import { Observable } from 'rxjs';
3
- import { IdType, MngConfigurationService } from '@mediusinc/mng-commons';
4
- import { GuiEntityModel, RevEntityWithChangesDto } from '../models';
2
+ import { AMngBaseApiService, IdType, MediusQueryParam, MngConfigurationService } from '@mediusinc/mng-commons';
3
+ import { RevEntityWithId } from '../../models/revEntityWithId.model';
4
+ import { RevEntityWithChangesDto, RevEntityWithStateDto } from '../models';
5
5
  import * as i0 from "@angular/core";
6
- export declare class MngAuditRevisionsApiService {
7
- protected http: HttpClient;
8
- protected configService: MngConfigurationService;
9
- getRevModel(): Observable<GuiEntityModel>;
10
- getAuditModel(): Observable<GuiEntityModel[]>;
11
- getRevisionList(): Observable<any>;
12
- getRevisionCount(): Observable<any>;
6
+ export declare class MngAuditRevisionsApiService extends AMngBaseApiService {
7
+ protected readonly configService: MngConfigurationService;
8
+ protected readonly moduleConfig: import("../../models/config.model").MngAuditModuleConfig;
9
+ constructor();
10
+ protected getServiceBasePath(): string | null;
11
+ protected getBasePath(): string;
12
+ getRevisionList(queryParams: MediusQueryParam): Observable<Array<{
13
+ [key: string]: any;
14
+ }>>;
15
+ getRevisionCount(queryParams: MediusQueryParam): Observable<number>;
13
16
  getAllChangesForRevision(revId: IdType): Observable<RevEntityWithChangesDto>;
17
+ listRevisionsWithStateForEntityType(queryParams: MediusQueryParam, entityType: string): Observable<Array<RevEntityWithStateDto>>;
18
+ fetchRevisionsWithStateForEntityType(entityType: string, revId: IdType, itemId: IdType): Observable<RevEntityWithId>;
19
+ countRevisionsWithStateForEntityType(queryParams: MediusQueryParam, entityType: string): Observable<number>;
14
20
  static ɵfac: i0.ɵɵFactoryDeclaration<MngAuditRevisionsApiService, never>;
15
21
  static ɵprov: i0.ɵɵInjectableDeclaration<MngAuditRevisionsApiService>;
16
22
  }
@@ -0,0 +1,20 @@
1
+ import { Observable } from 'rxjs';
2
+ import { AMngBaseApiService } from '@mediusinc/mng-commons';
3
+ import { GuiEntityModel } from '../models';
4
+ import * as i0 from "@angular/core";
5
+ export declare class MngAuditService extends AMngBaseApiService {
6
+ private readonly CACHE_SIZE;
7
+ private readonly configService;
8
+ private readonly moduleConfig;
9
+ private revModelObs?;
10
+ private auditModelObs?;
11
+ constructor();
12
+ protected getServiceBasePath(): string | null;
13
+ protected getBasePath(): string;
14
+ get revModel$(): Observable<GuiEntityModel>;
15
+ get auditModel$(): Observable<GuiEntityModel[]>;
16
+ private requestRevModel;
17
+ private requestAuditModel;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<MngAuditService, never>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<MngAuditService>;
20
+ }
@@ -1,2 +1,3 @@
1
- import { RoutesBuilder } from '@mediusinc/mng-commons';
2
- export declare const auditRouteBuilder: RoutesBuilder;
1
+ import { Routes } from '@angular/router';
2
+ import { MngAuditModuleConfig } from './models/config.model';
3
+ export declare function provideMngAuditRoutes(config: MngAuditModuleConfig): Routes;
@@ -1,12 +1,15 @@
1
- import { OnInit } from '@angular/core';
2
- import { FieldType } from '@ngx-formly/core';
3
- import { MngFormlyFieldConfig } from '@mediusinc/mng-commons';
1
+ import { Injector, OnInit } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { AMngFormlyCustomFieldComponent, TableDescriptor } from '@mediusinc/mng-commons';
4
4
  import { EntityChanges } from '../../models/entity-changes.model';
5
5
  import * as i0 from "@angular/core";
6
- export declare class EntityChangesFieldComponent extends FieldType<MngFormlyFieldConfig> implements OnInit {
6
+ export declare class EntityChangesFieldComponent extends AMngFormlyCustomFieldComponent implements OnInit {
7
+ injector?: Injector;
7
8
  entityChanges: EntityChanges[];
9
+ modelFetched: BehaviorSubject<boolean>;
10
+ private auditModel;
8
11
  ngOnInit(): void;
9
- createDynamicDescriptor(entityChanges: EntityChanges): import("@mediusinc/mng-commons").TableDescriptor<any>;
12
+ createDescriptor(entityChanges: EntityChanges): TableDescriptor<any>;
10
13
  static ɵfac: i0.ɵɵFactoryDeclaration<EntityChangesFieldComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<EntityChangesFieldComponent, "mng-entity-changes-field", never, {}, {}, never, never, true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntityChangesFieldComponent, "mng-entity-changes-field", never, { "injector": { "alias": "injector"; "required": false; }; }, {}, never, never, true, never>;
12
15
  }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class MngAuditPageComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<MngAuditPageComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<MngAuditPageComponent, "mng-audit-page", never, {}, {}, never, never, true, never>;
5
+ }
@@ -1,14 +1,23 @@
1
- import { AMngTableviewRouteComponent, ActionDescriptor, ITableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons';
2
- import { MngAuditEntityRevisionsApiService } from '../../../api/services/audit-entity-revisions-api.service';
3
- import { EntityDropdownPageComponent } from './entity-dropdown-page.component';
1
+ import { WritableSignal } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { AMngTableviewRouteComponent, ActionDescriptor, LookupDataProvider, TableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons';
4
+ import { GuiEntityModel } from '../../../api/models';
5
+ import { RevEntityWithId } from '../../../models/revEntityWithId.model';
4
6
  import * as i0 from "@angular/core";
5
- export declare class AuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent<unknown, MngAuditEntityRevisionsApiService> {
6
- private dropdownPage;
7
- private mngAuditEntityRevisionsApiService;
8
- constructor(dropdownPage: EntityDropdownPageComponent, mngAuditEntityRevisionsApiService: MngAuditEntityRevisionsApiService);
9
- protected createTableviewDataProvider(): ITableviewDataProvider<unknown, MngAuditEntityRevisionsApiService>;
10
- protected createTableviewDescriptor(): TableviewDescriptor<unknown>;
11
- protected createActionDescriptors(): Array<ActionDescriptor<unknown>>;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<AuditEntityRevisionsPageComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<AuditEntityRevisionsPageComponent, "mng-audit-entity-revisions-page", never, {}, {}, never, never, true, never>;
7
+ export declare class MngAuditEntityRevisionsPageComponent extends AMngTableviewRouteComponent<RevEntityWithId, any> {
8
+ private router;
9
+ private auditService;
10
+ private revisisonsApiService;
11
+ revModel: GuiEntityModel;
12
+ selectedRevisionEntity: GuiEntityModel;
13
+ revisionEntitiesLookupProvider?: LookupDataProvider<GuiEntityModel, never>;
14
+ showTable: WritableSignal<boolean>;
15
+ constructor(router: Router);
16
+ ngOnInit(): void;
17
+ onRevisionEntityChange(): void;
18
+ protected createTableviewDescriptor(): TableviewDescriptor<import("../../../api/models").RevEntityWithStateDto>;
19
+ protected createTableviewDataProvider(): TableviewDataProvider<RevEntityWithId, unknown>;
20
+ createActionDescriptors(): Array<ActionDescriptor<RevEntityWithId>>;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<MngAuditEntityRevisionsPageComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<MngAuditEntityRevisionsPageComponent, "mng-audit-entity-revisions-page", never, {}, {}, never, never, true, never>;
14
23
  }
@@ -1,14 +1,17 @@
1
- import { OnInit } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { AMngTableviewRouteComponent, ITableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons';
1
+ import { OnInit, WritableSignal } from '@angular/core';
2
+ import { AMngTableviewRouteComponent, ActionDescriptor, ITableviewDataProvider, TableviewDescriptor } from '@mediusinc/mng-commons';
3
+ import { RevEntityWithChangesDto } from '../../../api/models';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class MngAuditRevisionsPageComponent extends AMngTableviewRouteComponent<any, unknown> implements OnInit {
6
6
  private revModel;
7
- descriptorCreated: BehaviorSubject<boolean>;
8
- private auditRevisionApiService;
7
+ private auditService;
8
+ private revisisonsApiService;
9
+ private injector;
10
+ showTable: WritableSignal<boolean>;
9
11
  ngOnInit(): void;
10
12
  protected createTableviewDescriptor(): TableviewDescriptor<unknown>;
11
13
  protected createTableviewDataProvider(): ITableviewDataProvider<unknown, any>;
14
+ protected createActionDescriptors(): Array<ActionDescriptor<RevEntityWithChangesDto>>;
12
15
  static ɵfac: i0.ɵɵFactoryDeclaration<MngAuditRevisionsPageComponent, never>;
13
16
  static ɵcmp: i0.ɵɵComponentDeclaration<MngAuditRevisionsPageComponent, "mng-audit-revisions-page", never, {}, {}, never, never, true, never>;
14
17
  }
@@ -0,0 +1,4 @@
1
+ export interface MngAuditModuleConfig {
2
+ apiBasePathConfigKey: string;
3
+ apiServiceBasePath?: string;
4
+ }
@@ -0,0 +1,17 @@
1
+ export declare enum NewMediusFilterMatchType {
2
+ Equals = "eq",
3
+ NotEquals = "ne",
4
+ Between = "bt",
5
+ Contains = "cn",
6
+ NotContains = "nc",
7
+ StartsWith = "sw",
8
+ EndsWith = "ew",
9
+ In = "in",
10
+ NotIn = "ni",
11
+ LessThan = "lt",
12
+ LessThanOrEqualTo = "le",
13
+ GreaterThan = "gt",
14
+ GreaterThanOrEqualTo = "ge",
15
+ Exists = "ex",
16
+ DoesNotExist = "nx"
17
+ }
@@ -0,0 +1,4 @@
1
+ import { RevEntityWithStateDto } from '../api/models';
2
+ export declare class RevEntityWithId extends RevEntityWithStateDto {
3
+ mergedId?: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { MngAuditModuleConfig } from '../models/config.model';
3
+ export declare const MNG_AUDIT_MODULE_CONFIG_IT: InjectionToken<MngAuditModuleConfig>;
@@ -0,0 +1,9 @@
1
+ import { EditorDescriptor, MediusQueryParam, TableDescriptor, TableviewDescriptor } from '@mediusinc/mng-commons';
2
+ import { GuiEntityModel, GuiPropertyModel, RevEntityWithStateDto } from '../api/models';
3
+ export declare class AuditUtil {
4
+ static addColumnsFromModel(descriptor: TableDescriptor<any>, propertyList: GuiPropertyModel[]): TableDescriptor<any>;
5
+ static addFieldsFromModel<T>(descriptor: EditorDescriptor<T>, revModel: GuiEntityModel): EditorDescriptor<T>;
6
+ static buildDescriptorForEntityRevision(descriptor: TableviewDescriptor<RevEntityWithStateDto>, revModel: GuiEntityModel, entityModel: GuiEntityModel): TableviewDescriptor<RevEntityWithStateDto>;
7
+ private static extractPropertyName;
8
+ static appendMediusQueryParamsToUrl(queryParams: MediusQueryParam): string;
9
+ }
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons-audit",
3
- "version": "3.0.0-rc.0",
3
+ "version": "3.0.0-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.0.0",
6
- "@angular/core": "^16.0.0",
7
- "@mediusinc/mng-commons": "workspace:../../commons"
6
+ "@angular/core": "^16.0.0"
8
7
  },
9
8
  "dependencies": {
10
9
  "tslib": "^2.5.0"