@mediusinc/mng-commons-audit 6.0.0-rc.2 → 6.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/pages/entity-revisions/audit-entity-revisions.page.component.mjs +2 -2
- package/esm2022/lib/components/pages/revisions/audit-revisions.page.component.mjs +2 -2
- package/fesm2022/mediusinc-mng-commons-audit.mjs +2 -2
- package/fesm2022/mediusinc-mng-commons-audit.mjs.map +1 -1
- package/lib/components/pages/revisions/audit-revisions.page.component.d.ts +1 -1
- package/package.json +2 -2
- package/version-info.json +6 -6
package/esm2022/lib/components/pages/entity-revisions/audit-entity-revisions.page.component.mjs
CHANGED
|
@@ -86,7 +86,7 @@ export class AuditEntityRevisionsPageComponent {
|
|
|
86
86
|
return [];
|
|
87
87
|
}
|
|
88
88
|
const entityName = selectedRevisionEntity.entityName;
|
|
89
|
-
const detailsAction = tableviewActionDetailsOnTable(descriptor.detailsEditor, {
|
|
89
|
+
const detailsAction = tableviewActionDetailsOnTable(descriptor.model, descriptor.detailsEditor, {
|
|
90
90
|
table: descriptor.table,
|
|
91
91
|
serviceProvider: AuditRevisionsApiService,
|
|
92
92
|
injector: this.#injector
|
|
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
159
159
|
type: Component,
|
|
160
160
|
args: [{ standalone: true, selector: 'mng-audit-entity-revisions-page', imports: [DropdownComponent, FormsModule, TranslateModule, FormlyModule, TableviewComponent], providers: [AuditRevisionsApiService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\">\n <div class=\"field mb-0\">\n <mng-dropdown\n id=\"revisionEntityDropdown\"\n [placeholder]=\"'pages.entityRevisions.dropdown.placeholder' | translate\"\n optionsLabelProperty=\"entityNameI18n\"\n [ngModel]=\"selectedRevisionEntity()\"\n (valueChange)=\"onRevisionEntityChange($event)\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"\n [showClear]=\"true\"></mng-dropdown>\n @if (!selectedRevisionEntity()) {\n <small class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n }\n </div>\n</div>\n@if (showTableview() && descriptor()) {\n <mng-tableview [descriptor]=\"descriptor()!\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n" }]
|
|
161
161
|
}] });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtZW50aXR5LXJldmlzaW9ucy5wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvZW50aXR5LXJldmlzaW9ucy9hdWRpdC1lbnRpdHktcmV2aXNpb25zLnBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLG9CQUFvQixFQUFZLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFB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QVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsR0FBRyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNMLENBQUM7K0dBdklRLGlDQUFpQzttR0FBakMsaUNBQWlDLDhFQUgvQixDQUFDLHdCQUF3QixDQUFDLDBCQzdCekMsczJCQW9CQSw0Q0RRYyxpQkFBaUIsK2JBQUUsV0FBVyw4VkFBRSxlQUFlLDJGQUFFLFlBQVksK0JBQUUsa0JBQWtCOzs0RkFJbEYsaUNBQWlDO2tCQVI3QyxTQUFTO2lDQUNNLElBQUksWUFDTixpQ0FBaUMsV0FFbEMsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxhQUNqRixDQUFDLHdCQUF3QixDQUFDLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtGb3JtbHlNb2R1bGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHt0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7Q29tbW9uc0ludGVybmFsRXJyb3IsIE51bGxhYmxlLCBlZmZlY3RXaXRoRGVwc30gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RHJvcGRvd25Db21wb25lbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZm9ybSc7XG5pbXBvcnQge2xvb2t1cERhdGFQcm92aWRlcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtL2FwaSc7XG5pbXBvcnQge1RhYmxldmlld0NvbXBvbmVudH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcnO1xuaW1wb3J0IHt0YWJsZXZpZXdBY3Rpb25EZXRhaWxzT25UYWJsZSwgdGFibGV2aWV3RGF0YVByb3ZpZGVyLCB0YWJsZXZpZXdEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0d1aUVudGl0eU1vZGVsRHRvfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzL2d1aUVudGl0eU1vZGVsJztcbmltcG9ydCB7QXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7QXVkaXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQuc2VydmljZSc7XG5pbXBvcnQge2F1ZGl0QnVpbGRUYWJsZXZpZXdFbnRpdHlSZXZpc2lvbn0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9kZXNjcmlwdG9yJztcbmltcG9ydCB7Z2V0STE4bkF1ZGl0RW50aXR5TmFtZX0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9pMThuJztcbmltcG9ydCB7R3VpRW50aXR5TW9kZWxXaXRoSTE4bn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2d1aUVudGl0eU1vZGVsV2l0aEkxOG4ubW9kZWwnO1xuaW1wb3J0IHtSZXZFbnRpdHlXaXRoSWR9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZXZFbnRpdHlXaXRoSWQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWF1ZGl0LWVudGl0eS1yZXZpc2lvbnMtcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW0Ryb3Bkb3duQ29tcG9uZW50LCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBGb3JtbHlNb2R1bGUsIFRhYmxldmlld0NvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdEVudGl0eVJldmlzaW9uc1BhZ2VDb21wb25lbnQge1xuICAgIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcmVhZG9ubHkgI3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIHJlYWRvbmx5ICNyb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcmVhZG9ubHkgI3RyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICByZWFkb25seSAjYXVkaXRTZXJ2aWNlID0gaW5qZWN0KEF1ZGl0U2VydmljZSk7XG5cbiAgICByZWFkb25seSAjcmV2TW9kZWwgPSB0b1NpZ25hbCh0aGlzLiNhdWRpdFNlcnZpY2UucmV2TW9kZWwkKTtcbiAgICByZWFkb25seSAjYXVkaXRNb2RlbCA9IHRvU2lnbmFsKHRoaXMuI2F1ZGl0U2VydmljZS5hdWRpdE1vZGVsJCk7XG4gICAgcmVhZG9ubHkgI2VudGl0eUNsYXNzID0gdG9TaWduYWwodGhpcy4jcm91dGUucGFyYW1NYXAucGlwZShtYXAocG0gPT4gcG0uZ2V0KCdlbnRpdHlDbGFzcycpID8/IHVuZGVmaW5lZCkpKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFJldmlzaW9uRW50aXR5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbnRpdGllcyA9IHRoaXMuI2F1ZGl0TW9kZWwoKTtcbiAgICAgICAgY29uc3QgZW50aXR5Q2xhc3MgPSB0aGlzLiNlbnRpdHlDbGFzcygpO1xuICAgICAgICBpZiAoZW50aXR5Q2xhc3MgJiYgZW50aXRpZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZSBvZiBlbnRpdGllcykge1xuICAgICAgICAgICAgICAgIGlmIChlLmVudGl0eU5hbWUgPT09IGVudGl0eUNsYXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkZXNjcmlwdG9yID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCByZXZNb2RlbCA9IHRoaXMuI3Jldk1vZGVsKCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmV2aXNpb25FbnRpdHkgPSB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkoKTtcbiAgICAgICAgaWYgKCFyZXZNb2RlbCB8fCAhc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlc2MgPSB0YWJsZXZpZXdEZXNjcmlwdG9yPFJldkVudGl0eVdpdGhJZD4oe2lkOiAnbWVyZ2VkSWQnfSk7XG4gICAgICAgIGF1ZGl0QnVpbGRUYWJsZXZpZXdFbnRpdHlSZXZpc2lvbih0aGlzLiN0cmFuc2xhdGUsIGRlc2MsIHJldk1vZGVsLCBzZWxlY3RlZFJldmlzaW9uRW50aXR5KTtcbiAgICAgICAgZGVzYy50YWJsZS53aXRoVGl0bGUoZ2V0STE4bkF1ZGl0RW50aXR5TmFtZSh0aGlzLiN0cmFuc2xhdGUsIHNlbGVjdGVkUmV2aXNpb25FbnRpdHkuZW50aXR5TmFtZSkpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhDb2x1bW5zUmVzaXphYmxlKCk7XG4gICAgICAgIGRlc2MudGFibGUud2l0aEN1cnJlbnRDb2x1bW5zUmVvcmRlcmFibGUoKTtcbiAgICAgICAgZGVzYy50YWJsZS53aXRoQ3VycmVudENvbHVtbnNUb2dnbGVhYmxlKCk7XG5cbiAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgfSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFQcm92aWRlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgcmV2TW9kZWwgPSB0aGlzLiNyZXZNb2RlbCgpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJldmlzaW9uRW50aXR5ID0gdGhpcy5zZWxlY3RlZFJldmlzaW9uRW50aXR5KCk7XG4gICAgICAgIGlmICghcmV2TW9kZWwgfHwgIXNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbnRpdHlOYW1lID0gc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICByZXR1cm4gdGFibGV2aWV3RGF0YVByb3ZpZGVyPFJldkVudGl0eVdpdGhJZCwgQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlPih7c2VydmljZTogQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlfSkud2l0aEdldEFsbCgocGFyYW1zLCBzZXJ2aWNlKSA9PlxuICAgICAgICAgICAgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lXG4gICAgICAgICAgICAgICAgPyBzZXJ2aWNlLmxpc3RSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKHBhcmFtcywgZW50aXR5TmFtZSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWRMaXN0ID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmV2RW50aXR5V2l0aFN0YXRlIG9mIHJlcy5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZDogUmV2RW50aXR5V2l0aElkID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlZElkOiByZXZFbnRpdHlXaXRoU3RhdGUucmV2RW50aXR5Py5bJ3JldiddICsgJ18nICsgcmV2RW50aXR5V2l0aFN0YXRlLmVudGl0eVN0YXRlPy5bJ2lkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2VHlwZTogcmV2RW50aXR5V2l0aFN0YXRlLnJldlR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5OiByZXZFbnRpdHlXaXRoU3RhdGUucmV2RW50aXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eVN0YXRlOiByZXZFbnRpdHlXaXRoU3RhdGUuZW50aXR5U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5Q2xhc3NOYW1lOiByZXZFbnRpdHlXaXRoU3RhdGUuZW50aXR5Q2xhc3NOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2RW50aXR5V2l0aFN0YXRlQW5kSWRMaXN0LnB1c2gocmV2RW50aXR5V2l0aFN0YXRlQW5kSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7ZGF0YTogcmV2RW50aXR5V2l0aFN0YXRlQW5kSWRMaXN0LCB0b3RhbENvdW50OiByZXMudG90YWxDb3VudH07XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHRocm93RXJyb3IoKCkgPT4gbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIGxpc3QuJykpXG4gICAgICAgICk7XG4gICAgfSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmV2aXNpb25FbnRpdHkgPSB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkoKTtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IHRoaXMuZGVzY3JpcHRvcigpO1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmV2aXNpb25FbnRpdHk/LmVudGl0eU5hbWUgfHwgIWRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbnRpdHlOYW1lID0gc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lO1xuICAgICAgICBjb25zdCBkZXRhaWxzQWN0aW9uID0gdGFibGV2aWV3QWN0aW9uRGV0YWlsc09uVGFibGUoZGVzY3JpcHRvci5kZXRhaWxzRWRpdG9yLCB7XG4gICAgICAgICAgICB0YWJsZTogZGVzY3JpcHRvci50YWJsZSxcbiAgICAgICAgICAgIHNlcnZpY2VQcm92aWRlcjogQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlLFxuICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yXG4gICAgICAgIH0pXG4gICAgICAgICAgICA/LndpdGhGZXRjaEZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFlbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcignTm8gcmV2aXNpb24gZW50aXR5IGlzIHByb3ZpZGVkIGZvciBkZXRhaWxzLicpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFjdHgucGFyYW1ldGVycy5pdGVtSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdObyBpdGVtIGlkIGZvciByZXZpc2lvbiBlbnRpdHkgZGV0YWlscyBpcyBwcm92aWRlZC4nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJldklkID0gY3R4LnBhcmFtZXRlcnMuaXRlbUlkLnRvU3RyaW5nKCkuc3BsaXQoJ18nKVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtSWQgPSBjdHgucGFyYW1ldGVycy5pdGVtSWQudG9TdHJpbmcoKS5zcGxpdCgnXycpWzFdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjdHguc2VydmljZUluc3RhbmNlLmZldGNoUmV2aXNpb25zV2l0aFN0YXRlRm9yRW50aXR5VHlwZShlbnRpdHlOYW1lLCByZXZJZCwgaXRlbUlkKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA/LndpdGhFZGl0b3JUaXRsZSgncGFnZXMuZW50aXR5UmV2aXNpb25zLmFjdGlvbnMuZGV0YWlscy5lZGl0b3IudGl0bGUnKTtcbiAgICAgICAgcmV0dXJuIGRldGFpbHNBY3Rpb24gPyBbZGV0YWlsc0FjdGlvbl0gOiBbXTtcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCByZXZpc2lvbkVudGl0aWVzTG9va3VwUHJvdmlkZXIgPSBsb29rdXBEYXRhUHJvdmlkZXI8R3VpRW50aXR5TW9kZWxXaXRoSTE4biwgQXVkaXRTZXJ2aWNlPih7c2VydmljZTogQXVkaXRTZXJ2aWNlfSkud2l0aExvb2t1cCgoKSA9PlxuICAgICAgICB0aGlzLiNhdWRpdFNlcnZpY2UuYXVkaXRNb2RlbCQucGlwZShcbiAgICAgICAgICAgIG1hcChtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWxJMThuID0gbW9kZWwgYXMgR3VpRW50aXR5TW9kZWxXaXRoSTE4bltdO1xuICAgICAgICAgICAgICAgIG1vZGVsSTE4bi5zb3J0KChtMSwgbTIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG0xLmVudGl0eU5hbWUgJiYgbTIuZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0xLmVudGl0eU5hbWUubG9jYWxlQ29tcGFyZShtMi5lbnRpdHlOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtMS5lbnRpdHlOYW1lICYmICFtMi5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1vZGVsSTE4bi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmVudGl0eU5hbWVJMThuID0gaXRlbS5lbnRpdHlOYW1lID8gZ2V0STE4bkF1ZGl0RW50aXR5TmFtZSh0aGlzLiN0cmFuc2xhdGUsIGl0ZW0uZW50aXR5TmFtZSkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vZGVsSTE4bjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICApO1xuICAgIHByb3RlY3RlZCBzaG93VGFibGV2aWV3ID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAjc2hvd1RhYmxldmlld0VmZmVjdFJlZiA9IGVmZmVjdFdpdGhEZXBzKFt0aGlzLmRlc2NyaXB0b3JdLCBkZXNjcmlwdG9yID0+IHtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RhYmxldmlldy5zZXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCBvblJldmlzaW9uRW50aXR5Q2hhbmdlKHZhbHVlOiBOdWxsYWJsZTxHdWlFbnRpdHlNb2RlbER0bz4pIHtcbiAgICAgICAgdGhpcy5zaG93VGFibGV2aWV3LnNldChmYWxzZSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLiNyb3V0ZXIudXJsO1xuICAgICAgICBjb25zdCByb3V0ZVByZWZpeCA9IGN1cnJlbnRVcmwuc3Vic3RyaW5nKDAsIGN1cnJlbnRVcmwubGFzdEluZGV4T2YoJy9hdWRpdC9lbnRpdHktcmV2aXNpb25zJykgKyAnL2F1ZGl0L2VudGl0eS1yZXZpc2lvbnMnLmxlbmd0aCk7XG5cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLiNyb3V0ZXIubmF2aWdhdGUoW3JvdXRlUHJlZml4LCB2YWx1ZS5lbnRpdHlOYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNyb3V0ZXIubmF2aWdhdGUoW3JvdXRlUHJlZml4XSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBtYi0wXCI+XG4gICAgICAgIDxtbmctZHJvcGRvd25cbiAgICAgICAgICAgIGlkPVwicmV2aXNpb25FbnRpdHlEcm9wZG93blwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BhZ2VzLmVudGl0eVJldmlzaW9ucy5kcm9wZG93bi5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgb3B0aW9uc0xhYmVsUHJvcGVydHk9XCJlbnRpdHlOYW1lSTE4blwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFJldmlzaW9uRW50aXR5KClcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUmV2aXNpb25FbnRpdHlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cInJldmlzaW9uRW50aXRpZXNMb29rdXBQcm92aWRlclwiXG4gICAgICAgICAgICBbc2hvd0NsZWFyXT1cInRydWVcIj48L21uZy1kcm9wZG93bj5cbiAgICAgICAgQGlmICghc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSgpKSB7XG4gICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJibG9ja1wiPlxuICAgICAgICAgICAgICAgIHt7ICdwYWdlcy5lbnRpdHlSZXZpc2lvbnMuZHJvcGRvd24uaGVscFRleHQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L2Rpdj5cbkBpZiAoc2hvd1RhYmxldmlldygpICYmIGRlc2NyaXB0b3IoKSkge1xuICAgIDxtbmctdGFibGV2aWV3IFtkZXNjcmlwdG9yXT1cImRlc2NyaXB0b3IoKSFcIiBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlcigpXCIgW2FjdGlvbnNdPVwiYWN0aW9ucygpXCI+PC9tbmctdGFibGV2aWV3PlxufVxuIl19
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtZW50aXR5LXJldmlzaW9ucy5wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9lbnRpdHktcmV2aXNpb25zL2F1ZGl0LWVudGl0eS1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvZW50aXR5LXJldmlzaW9ucy9hdWRpdC1lbnRpdHktcmV2aXNpb25zLnBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLG9CQUFvQixFQUFZLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyw2QkFBNkIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRy9ILE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQVk3RCxNQUFNLE9BQU8saUNBQWlDO0lBUjlDO1FBU2EsY0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixZQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLFdBQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXJDLGNBQVMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuRCxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELGlCQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4RiwyQkFBc0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3RELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEMsSUFBSSxXQUFXLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQzFCLEtBQUssTUFBTSxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUUsQ0FBQzt3QkFDL0IsT0FBTyxDQUFDLENBQUM7b0JBQ2IsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ2dCLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDbkQsT0FBTyxTQUFTLENBQUM7WUFDckIsQ0FBQztZQUVELE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFrQixFQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1lBQ3BFLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1lBQzNGLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUUxQyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNnQixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLFNBQVMsQ0FBQztZQUNyQixDQUFDO1lBRUQsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxDQUFDO1lBQ3JELDhEQUE4RDtZQUM5RCxPQUFPLHFCQUFxQixDQUE0QyxFQUFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ3hJLHNCQUFzQixDQUFDLFVBQVU7Z0JBQzdCLENBQUMsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDaEUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNOLE1BQU0sMkJBQTJCLEdBQUcsRUFBRSxDQUFDO29CQUN2QyxLQUFLLE1BQU0sa0JBQWtCLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUN4QyxNQUFNLHVCQUF1QixHQUFvQjs0QkFDN0MsUUFBUSxFQUFFLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUM7NEJBQzlGLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxPQUFPOzRCQUNuQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsU0FBUzs0QkFDdkMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLFdBQVc7NEJBQzNDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlO3lCQUN0RCxDQUFDO3dCQUNGLDJCQUEyQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO29CQUM5RCxDQUFDO29CQUNELE9BQU8sRUFBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLEVBQUMsQ0FBQztnQkFDM0UsQ0FBQyxDQUFDLENBQ0w7Z0JBQ0gsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLDBDQUEwQyxDQUFDLENBQUMsQ0FDL0YsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ2dCLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckQsT0FBTyxFQUFFLENBQUM7WUFDZCxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxDQUFDO1lBQ3JELE1BQU0sYUFBYSxHQUFHLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRTtnQkFDNUYsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN2QixlQUFlLEVBQUUsd0JBQXdCO2dCQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7YUFDM0IsQ0FBQztnQkFDRSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JHLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3pCLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksb0JBQW9CLENBQUMscURBQXFELENBQUMsQ0FBQyxDQUFDO2dCQUM3RyxDQUFDO2dCQUNELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUMsb0NBQW9DLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvRixDQUFDLENBQUM7Z0JBQ0YsRUFBRSxlQUFlLENBQUMsb0RBQW9ELENBQUMsQ0FBQztZQUM1RSxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO1FBRU8sbUNBQThCLEdBQUcsa0JBQWtCLENBQXVDLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUN6SSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLE1BQU0sU0FBUyxHQUFHLEtBQWlDLENBQUM7WUFDcEQsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxFQUFFLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3RELENBQUM7cUJBQU0sSUFBSSxFQUFFLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUN6QyxPQUFPLENBQUMsQ0FBQztnQkFDYixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDZCxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDakgsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FDTCxDQUNKLENBQUM7UUFDUSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4Qyw2REFBNkQ7UUFDN0QsNEJBQXVCLEdBQUcsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3JFLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0tBYU47SUF2SVksU0FBUyxDQUFvQjtJQUM3QixPQUFPLENBQWtCO0lBQ3pCLE1BQU0sQ0FBMEI7SUFDaEMsVUFBVSxDQUE0QjtJQUN0QyxhQUFhLENBQXdCO0lBRXJDLFNBQVMsQ0FBMEM7SUFDbkQsV0FBVyxDQUE0QztJQUN2RCxZQUFZLENBQXNGO0lBNkczRyw2REFBNkQ7SUFDN0QsdUJBQXVCLENBSXBCO0lBRU8sc0JBQXNCLENBQUMsS0FBa0M7UUFDL0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDcEMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWxJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQzsrR0F2SVEsaUNBQWlDO21HQUFqQyxpQ0FBaUMsOEVBSC9CLENBQUMsd0JBQXdCLENBQUMsMEJDN0J6QyxzMkJBb0JBLDRDRFFjLGlCQUFpQiwrYkFBRSxXQUFXLDhWQUFFLGVBQWUsMkZBQUUsWUFBWSwrQkFBRSxrQkFBa0I7OzRGQUlsRixpQ0FBaUM7a0JBUjdDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlDQUFpQyxXQUVsQyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGFBQ2pGLENBQUMsd0JBQXdCLENBQUMsbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0Zvcm1seU1vZHVsZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge3Rocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgTnVsbGFibGUsIGVmZmVjdFdpdGhEZXBzfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtJztcbmltcG9ydCB7bG9va3VwRGF0YVByb3ZpZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcbmltcG9ydCB7VGFibGV2aWV3Q29tcG9uZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldyc7XG5pbXBvcnQge3RhYmxldmlld0FjdGlvbkRldGFpbHNPblRhYmxlLCB0YWJsZXZpZXdEYXRhUHJvdmlkZXIsIHRhYmxldmlld0Rlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7R3VpRW50aXR5TW9kZWxEdG99IGZyb20gJy4uLy4uLy4uL2FwaS9tb2RlbHMvZ3VpRW50aXR5TW9kZWwnO1xuaW1wb3J0IHtBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2FwaS9zZXJ2aWNlcy9hdWRpdC1yZXZpc2lvbnMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHtBdWRpdFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2FwaS9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcbmltcG9ydCB7YXVkaXRCdWlsZFRhYmxldmlld0VudGl0eVJldmlzaW9ufSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHtnZXRJMThuQXVkaXRFbnRpdHlOYW1lfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2kxOG4nO1xuaW1wb3J0IHtHdWlFbnRpdHlNb2RlbFdpdGhJMThufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ3VpRW50aXR5TW9kZWxXaXRoSTE4bi5tb2RlbCc7XG5pbXBvcnQge1JldkVudGl0eVdpdGhJZH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3JldkVudGl0eVdpdGhJZC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtZW50aXR5LXJldmlzaW9ucy1wYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtZW50aXR5LXJldmlzaW9ucy5wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbRHJvcGRvd25Db21wb25lbnQsIEZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEZvcm1seU1vZHVsZSwgVGFibGV2aWV3Q29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1ZGl0RW50aXR5UmV2aXNpb25zUGFnZUNvbXBvbmVudCB7XG4gICAgcmVhZG9ubHkgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICByZWFkb25seSAjcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcmVhZG9ubHkgI3JvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICByZWFkb25seSAjdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHJlYWRvbmx5ICNhdWRpdFNlcnZpY2UgPSBpbmplY3QoQXVkaXRTZXJ2aWNlKTtcblxuICAgIHJlYWRvbmx5ICNyZXZNb2RlbCA9IHRvU2lnbmFsKHRoaXMuI2F1ZGl0U2VydmljZS5yZXZNb2RlbCQpO1xuICAgIHJlYWRvbmx5ICNhdWRpdE1vZGVsID0gdG9TaWduYWwodGhpcy4jYXVkaXRTZXJ2aWNlLmF1ZGl0TW9kZWwkKTtcbiAgICByZWFkb25seSAjZW50aXR5Q2xhc3MgPSB0b1NpZ25hbCh0aGlzLiNyb3V0ZS5wYXJhbU1hcC5waXBlKG1hcChwbSA9PiBwbS5nZXQoJ2VudGl0eUNsYXNzJykgPz8gdW5kZWZpbmVkKSkpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkUmV2aXNpb25FbnRpdHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudGl0aWVzID0gdGhpcy4jYXVkaXRNb2RlbCgpO1xuICAgICAgICBjb25zdCBlbnRpdHlDbGFzcyA9IHRoaXMuI2VudGl0eUNsYXNzKCk7XG4gICAgICAgIGlmIChlbnRpdHlDbGFzcyAmJiBlbnRpdGllcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIGVudGl0aWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUuZW50aXR5TmFtZSA9PT0gZW50aXR5Q2xhc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc2NyaXB0b3IgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJldk1vZGVsID0gdGhpcy4jcmV2TW9kZWwoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSA9IHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSgpO1xuICAgICAgICBpZiAoIXJldk1vZGVsIHx8ICFzZWxlY3RlZFJldmlzaW9uRW50aXR5Py5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVzYyA9IHRhYmxldmlld0Rlc2NyaXB0b3I8UmV2RW50aXR5V2l0aElkPih7aWQ6ICdtZXJnZWRJZCd9KTtcbiAgICAgICAgYXVkaXRCdWlsZFRhYmxldmlld0VudGl0eVJldmlzaW9uKHRoaXMuI3RyYW5zbGF0ZSwgZGVzYywgcmV2TW9kZWwsIHNlbGVjdGVkUmV2aXNpb25FbnRpdHkpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhUaXRsZShnZXRJMThuQXVkaXRFbnRpdHlOYW1lKHRoaXMuI3RyYW5zbGF0ZSwgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eS5lbnRpdHlOYW1lKSk7XG4gICAgICAgIGRlc2MudGFibGUud2l0aENvbHVtbnNSZXNpemFibGUoKTtcbiAgICAgICAgZGVzYy50YWJsZS53aXRoQ3VycmVudENvbHVtbnNSZW9yZGVyYWJsZSgpO1xuICAgICAgICBkZXNjLnRhYmxlLndpdGhDdXJyZW50Q29sdW1uc1RvZ2dsZWFibGUoKTtcblxuICAgICAgICByZXR1cm4gZGVzYztcbiAgICB9KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YVByb3ZpZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCByZXZNb2RlbCA9IHRoaXMuI3Jldk1vZGVsKCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmV2aXNpb25FbnRpdHkgPSB0aGlzLnNlbGVjdGVkUmV2aXNpb25FbnRpdHkoKTtcbiAgICAgICAgaWYgKCFyZXZNb2RlbCB8fCAhc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVudGl0eU5hbWUgPSBzZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHJldHVybiB0YWJsZXZpZXdEYXRhUHJvdmlkZXI8UmV2RW50aXR5V2l0aElkLCBBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2U+KHtzZXJ2aWNlOiBBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2V9KS53aXRoR2V0QWxsKChwYXJhbXMsIHNlcnZpY2UpID0+XG4gICAgICAgICAgICBzZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWVcbiAgICAgICAgICAgICAgICA/IHNlcnZpY2UubGlzdFJldmlzaW9uc1dpdGhTdGF0ZUZvckVudGl0eVR5cGUocGFyYW1zLCBlbnRpdHlOYW1lKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgIG1hcChyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZExpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXZFbnRpdHlXaXRoU3RhdGUgb2YgcmVzLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldkVudGl0eVdpdGhTdGF0ZUFuZElkOiBSZXZFbnRpdHlXaXRoSWQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VkSWQ6IHJldkVudGl0eVdpdGhTdGF0ZS5yZXZFbnRpdHk/LlsncmV2J10gKyAnXycgKyByZXZFbnRpdHlXaXRoU3RhdGUuZW50aXR5U3RhdGU/LlsnaWQnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZUeXBlOiByZXZFbnRpdHlXaXRoU3RhdGUucmV2VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZFbnRpdHk6IHJldkVudGl0eVdpdGhTdGF0ZS5yZXZFbnRpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5U3RhdGU6IHJldkVudGl0eVdpdGhTdGF0ZS5lbnRpdHlTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlDbGFzc05hbWU6IHJldkVudGl0eVdpdGhTdGF0ZS5lbnRpdHlDbGFzc05hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZExpc3QucHVzaChyZXZFbnRpdHlXaXRoU3RhdGVBbmRJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtkYXRhOiByZXZFbnRpdHlXaXRoU3RhdGVBbmRJZExpc3QsIHRvdGFsQ291bnQ6IHJlcy50b3RhbENvdW50fTtcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogdGhyb3dFcnJvcigoKSA9PiBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ05vIHJldmlzaW9uIGVudGl0eSBpcyBwcm92aWRlZCBmb3IgbGlzdC4nKSlcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSA9IHRoaXMuc2VsZWN0ZWRSZXZpc2lvbkVudGl0eSgpO1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gdGhpcy5kZXNjcmlwdG9yKCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSZXZpc2lvbkVudGl0eT8uZW50aXR5TmFtZSB8fCAhZGVzY3JpcHRvcikge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVudGl0eU5hbWUgPSBzZWxlY3RlZFJldmlzaW9uRW50aXR5LmVudGl0eU5hbWU7XG4gICAgICAgIGNvbnN0IGRldGFpbHNBY3Rpb24gPSB0YWJsZXZpZXdBY3Rpb25EZXRhaWxzT25UYWJsZShkZXNjcmlwdG9yLm1vZGVsLCBkZXNjcmlwdG9yLmRldGFpbHNFZGl0b3IsIHtcbiAgICAgICAgICAgIHRhYmxlOiBkZXNjcmlwdG9yLnRhYmxlLFxuICAgICAgICAgICAgc2VydmljZVByb3ZpZGVyOiBBdWRpdFJldmlzaW9uc0FwaVNlcnZpY2UsXG4gICAgICAgICAgICBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3JcbiAgICAgICAgfSlcbiAgICAgICAgICAgID8ud2l0aEZldGNoRnVuY3Rpb24oY3R4ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdObyByZXZpc2lvbiBlbnRpdHkgaXMgcHJvdmlkZWQgZm9yIGRldGFpbHMuJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWN0eC5wYXJhbWV0ZXJzLml0ZW1JZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ05vIGl0ZW0gaWQgZm9yIHJldmlzaW9uIGVudGl0eSBkZXRhaWxzIGlzIHByb3ZpZGVkLicpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcmV2SWQgPSBjdHgucGFyYW1ldGVycy5pdGVtSWQudG9TdHJpbmcoKS5zcGxpdCgnXycpWzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1JZCA9IGN0eC5wYXJhbWV0ZXJzLml0ZW1JZC50b1N0cmluZygpLnNwbGl0KCdfJylbMV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5zZXJ2aWNlSW5zdGFuY2UuZmV0Y2hSZXZpc2lvbnNXaXRoU3RhdGVGb3JFbnRpdHlUeXBlKGVudGl0eU5hbWUsIHJldklkLCBpdGVtSWQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgID8ud2l0aEVkaXRvclRpdGxlKCdwYWdlcy5lbnRpdHlSZXZpc2lvbnMuYWN0aW9ucy5kZXRhaWxzLmVkaXRvci50aXRsZScpO1xuICAgICAgICByZXR1cm4gZGV0YWlsc0FjdGlvbiA/IFtkZXRhaWxzQWN0aW9uXSA6IFtdO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJldmlzaW9uRW50aXRpZXNMb29rdXBQcm92aWRlciA9IGxvb2t1cERhdGFQcm92aWRlcjxHdWlFbnRpdHlNb2RlbFdpdGhJMThuLCBBdWRpdFNlcnZpY2U+KHtzZXJ2aWNlOiBBdWRpdFNlcnZpY2V9KS53aXRoTG9va3VwKCgpID0+XG4gICAgICAgIHRoaXMuI2F1ZGl0U2VydmljZS5hdWRpdE1vZGVsJC5waXBlKFxuICAgICAgICAgICAgbWFwKG1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2RlbEkxOG4gPSBtb2RlbCBhcyBHdWlFbnRpdHlNb2RlbFdpdGhJMThuW107XG4gICAgICAgICAgICAgICAgbW9kZWxJMThuLnNvcnQoKG0xLCBtMikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobTEuZW50aXR5TmFtZSAmJiBtMi5lbnRpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbTEuZW50aXR5TmFtZS5sb2NhbGVDb21wYXJlKG0yLmVudGl0eU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG0xLmVudGl0eU5hbWUgJiYgIW0yLmVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbW9kZWxJMThuLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZW50aXR5TmFtZUkxOG4gPSBpdGVtLmVudGl0eU5hbWUgPyBnZXRJMThuQXVkaXRFbnRpdHlOYW1lKHRoaXMuI3RyYW5zbGF0ZSwgaXRlbS5lbnRpdHlOYW1lKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9kZWxJMThuO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICk7XG4gICAgcHJvdGVjdGVkIHNob3dUYWJsZXZpZXcgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICNzaG93VGFibGV2aWV3RWZmZWN0UmVmID0gZWZmZWN0V2l0aERlcHMoW3RoaXMuZGVzY3JpcHRvcl0sIGRlc2NyaXB0b3IgPT4ge1xuICAgICAgICBpZiAoZGVzY3JpcHRvcikge1xuICAgICAgICAgICAgdGhpcy5zaG93VGFibGV2aWV3LnNldCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIG9uUmV2aXNpb25FbnRpdHlDaGFuZ2UodmFsdWU6IE51bGxhYmxlPEd1aUVudGl0eU1vZGVsRHRvPikge1xuICAgICAgICB0aGlzLnNob3dUYWJsZXZpZXcuc2V0KGZhbHNlKTtcbiAgICAgICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMuI3JvdXRlci51cmw7XG4gICAgICAgIGNvbnN0IHJvdXRlUHJlZml4ID0gY3VycmVudFVybC5zdWJzdHJpbmcoMCwgY3VycmVudFVybC5sYXN0SW5kZXhPZignL2F1ZGl0L2VudGl0eS1yZXZpc2lvbnMnKSArICcvYXVkaXQvZW50aXR5LXJldmlzaW9ucycubGVuZ3RoKTtcblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuI3JvdXRlci5uYXZpZ2F0ZShbcm91dGVQcmVmaXgsIHZhbHVlLmVudGl0eU5hbWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI3JvdXRlci5uYXZpZ2F0ZShbcm91dGVQcmVmaXhdKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIG1iLTBcIj5cbiAgICAgICAgPG1uZy1kcm9wZG93blxuICAgICAgICAgICAgaWQ9XCJyZXZpc2lvbkVudGl0eURyb3Bkb3duXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGFnZXMuZW50aXR5UmV2aXNpb25zLmRyb3Bkb3duLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBvcHRpb25zTGFiZWxQcm9wZXJ0eT1cImVudGl0eU5hbWVJMThuXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkUmV2aXNpb25FbnRpdHkoKVwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25SZXZpc2lvbkVudGl0eUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkYXRhUHJvdmlkZXJdPVwicmV2aXNpb25FbnRpdGllc0xvb2t1cFByb3ZpZGVyXCJcbiAgICAgICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiPjwvbW5nLWRyb3Bkb3duPlxuICAgICAgICBAaWYgKCFzZWxlY3RlZFJldmlzaW9uRW50aXR5KCkpIHtcbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImJsb2NrXCI+XG4gICAgICAgICAgICAgICAge3sgJ3BhZ2VzLmVudGl0eVJldmlzaW9ucy5kcm9wZG93bi5oZWxwVGV4dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuQGlmIChzaG93VGFibGV2aWV3KCkgJiYgZGVzY3JpcHRvcigpKSB7XG4gICAgPG1uZy10YWJsZXZpZXcgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvcigpIVwiIFtkYXRhUHJvdmlkZXJdPVwiZGF0YVByb3ZpZGVyKClcIiBbYWN0aW9uc109XCJhY3Rpb25zKClcIj48L21uZy10YWJsZXZpZXc+XG59XG4iXX0=
|
|
@@ -46,7 +46,7 @@ export class AuditRevisionsPageComponent {
|
|
|
46
46
|
});
|
|
47
47
|
this.dataProvider = signal(tableviewDataProvider({ service: AuditRevisionsApiService }).withGetAll((params, service) => service.getRevisionList(params).pipe(map(res => ({ data: res.data, totalCount: res.totalCount })))));
|
|
48
48
|
this.actions = computed(() => {
|
|
49
|
-
const detailsAction = tableviewActionDetailsOnTable(this.descriptor().detailsEditor, {
|
|
49
|
+
const detailsAction = tableviewActionDetailsOnTable(this.descriptor().model, this.descriptor().detailsEditor, {
|
|
50
50
|
table: this.descriptor().table,
|
|
51
51
|
serviceProvider: AuditRevisionsApiService,
|
|
52
52
|
injector: this.#injector
|
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
74
74
|
type: Component,
|
|
75
75
|
args: [{ standalone: true, selector: 'mng-audit-revisions-page', imports: [TableviewComponent], providers: [AuditRevisionsApiService], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (showTableview()) {\n <mng-tableview [descriptor]=\"descriptor()\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n" }]
|
|
76
76
|
}] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmV2aXNpb25zLnBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL3JldmlzaW9ucy9hdWRpdC1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvcmV2aXNpb25zL2F1ZGl0LXJldmlzaW9ucy5wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsNkJBQTZCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUcxSyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFDLHdCQUF3QixFQUFFLHVCQUF1QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHOUYsT0FBTyxFQUFDLDJCQUEy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MEJDeEJ6QywySkFHQSw0Q0RvQmMsa0JBQWtCOzs0RkFJbkIsMkJBQTJCO2tCQVJ2QyxTQUFTO2lDQUNNLElBQUksWUFDTiwwQkFBMEIsV0FFM0IsQ0FBQyxrQkFBa0IsQ0FBQyxhQUNsQixDQUFDLHdCQUF3QixDQUFDLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7aXRlbUlkVG9EZWZpbmVkfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHttb2RlbH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5pbXBvcnQge1RhYmxldmlld0NvbXBvbmVudH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcnO1xuaW1wb3J0IHtUYWJsZXZpZXdFZGl0b3JUeXBlRW51bSwgZWRpdG9yRGVzY3JpcHRvciwgdGFibGV2aWV3QWN0aW9uRGV0YWlsc09uVGFibGUsIHRhYmxldmlld0RhdGFQcm92aWRlciwgdGFibGV2aWV3RGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0b30gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9yZXZFbnRpdHlXaXRoQ2hhbmdlc0R0byc7XG5pbXBvcnQge0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LXJldmlzaW9ucy1hcGkuc2VydmljZSc7XG5pbXBvcnQge0F1ZGl0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xuaW1wb3J0IHthdWRpdEFkZENvbHVtbnNGcm9tTW9kZWwsIGF1ZGl0QWRkRmllbGRzRnJvbU1vZGVsfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHtSZXZFbnRpdHlEZXRhaWxlZH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jldi1lbnRpdHktZGV0YWlsZWQubW9kZWwnO1xuaW1wb3J0IHtSZXZFbnRpdHl9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZXYtZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7RW50aXR5Q2hhbmdlc0ZpZWxkQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lbnRpdHktY2hhbmdlcy1maWVsZC9lbnRpdHktY2hhbmdlcy1maWVsZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWF1ZGl0LXJldmlzaW9ucy1wYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtcmV2aXNpb25zLnBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtUYWJsZXZpZXdDb21wb25lbnRdLFxuICAgIHByb3ZpZGVyczogW0F1ZGl0UmV2aXNpb25zQXBpU2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXVkaXRSZXZpc2lvbnNQYWdlQ29tcG9uZW50IHtcbiAgICByZWFkb25seSAjaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHJlYWRvbmx5ICN0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgcmVhZG9ubHkgI2F1ZGl0U2VydmljZSA9IGluamVjdChBdWRpdFNlcnZpY2UpO1xuXG4gICAgcmVhZG9ubHkgI3Jldk1vZGVsID0gdG9TaWduYWwodGhpcy4jYXVkaXRTZXJ2aWNlLnJldk1vZGVsJCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dUYWJsZXZpZXcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLiNyZXZNb2RlbCgpICE9IG51bGwpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc2NyaXB0b3IgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJldk1vZGVsID0gdGhpcy4jcmV2TW9kZWwoKTtcbiAgICAgICAgaWYgKHJldk1vZGVsKSB7XG4gICAgICAgICAgICBjb25zdCBpZFByb3BlcnR5ID0gcmV2TW9kZWwucHJvcGVydGllcz8uZmlsdGVyKHByb3AgPT4gcHJvcC5pc0lkKS5tYXAocHJvcCA9PiBwcm9wLnJlc29sdmVkUHJvcGVydHlOYW1lKVswXTtcblxuICAgICAgICAgICAgY29uc3QgcmV2RW50TW9kZWwgPSBtb2RlbDxSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0bz4oe2lkOiAncmV2JywgdGl0bGU6ICdyZXYnLCBpMThuQmFzZTogJ01uZ1JldkVudGl0eSd9KTtcbiAgICAgICAgICAgIGlmIChpZFByb3BlcnR5KSByZXZFbnRNb2RlbC53aXRoSWRQcm9wZXJ0eVVuc2FmZShpZFByb3BlcnR5KTtcblxuICAgICAgICAgICAgY29uc3QgZGVzYyA9IHRhYmxldmlld0Rlc2NyaXB0b3I8UmV2RW50aXR5V2l0aENoYW5nZXNEdG8sIGtleW9mIFJldkVudGl0eSwga2V5b2YgUmV2RW50aXR5LCB1bmRlZmluZWQsIFJldkVudGl0eT4ocmV2RW50TW9kZWwpO1xuXG4gICAgICAgICAgICBjb25zdCBkZXRhaWxzRGVzY3JpcHRvciA9IGVkaXRvckRlc2NyaXB0b3I8UmV2RW50aXR5V2l0aENoYW5nZXNEdG8+KHtpMThuQmFzZTogJ01uZ1JldkVudGl0eScsIHRhYmxldmlld0VkaXRvclR5cGU6IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHN9KTtcbiAgICAgICAgICAgIGRldGFpbHNEZXNjcmlwdG9yLm1vZGVsLndpdGhJZFByb3BlcnR5VW5zYWZlKCdyZXZFbnRpdHkuJyArIGlkUHJvcGVydHkpO1xuXG4gICAgICAgICAgICBpZiAocmV2TW9kZWwucHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgIGF1ZGl0QWRkQ29sdW1uc0Zyb21Nb2RlbCh0aGlzLiN0cmFuc2xhdGUsIGRlc2MudGFibGUsIHJldk1vZGVsLmVudGl0eU5hbWUgPz8gJycsIHJldk1vZGVsLnByb3BlcnRpZXMpO1xuICAgICAgICAgICAgICAgIGF1ZGl0QWRkRmllbGRzRnJvbU1vZGVsPFJldkVudGl0eVdpdGhDaGFuZ2VzRHRvPih0aGlzLiN0cmFuc2xhdGUsIGRldGFpbHNEZXNjcmlwdG9yLCByZXZNb2RlbC5lbnRpdHlOYW1lID8/ICcnLCByZXZNb2RlbC5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGV0YWlsc0Rlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICAuYWRkRmllbGQoJ2VudGl0eU5hbWVDaGFuZ2VzTWFwJylcbiAgICAgICAgICAgICAgICAuYXNDdXN0b21Db21wb25lbnQoRW50aXR5Q2hhbmdlc0ZpZWxkQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkV3JhcHBlcnM6IFsnZmllbGQtbm8tbGFiZWwnXSxcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7aW5qZWN0b3I6IHRoaXMuI2luamVjdG9yfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLndpdGhEaXNhYmxlZCgpO1xuXG4gICAgICAgICAgICBkZXNjLndpdGhEZXRhaWxzRGVzY3JpcHRvcihkZXRhaWxzRGVzY3JpcHRvcik7IC8vIE1uZ1JldkVudGl0eSBpcyBleHRlbmRlZCBieSBNbmdSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0bywgc28gbm8gcmVhbCBoYXJtIGhlcmVcblxuICAgICAgICAgICAgcmV0dXJuIGRlc2M7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhYmxldmlld0Rlc2NyaXB0b3I8UmV2RW50aXR5PigpO1xuICAgIH0pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkYXRhUHJvdmlkZXIgPSBzaWduYWwoXG4gICAgICAgIHRhYmxldmlld0RhdGFQcm92aWRlcjxSZXZFbnRpdHksIEF1ZGl0UmV2aXNpb25zQXBpU2VydmljZT4oe3NlcnZpY2U6IEF1ZGl0UmV2aXNpb25zQXBpU2VydmljZX0pLndpdGhHZXRBbGwoKHBhcmFtcywgc2VydmljZSkgPT5cbiAgICAgICAgICAgIHNlcnZpY2UuZ2V0UmV2aXNpb25MaXN0KHBhcmFtcykucGlwZShtYXAocmVzID0+ICh7ZGF0YTogcmVzLmRhdGEsIHRvdGFsQ291bnQ6IHJlcy50b3RhbENvdW50fSkpKVxuICAgICAgICApXG4gICAgKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGV0YWlsc0FjdGlvbiA9IHRhYmxldmlld0FjdGlvbkRldGFpbHNPblRhYmxlKHRoaXMuZGVzY3JpcHRvcigpLmRldGFpbHNFZGl0b3IsIHtcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmRlc2NyaXB0b3IoKS50YWJsZSxcbiAgICAgICAgICAgIHNlcnZpY2VQcm92aWRlcjogQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlLFxuICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yXG4gICAgICAgIH0pPy53aXRoRmV0Y2hGdW5jdGlvbihjdHggPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGN0eC5zZXJ2aWNlSW5zdGFuY2UuZ2V0QWxsQ2hhbmdlc0ZvclJldmlzaW9uKGl0ZW1JZFRvRGVmaW5lZChjdHgucGFyYW1ldGVycy5pdGVtSWQpKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2RW50aXR5V2l0aENoYW5nZXM6IFJldkVudGl0eURldGFpbGVkID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2OiBjdHgucGFyYW1ldGVycy5pdGVtSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZFbnRpdHk6IGl0ZW0ucmV2RW50aXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZUNoYW5nZXNNYXA6IGl0ZW0uZW50aXR5TmFtZUNoYW5nZXNNYXBcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldkVudGl0eVdpdGhDaGFuZ2VzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZGV0YWlsc0FjdGlvbiA/IFtkZXRhaWxzQWN0aW9uXSA6IFtdO1xuICAgIH0pO1xufVxuIiwiQGlmIChzaG93VGFibGV2aWV3KCkpIHtcbiAgICA8bW5nLXRhYmxldmlldyBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yKClcIiBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlcigpXCIgW2FjdGlvbnNdPVwiYWN0aW9ucygpXCI+PC9tbmctdGFibGV2aWV3PlxufVxuIl19
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmV2aXNpb25zLnBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL3JldmlzaW9ucy9hdWRpdC1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvcmV2aXNpb25zL2F1ZGl0LXJldmlzaW9ucy5wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsNkJBQTZCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUcxSyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFDLHdCQUF3QixFQUFFLHVCQUF1QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHOUYsT0FBTyxFQUFDLDJCQUEy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QTNCLDJCQUEyQix1RUFIekIsQ0FBQyx3QkFBd0IsQ0FBQywwQkN4QnpDLDJKQUdBLDRDRG9CYyxrQkFBa0I7OzRGQUluQiwyQkFBMkI7a0JBUnZDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLDBCQUEwQixXQUUzQixDQUFDLGtCQUFrQixDQUFDLGFBQ2xCLENBQUMsd0JBQXdCLENBQUMsbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtpdGVtSWRUb0RlZmluZWR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge21vZGVsfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcbmltcG9ydCB7VGFibGV2aWV3Q29tcG9uZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldyc7XG5pbXBvcnQge1RhYmxldmlld0VkaXRvclR5cGVFbnVtLCBlZGl0b3JEZXNjcmlwdG9yLCB0YWJsZXZpZXdBY3Rpb25EZXRhaWxzT25UYWJsZSwgdGFibGV2aWV3RGF0YVByb3ZpZGVyLCB0YWJsZXZpZXdEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzL3JldkVudGl0eVdpdGhDaGFuZ2VzRHRvJztcbmltcG9ydCB7QXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQtcmV2aXNpb25zLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7QXVkaXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvYXVkaXQuc2VydmljZSc7XG5pbXBvcnQge2F1ZGl0QWRkQ29sdW1uc0Zyb21Nb2RlbCwgYXVkaXRBZGRGaWVsZHNGcm9tTW9kZWx9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvZGVzY3JpcHRvcic7XG5pbXBvcnQge1JldkVudGl0eURldGFpbGVkfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmV2LWVudGl0eS1kZXRhaWxlZC5tb2RlbCc7XG5pbXBvcnQge1JldkVudGl0eX0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jldi1lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnR9IGZyb20gJy4uLy4uL2VudGl0eS1jaGFuZ2VzLWZpZWxkL2VudGl0eS1jaGFuZ2VzLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYXVkaXQtcmV2aXNpb25zLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC1yZXZpc2lvbnMucGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1RhYmxldmlld0NvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdFJldmlzaW9uc1BhZ2VDb21wb25lbnQge1xuICAgIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcmVhZG9ubHkgI3RyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICByZWFkb25seSAjYXVkaXRTZXJ2aWNlID0gaW5qZWN0KEF1ZGl0U2VydmljZSk7XG5cbiAgICByZWFkb25seSAjcmV2TW9kZWwgPSB0b1NpZ25hbCh0aGlzLiNhdWRpdFNlcnZpY2UucmV2TW9kZWwkKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1RhYmxldmlldyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuI3Jldk1vZGVsKCkgIT0gbnVsbCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzY3JpcHRvciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgcmV2TW9kZWwgPSB0aGlzLiNyZXZNb2RlbCgpO1xuICAgICAgICBpZiAocmV2TW9kZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkUHJvcGVydHkgPSByZXZNb2RlbC5wcm9wZXJ0aWVzPy5maWx0ZXIocHJvcCA9PiBwcm9wLmlzSWQpLm1hcChwcm9wID0+IHByb3AucmVzb2x2ZWRQcm9wZXJ0eU5hbWUpWzBdO1xuXG4gICAgICAgICAgICBjb25zdCByZXZFbnRNb2RlbCA9IG1vZGVsPFJldkVudGl0eVdpdGhDaGFuZ2VzRHRvPih7aWQ6ICdyZXYnLCB0aXRsZTogJ3JldicsIGkxOG5CYXNlOiAnTW5nUmV2RW50aXR5J30pO1xuICAgICAgICAgICAgaWYgKGlkUHJvcGVydHkpIHJldkVudE1vZGVsLndpdGhJZFByb3BlcnR5VW5zYWZlKGlkUHJvcGVydHkpO1xuXG4gICAgICAgICAgICBjb25zdCBkZXNjID0gdGFibGV2aWV3RGVzY3JpcHRvcjxSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0bywga2V5b2YgUmV2RW50aXR5LCBrZXlvZiBSZXZFbnRpdHksIHVuZGVmaW5lZCwgUmV2RW50aXR5PihyZXZFbnRNb2RlbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGRldGFpbHNEZXNjcmlwdG9yID0gZWRpdG9yRGVzY3JpcHRvcjxSZXZFbnRpdHlXaXRoQ2hhbmdlc0R0bz4oe2kxOG5CYXNlOiAnTW5nUmV2RW50aXR5JywgdGFibGV2aWV3RWRpdG9yVHlwZTogVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRGV0YWlsc30pO1xuICAgICAgICAgICAgZGV0YWlsc0Rlc2NyaXB0b3IubW9kZWwud2l0aElkUHJvcGVydHlVbnNhZmUoJ3JldkVudGl0eS4nICsgaWRQcm9wZXJ0eSk7XG5cbiAgICAgICAgICAgIGlmIChyZXZNb2RlbC5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgYXVkaXRBZGRDb2x1bW5zRnJvbU1vZGVsKHRoaXMuI3RyYW5zbGF0ZSwgZGVzYy50YWJsZSwgcmV2TW9kZWwuZW50aXR5TmFtZSA/PyAnJywgcmV2TW9kZWwucHJvcGVydGllcyk7XG4gICAgICAgICAgICAgICAgYXVkaXRBZGRGaWVsZHNGcm9tTW9kZWw8UmV2RW50aXR5V2l0aENoYW5nZXNEdG8+KHRoaXMuI3RyYW5zbGF0ZSwgZGV0YWlsc0Rlc2NyaXB0b3IsIHJldk1vZGVsLmVudGl0eU5hbWUgPz8gJycsIHJldk1vZGVsLnByb3BlcnRpZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkZXRhaWxzRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIC5hZGRGaWVsZCgnZW50aXR5TmFtZUNoYW5nZXNNYXAnKVxuICAgICAgICAgICAgICAgIC5hc0N1c3RvbUNvbXBvbmVudChFbnRpdHlDaGFuZ2VzRmllbGRDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRXcmFwcGVyczogWydmaWVsZC1uby1sYWJlbCddLFxuICAgICAgICAgICAgICAgICAgICBpbnB1dHM6IHtpbmplY3RvcjogdGhpcy4jaW5qZWN0b3J9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAud2l0aERpc2FibGVkKCk7XG5cbiAgICAgICAgICAgIGRlc2Mud2l0aERldGFpbHNEZXNjcmlwdG9yKGRldGFpbHNEZXNjcmlwdG9yKTsgLy8gTW5nUmV2RW50aXR5IGlzIGV4dGVuZGVkIGJ5IE1uZ1JldkVudGl0eVdpdGhDaGFuZ2VzRHRvLCBzbyBubyByZWFsIGhhcm0gaGVyZVxuXG4gICAgICAgICAgICByZXR1cm4gZGVzYztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFibGV2aWV3RGVzY3JpcHRvcjxSZXZFbnRpdHk+KCk7XG4gICAgfSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFQcm92aWRlciA9IHNpZ25hbChcbiAgICAgICAgdGFibGV2aWV3RGF0YVByb3ZpZGVyPFJldkVudGl0eSwgQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlPih7c2VydmljZTogQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlfSkud2l0aEdldEFsbCgocGFyYW1zLCBzZXJ2aWNlKSA9PlxuICAgICAgICAgICAgc2VydmljZS5nZXRSZXZpc2lvbkxpc3QocGFyYW1zKS5waXBlKG1hcChyZXMgPT4gKHtkYXRhOiByZXMuZGF0YSwgdG90YWxDb3VudDogcmVzLnRvdGFsQ291bnR9KSkpXG4gICAgICAgIClcbiAgICApO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBhY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBkZXRhaWxzQWN0aW9uID0gdGFibGV2aWV3QWN0aW9uRGV0YWlsc09uVGFibGUodGhpcy5kZXNjcmlwdG9yKCkubW9kZWwsIHRoaXMuZGVzY3JpcHRvcigpLmRldGFpbHNFZGl0b3IsIHtcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmRlc2NyaXB0b3IoKS50YWJsZSxcbiAgICAgICAgICAgIHNlcnZpY2VQcm92aWRlcjogQXVkaXRSZXZpc2lvbnNBcGlTZXJ2aWNlLFxuICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yXG4gICAgICAgIH0pPy53aXRoRmV0Y2hGdW5jdGlvbihjdHggPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGN0eC5zZXJ2aWNlSW5zdGFuY2UuZ2V0QWxsQ2hhbmdlc0ZvclJldmlzaW9uKGl0ZW1JZFRvRGVmaW5lZChjdHgucGFyYW1ldGVycy5pdGVtSWQpKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2RW50aXR5V2l0aENoYW5nZXM6IFJldkVudGl0eURldGFpbGVkID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2OiBjdHgucGFyYW1ldGVycy5pdGVtSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZFbnRpdHk6IGl0ZW0ucmV2RW50aXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZUNoYW5nZXNNYXA6IGl0ZW0uZW50aXR5TmFtZUNoYW5nZXNNYXBcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldkVudGl0eVdpdGhDaGFuZ2VzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZGV0YWlsc0FjdGlvbiA/IFtkZXRhaWxzQWN0aW9uXSA6IFtdO1xuICAgIH0pO1xufVxuIiwiQGlmIChzaG93VGFibGV2aWV3KCkpIHtcbiAgICA8bW5nLXRhYmxldmlldyBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yKClcIiBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlcigpXCIgW2FjdGlvbnNdPVwiYWN0aW9ucygpXCI+PC9tbmctdGFibGV2aWV3PlxufVxuIl19
|
|
@@ -407,7 +407,7 @@ class AuditEntityRevisionsPageComponent {
|
|
|
407
407
|
return [];
|
|
408
408
|
}
|
|
409
409
|
const entityName = selectedRevisionEntity.entityName;
|
|
410
|
-
const detailsAction = tableviewActionDetailsOnTable(descriptor.detailsEditor, {
|
|
410
|
+
const detailsAction = tableviewActionDetailsOnTable(descriptor.model, descriptor.detailsEditor, {
|
|
411
411
|
table: descriptor.table,
|
|
412
412
|
serviceProvider: AuditRevisionsApiService,
|
|
413
413
|
injector: this.#injector
|
|
@@ -634,7 +634,7 @@ class AuditRevisionsPageComponent {
|
|
|
634
634
|
});
|
|
635
635
|
this.dataProvider = signal(tableviewDataProvider({ service: AuditRevisionsApiService }).withGetAll((params, service) => service.getRevisionList(params).pipe(map(res => ({ data: res.data, totalCount: res.totalCount })))));
|
|
636
636
|
this.actions = computed(() => {
|
|
637
|
-
const detailsAction = tableviewActionDetailsOnTable(this.descriptor().detailsEditor, {
|
|
637
|
+
const detailsAction = tableviewActionDetailsOnTable(this.descriptor().model, this.descriptor().detailsEditor, {
|
|
638
638
|
table: this.descriptor().table,
|
|
639
639
|
serviceProvider: AuditRevisionsApiService,
|
|
640
640
|
injector: this.#injector
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediusinc-mng-commons-audit.mjs","sources":["../../src/lib/service/module-config.token.ts","../../src/lib/api/services/audit-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/api/services/audit-revisions-api.service.ts","../../src/lib/api/models/guiPropertyType.ts","../../src/lib/api/models/revisionType.ts","../../src/lib/helpers/i18n.ts","../../src/lib/helpers/descriptor.ts","../../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/helpers/entity-changes.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":["import {InjectionToken} from '@angular/core';\n\nimport {CommonsAuditModuleConfig} from '../models/config.model';\n\nexport const COMMONS_AUDIT_MODULE_CONFIG_IT = new InjectionToken<CommonsAuditModuleConfig>('CommonsAuditModuleConfig');\n","/* eslint-disable */\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {inject} from '@angular/core';\n\nimport {CommonsConfigurationService} from '@mediusinc/mng-commons/core';\n\nimport {COMMONS_AUDIT_MODULE_CONFIG_IT} from '../../service/module-config.token';\n\nexport class AuditApiService {\n protected readonly http: HttpClient;\n public readonly defaultHeaders = new HttpHeaders();\n protected readonly configService: CommonsConfigurationService;\n protected readonly moduleConfig = inject(COMMONS_AUDIT_MODULE_CONFIG_IT);\n\n protected constructor() {\n this.http = inject(HttpClient);\n this.configService = CommonsConfigurationService.get();\n }\n\n protected getBasePath(): string {\n return `${this.configService.getConfigValue(this.moduleConfig.apiBasePathConfigKey)}`;\n }\n\n protected getServiceBasePath(): string | null {\n return this.moduleConfig.apiServiceBasePath ?? '';\n }\n\n protected getUrl(...pathSegments: Array<string>): string {\n let baseUrl = this.getBasePath();\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.substring(0, baseUrl.length - 1);\n }\n const serviceBasePath = this.getServiceBasePath();\n let path = [serviceBasePath, ...pathSegments].filter(s => s && s.length).join('/');\n // omit first and last '/'\n if (path.startsWith('/')) {\n path = path.substring(1);\n }\n if (path.endsWith('/')) {\n path = path.substring(0, path.length - 1);\n }\n // replace any double '//' from path that could come from joining paths\n path = path.replace('//', '/');\n return `${baseUrl}/${path}`;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types */\nimport {Injectable} from '@angular/core';\n\nimport {Observable, shareReplay} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {GuiEntityModelDto} from '../models/guiEntityModel';\nimport {AuditApiService} from './audit-api.service';\n\n@Injectable()\nexport class AuditService extends AuditApiService {\n private readonly CACHE_SIZE = 1;\n\n private revModelObs?: Observable<GuiEntityModelDto>;\n private auditModelObs?: Observable<Array<GuiEntityModelDto>>;\n\n constructor() {\n super();\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<GuiEntityModelDto> {\n let localVarHeaders = this.defaultHeaders;\n localVarHeaders = localVarHeaders.set('Accept', 'application/json');\n return this.http.get<GuiEntityModelDto>(this.getUrl(`/rev-model`), {\n headers: localVarHeaders\n });\n }\n\n private requestAuditModel(): Observable<Array<GuiEntityModelDto>> {\n let localVarHeaders = this.defaultHeaders;\n localVarHeaders = localVarHeaders.set('Accept', 'application/json');\n return this.http\n .get<Array<GuiEntityModelDto>>(this.getUrl(`/audit-models`), {\n headers: localVarHeaders\n })\n .pipe(\n map(response => {\n if (Array.isArray(response)) {\n return response.map(item => {\n return {\n entityName: item.entityName,\n properties: item.properties\n };\n });\n } else {\n return [];\n }\n })\n );\n }\n}\n","import {ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AuditPageComponent {}\n","<router-outlet></router-outlet>\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types */\nimport {Injectable} from '@angular/core';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {CommonsInternalError, DataListParams, IdType, dataListParamsToUrlQuery} from '@mediusinc/mng-commons/core';\n\nimport {RevEntityWithId} from '../../models/revEntityWithId.model';\nimport {GetAllResponse} from '../models/get-all-response.model';\nimport {RevEntityWithChangesDto} from '../models/revEntityWithChangesDto';\nimport {RevEntityWithStateDto} from '../models/revEntityWithStateDto';\nimport {AuditApiService} from './audit-api.service';\n\n@Injectable()\nexport class AuditRevisionsApiService extends AuditApiService {\n constructor() {\n super();\n }\n public getRevisionList(params: DataListParams): Observable<GetAllResponse<{[key: string]: unknown}>> {\n return this.http.get<GetAllResponse<{[key: string]: unknown}>>(this.getUrl(''), {\n params: dataListParamsToUrlQuery(params)\n });\n }\n\n public getAllChangesForRevision(revId: IdType): Observable<RevEntityWithChangesDto> {\n return this.http.get<RevEntityWithChangesDto>(this.getUrl(`/changes/${revId}`));\n }\n\n public listRevisionsWithStateForEntityType(params: DataListParams, entityType: string): Observable<GetAllResponse<RevEntityWithStateDto>> {\n let localVarHeaders = this.defaultHeaders;\n localVarHeaders = localVarHeaders.set('Accept', 'application/json');\n return this.http\n .get<GetAllResponse<any>>(this.getUrl(`/states/${entityType}`), {\n params: dataListParamsToUrlQuery(params),\n headers: localVarHeaders\n })\n .pipe(\n map(res => {\n return <GetAllResponse<RevEntityWithStateDto>>{\n data: res.data.map(item => {\n return {\n revEntity: item.revEntity,\n revType: item.revType,\n entityClassName: item.entityClassName,\n entityState: item.entityState\n };\n }),\n totalCount: res.totalCount\n };\n })\n );\n }\n\n public fetchRevisionsWithStateForEntityType(entityType: string, revId: IdType, itemId: IdType): Observable<RevEntityWithId> {\n let localVarHeaders = this.defaultHeaders;\n localVarHeaders = localVarHeaders.set('Accept', 'application/json');\n return this.http\n .get<GetAllResponse<any>>(this.getUrl(`/states/${entityType}?rev=eq:${revId}&id=eq:${itemId}`), {\n headers: localVarHeaders\n })\n .pipe(\n map(res =>\n res.data.map(i => {\n i.mergedId = i.revEntity?.['rev'] + '_' + i.entityState?.['id'];\n return i as RevEntityWithId;\n })\n ),\n map(items => {\n if (items.length > 0) {\n return items[0];\n }\n throw new CommonsInternalError(`Entity revision ${revId} for ${entityType} with id ${itemId} was not found`);\n })\n );\n }\n}\n","export enum GuiPropertyTypeDto {\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","import {enumModel} from '@mediusinc/mng-commons/model';\n\nexport enum RevisionTypeDto {\n Add = 'ADD',\n Mod = 'MOD',\n Del = 'DEL'\n}\n\nexport const revisionTypeEnum = enumModel(RevisionTypeDto.Add, RevisionTypeDto, 'MngRevisionTypeDto');\n","import {TranslateService} from '@ngx-translate/core';\n\nimport {getI18n, getI18nTypePropertyKey} from '@mediusinc/mng-commons/core';\n\nconst i18nBaseEntityKey = 'AuditEntities';\n\nexport function getI18nAuditEntityName(translate: TranslateService, entityName: string): string {\n return getI18n(translate, {}, `${i18nBaseEntityKey}.${entityName}.name`, `${i18nBaseEntityKey}.${entityName}`, `${entityName}.name`) ?? entityName;\n}\n\nexport function getI18nAuditEntityProperty(\n translate: TranslateService,\n entityName: string,\n propertyName: string,\n modelType: 'revEntity' | 'entityState' | undefined = 'entityState'\n): string {\n if (modelType === 'revEntity') {\n return 'MngRevEntity.properties.' + propertyName;\n } else {\n return getI18n(translate, {}, getI18nTypePropertyKey(`${i18nBaseEntityKey}.${entityName}`, propertyName), getI18nTypePropertyKey(entityName, propertyName)) ?? propertyName;\n }\n}\n","import {TranslateService} from '@ngx-translate/core';\n\nimport {EnumType} from '@mediusinc/mng-commons/core';\nimport {lookupDataProvider} from '@mediusinc/mng-commons/form/api';\nimport {enumModelGeneric} from '@mediusinc/mng-commons/model';\nimport {ColumnDescriptor, TableDescriptorInst} from '@mediusinc/mng-commons/table/api';\nimport {AFieldDescriptor, EditorDescriptorInst, TableviewDescriptorType} from '@mediusinc/mng-commons/tableview/api';\n\nimport {GuiEntityModelDto} from '../api/models/guiEntityModel';\nimport {GuiPropertyModelDto} from '../api/models/guiPropertyModel';\nimport {GuiPropertyTypeDto} from '../api/models/guiPropertyType';\nimport {revisionTypeEnum} from '../api/models/revisionType';\nimport {getI18nAuditEntityProperty} from '../helpers/i18n';\nimport {RevEntityWithId} from '../models/revEntityWithId.model';\n\nexport function auditAddColumnsFromModel<T>(\n translate: TranslateService,\n descriptor: TableDescriptorInst<T>,\n entityName: string,\n properties: GuiPropertyModelDto[],\n modelType: 'revEntity' | 'entityState' | undefined = undefined,\n addFilters = true,\n addSorts = true\n): TableDescriptorInst<T> {\n for (const property of properties) {\n if (!property.resolvedPropertyName) {\n continue;\n }\n\n const isEnum = property.propertyType === GuiPropertyTypeDto.Enum;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let column: ColumnDescriptor<any, T> | null = null;\n if (isEnum) {\n if (!property.possibleEnumValues) {\n continue;\n }\n\n const enumModel = getEnumModel(property);\n if (enumModel) {\n column = descriptor.addColumnEnum(property.resolvedPropertyName as keyof T, enumModel);\n if (addFilters) {\n descriptor.addFilterLookupEnum(column.property as keyof T, enumModel, property.possibleEnumValues);\n }\n } else {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName);\n if (addFilters) {\n descriptor.addFilterLookupUnsafe(\n column.property,\n lookupDataProvider<string>().withLookup(() => property.possibleEnumValues ?? [])\n );\n }\n }\n } else if (property.propertyType === GuiPropertyTypeDto.Number) {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).asNumber();\n } else if (property.propertyType === GuiPropertyTypeDto.Boolean) {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).asBoolean();\n } else if (property.propertyType === GuiPropertyTypeDto.LocalDate) {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).asDate('dd. MM yyyy');\n } else if (property.propertyType === GuiPropertyTypeDto.OffsetDateTime) {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).asDate('dd. MM yyyy HH:mm');\n } else {\n // string / wildcard\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).withTitle(getI18nAuditEntityProperty(translate, entityName, property.propertyName ?? '', modelType));\n }\n\n if (modelType) {\n column.withGetter((value, item) => item?.[modelType as keyof object]?.[property.resolvedPropertyName as keyof object]);\n }\n\n column.withTitle(getI18nAuditEntityProperty(translate, entityName, property.propertyName ?? '', modelType));\n\n if (!isEnum && addFilters) {\n descriptor.addFilterFromColumnDescriptorUnsafe(column).withTitle(column.title ?? '');\n }\n if (addSorts) {\n descriptor.withSortUnsafe(column.property);\n }\n }\n return descriptor;\n}\n\nexport function auditAddFieldsFromModel<T>(\n translate: TranslateService,\n descriptor: EditorDescriptorInst<T>,\n entityName: string,\n properties: GuiPropertyModelDto[],\n modelType: 'revEntity' | 'entityState' = 'revEntity'\n): EditorDescriptorInst<T> {\n for (const property of properties) {\n if (!property.resolvedPropertyName) {\n continue;\n }\n\n const fieldPrepend = `${modelType}.`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let field: AFieldDescriptor<any, any>;\n\n if (property.propertyType === GuiPropertyTypeDto.Enum) {\n const enumModel = getEnumModel(property);\n if (enumModel) {\n if (!property.possibleEnumValues) {\n continue;\n }\n\n field = descriptor.addFieldLookupEnum((fieldPrepend + property.resolvedPropertyName) as keyof T, enumModel, property.possibleEnumValues);\n } else {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName);\n }\n } else if (property.propertyType === GuiPropertyTypeDto.Number) {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName).asNumber();\n } else if (property.propertyType === GuiPropertyTypeDto.Boolean) {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName);\n } else if (property.propertyType === GuiPropertyTypeDto.LocalDate) {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName).asDatePicker({format: 'dd. MMM yyyy'});\n } else if (property.propertyType === GuiPropertyTypeDto.OffsetDateTime) {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName).asDatePicker({\n format: 'dd. MM yy',\n showTime: true,\n showSeconds: false\n });\n } else {\n // string / wildcard\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName);\n }\n\n field.withLabel(getI18nAuditEntityProperty(translate, entityName, property.propertyName ?? '', modelType)).withDisabled();\n }\n return descriptor;\n}\n\nexport function auditBuildTableviewEntityRevision(\n translate: TranslateService,\n descriptor: TableviewDescriptorType<RevEntityWithId>,\n revModel: GuiEntityModelDto,\n entityModel: GuiEntityModelDto\n): TableviewDescriptorType<RevEntityWithId> {\n const revType = descriptor.addColumnEnum('revType', revisionTypeEnum).withTitle('MngEntityRevisionChangeState.properties.revType');\n descriptor.addFieldLookupEnum('revType', revisionTypeEnum).withLabel('MngEntityRevisionChangeState.properties.revType');\n\n descriptor.table.addFilterFromColumnDescriptorUnsafe(revType);\n\n if (revModel.properties) {\n auditAddColumnsFromModel(translate, descriptor.table, revModel.entityName ?? '', revModel.properties, 'revEntity');\n auditAddFieldsFromModel(translate, descriptor.detailsEditor, revModel.entityName ?? '', revModel.properties, 'revEntity');\n }\n if (entityModel.properties) {\n auditAddColumnsFromModel(translate, descriptor.table, entityModel.entityName ?? '', entityModel.properties, 'entityState');\n auditAddFieldsFromModel(translate, descriptor.detailsEditor, entityModel.entityName ?? '', entityModel.properties, 'entityState');\n }\n\n return descriptor;\n}\n\nexport function getEnumModel(property: GuiPropertyModelDto) {\n if (Array.isArray(property.possibleEnumValues)) {\n const enumType = property.possibleEnumValues?.reduce(\n (acc, v) => {\n const constName = v\n .split('_')\n .map(s => (s.length > 1 ? s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase() : s))\n .join('');\n if (constName !== v) {\n acc[constName] = v;\n }\n acc[v] = constName;\n return acc;\n },\n <EnumType>{}\n );\n return enumModelGeneric(enumType, property.enumClassSimpleName);\n }\n return null;\n}\n","import {ChangeDetectionStrategy, Component, Injector, computed, inject, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\n\nimport {FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {throwError} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {CommonsInternalError, Nullable, effectWithDeps} from '@mediusinc/mng-commons/core';\nimport {DropdownComponent} from '@mediusinc/mng-commons/form';\nimport {lookupDataProvider} from '@mediusinc/mng-commons/form/api';\nimport {TableviewComponent} from '@mediusinc/mng-commons/tableview';\nimport {tableviewActionDetailsOnTable, tableviewDataProvider, tableviewDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\nimport {GuiEntityModelDto} from '../../../api/models/guiEntityModel';\nimport {AuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {AuditService} from '../../../api/services/audit.service';\nimport {auditBuildTableviewEntityRevision} from '../../../helpers/descriptor';\nimport {getI18nAuditEntityName} from '../../../helpers/i18n';\nimport {GuiEntityModelWithI18n} from '../../../models/guiEntityModelWithI18n.model';\nimport {RevEntityWithId} from '../../../models/revEntityWithId.model';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-entity-revisions-page',\n templateUrl: './audit-entity-revisions.page.component.html',\n imports: [DropdownComponent, FormsModule, TranslateModule, FormlyModule, TableviewComponent],\n providers: [AuditRevisionsApiService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AuditEntityRevisionsPageComponent {\n readonly #injector = inject(Injector);\n readonly #router = inject(Router);\n readonly #route = inject(ActivatedRoute);\n readonly #translate = inject(TranslateService);\n readonly #auditService = inject(AuditService);\n\n readonly #revModel = toSignal(this.#auditService.revModel$);\n readonly #auditModel = toSignal(this.#auditService.auditModel$);\n readonly #entityClass = toSignal(this.#route.paramMap.pipe(map(pm => pm.get('entityClass') ?? undefined)));\n\n protected readonly selectedRevisionEntity = computed(() => {\n const entities = this.#auditModel();\n const entityClass = this.#entityClass();\n if (entityClass && entities) {\n for (const e of entities) {\n if (e.entityName === entityClass) {\n return e;\n }\n }\n }\n return undefined;\n });\n protected readonly descriptor = computed(() => {\n const revModel = this.#revModel();\n const selectedRevisionEntity = this.selectedRevisionEntity();\n if (!revModel || !selectedRevisionEntity?.entityName) {\n return undefined;\n }\n\n const desc = tableviewDescriptor<RevEntityWithId>({id: 'mergedId'});\n auditBuildTableviewEntityRevision(this.#translate, desc, revModel, selectedRevisionEntity);\n desc.table.withTitle(getI18nAuditEntityName(this.#translate, selectedRevisionEntity.entityName));\n desc.table.withColumnsResizable();\n desc.table.withCurrentColumnsReorderable();\n desc.table.withCurrentColumnsToggleable();\n\n return desc;\n });\n protected readonly dataProvider = computed(() => {\n const revModel = this.#revModel();\n const selectedRevisionEntity = this.selectedRevisionEntity();\n if (!revModel || !selectedRevisionEntity?.entityName) {\n return undefined;\n }\n\n const entityName = selectedRevisionEntity.entityName;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return tableviewDataProvider<RevEntityWithId, AuditRevisionsApiService>({service: AuditRevisionsApiService}).withGetAll((params, service) =>\n selectedRevisionEntity.entityName\n ? service.listRevisionsWithStateForEntityType(params, entityName).pipe(\n map(res => {\n const revEntityWithStateAndIdList = [];\n for (const revEntityWithState of res.data) {\n const revEntityWithStateAndId: RevEntityWithId = {\n mergedId: revEntityWithState.revEntity?.['rev'] + '_' + revEntityWithState.entityState?.['id'],\n revType: revEntityWithState.revType,\n revEntity: revEntityWithState.revEntity,\n entityState: revEntityWithState.entityState,\n entityClassName: revEntityWithState.entityClassName\n };\n revEntityWithStateAndIdList.push(revEntityWithStateAndId);\n }\n return {data: revEntityWithStateAndIdList, totalCount: res.totalCount};\n })\n )\n : throwError(() => new CommonsInternalError('No revision entity is provided for list.'))\n );\n });\n protected readonly actions = computed(() => {\n const selectedRevisionEntity = this.selectedRevisionEntity();\n const descriptor = this.descriptor();\n if (!selectedRevisionEntity?.entityName || !descriptor) {\n return [];\n }\n const entityName = selectedRevisionEntity.entityName;\n const detailsAction = tableviewActionDetailsOnTable(descriptor.detailsEditor, {\n table: descriptor.table,\n serviceProvider: AuditRevisionsApiService,\n injector: this.#injector\n })\n ?.withFetchFunction(ctx => {\n if (!entityName) {\n return throwError(() => new CommonsInternalError('No revision entity is provided for details.'));\n }\n if (!ctx.parameters.itemId) {\n return throwError(() => new CommonsInternalError('No item id for revision entity details is provided.'));\n }\n const revId = ctx.parameters.itemId.toString().split('_')[0];\n const itemId = ctx.parameters.itemId.toString().split('_')[1];\n return ctx.serviceInstance.fetchRevisionsWithStateForEntityType(entityName, revId, itemId);\n })\n ?.withEditorTitle('pages.entityRevisions.actions.details.editor.title');\n return detailsAction ? [detailsAction] : [];\n });\n\n protected revisionEntitiesLookupProvider = lookupDataProvider<GuiEntityModelWithI18n, AuditService>({service: AuditService}).withLookup(() =>\n this.#auditService.auditModel$.pipe(\n map(model => {\n const modelI18n = model as GuiEntityModelWithI18n[];\n modelI18n.sort((m1, m2) => {\n if (m1.entityName && m2.entityName) {\n return m1.entityName.localeCompare(m2.entityName);\n } else if (m1.entityName && !m2.entityName) {\n return 1;\n } else {\n return -1;\n }\n });\n modelI18n.forEach(item => {\n item.entityNameI18n = item.entityName ? getI18nAuditEntityName(this.#translate, item.entityName) : undefined;\n });\n return modelI18n;\n })\n )\n );\n protected showTableview = signal(false);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n #showTableviewEffectRef = effectWithDeps([this.descriptor], descriptor => {\n if (descriptor) {\n this.showTableview.set(true);\n }\n });\n\n protected onRevisionEntityChange(value: Nullable<GuiEntityModelDto>) {\n this.showTableview.set(false);\n const currentUrl = this.#router.url;\n const routePrefix = currentUrl.substring(0, currentUrl.lastIndexOf('/audit/entity-revisions') + '/audit/entity-revisions'.length);\n\n if (value) {\n this.#router.navigate([routePrefix, value.entityName]);\n } else {\n this.#router.navigate([routePrefix]);\n }\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 optionsLabelProperty=\"entityNameI18n\"\n [ngModel]=\"selectedRevisionEntity()\"\n (valueChange)=\"onRevisionEntityChange($event)\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"\n [showClear]=\"true\"></mng-dropdown>\n @if (!selectedRevisionEntity()) {\n <small class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n }\n </div>\n</div>\n@if (showTableview() && descriptor()) {\n <mng-tableview [descriptor]=\"descriptor()!\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n","import {EntityChangeDto} from '../api/models/entityChange';\nimport {RevisionTypeDto} from '../api/models/revisionType';\nimport {EntityRevisionChangeState} from '../models/entity-revision-change-state.model';\nimport {EntityRevisionChanges} from '../models/entity-revision-changes.model';\n\nexport function auditMapToEntityChangesArray(fieldValue: {[key: string]: Array<EntityChangeDto>}): Array<EntityRevisionChanges> {\n const entityChanges: EntityRevisionChanges[] = [];\n for (const key of Object.keys(fieldValue)) {\n const ec: EntityRevisionChanges = {entityType: key, items: []};\n for (const change of fieldValue[key]) {\n if (change.revType === RevisionTypeDto.Add && change.entityNewState) {\n const item: EntityRevisionChangeState = {\n revType: change.revType,\n revTypeColor: 'green'\n };\n Object.entries(change.entityNewState).forEach(([key, value]) => (item[key] = value));\n ec.items?.push(item);\n } else if (change.revType === RevisionTypeDto.Del && change.entityOldState) {\n const item: EntityRevisionChangeState = {\n revType: change.revType,\n revTypeColor: 'red'\n };\n Object.entries(change.entityOldState).forEach(([key, value]) => (item[key] = value));\n ec.items?.push(item);\n } else if (change.revType === RevisionTypeDto.Mod && change.entityOldState && change.entityNewState) {\n const itemOld: EntityRevisionChangeState = {\n revType: change.revType,\n revTypeColor: 'red'\n };\n Object.entries(change.entityOldState).forEach(([key, value]) => (itemOld[key] = value));\n\n const itemNew: EntityRevisionChangeState = {\n revType: change.revType,\n revTypeColor: 'green'\n };\n Object.entries(change.entityNewState).forEach(([key, value]) => (itemNew[key] = value));\n\n ec.items?.push(itemOld);\n ec.items?.push(itemNew);\n }\n }\n entityChanges.push(ec);\n }\n return entityChanges;\n}\n","import {ChangeDetectionStrategy, Component, DestroyRef, Injector, OnInit, inject, input, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\n\nimport {TranslateService} from '@ngx-translate/core';\n\nimport {CommonsInternalError} from '@mediusinc/mng-commons/core';\nimport {TableComponent} from '@mediusinc/mng-commons/table';\nimport {TableDescriptorInst, TablePaginationModeEnum, tableDescriptor} from '@mediusinc/mng-commons/table/api';\nimport {AFormlyCustomFieldComponent} from '@mediusinc/mng-commons/tableview/api';\n\nimport {EntityChangeDto} from '../../api/models/entityChange';\nimport {GuiEntityModelDto} from '../../api/models/guiEntityModel';\nimport {RevEntityWithChangesDto} from '../../api/models/revEntityWithChangesDto';\nimport {RevisionTypeDto, revisionTypeEnum} from '../../api/models/revisionType';\nimport {AuditService} from '../../api/services/audit.service';\nimport {auditAddColumnsFromModel} from '../../helpers/descriptor';\nimport {auditMapToEntityChangesArray} from '../../helpers/entity-changes';\nimport {getI18nAuditEntityName} from '../../helpers/i18n';\nimport {EntityRevisionChangeState} from '../../models/entity-revision-change-state.model';\nimport {EntityRevisionChanges} from '../../models/entity-revision-changes.model';\n\n@Component({\n standalone: true,\n selector: 'mng-entity-changes-field',\n imports: [TableComponent],\n styleUrls: ['entity-changes-field.component.scss'],\n templateUrl: 'entity-changes-field.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntityChangesFieldComponent extends AFormlyCustomFieldComponent<RevEntityWithChangesDto['entityNameChangesMap'], RevEntityWithChangesDto> implements OnInit {\n readonly #destroyRef = inject(DestroyRef);\n #translate = inject(TranslateService);\n\n injector = input<Injector>();\n\n protected entityChanges = signal<\n {\n data: EntityRevisionChanges;\n descriptor: TableDescriptorInst<EntityRevisionChangeState>;\n }[]\n >([]);\n protected modelFetched = signal(false);\n\n #auditModel: GuiEntityModelDto[] = [];\n #fieldValue?: Record<string, EntityChangeDto[]>;\n\n ngOnInit(): void {\n this.#fieldValue = this.formControl.value;\n const injector = this.injector();\n injector\n ?.get(AuditService, undefined, {optional: true})\n ?.auditModel$.pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n next: model => {\n this.#auditModel = model;\n if (this.#fieldValue) {\n this.entityChanges.set(\n auditMapToEntityChangesArray(this.#fieldValue).map(fv => ({\n data: fv,\n descriptor: this.#createDescriptor(fv)\n }))\n );\n this.modelFetched.set(true);\n }\n },\n error: err => {\n throw new CommonsInternalError('Error while trying to fetch audit model from audit service', {name: 'EntityChangesFieldComponentError', cause: err});\n }\n });\n if (injector) {\n this.#translate = injector.get(TranslateService);\n }\n }\n\n #createDescriptor(entityChanges: EntityRevisionChanges) {\n const changedFields: string[] = [];\n if (entityChanges.items && entityChanges.items[0].revType === RevisionTypeDto.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 = tableDescriptor<EntityRevisionChangeState>({i18nBase: guiEntityModel.entityName}).withClassName('py-2');\n if (guiEntityModel.entityName) {\n desc.withTitle(getI18nAuditEntityName(this.#translate, guiEntityModel.entityName));\n }\n\n desc.addColumnEnum('revType', revisionTypeEnum).withTitle('MngEntityRevisionChangeState.properties.revType');\n\n if (guiEntityModel.properties) {\n auditAddColumnsFromModel(this.#translate, desc, guiEntityModel.entityName ?? '', guiEntityModel.properties, undefined, false, false);\n }\n\n desc.withRowClassName(undefined, (_, item) => (item ? (item.revTypeColor === 'green' ? 'audit-row-added' : 'audit-row-deleted') : ''));\n desc.columns.forEach(col => {\n if (changedFields.length > 0 && changedFields.some(val => col.property === val)) {\n col.withClassName('audit-cell');\n }\n });\n\n desc.withPaginationMode(TablePaginationModeEnum.Pagination);\n desc.withCurrentColumnsReorderable();\n desc.withCurrentColumnsToggleable();\n desc.withTrackProperty(`EntityChangeField_${entityChanges.entityType ?? 'default'}`);\n\n return desc;\n }\n}\n","@if (modelFetched()) {\n <div>\n @for (ec of entityChanges(); track ec) {\n <mng-table [items]=\"ec.data.items\" [descriptor]=\"ec.descriptor\"></mng-table>\n }\n </div>\n} @else {\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n}\n","import {ChangeDetectionStrategy, Component, Injector, computed, inject, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\n\nimport {TranslateService} from '@ngx-translate/core';\nimport {map} from 'rxjs/operators';\n\nimport {itemIdToDefined} from '@mediusinc/mng-commons/core';\nimport {model} from '@mediusinc/mng-commons/model';\nimport {TableviewComponent} from '@mediusinc/mng-commons/tableview';\nimport {TableviewEditorTypeEnum, editorDescriptor, tableviewActionDetailsOnTable, tableviewDataProvider, tableviewDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\nimport {RevEntityWithChangesDto} from '../../../api/models/revEntityWithChangesDto';\nimport {AuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {AuditService} from '../../../api/services/audit.service';\nimport {auditAddColumnsFromModel, auditAddFieldsFromModel} from '../../../helpers/descriptor';\nimport {RevEntityDetailed} from '../../../models/rev-entity-detailed.model';\nimport {RevEntity} from '../../../models/rev-entity.model';\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: [TableviewComponent],\n providers: [AuditRevisionsApiService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AuditRevisionsPageComponent {\n readonly #injector = inject(Injector);\n readonly #translate = inject(TranslateService);\n readonly #auditService = inject(AuditService);\n\n readonly #revModel = toSignal(this.#auditService.revModel$);\n protected readonly showTableview = computed(() => this.#revModel() != null);\n\n protected readonly descriptor = computed(() => {\n const revModel = this.#revModel();\n if (revModel) {\n const idProperty = revModel.properties?.filter(prop => prop.isId).map(prop => prop.resolvedPropertyName)[0];\n\n const revEntModel = model<RevEntityWithChangesDto>({id: 'rev', title: 'rev', i18nBase: 'MngRevEntity'});\n if (idProperty) revEntModel.withIdPropertyUnsafe(idProperty);\n\n const desc = tableviewDescriptor<RevEntityWithChangesDto, keyof RevEntity, keyof RevEntity, undefined, RevEntity>(revEntModel);\n\n const detailsDescriptor = editorDescriptor<RevEntityWithChangesDto>({i18nBase: 'MngRevEntity', tableviewEditorType: TableviewEditorTypeEnum.Details});\n detailsDescriptor.model.withIdPropertyUnsafe('revEntity.' + idProperty);\n\n if (revModel.properties) {\n auditAddColumnsFromModel(this.#translate, desc.table, revModel.entityName ?? '', revModel.properties);\n auditAddFieldsFromModel<RevEntityWithChangesDto>(this.#translate, detailsDescriptor, revModel.entityName ?? '', revModel.properties);\n }\n\n detailsDescriptor\n .addField('entityNameChangesMap')\n .asCustomComponent(EntityChangesFieldComponent, {\n fieldWrappers: ['field-no-label'],\n inputs: {injector: this.#injector}\n })\n .withDisabled();\n\n desc.withDetailsDescriptor(detailsDescriptor); // MngRevEntity is extended by MngRevEntityWithChangesDto, so no real harm here\n\n return desc;\n }\n return tableviewDescriptor<RevEntity>();\n });\n protected readonly dataProvider = signal(\n tableviewDataProvider<RevEntity, AuditRevisionsApiService>({service: AuditRevisionsApiService}).withGetAll((params, service) =>\n service.getRevisionList(params).pipe(map(res => ({data: res.data, totalCount: res.totalCount})))\n )\n );\n protected readonly actions = computed(() => {\n const detailsAction = tableviewActionDetailsOnTable(this.descriptor().detailsEditor, {\n table: this.descriptor().table,\n serviceProvider: AuditRevisionsApiService,\n injector: this.#injector\n })?.withFetchFunction(ctx => {\n return ctx.serviceInstance.getAllChangesForRevision(itemIdToDefined(ctx.parameters.itemId)).pipe(\n map(item => {\n const revEntityWithChanges: RevEntityDetailed = {\n rev: ctx.parameters.itemId,\n revEntity: item.revEntity,\n entityNameChangesMap: item.entityNameChangesMap\n };\n return revEntityWithChanges;\n })\n );\n });\n\n return detailsAction ? [detailsAction] : [];\n });\n}\n","@if (showTableview()) {\n <mng-tableview [descriptor]=\"descriptor()\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n","import {Routes} from '@angular/router';\n\nimport {CommonsMenuItem, RouteBuilder, createRoute, createRouteRedirect, createRoutes} from '@mediusinc/mng-commons/core';\nimport {createTableviewRoute} from '@mediusinc/mng-commons/tableview';\n\nimport {AuditService} from './api/services/audit.service';\nimport {AuditPageComponent} from './components/pages/audit/audit.page.component';\nimport {AuditEntityRevisionsPageComponent} from './components/pages/entity-revisions/audit-entity-revisions.page.component';\nimport {AuditRevisionsPageComponent} from './components/pages/revisions/audit-revisions.page.component';\nimport {CommonsAuditModuleConfig} from './models/config.model';\nimport {COMMONS_AUDIT_MODULE_CONFIG_IT} from './service/module-config.token';\n\n/**\n * Provides routes for the mng-commons-audit functionalities.\n * @param config Module config for audit section.\n * @param routeConfig Optionally provide route configs.\n */\nexport function provideAuditRoutes(\n config: CommonsAuditModuleConfig,\n routeConfig?: {\n defaultRedirect?: string;\n preRevisionRoutes?: RouteBuilder[];\n postRevisionRoutes?: RouteBuilder[];\n revisionsMenuItem?: CommonsMenuItem;\n entityRevisionsMenuItem?: CommonsMenuItem;\n }\n): Routes {\n const routeBuilder = createRoute('', config.rootPageComponent ?? AuditPageComponent)\n .withProvider(AuditService)\n .withProvider({\n provide: COMMONS_AUDIT_MODULE_CONFIG_IT,\n useValue: config\n })\n .addChildBuilder(createRouteRedirect('', routeConfig?.defaultRedirect ?? 'revisions', 'full'));\n\n if (routeConfig?.preRevisionRoutes?.length) {\n routeConfig.preRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));\n }\n\n const revisionsRouteBuilder = createTableviewRoute('revisions', config.revisionsPageComponent ?? AuditRevisionsPageComponent)\n .withTitle('pages.revisions.title')\n .withAdd(false)\n .withDelete(false)\n .withEdit(false);\n if (routeConfig?.revisionsMenuItem) {\n revisionsRouteBuilder.withMenuItemOpts(routeConfig.revisionsMenuItem);\n } else {\n revisionsRouteBuilder.withMenuItem('pi pi-book', 'pages.revisions.title');\n }\n\n const entityRevisionsRouteBuilder = createRoute('entity-revisions', config.entityRevisionsPageComponent ?? AuditEntityRevisionsPageComponent).withTitle(\n 'pages.entityRevisions.title'\n );\n if (routeConfig?.entityRevisionsMenuItem) {\n entityRevisionsRouteBuilder.withMenuItemOpts(routeConfig.entityRevisionsMenuItem);\n } else {\n entityRevisionsRouteBuilder.withMenuItem('pi pi-building', 'pages.entityRevisions.title');\n }\n\n routeBuilder\n .addChildBuilder(revisionsRouteBuilder)\n .addChildBuilder(entityRevisionsRouteBuilder)\n .addChildBuilder(\n createTableviewRoute('entity-revisions/:entityClass', config.entityRevisionsPageComponent ?? AuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title')\n );\n\n if (routeConfig?.postRevisionRoutes?.length) {\n routeConfig.postRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));\n }\n\n return createRoutes().add(routeBuilder).build();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mediusinc-mng-commons-audit.mjs","sources":["../../src/lib/service/module-config.token.ts","../../src/lib/api/services/audit-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/api/services/audit-revisions-api.service.ts","../../src/lib/api/models/guiPropertyType.ts","../../src/lib/api/models/revisionType.ts","../../src/lib/helpers/i18n.ts","../../src/lib/helpers/descriptor.ts","../../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/helpers/entity-changes.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":["import {InjectionToken} from '@angular/core';\n\nimport {CommonsAuditModuleConfig} from '../models/config.model';\n\nexport const COMMONS_AUDIT_MODULE_CONFIG_IT = new InjectionToken<CommonsAuditModuleConfig>('CommonsAuditModuleConfig');\n","/* eslint-disable */\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {inject} from '@angular/core';\n\nimport {CommonsConfigurationService} from '@mediusinc/mng-commons/core';\n\nimport {COMMONS_AUDIT_MODULE_CONFIG_IT} from '../../service/module-config.token';\n\nexport class AuditApiService {\n protected readonly http: HttpClient;\n public readonly defaultHeaders = new HttpHeaders();\n protected readonly configService: CommonsConfigurationService;\n protected readonly moduleConfig = inject(COMMONS_AUDIT_MODULE_CONFIG_IT);\n\n protected constructor() {\n this.http = inject(HttpClient);\n this.configService = CommonsConfigurationService.get();\n }\n\n protected getBasePath(): string {\n return `${this.configService.getConfigValue(this.moduleConfig.apiBasePathConfigKey)}`;\n }\n\n protected getServiceBasePath(): string | null {\n return this.moduleConfig.apiServiceBasePath ?? '';\n }\n\n protected getUrl(...pathSegments: Array<string>): string {\n let baseUrl = this.getBasePath();\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.substring(0, baseUrl.length - 1);\n }\n const serviceBasePath = this.getServiceBasePath();\n let path = [serviceBasePath, ...pathSegments].filter(s => s && s.length).join('/');\n // omit first and last '/'\n if (path.startsWith('/')) {\n path = path.substring(1);\n }\n if (path.endsWith('/')) {\n path = path.substring(0, path.length - 1);\n }\n // replace any double '//' from path that could come from joining paths\n path = path.replace('//', '/');\n return `${baseUrl}/${path}`;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types */\nimport {Injectable} from '@angular/core';\n\nimport {Observable, shareReplay} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {GuiEntityModelDto} from '../models/guiEntityModel';\nimport {AuditApiService} from './audit-api.service';\n\n@Injectable()\nexport class AuditService extends AuditApiService {\n private readonly CACHE_SIZE = 1;\n\n private revModelObs?: Observable<GuiEntityModelDto>;\n private auditModelObs?: Observable<Array<GuiEntityModelDto>>;\n\n constructor() {\n super();\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<GuiEntityModelDto> {\n let localVarHeaders = this.defaultHeaders;\n localVarHeaders = localVarHeaders.set('Accept', 'application/json');\n return this.http.get<GuiEntityModelDto>(this.getUrl(`/rev-model`), {\n headers: localVarHeaders\n });\n }\n\n private requestAuditModel(): Observable<Array<GuiEntityModelDto>> {\n let localVarHeaders = this.defaultHeaders;\n localVarHeaders = localVarHeaders.set('Accept', 'application/json');\n return this.http\n .get<Array<GuiEntityModelDto>>(this.getUrl(`/audit-models`), {\n headers: localVarHeaders\n })\n .pipe(\n map(response => {\n if (Array.isArray(response)) {\n return response.map(item => {\n return {\n entityName: item.entityName,\n properties: item.properties\n };\n });\n } else {\n return [];\n }\n })\n );\n }\n}\n","import {ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AuditPageComponent {}\n","<router-outlet></router-outlet>\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types */\nimport {Injectable} from '@angular/core';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {CommonsInternalError, DataListParams, IdType, dataListParamsToUrlQuery} from '@mediusinc/mng-commons/core';\n\nimport {RevEntityWithId} from '../../models/revEntityWithId.model';\nimport {GetAllResponse} from '../models/get-all-response.model';\nimport {RevEntityWithChangesDto} from '../models/revEntityWithChangesDto';\nimport {RevEntityWithStateDto} from '../models/revEntityWithStateDto';\nimport {AuditApiService} from './audit-api.service';\n\n@Injectable()\nexport class AuditRevisionsApiService extends AuditApiService {\n constructor() {\n super();\n }\n public getRevisionList(params: DataListParams): Observable<GetAllResponse<{[key: string]: unknown}>> {\n return this.http.get<GetAllResponse<{[key: string]: unknown}>>(this.getUrl(''), {\n params: dataListParamsToUrlQuery(params)\n });\n }\n\n public getAllChangesForRevision(revId: IdType): Observable<RevEntityWithChangesDto> {\n return this.http.get<RevEntityWithChangesDto>(this.getUrl(`/changes/${revId}`));\n }\n\n public listRevisionsWithStateForEntityType(params: DataListParams, entityType: string): Observable<GetAllResponse<RevEntityWithStateDto>> {\n let localVarHeaders = this.defaultHeaders;\n localVarHeaders = localVarHeaders.set('Accept', 'application/json');\n return this.http\n .get<GetAllResponse<any>>(this.getUrl(`/states/${entityType}`), {\n params: dataListParamsToUrlQuery(params),\n headers: localVarHeaders\n })\n .pipe(\n map(res => {\n return <GetAllResponse<RevEntityWithStateDto>>{\n data: res.data.map(item => {\n return {\n revEntity: item.revEntity,\n revType: item.revType,\n entityClassName: item.entityClassName,\n entityState: item.entityState\n };\n }),\n totalCount: res.totalCount\n };\n })\n );\n }\n\n public fetchRevisionsWithStateForEntityType(entityType: string, revId: IdType, itemId: IdType): Observable<RevEntityWithId> {\n let localVarHeaders = this.defaultHeaders;\n localVarHeaders = localVarHeaders.set('Accept', 'application/json');\n return this.http\n .get<GetAllResponse<any>>(this.getUrl(`/states/${entityType}?rev=eq:${revId}&id=eq:${itemId}`), {\n headers: localVarHeaders\n })\n .pipe(\n map(res =>\n res.data.map(i => {\n i.mergedId = i.revEntity?.['rev'] + '_' + i.entityState?.['id'];\n return i as RevEntityWithId;\n })\n ),\n map(items => {\n if (items.length > 0) {\n return items[0];\n }\n throw new CommonsInternalError(`Entity revision ${revId} for ${entityType} with id ${itemId} was not found`);\n })\n );\n }\n}\n","export enum GuiPropertyTypeDto {\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","import {enumModel} from '@mediusinc/mng-commons/model';\n\nexport enum RevisionTypeDto {\n Add = 'ADD',\n Mod = 'MOD',\n Del = 'DEL'\n}\n\nexport const revisionTypeEnum = enumModel(RevisionTypeDto.Add, RevisionTypeDto, 'MngRevisionTypeDto');\n","import {TranslateService} from '@ngx-translate/core';\n\nimport {getI18n, getI18nTypePropertyKey} from '@mediusinc/mng-commons/core';\n\nconst i18nBaseEntityKey = 'AuditEntities';\n\nexport function getI18nAuditEntityName(translate: TranslateService, entityName: string): string {\n return getI18n(translate, {}, `${i18nBaseEntityKey}.${entityName}.name`, `${i18nBaseEntityKey}.${entityName}`, `${entityName}.name`) ?? entityName;\n}\n\nexport function getI18nAuditEntityProperty(\n translate: TranslateService,\n entityName: string,\n propertyName: string,\n modelType: 'revEntity' | 'entityState' | undefined = 'entityState'\n): string {\n if (modelType === 'revEntity') {\n return 'MngRevEntity.properties.' + propertyName;\n } else {\n return getI18n(translate, {}, getI18nTypePropertyKey(`${i18nBaseEntityKey}.${entityName}`, propertyName), getI18nTypePropertyKey(entityName, propertyName)) ?? propertyName;\n }\n}\n","import {TranslateService} from '@ngx-translate/core';\n\nimport {EnumType} from '@mediusinc/mng-commons/core';\nimport {lookupDataProvider} from '@mediusinc/mng-commons/form/api';\nimport {enumModelGeneric} from '@mediusinc/mng-commons/model';\nimport {ColumnDescriptor, TableDescriptorInst} from '@mediusinc/mng-commons/table/api';\nimport {AFieldDescriptor, EditorDescriptorInst, TableviewDescriptorType} from '@mediusinc/mng-commons/tableview/api';\n\nimport {GuiEntityModelDto} from '../api/models/guiEntityModel';\nimport {GuiPropertyModelDto} from '../api/models/guiPropertyModel';\nimport {GuiPropertyTypeDto} from '../api/models/guiPropertyType';\nimport {revisionTypeEnum} from '../api/models/revisionType';\nimport {getI18nAuditEntityProperty} from '../helpers/i18n';\nimport {RevEntityWithId} from '../models/revEntityWithId.model';\n\nexport function auditAddColumnsFromModel<T>(\n translate: TranslateService,\n descriptor: TableDescriptorInst<T>,\n entityName: string,\n properties: GuiPropertyModelDto[],\n modelType: 'revEntity' | 'entityState' | undefined = undefined,\n addFilters = true,\n addSorts = true\n): TableDescriptorInst<T> {\n for (const property of properties) {\n if (!property.resolvedPropertyName) {\n continue;\n }\n\n const isEnum = property.propertyType === GuiPropertyTypeDto.Enum;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let column: ColumnDescriptor<any, T> | null = null;\n if (isEnum) {\n if (!property.possibleEnumValues) {\n continue;\n }\n\n const enumModel = getEnumModel(property);\n if (enumModel) {\n column = descriptor.addColumnEnum(property.resolvedPropertyName as keyof T, enumModel);\n if (addFilters) {\n descriptor.addFilterLookupEnum(column.property as keyof T, enumModel, property.possibleEnumValues);\n }\n } else {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName);\n if (addFilters) {\n descriptor.addFilterLookupUnsafe(\n column.property,\n lookupDataProvider<string>().withLookup(() => property.possibleEnumValues ?? [])\n );\n }\n }\n } else if (property.propertyType === GuiPropertyTypeDto.Number) {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).asNumber();\n } else if (property.propertyType === GuiPropertyTypeDto.Boolean) {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).asBoolean();\n } else if (property.propertyType === GuiPropertyTypeDto.LocalDate) {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).asDate('dd. MM yyyy');\n } else if (property.propertyType === GuiPropertyTypeDto.OffsetDateTime) {\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).asDate('dd. MM yyyy HH:mm');\n } else {\n // string / wildcard\n column = descriptor.addColumnUnsafe(property.resolvedPropertyName).withTitle(getI18nAuditEntityProperty(translate, entityName, property.propertyName ?? '', modelType));\n }\n\n if (modelType) {\n column.withGetter((value, item) => item?.[modelType as keyof object]?.[property.resolvedPropertyName as keyof object]);\n }\n\n column.withTitle(getI18nAuditEntityProperty(translate, entityName, property.propertyName ?? '', modelType));\n\n if (!isEnum && addFilters) {\n descriptor.addFilterFromColumnDescriptorUnsafe(column).withTitle(column.title ?? '');\n }\n if (addSorts) {\n descriptor.withSortUnsafe(column.property);\n }\n }\n return descriptor;\n}\n\nexport function auditAddFieldsFromModel<T>(\n translate: TranslateService,\n descriptor: EditorDescriptorInst<T>,\n entityName: string,\n properties: GuiPropertyModelDto[],\n modelType: 'revEntity' | 'entityState' = 'revEntity'\n): EditorDescriptorInst<T> {\n for (const property of properties) {\n if (!property.resolvedPropertyName) {\n continue;\n }\n\n const fieldPrepend = `${modelType}.`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let field: AFieldDescriptor<any, any>;\n\n if (property.propertyType === GuiPropertyTypeDto.Enum) {\n const enumModel = getEnumModel(property);\n if (enumModel) {\n if (!property.possibleEnumValues) {\n continue;\n }\n\n field = descriptor.addFieldLookupEnum((fieldPrepend + property.resolvedPropertyName) as keyof T, enumModel, property.possibleEnumValues);\n } else {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName);\n }\n } else if (property.propertyType === GuiPropertyTypeDto.Number) {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName).asNumber();\n } else if (property.propertyType === GuiPropertyTypeDto.Boolean) {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName);\n } else if (property.propertyType === GuiPropertyTypeDto.LocalDate) {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName).asDatePicker({format: 'dd. MMM yyyy'});\n } else if (property.propertyType === GuiPropertyTypeDto.OffsetDateTime) {\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName).asDatePicker({\n format: 'dd. MM yy',\n showTime: true,\n showSeconds: false\n });\n } else {\n // string / wildcard\n field = descriptor.addFieldUnsafe(fieldPrepend + property.resolvedPropertyName);\n }\n\n field.withLabel(getI18nAuditEntityProperty(translate, entityName, property.propertyName ?? '', modelType)).withDisabled();\n }\n return descriptor;\n}\n\nexport function auditBuildTableviewEntityRevision(\n translate: TranslateService,\n descriptor: TableviewDescriptorType<RevEntityWithId>,\n revModel: GuiEntityModelDto,\n entityModel: GuiEntityModelDto\n): TableviewDescriptorType<RevEntityWithId> {\n const revType = descriptor.addColumnEnum('revType', revisionTypeEnum).withTitle('MngEntityRevisionChangeState.properties.revType');\n descriptor.addFieldLookupEnum('revType', revisionTypeEnum).withLabel('MngEntityRevisionChangeState.properties.revType');\n\n descriptor.table.addFilterFromColumnDescriptorUnsafe(revType);\n\n if (revModel.properties) {\n auditAddColumnsFromModel(translate, descriptor.table, revModel.entityName ?? '', revModel.properties, 'revEntity');\n auditAddFieldsFromModel(translate, descriptor.detailsEditor, revModel.entityName ?? '', revModel.properties, 'revEntity');\n }\n if (entityModel.properties) {\n auditAddColumnsFromModel(translate, descriptor.table, entityModel.entityName ?? '', entityModel.properties, 'entityState');\n auditAddFieldsFromModel(translate, descriptor.detailsEditor, entityModel.entityName ?? '', entityModel.properties, 'entityState');\n }\n\n return descriptor;\n}\n\nexport function getEnumModel(property: GuiPropertyModelDto) {\n if (Array.isArray(property.possibleEnumValues)) {\n const enumType = property.possibleEnumValues?.reduce(\n (acc, v) => {\n const constName = v\n .split('_')\n .map(s => (s.length > 1 ? s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase() : s))\n .join('');\n if (constName !== v) {\n acc[constName] = v;\n }\n acc[v] = constName;\n return acc;\n },\n <EnumType>{}\n );\n return enumModelGeneric(enumType, property.enumClassSimpleName);\n }\n return null;\n}\n","import {ChangeDetectionStrategy, Component, Injector, computed, inject, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\n\nimport {FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {throwError} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {CommonsInternalError, Nullable, effectWithDeps} from '@mediusinc/mng-commons/core';\nimport {DropdownComponent} from '@mediusinc/mng-commons/form';\nimport {lookupDataProvider} from '@mediusinc/mng-commons/form/api';\nimport {TableviewComponent} from '@mediusinc/mng-commons/tableview';\nimport {tableviewActionDetailsOnTable, tableviewDataProvider, tableviewDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\nimport {GuiEntityModelDto} from '../../../api/models/guiEntityModel';\nimport {AuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {AuditService} from '../../../api/services/audit.service';\nimport {auditBuildTableviewEntityRevision} from '../../../helpers/descriptor';\nimport {getI18nAuditEntityName} from '../../../helpers/i18n';\nimport {GuiEntityModelWithI18n} from '../../../models/guiEntityModelWithI18n.model';\nimport {RevEntityWithId} from '../../../models/revEntityWithId.model';\n\n@Component({\n standalone: true,\n selector: 'mng-audit-entity-revisions-page',\n templateUrl: './audit-entity-revisions.page.component.html',\n imports: [DropdownComponent, FormsModule, TranslateModule, FormlyModule, TableviewComponent],\n providers: [AuditRevisionsApiService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AuditEntityRevisionsPageComponent {\n readonly #injector = inject(Injector);\n readonly #router = inject(Router);\n readonly #route = inject(ActivatedRoute);\n readonly #translate = inject(TranslateService);\n readonly #auditService = inject(AuditService);\n\n readonly #revModel = toSignal(this.#auditService.revModel$);\n readonly #auditModel = toSignal(this.#auditService.auditModel$);\n readonly #entityClass = toSignal(this.#route.paramMap.pipe(map(pm => pm.get('entityClass') ?? undefined)));\n\n protected readonly selectedRevisionEntity = computed(() => {\n const entities = this.#auditModel();\n const entityClass = this.#entityClass();\n if (entityClass && entities) {\n for (const e of entities) {\n if (e.entityName === entityClass) {\n return e;\n }\n }\n }\n return undefined;\n });\n protected readonly descriptor = computed(() => {\n const revModel = this.#revModel();\n const selectedRevisionEntity = this.selectedRevisionEntity();\n if (!revModel || !selectedRevisionEntity?.entityName) {\n return undefined;\n }\n\n const desc = tableviewDescriptor<RevEntityWithId>({id: 'mergedId'});\n auditBuildTableviewEntityRevision(this.#translate, desc, revModel, selectedRevisionEntity);\n desc.table.withTitle(getI18nAuditEntityName(this.#translate, selectedRevisionEntity.entityName));\n desc.table.withColumnsResizable();\n desc.table.withCurrentColumnsReorderable();\n desc.table.withCurrentColumnsToggleable();\n\n return desc;\n });\n protected readonly dataProvider = computed(() => {\n const revModel = this.#revModel();\n const selectedRevisionEntity = this.selectedRevisionEntity();\n if (!revModel || !selectedRevisionEntity?.entityName) {\n return undefined;\n }\n\n const entityName = selectedRevisionEntity.entityName;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return tableviewDataProvider<RevEntityWithId, AuditRevisionsApiService>({service: AuditRevisionsApiService}).withGetAll((params, service) =>\n selectedRevisionEntity.entityName\n ? service.listRevisionsWithStateForEntityType(params, entityName).pipe(\n map(res => {\n const revEntityWithStateAndIdList = [];\n for (const revEntityWithState of res.data) {\n const revEntityWithStateAndId: RevEntityWithId = {\n mergedId: revEntityWithState.revEntity?.['rev'] + '_' + revEntityWithState.entityState?.['id'],\n revType: revEntityWithState.revType,\n revEntity: revEntityWithState.revEntity,\n entityState: revEntityWithState.entityState,\n entityClassName: revEntityWithState.entityClassName\n };\n revEntityWithStateAndIdList.push(revEntityWithStateAndId);\n }\n return {data: revEntityWithStateAndIdList, totalCount: res.totalCount};\n })\n )\n : throwError(() => new CommonsInternalError('No revision entity is provided for list.'))\n );\n });\n protected readonly actions = computed(() => {\n const selectedRevisionEntity = this.selectedRevisionEntity();\n const descriptor = this.descriptor();\n if (!selectedRevisionEntity?.entityName || !descriptor) {\n return [];\n }\n const entityName = selectedRevisionEntity.entityName;\n const detailsAction = tableviewActionDetailsOnTable(descriptor.model, descriptor.detailsEditor, {\n table: descriptor.table,\n serviceProvider: AuditRevisionsApiService,\n injector: this.#injector\n })\n ?.withFetchFunction(ctx => {\n if (!entityName) {\n return throwError(() => new CommonsInternalError('No revision entity is provided for details.'));\n }\n if (!ctx.parameters.itemId) {\n return throwError(() => new CommonsInternalError('No item id for revision entity details is provided.'));\n }\n const revId = ctx.parameters.itemId.toString().split('_')[0];\n const itemId = ctx.parameters.itemId.toString().split('_')[1];\n return ctx.serviceInstance.fetchRevisionsWithStateForEntityType(entityName, revId, itemId);\n })\n ?.withEditorTitle('pages.entityRevisions.actions.details.editor.title');\n return detailsAction ? [detailsAction] : [];\n });\n\n protected revisionEntitiesLookupProvider = lookupDataProvider<GuiEntityModelWithI18n, AuditService>({service: AuditService}).withLookup(() =>\n this.#auditService.auditModel$.pipe(\n map(model => {\n const modelI18n = model as GuiEntityModelWithI18n[];\n modelI18n.sort((m1, m2) => {\n if (m1.entityName && m2.entityName) {\n return m1.entityName.localeCompare(m2.entityName);\n } else if (m1.entityName && !m2.entityName) {\n return 1;\n } else {\n return -1;\n }\n });\n modelI18n.forEach(item => {\n item.entityNameI18n = item.entityName ? getI18nAuditEntityName(this.#translate, item.entityName) : undefined;\n });\n return modelI18n;\n })\n )\n );\n protected showTableview = signal(false);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n #showTableviewEffectRef = effectWithDeps([this.descriptor], descriptor => {\n if (descriptor) {\n this.showTableview.set(true);\n }\n });\n\n protected onRevisionEntityChange(value: Nullable<GuiEntityModelDto>) {\n this.showTableview.set(false);\n const currentUrl = this.#router.url;\n const routePrefix = currentUrl.substring(0, currentUrl.lastIndexOf('/audit/entity-revisions') + '/audit/entity-revisions'.length);\n\n if (value) {\n this.#router.navigate([routePrefix, value.entityName]);\n } else {\n this.#router.navigate([routePrefix]);\n }\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 optionsLabelProperty=\"entityNameI18n\"\n [ngModel]=\"selectedRevisionEntity()\"\n (valueChange)=\"onRevisionEntityChange($event)\"\n [dataProvider]=\"revisionEntitiesLookupProvider\"\n [showClear]=\"true\"></mng-dropdown>\n @if (!selectedRevisionEntity()) {\n <small class=\"block\">\n {{ 'pages.entityRevisions.dropdown.helpText' | translate }}\n </small>\n }\n </div>\n</div>\n@if (showTableview() && descriptor()) {\n <mng-tableview [descriptor]=\"descriptor()!\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n","import {EntityChangeDto} from '../api/models/entityChange';\nimport {RevisionTypeDto} from '../api/models/revisionType';\nimport {EntityRevisionChangeState} from '../models/entity-revision-change-state.model';\nimport {EntityRevisionChanges} from '../models/entity-revision-changes.model';\n\nexport function auditMapToEntityChangesArray(fieldValue: {[key: string]: Array<EntityChangeDto>}): Array<EntityRevisionChanges> {\n const entityChanges: EntityRevisionChanges[] = [];\n for (const key of Object.keys(fieldValue)) {\n const ec: EntityRevisionChanges = {entityType: key, items: []};\n for (const change of fieldValue[key]) {\n if (change.revType === RevisionTypeDto.Add && change.entityNewState) {\n const item: EntityRevisionChangeState = {\n revType: change.revType,\n revTypeColor: 'green'\n };\n Object.entries(change.entityNewState).forEach(([key, value]) => (item[key] = value));\n ec.items?.push(item);\n } else if (change.revType === RevisionTypeDto.Del && change.entityOldState) {\n const item: EntityRevisionChangeState = {\n revType: change.revType,\n revTypeColor: 'red'\n };\n Object.entries(change.entityOldState).forEach(([key, value]) => (item[key] = value));\n ec.items?.push(item);\n } else if (change.revType === RevisionTypeDto.Mod && change.entityOldState && change.entityNewState) {\n const itemOld: EntityRevisionChangeState = {\n revType: change.revType,\n revTypeColor: 'red'\n };\n Object.entries(change.entityOldState).forEach(([key, value]) => (itemOld[key] = value));\n\n const itemNew: EntityRevisionChangeState = {\n revType: change.revType,\n revTypeColor: 'green'\n };\n Object.entries(change.entityNewState).forEach(([key, value]) => (itemNew[key] = value));\n\n ec.items?.push(itemOld);\n ec.items?.push(itemNew);\n }\n }\n entityChanges.push(ec);\n }\n return entityChanges;\n}\n","import {ChangeDetectionStrategy, Component, DestroyRef, Injector, OnInit, inject, input, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\n\nimport {TranslateService} from '@ngx-translate/core';\n\nimport {CommonsInternalError} from '@mediusinc/mng-commons/core';\nimport {TableComponent} from '@mediusinc/mng-commons/table';\nimport {TableDescriptorInst, TablePaginationModeEnum, tableDescriptor} from '@mediusinc/mng-commons/table/api';\nimport {AFormlyCustomFieldComponent} from '@mediusinc/mng-commons/tableview/api';\n\nimport {EntityChangeDto} from '../../api/models/entityChange';\nimport {GuiEntityModelDto} from '../../api/models/guiEntityModel';\nimport {RevEntityWithChangesDto} from '../../api/models/revEntityWithChangesDto';\nimport {RevisionTypeDto, revisionTypeEnum} from '../../api/models/revisionType';\nimport {AuditService} from '../../api/services/audit.service';\nimport {auditAddColumnsFromModel} from '../../helpers/descriptor';\nimport {auditMapToEntityChangesArray} from '../../helpers/entity-changes';\nimport {getI18nAuditEntityName} from '../../helpers/i18n';\nimport {EntityRevisionChangeState} from '../../models/entity-revision-change-state.model';\nimport {EntityRevisionChanges} from '../../models/entity-revision-changes.model';\n\n@Component({\n standalone: true,\n selector: 'mng-entity-changes-field',\n imports: [TableComponent],\n styleUrls: ['entity-changes-field.component.scss'],\n templateUrl: 'entity-changes-field.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntityChangesFieldComponent extends AFormlyCustomFieldComponent<RevEntityWithChangesDto['entityNameChangesMap'], RevEntityWithChangesDto> implements OnInit {\n readonly #destroyRef = inject(DestroyRef);\n #translate = inject(TranslateService);\n\n injector = input<Injector>();\n\n protected entityChanges = signal<\n {\n data: EntityRevisionChanges;\n descriptor: TableDescriptorInst<EntityRevisionChangeState>;\n }[]\n >([]);\n protected modelFetched = signal(false);\n\n #auditModel: GuiEntityModelDto[] = [];\n #fieldValue?: Record<string, EntityChangeDto[]>;\n\n ngOnInit(): void {\n this.#fieldValue = this.formControl.value;\n const injector = this.injector();\n injector\n ?.get(AuditService, undefined, {optional: true})\n ?.auditModel$.pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n next: model => {\n this.#auditModel = model;\n if (this.#fieldValue) {\n this.entityChanges.set(\n auditMapToEntityChangesArray(this.#fieldValue).map(fv => ({\n data: fv,\n descriptor: this.#createDescriptor(fv)\n }))\n );\n this.modelFetched.set(true);\n }\n },\n error: err => {\n throw new CommonsInternalError('Error while trying to fetch audit model from audit service', {name: 'EntityChangesFieldComponentError', cause: err});\n }\n });\n if (injector) {\n this.#translate = injector.get(TranslateService);\n }\n }\n\n #createDescriptor(entityChanges: EntityRevisionChanges) {\n const changedFields: string[] = [];\n if (entityChanges.items && entityChanges.items[0].revType === RevisionTypeDto.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 = tableDescriptor<EntityRevisionChangeState>({i18nBase: guiEntityModel.entityName}).withClassName('py-2');\n if (guiEntityModel.entityName) {\n desc.withTitle(getI18nAuditEntityName(this.#translate, guiEntityModel.entityName));\n }\n\n desc.addColumnEnum('revType', revisionTypeEnum).withTitle('MngEntityRevisionChangeState.properties.revType');\n\n if (guiEntityModel.properties) {\n auditAddColumnsFromModel(this.#translate, desc, guiEntityModel.entityName ?? '', guiEntityModel.properties, undefined, false, false);\n }\n\n desc.withRowClassName(undefined, (_, item) => (item ? (item.revTypeColor === 'green' ? 'audit-row-added' : 'audit-row-deleted') : ''));\n desc.columns.forEach(col => {\n if (changedFields.length > 0 && changedFields.some(val => col.property === val)) {\n col.withClassName('audit-cell');\n }\n });\n\n desc.withPaginationMode(TablePaginationModeEnum.Pagination);\n desc.withCurrentColumnsReorderable();\n desc.withCurrentColumnsToggleable();\n desc.withTrackProperty(`EntityChangeField_${entityChanges.entityType ?? 'default'}`);\n\n return desc;\n }\n}\n","@if (modelFetched()) {\n <div>\n @for (ec of entityChanges(); track ec) {\n <mng-table [items]=\"ec.data.items\" [descriptor]=\"ec.descriptor\"></mng-table>\n }\n </div>\n} @else {\n <div class=\"text-center\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 2rem\"></i>\n </div>\n}\n","import {ChangeDetectionStrategy, Component, Injector, computed, inject, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\n\nimport {TranslateService} from '@ngx-translate/core';\nimport {map} from 'rxjs/operators';\n\nimport {itemIdToDefined} from '@mediusinc/mng-commons/core';\nimport {model} from '@mediusinc/mng-commons/model';\nimport {TableviewComponent} from '@mediusinc/mng-commons/tableview';\nimport {TableviewEditorTypeEnum, editorDescriptor, tableviewActionDetailsOnTable, tableviewDataProvider, tableviewDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\nimport {RevEntityWithChangesDto} from '../../../api/models/revEntityWithChangesDto';\nimport {AuditRevisionsApiService} from '../../../api/services/audit-revisions-api.service';\nimport {AuditService} from '../../../api/services/audit.service';\nimport {auditAddColumnsFromModel, auditAddFieldsFromModel} from '../../../helpers/descriptor';\nimport {RevEntityDetailed} from '../../../models/rev-entity-detailed.model';\nimport {RevEntity} from '../../../models/rev-entity.model';\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: [TableviewComponent],\n providers: [AuditRevisionsApiService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AuditRevisionsPageComponent {\n readonly #injector = inject(Injector);\n readonly #translate = inject(TranslateService);\n readonly #auditService = inject(AuditService);\n\n readonly #revModel = toSignal(this.#auditService.revModel$);\n protected readonly showTableview = computed(() => this.#revModel() != null);\n\n protected readonly descriptor = computed(() => {\n const revModel = this.#revModel();\n if (revModel) {\n const idProperty = revModel.properties?.filter(prop => prop.isId).map(prop => prop.resolvedPropertyName)[0];\n\n const revEntModel = model<RevEntityWithChangesDto>({id: 'rev', title: 'rev', i18nBase: 'MngRevEntity'});\n if (idProperty) revEntModel.withIdPropertyUnsafe(idProperty);\n\n const desc = tableviewDescriptor<RevEntityWithChangesDto, keyof RevEntity, keyof RevEntity, undefined, RevEntity>(revEntModel);\n\n const detailsDescriptor = editorDescriptor<RevEntityWithChangesDto>({i18nBase: 'MngRevEntity', tableviewEditorType: TableviewEditorTypeEnum.Details});\n detailsDescriptor.model.withIdPropertyUnsafe('revEntity.' + idProperty);\n\n if (revModel.properties) {\n auditAddColumnsFromModel(this.#translate, desc.table, revModel.entityName ?? '', revModel.properties);\n auditAddFieldsFromModel<RevEntityWithChangesDto>(this.#translate, detailsDescriptor, revModel.entityName ?? '', revModel.properties);\n }\n\n detailsDescriptor\n .addField('entityNameChangesMap')\n .asCustomComponent(EntityChangesFieldComponent, {\n fieldWrappers: ['field-no-label'],\n inputs: {injector: this.#injector}\n })\n .withDisabled();\n\n desc.withDetailsDescriptor(detailsDescriptor); // MngRevEntity is extended by MngRevEntityWithChangesDto, so no real harm here\n\n return desc;\n }\n return tableviewDescriptor<RevEntity>();\n });\n protected readonly dataProvider = signal(\n tableviewDataProvider<RevEntity, AuditRevisionsApiService>({service: AuditRevisionsApiService}).withGetAll((params, service) =>\n service.getRevisionList(params).pipe(map(res => ({data: res.data, totalCount: res.totalCount})))\n )\n );\n protected readonly actions = computed(() => {\n const detailsAction = tableviewActionDetailsOnTable(this.descriptor().model, this.descriptor().detailsEditor, {\n table: this.descriptor().table,\n serviceProvider: AuditRevisionsApiService,\n injector: this.#injector\n })?.withFetchFunction(ctx => {\n return ctx.serviceInstance.getAllChangesForRevision(itemIdToDefined(ctx.parameters.itemId)).pipe(\n map(item => {\n const revEntityWithChanges: RevEntityDetailed = {\n rev: ctx.parameters.itemId,\n revEntity: item.revEntity,\n entityNameChangesMap: item.entityNameChangesMap\n };\n return revEntityWithChanges;\n })\n );\n });\n\n return detailsAction ? [detailsAction] : [];\n });\n}\n","@if (showTableview()) {\n <mng-tableview [descriptor]=\"descriptor()\" [dataProvider]=\"dataProvider()\" [actions]=\"actions()\"></mng-tableview>\n}\n","import {Routes} from '@angular/router';\n\nimport {CommonsMenuItem, RouteBuilder, createRoute, createRouteRedirect, createRoutes} from '@mediusinc/mng-commons/core';\nimport {createTableviewRoute} from '@mediusinc/mng-commons/tableview';\n\nimport {AuditService} from './api/services/audit.service';\nimport {AuditPageComponent} from './components/pages/audit/audit.page.component';\nimport {AuditEntityRevisionsPageComponent} from './components/pages/entity-revisions/audit-entity-revisions.page.component';\nimport {AuditRevisionsPageComponent} from './components/pages/revisions/audit-revisions.page.component';\nimport {CommonsAuditModuleConfig} from './models/config.model';\nimport {COMMONS_AUDIT_MODULE_CONFIG_IT} from './service/module-config.token';\n\n/**\n * Provides routes for the mng-commons-audit functionalities.\n * @param config Module config for audit section.\n * @param routeConfig Optionally provide route configs.\n */\nexport function provideAuditRoutes(\n config: CommonsAuditModuleConfig,\n routeConfig?: {\n defaultRedirect?: string;\n preRevisionRoutes?: RouteBuilder[];\n postRevisionRoutes?: RouteBuilder[];\n revisionsMenuItem?: CommonsMenuItem;\n entityRevisionsMenuItem?: CommonsMenuItem;\n }\n): Routes {\n const routeBuilder = createRoute('', config.rootPageComponent ?? AuditPageComponent)\n .withProvider(AuditService)\n .withProvider({\n provide: COMMONS_AUDIT_MODULE_CONFIG_IT,\n useValue: config\n })\n .addChildBuilder(createRouteRedirect('', routeConfig?.defaultRedirect ?? 'revisions', 'full'));\n\n if (routeConfig?.preRevisionRoutes?.length) {\n routeConfig.preRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));\n }\n\n const revisionsRouteBuilder = createTableviewRoute('revisions', config.revisionsPageComponent ?? AuditRevisionsPageComponent)\n .withTitle('pages.revisions.title')\n .withAdd(false)\n .withDelete(false)\n .withEdit(false);\n if (routeConfig?.revisionsMenuItem) {\n revisionsRouteBuilder.withMenuItemOpts(routeConfig.revisionsMenuItem);\n } else {\n revisionsRouteBuilder.withMenuItem('pi pi-book', 'pages.revisions.title');\n }\n\n const entityRevisionsRouteBuilder = createRoute('entity-revisions', config.entityRevisionsPageComponent ?? AuditEntityRevisionsPageComponent).withTitle(\n 'pages.entityRevisions.title'\n );\n if (routeConfig?.entityRevisionsMenuItem) {\n entityRevisionsRouteBuilder.withMenuItemOpts(routeConfig.entityRevisionsMenuItem);\n } else {\n entityRevisionsRouteBuilder.withMenuItem('pi pi-building', 'pages.entityRevisions.title');\n }\n\n routeBuilder\n .addChildBuilder(revisionsRouteBuilder)\n .addChildBuilder(entityRevisionsRouteBuilder)\n .addChildBuilder(\n createTableviewRoute('entity-revisions/:entityClass', config.entityRevisionsPageComponent ?? AuditEntityRevisionsPageComponent).withTitle('pages.entityRevisions.title')\n );\n\n if (routeConfig?.postRevisionRoutes?.length) {\n routeConfig.postRevisionRoutes.forEach(r => routeBuilder.addChildBuilder(r));\n }\n\n return createRoutes().add(routeBuilder).build();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export declare class AuditRevisionsPageComponent {
|
|
|
7
7
|
protected readonly showTableview: import("@angular/core").Signal<boolean>;
|
|
8
8
|
protected readonly descriptor: import("@angular/core").Signal<import("@mediusinc/mng-commons/tableview/api").TableviewDescriptorInst<RevEntityWithChangesDto, keyof RevEntity, keyof RevEntity, undefined, RevEntity, RevEntityWithChangesDto, RevEntityWithChangesDto, RevEntityWithChangesDto> | import("@mediusinc/mng-commons/tableview/api").TableviewDescriptorInst<RevEntity, keyof RevEntity, keyof RevEntity, undefined, RevEntity, RevEntity, RevEntity, RevEntity>>;
|
|
9
9
|
protected readonly dataProvider: import("@angular/core").WritableSignal<import("@mediusinc/mng-commons/tableview/api").TableviewDataProviderInst<RevEntity, AuditRevisionsApiService, keyof RevEntity, keyof RevEntity, import("@mediusinc/mng-commons/core").ServiceClassType<AuditRevisionsApiService>, RevEntity, RevEntity, RevEntity>>;
|
|
10
|
-
protected readonly actions: import("@angular/core").Signal<import("@mediusinc/mng-commons/tableview/api").ActionEditorDescriptorInst<
|
|
10
|
+
protected readonly actions: import("@angular/core").Signal<import("@mediusinc/mng-commons/tableview/api").ActionEditorDescriptorInst<RevEntityWithChangesDto, AuditRevisionsApiService, RevEntityWithChangesDto, RevEntity, undefined, RevEntity>[]>;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuditRevisionsPageComponent, never>;
|
|
12
12
|
static ɵcmp: i0.ɵɵComponentDeclaration<AuditRevisionsPageComponent, "mng-audit-revisions-page", never, {}, {}, never, never, true, never>;
|
|
13
13
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mediusinc/mng-commons-audit",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
3
|
+
"version": "6.0.0-rc.3",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^17.3.0 || ^18.0.0",
|
|
6
6
|
"@angular/core": "^17.3.0 || ^18.0.0",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"@angular/forms": "^17.3.0 || ^18.0.0",
|
|
9
9
|
"@ngx-formly/core": "6.3.11",
|
|
10
10
|
"@ngx-translate/core": "^15.0.0",
|
|
11
|
-
"@mediusinc/mng-commons": "~6.0.0-rc.
|
|
11
|
+
"@mediusinc/mng-commons": "~6.0.0-rc.3"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"tslib": "^2.8.1"
|
package/version-info.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mediusinc/mng-commons-audit",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
4
|
-
"tag":
|
|
5
|
-
"distance":
|
|
6
|
-
"hash": "
|
|
3
|
+
"version": "6.0.0-rc.3",
|
|
4
|
+
"tag": null,
|
|
5
|
+
"distance": null,
|
|
6
|
+
"hash": "358b6fb",
|
|
7
7
|
"dirty": true,
|
|
8
|
-
"semver":
|
|
8
|
+
"semver": null,
|
|
9
9
|
"buildTimestamp": null,
|
|
10
|
-
"raw": "
|
|
10
|
+
"raw": "6.0.0-rc.3-358b6fb-dirty"
|
|
11
11
|
}
|